Lua Script Tutorial

Aus Unreal Software German Wiki
Wechseln zu: Navigation, Suche
 Bleistift.png

   Die Arbeit an diesem Artikel/Abschnitt ist noch im Gange.
   Du kannst helfen, ihn zu ergänzen

Dieses Tutorial übermittelt die Grundlagen des CS2D-Skriptens in lua.

Man kann lua Skripts verwenden, indem man *.lua Dateien in den Autorun-Ordner im CS2D Verzeichnis einfügt (/sys/lua/autorun).

*.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:

Nummer1=1

Ein Zeichen deklariert man wie folgt:

Zeichen2="g"

Wenn man eine Zahl als Zeichen möchte, setzt man für g einfach eine Zahl ein:

Zeichen2="4"

Einen Satz deklariert man wie folgt:

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.

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.

Nummer1[2]

Operatoren und Verwendung von Variablen/Arrays

Mit Rechenoperatoren kannst du rechnen.

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.

if (Nummer1==Nummer2) then 

wenn (Nummer1 gleich Nummer2) dann

if (Nummer1!=Nummer2) then 

wenn (Nummer1 ungleich Nummer2) dann

if (Nummer1<Nummer2) then 

wenn (Nummer1 kleiner als Nummer2) dann

if (Nummer1=<Nummer2) then 

wenn (Nummer1 kleiner als/gleich Nummer2) dann

if (Nummer1>Nummer2) then 

wenn (Nummer1 größer als Nummer2) dann

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.

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.

kil[id]=kil[id]+1

Solche Funktionen funktionieren auch mit den anderen Rechenoperatoren.

addhook und function

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[1] kann man sich eine Liste mit allen CS2D Lua Commands anschauen. Hier[2] kann man sich eine Liste mit allen CS2D Hooks anschauen.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge