PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Togglefunktion bei Expression- Gates



Fighting_H5N1
09.11.2009, 16:59
Hallo, Leute

Ich suche nun schon seit längerer Zeit nach einer Lösung zu diesem Problem:

Ich will ein Gate machen, das man Toggeln kann.
Dass man mit dem Befehl:

If Input1 == 1 -> Output = 1;
Einen Wert festlegen kann, weiß ich, aber wie bekomme ich diesen jetzt wieder weg, ohne dass ich 2 Buttons nutze?
Wenn ich zb. den Button ein zweites mal drücke, dann wird der Wert ja nicht mehr und nicht weniger.
Ich müsste ja dann noch einen Resetcode schreiben, was ja auch kein Problem wäre, aber dann müsste ich 2 Buttons nehmen.
Ich hab echt keine Ahnung, wie ich diesen Wert wieder quittieren kann, ohne dass ich 2 Buttons verwende.

(Mit Expression2 habe ich mich noch nicht wirklich befasst, sollte jemand was in Expression2 geschrieben haben, dann erklärt bitte die Schritte, wie das Gate arbeitet.

Kann man mit Expression2 besser Skripts schreiben, bzw besser funktionierende "Geräte" bauen, als mit Expression1?
Habe mich damit jetzt schon seit längerem nicht mehr befasst, kenne aber die Basics noch recht gut :)

Danke und mfg euer Fighting_H5N1

Fighter_Zero
09.11.2009, 17:28
Kann man mit Expression2 besser Skripts schreiben, bzw besser funktionierende "Geräte" bauen, als mit Expression1?


Naja ich kenne nicht die Möglichkeiten von Ex1 aber bei Ex² kann man z.B. noch Holos krieren denen man Texturen und Farbe zuordnen kann, um so z.B. eine Fliegende Kugel zu machen.
Es gibt da noch haufenweise mehr, du kannst dir alles mal hier ansehen http://wiki.garrysmod.com/?title=Wire_Expression2

ElDollo
09.11.2009, 17:59
Also zu deinem Problem
Ich kenn mich zwar nicht mit Expressions aus, ABER.
Du kannst doch nen resetoutput schreiben und da zum Beispiel dann keinen Button sondern was anderes anhängen..
Hier ein Beispiel (mir fällt grad nix besseres ein)
Du hast nen Timer aber willst den automatisch resetten, wenn der bei 10 ist. Dann machste einfach nen greater or equal, constant value 10 und verbindest die.

Weiß jetz nich in wiefern dir das geholfen hat, aber was ich damit sagen will, ist ganz einfach.. Setz dem reset halt irgendwelche bedingungen/voraussetzungen ;)

EDIT: Also tut mir leid, wenn ich jetz was falsches sag, meinetwegen dürfen auch alle E2-er mich fisten, aber ich glaube der hauptgrund E2 zu benutzen sind Performance (also die sind schneller als normale Gates) und halt die Übersichtlichkeit des Editors

Bitte nich zu stark hauen :/

Pij
09.11.2009, 18:06
Komplett aus'm Kopf geschrieben und schon Monate kein GMod mehr gespielt, aber das sollte es in etwa sein.


@name Toggle
@inputs Input1
@outputs Output

if(first()){
Output=1;
exit;
}
if(Output==1){
Output=0;
exit;
}
else{
Output=1;
exit;
}

Xasir
09.11.2009, 18:18
EDIT: Also tut mir leid, wenn ich jetz was falsches sag, meinetwegen dürfen auch alle E2-er mich fisten, aber ich glaube der hauptgrund E2 zu benutzen sind Performance (also die sind schneller als normale Gates) und halt die Übersichtlichkeit des Editors

Bitte nich zu stark hauen :/

http://www.myvideo.de/watch/3054802/Pinguin_Einfach_mal_die_Fresse_halten
Kleiner scherz neben bei ^^

Nein Mit Ex2 kann man 1000 mehr machen als mit normalen gates.
Z.b. Die holo funktion, Strings Sür immer als TxT datei auf dem server speichern. Hints schreiben.
oder informationen aus spielern heraus pressen ^^. Und vieles mehr. gug dir einfach mal die wiki an und gug was es für tolle funktionen gibt. http://wiki.garrysmod.com/?title=Wire_Expression2

ElDollo
09.11.2009, 18:52
tut mir leid :/

naja, hoffe es konnte dir helfen :)

Fighting_H5N1
10.11.2009, 17:49
Danke für eure Antworten, ganz besonders an Pij.
Ich werd das mal ausprobiern und vielleich doch mal noch Exp2 lernen.
@Eldollo:
Naja nicht besonders ;) ich hab mir schon viel überlegt und auch viel ausprobiert, was Gates etc angeht, am Schluss liefs darauf aus, dass ich einen User über einen Button geweldet hab und der Button war einfach Togglebar, aber das ist ja Murks :)

Bzw, was mir gerade so einfällt..:
Eigentlich könnte ich es ja so machen, dass bei jedem mal drücken +1 addiert wird und eine art Automatik schreiben, die verhindert, dass der Wert über 1 steigen kann und sofort wieder auf 0 zurücksetzt..

In == 1 -> Out =Out +1;
In > 1 -> Out = 0;

So könnte es doch gehen, oder?
Edit: Grad noch eben getestet, funktioniert einwandfrei.

MFG Fighting_H5N1

gamerpaddy
11.11.2009, 14:31
man ist den das soo schwer

einfach
A=!A hinter
if(Button){

also A ist gleich nicht A so art ein false true wechsel (0-1)