In diesem Tutorial versuche ich euch die Grundlagen vom Lua Scripten beizubringen.
Du kannst Lua Scripts verwenden, indem du die *.lua Datei in den Autorun-Ordner in CS2D Verzeichnis einfügst.
(/sys/lua/autorun)
Als erstes muss man eine "*.lua" Datei erstellen.
*.lua Datei erstellen:
Dies machst du, indem du den Editor öffnest und dort auf "Speichern unter" im Menü "Datei" klickst (Str + S).Dann öffnet sich ein neues Fenster, wo du den Ort und den Namen der Datei einstellen kannst. Du änderst den Namen in deinen Wunschnamen und ersetzt das ".txt" mit ".lua" und klickst dann auf "Speichern".
Diese Datei kannst du jetzt im Editor öffnen und bearbeiten.
Variablen und Arrays
Variablen
Variablen sind Platzhalter für Zahlen, Zeichen(char), und Sätze (strings).
Sie können beliebig benannt werden. Nur Schlüsselwörter dürfen/können nicht als Namen verwendet werden.
Eine Zahl deklariert man wie folgt:
1
Nummer1=1
Ein Zeichen deklariert man wie folgt:
1
Zeichen2="g"
Wenn man eine Zahl als Zeichen möchte, setzt man für g einfach eine Zahl ein:
1
Zeichen2="4"
Einen Satz deklariert man wie folgt:
1
Satz3="Diese Variable hat diesen Satz als Wert"
Arrays
Arrays sind Felder von Variablen. In einem Array kannst du mehrere Zahlen, Zeichen und Sätze speichern.
Die Werte werden zwischen geschweifte Klammern geschrieben und von Kommas getrennt.
1
2
3
4
5
2
3
4
5
Nummer1={1,2,3} Zeichen2={"a","2","c","4","e"} Satz3={"Das ist ein ","Beispiel für ein Array"}
Arrays kann man wie Variablen nutzen (s.u.), nur kommt hinter den Namen der Variable eckige Klammer, mit einer Nummer, welche die position markiert.
1
Nummer1[2]
Operatoren und Verwendung von Variablen/Arrays
Mit Rechenoperatoren kannst du rechnen.
1
2
3
4
5
6
7
2
3
4
5
6
7
Nummer1=Nummer2+Nummer3 --Addition Nummer1=Nummer2-Nummer3 --Subtraktion Nummer1=Nummer2*Nummer3 --Multiplikation Nummer1=Nummer2/Nummer3 --Division
Mit den Vergleichsoperatoren kannst du z.B. in if-Funktionen Entscheidungen treffen.
1
if (Nummer1==Nummer2) then
wenn (Nummer1 gleich Nummer2) dann
1
if (Nummer1!=Nummer2) then
wenn (Nummer1 ungleich Nummer2) dann
1
if (Nummer1<Nummer2) then
wenn (Nummer1 kleiner als Nummer2) dann
1
if (Nummer1=<Nummer2) then
wenn (Nummer1 kleiner als/gleich Nummer2) dann
1
if (Nummer1>Nummer2) then
wenn (Nummer1 größer als Nummer2) dann
1
if (Nummer1>=Nummer2) then
wenn (Nummer1 größer als/gleich Nummer2) dann
Variablen verwendest du, z.B. um die Kills zu zählen. Dafür würdest du ein Array anlegen, welches 32 Werte hat. 32 weil das die maximale Spieler Anzahl ist, die auf einem Server sein können.
1
kil={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Dann immer wenn man jemanden umbringt, wird der entsprechende Wert um 1 erhöht.
1
kil[id]=kil[id]+1
Solche Funktionen funktionieren auch mit den anderen Rechenoperatoren.
addhook und function
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
addhook("serveraction","press") function press(id,action) if action==1 then --Zeile 3 msg(player(id,"name")..": Help!") end end
- In der Zeile 1 wird ein Hook namens "serveraction" mit der Funktion "press" verbunden.
Das bedeutet, immer wenn eine der Serveraction-Tasten gedrückt wird, wird diese Funktion(=Programmteil) ausgeführt.
- In der 2. Zeile wird die Funktion "press" deklariert. Der 2. Parameter(=Variablen) aus "addhook" muss genauso heißen wie die Funktion. Das was in den Klammern steht sind die Parameter, welche von dem Hook "serveraction" übergeben werden. Der Variablenname "id" wird meist verwendet um die Spielerid zu benutzen. Dieser Parameter erhält beim ausführen den Wert, der ID vom Spieler, der die Taste gedrückt hat. "action" wird hier verwendet um fest zustellen welche Serveraction-Taste gedrückt wurde.
1 - Serveraction 1; 2 - Serveraction 2; 3 - Serveraction 3;
- In Zeile 3 wird dann mit Hilfe einer if-Funktion festgestellt, welche der drei Tasten gedrückt worden ist. In meinem Fall möchte ich, das nur wenn Serveraction 1 gedrückt worden ist, der Code ausgeführt wird.
- In Zeile 4 wird dann der Lua Command "msg()" ausgeführt. Dieser schickt an alle Spieler eine Chat-Nachricht. In den Klammern steht der Inhalt, welcher versendet werden soll. In diesem Fall der Name des Spielers, der die Serveraction-Taste gedrückt hat und danach ": Help!". Der Name wird mithilfe der "player"-Funktion ermittelt. Diesem Kommando übergibt man die ID des entsprechendem Spielers und die Info, dass man den Namen sucht.
- In Zeile 5 & 6 steht jeweils "end". Dies beendet eine Funktion, die einen längeren Codebereich hat.
Da die If-Funktion und die function-Funktion aufgerufen worden sind, müssen beide beendet werden.
Hier kann man sich eine Liste mit allen CS2D Lua Commands anschauen.
Hier kann man sich eine Liste mit allen CS2D Hooks anschauen.
Fortsetzung folgt...
_____________________________________________________________________________________
MFG Cebra
edit: da @ Seekay: mir empfohlen hat es gleich hier in diesen thread zu posten, hab ich das geändert
edited 2×, last 16.11.15 04:19:10 pm