Forum

> > CS2D > Allgemein > Lua Script Tutorial Deutsch
Forums overviewCS2D overviewAllgemein overviewLog in to reply

German Lua Script Tutorial Deutsch

4 replies
To the start Previous 1 Next To the start

old Lua Script Tutorial Deutsch

Cebra
User Off Offline

Quote
Hallo U.S.G.N.


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
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
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
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 user Cebra

edit: da @user 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

old Re: Lua Script Tutorial Deutsch

Cebra
User Off Offline

Quote
Ja wie gesagt, mir war nicht bewusst das es ein eigenes wiki gibt.
Ich würd es vllt noch hochladen aber erst wenn es mehr oder weniger richtig ist. Ich werde sehr wahrscheinlch fehler gemacht haben

old Re: Lua Script Tutorial Deutsch

ohaz
User Off Offline

Quote
Da sind jede Menge Grammatik- und Rechtschreibfehler drin. Wenn ich ein Tutorial lese, das mit
Quote
Du kannst Lua Scripts verwenden in dem du die *.lua datei in den autorun-Ordner in CS2D Verzeichniss tust.
anfängt, dann höre ich sofort wieder auf zu lesen. Du verwendest das Verb "tun" auch noch öfter in deinen Sätzen. Das klingt total mies - so sprechen 2-3 Jährige, die noch keine Verben konjugieren können und stattdessen nur ein Verb lernen: "tun".

old Re: Lua Script Tutorial Deutsch

Cebra
User Off Offline

Quote
Ja danke
ich überarbeite es heute nachmittag nochmal

edit: hab es überarbeitet
edited 1×, last 16.11.15 04:17:08 pm
To the start Previous 1 Next To the start
Log in to replyAllgemein overviewCS2D overviewForums overview