Lua Script Tutorial

Aus Unreal Software German Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K
(Fortsetzung der Verschönerungsaktion des letzten Updates)
 
Zeile 1: Zeile 1:
 
{{Wip}}
 
{{Wip}}
  
Dieses Tutorial übermittelt die Grundlagen des CS2D-Skriptens in lua.
+
Dieses Tutorial übermittelt die Grundlagen des Counter-Strike 2D-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 Skripts werden ausgeführt, wenn sie im Counter-Strike 2D Verzeichnis liegen.
  
==*.lua Datei erstellen:==
+
==Lua Source 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".
+
Dies macht man, indem man eine Datei in einem Editor (z.B. Notepad++) öffnet und diese dann mit einem Namen mit Dateiendung .lua speichert.
  
Diese Datei kannst du jetzt im Editor öffnen und bearbeiten.
 
  
 
==Variablen und Arrays==
 
==Variablen und Arrays==
Zeile 15: Zeile 14:
 
'''Variablen'''
 
'''Variablen'''
  
Variablen sind Platzhalter für Zahlen, Zeichen(char), und Sätze (strings).
+
Variablen sind primär Platzhalter für Zahlen und Zeichenketten (strings).
  
Sie können beliebig benannt werden. Nur Schlüsselwörter dürfen/können nicht als Namen verwendet werden.
+
Variablen können beliebige alphanumerische Namen haben, welche mit einem Buchstaben anfangen. Nur Schlüsselwörter dürfen nicht als Namen verwendet werden.
  
Eine Zahl deklariert man wie folgt:
+
Variablen werden ohne Typdeklaration wie folgt definiert:
  
<pre>Nummer1=1</pre>
+
<pre>zahl = 1
 
+
zeichen = "abcdef"</pre>
Ein Zeichen deklariert man wie folgt:
+
 
+
<pre>Zeichen2="g"</pre>
+
 
+
Wenn man eine Zahl als Zeichen möchte, setzt man für g einfach eine Zahl ein:
+
 
+
<pre>Zeichen2="4"</pre>
+
 
+
Einen Satz deklariert man wie folgt:
+
 
+
<pre>Satz3="Diese Variable hat diesen Satz als Wert"</pre>
+
  
 
'''Arrays'''
 
'''Arrays'''
  
Arrays sind Felder von Variablen. In einem Array kannst du mehrere Zahlen, Zeichen und Sätze speichern.
+
Arrays sind Felder von Variablen. In einem Array können mehrere Variablenwerte gespeichert werden.
  
Die Werte werden zwischen geschweifte Klammern geschrieben und von Kommas getrennt.
+
Die Werte werden zwischen geschweifte Klammern geschrieben und von Kommas getrennt. Sie können sowohl Zahlen als auch Zeichenketten enthalten.
  
<pre>Nummer1={1,2,3}
+
<pre>zahlen = {1,3,2}
 +
zeichen = {"abcd","2f","c"}
 +
gemischt = {1,"hallo",56,"7"}</pre>
  
Zeichen2={"a","2","c","4","e"}
+
AUf einzelne Felder in Arrays wird mit eckigen Klammern ausgedrückt, welche auf den Variablennamen folgen und die Position im Array angeben. Die Zählung beginnt bei 1.
  
Satz3={"Das ist ein ","Beispiel für ein Array"}</pre>
+
<pre>zahlen[2] -- Gibt nach obriger Definition 3 aus</pre>
 
+
Arrays kann man wie Variablen nutzen (s.u.), nur kommt hinter den Namen der Variable eckige Klammer, mit einer Nummer, welche die position markiert.
+
 
+
<pre>Nummer1[2]</pre>
+
  
 
'''Operatoren und Verwendung von Variablen/Arrays'''
 
'''Operatoren und Verwendung von Variablen/Arrays'''
  
Mit Rechenoperatoren kannst du rechnen.
+
Für jedes der Grundrechenarten gibt es einen Rechenoperator:
  
<pre>Nummer1=Nummer2+Nummer3 --Addition
+
<pre>a = b + c --Addition
  
Nummer1=Nummer2-Nummer3 --Subtraktion
+
a = b - c --Subtraktion
  
Nummer1=Nummer2*Nummer3 --Multiplikation
+
a = b * c --Multiplikation
  
Nummer1=Nummer2/Nummer3 --Division</pre>
+
a = b / c --Division</pre>
  
Mit den Vergleichsoperatoren kannst du z.B. in if-Funktionen Entscheidungen treffen.
+
Vergeleichs- oder Relationsoperatoren vergleichen zwei Werte und geben einen Wahrheitswert (true oder false) zurück:
  
<pre>if (Nummer1==Nummer2) then </pre>
+
<pre> a == b -- Gleichheit
  
wenn (Nummer1 gleich Nummer2) dann
+
a != b -- Ungleichheit
  
<pre>if (Nummer1!=Nummer2) then </pre>
+
a < b -- a kleiner b
  
wenn (Nummer1 ungleich Nummer2) dann
+
a <= b -- a kleiner oder gleich b
  
<pre>if (Nummer1<Nummer2) then </pre>
+
a > b -- a größer b
  
wenn (Nummer1 kleiner als Nummer2) dann
+
a >= b -- a größer oder gleich b</pre>
  
<pre>if (Nummer1=<Nummer2) then </pre>
+
''Anwendungsbeispiel in Counter-Strike 2D''
  
