PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Expression 2 Erklärungen / Tutoriale



Pimpy1995
11.10.2009, 18:25
Moin Leute!
Ich habe ein ziemlich großes Problem mit "Expression 2". Die ganzen Pfeile,begriffe usw. verwirren mich einwenig!
Könntet ihr mir bitte Erklärungen / Tutoriale usw. hier rein posten? zbs. die Anfänger befehle,was input und output heißt , wie man sich die sachen merken kann also inprinzip fast alles.
MFG Pimpy

Grüne Gurken
11.10.2009, 18:30
#Thema verschoben nach: > Garry's Mod > Addons > Addon: Wiremod

Vlt. hilft dieses Thema ein bisschen: http://www.garrysmod.de/forum/showthread.php?t=12602

TrAx
12.10.2009, 10:16
Nun, um das ganze zu verstehen hilft nur eines: "learning by doing"!


Hier die Seite zur offiziellen Wiki (http://wiki.garrysmod.com/?title=Wire_Expression2).

Ich werde dir mal wiefolgt ein Paar Grundfunktionen erklären, damit du es ein wenig leichter hast.


Du beginnst mit dem Start:

@name Test
@inputs Button
@outputs Lampe
@persist LampeVar
@trigger all

Nun, im o. g. Beispiel verwendest du die als Start deines EX2-Chips. Die ganzen Befehle haben natürlich ihren Sinn und Zweck, daher:

@name Text #Der Name deines EX2-Chips

@inputs Button #Das können einfach Buttons sein, aber natürlich auch Values vom z. B. Timer usw., das kannst Du Dir aussuchen. Buttons geben dann z. B. (sofern 0 und 1 als Value gesetzt wurde) bei Klick eine 1 an den EX2-Chip und mit deren Hilfe kannst du dann etwas starten.

@outputs Lampe #An Outputs kannst du Werte übergeben und somit etwas starten, Values übergeben und sonstiges.

@persist LampeVar #Hier kannst du Chip-interne Variablen deklarieren. Mit deren Hilfe kann man sehr viel machen. Du kannst Werte zwischenspeichern....

@trigger all #Mit der trigger directive werden inputs gelistet. Hierbei kann man "all" wie im Beispiel anwenden, wobei alle inputs gelistet und somit genutzt werden können. Natürlich kann man auch "none" angeben, d.h. das keine inputs gelistet werden. Aber auch einzelne inputs kann man angeben, wie z.B. "Button", womit also nur bestimmte inputs gelistet werden.


Das zu Anfang, jetzt zum eigentlich Zweck:


@name Test
@inputs Button
@outputs Lampe
@persist LampeVar
@trigger all

if(~Button & Button) { #Sobal sich der input des Button ändert, wird eine 1 übergeben.
LampVar = 1 #Wenn die Abfrage also stimmt, wird der Variable "LampVar" eine 1 zugewiesen.
} #Anweisungsende

if(LampVar == 1) { #Wenn die Variable "LampVar" ist gleich 1, dann...
Lamp = 1 #...wird der output "Lamp" auf 1 gesetzt.
}


Dies oben sind einfache "if-Abfragen" diese werden im EX2-Chip sehr oft gebraucht, daher wirst du damit sehr viel arbeiten.

Es würde auch z.B. (if(Button == 1) gehen.

Natürlich muss es nicht "==" sein. Es gibt auch:

!= : nicht gleich
< : kleiner
> : größer
>= : größer oder gleich
<= : kleiner oder gleich

und mit einem einzigem "=" weist du etwas zu.


In EX2 zu rechnen ist auch relativ simpel:


@name Test
@inputs Button
@outputs Lampe
@persist LampeVar A B
@trigger all

A = 4 #Hier wird der Variable "A" eine 4 zugewiesen.
B = 5

if(~Button & Button) {
LampVar = A + B #Einfache Addition von A und B und dessen Zuweisung in LampVar.
}



Sodelchen, ich denke für den Anfang dürfte es klar sein. Auf der Seite, die ich zu Beginn genannt habe, findest du sehr viele Informationen auf Englisch und auch Examples. Sollten noch weitere Fragen offen stehen, immer raus damit.