wenn (Nummer1 kleiner als/gleich Nummer2) dann
+
Verwendung der Variablen zum Zählen von kills:
  
<pre>if (Nummer1>Nummer2) then </pre>
+
Der Übersicht halber wird davon ausgegangen, dass auf einem Server maximal 6 Spieler sind. Deshalb wird ein sechsstelliges Array mit Nullen gefüllt, um die Kills jedes einzelnen Spielers zu zählen.
  
wenn (Nummer1 größer als Nummer2) dann
+
<pre>kills = {0,0,0,0,0,0}</pre>
  
<pre>if (Nummer1>=Nummer2) then </pre>
+
Bei einem Kill wird der Wert das Arrays an der Stelle der Spieler-ID (hier durch id dargestellt) dem siegreichen Spieler um 1 erhöht:
  
wenn (Nummer1 größer als/gleich Nummer2) dann
+
<pre>kills[id] = kills[id] + 1</pre>
  
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.
+
==addhook und function==
  
<pre>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}</pre>
+
<!-- Bedarf der grundlegenden überarbeitung!
 
+
Dann immer wenn man jemanden umbringt, wird der entsprechende Wert um 1 erhöht.
+
 
+
<pre>kil[id]=kil[id]+1</pre>
+
 
+
Solche Funktionen funktionieren auch mit den anderen Rechenoperatoren.
+
 
+
==addhook und function==
+
  
 
<pre>addhook("serveraction","press")
 
<pre>addhook("serveraction","press")
Zeile 105: Zeile 83:
 
function press(id,action)
 
function press(id,action)
  
if action==1 then --Zeile 3
+
  if action==1 then
  
msg(player(id,"name")..": Help!")
+
    msg(player(id,"name")..": Help!")
  
end
+
  end
  
 
end</pre>
 
end</pre>
Zeile 127: Zeile 105:
 
- In Zeile 5 & 6 steht jeweils "end". Dies beendet eine Funktion, die einen längeren Codebereich hat.
 
- 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.
+
Da die If-Funktion und die function-Funktion aufgerufen worden sind, müssen beide beendet werden.-->
  
Hier[http://cs2d.com/help.php?luacat=all] kann man sich eine Liste mit allen CS2D Lua Commands anschauen.
+
[http://cs2d.com/help.php?luacat=all | Liste aller Counter-Strike 2D spezifischen lua-Befehle]
Hier[http://cs2d.com/help.php?hookcat=all] kann man sich eine Liste mit allen CS2D Hooks anschauen.
+
[http://cs2d.com/help.php?hookcat=all | Liste aller hooks]

Aktuelle Version vom 4. Februar 2016, 16:09 Uhr

 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 Counter-Strike 2D-Skriptens in lua.

lua Skripts werden ausgeführt, wenn sie im Counter-Strike 2D Verzeichnis liegen.

Lua Source Datei erstellen

Dies macht man, indem man eine Datei in einem Editor (z.B. Notepad++) öffnet und diese dann mit einem Namen mit Dateiendung .lua speichert.


Variablen und Arrays

Variablen

Variablen sind primär Platzhalter für Zahlen und Zeichenketten (strings).

Variablen können beliebige alphanumerische Namen haben, welche mit einem Buchstaben anfangen. Nur Schlüsselwörter dürfen nicht als Namen verwendet werden.

Variablen werden ohne Typdeklaration wie folgt definiert:

zahl = 1
zeichen = "abcdef"

Arrays

Arrays sind Felder von Variablen. In einem Array können mehrere Variablenwerte gespeichert werden.

Die Werte werden zwischen geschweifte Klammern geschrieben und von Kommas getrennt. Sie können sowohl Zahlen als auch Zeichenketten enthalten.

zahlen = {1,3,2}
zeichen = {"abcd","2f","c"}
gemischt = {1,"hallo",56,"7"}

AUf einzelne Felder in Arrays wird mit eckigen Klammern ausgedrückt, welche auf den Variablennamen folgen und die Position im Array angeben. Die Zählung beginnt bei 1.

zahlen[2] -- Gibt nach obriger Definition 3 aus

Operatoren und Verwendung von Variablen/Arrays

Für jedes der Grundrechenarten gibt es einen Rechenoperator:

a = b + c --Addition

a = b - c --Subtraktion

a = b * c --Multiplikation

a = b / c --Division

Vergeleichs- oder Relationsoperatoren vergleichen zwei Werte und geben einen Wahrheitswert (true oder false) zurück:

 a == b -- Gleichheit 

 a != b -- Ungleichheit

 a < b -- a kleiner b

 a <= b -- a kleiner oder gleich b

 a > b -- a größer b

 a >= b -- a größer oder gleich b

Anwendungsbeispiel in Counter-Strike 2D

Verwendung der Variablen zum Zählen von kills:

Der Übersicht halber wird davon ausgegangen, dass auf einem Server maximal 6 Spieler sind. Deshalb wird ein sechsstelliges Array mit Nullen gefüllt, um die Kills jedes einzelnen Spielers zu zählen.

kills = {0,0,0,0,0,0}

Bei einem Kill wird der Wert das Arrays an der Stelle der Spieler-ID (hier durch id dargestellt) dem siegreichen Spieler um 1 erhöht:

kills[id] = kills[id] + 1

addhook und function

| Liste aller Counter-Strike 2D spezifischen lua-Befehle | Liste aller hooks

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge