Achtung: Hier handelt es sich um ein Tut für ein Spezielles Programm, CS2D, und nicht Lua selbst.
Um Lua zu scripten, versucht Notepad++, weil dieses Programm einen Syntax highlighter für Lua und auch andere Script-/Programmierprachen hat.
Für das E-Book Programming in Lua hier kilcken, sehr nützlich für anfänger.
EDIT:
da dieses Tut ein fail war, versuch ich mich an nem neuen.
es wird nach und nach erweitert, bis es eigendlich genug sein sollte

also hier ist das Tut:
CS2D benutzt hooks(engl. "Haken") um mit lua zu "kommunizieren"
wie z.B. der Spawn Hook, der beim Spawnen eines Spielers eine Funktion aufruft,
Beispiel:
1
2
3
4
5
6
2
3
4
5
6
addhook([[spawn]],[[spawner]])
function spawner(id)
local a
if not a then a = 0 end
a = a + 1
end
Die Funktion spawner vergrößert die (Lokale)Variable a immer um eins wenn ein Spieler Spawnt
Hier eine liste von ein paar Hooks die mit
1
addhook(hookname,funktion)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Hook() --Wann der Hook eingesetzt wird.
-Parameter
>Rückgabewerte.(return's)
join(id) --Wenn ein Spieler auf den Server Joint
-id: Die ID des Spielers der connected.
>return: keine
team(id,team) --Wenn ein Spieler ein Team wählt.
-id: Die ID des Spielers der ein Team wählt.
-team: Das Team das er wählt.
>return: 1 - Team wird nicht gewechselt.
0 - Team wird gewechselt.
spawn(id) --Beim Spawnen eines Spielers.
-id: Die ID des Spielers der gespawnt wird.
>return: "" - normal spawnen
"x" - nur mit Knife
"item id 1,item id 2,..." - mit den angegebenen Items Spawnen
serveraction(id,act) --Beim benutzen einer Server-Aktion (F2/F3/F4).
-id: Die ID des Spielers der F2/F3/F4 benutzt.
-act: Die Aktion die er ausführt (1 = F2,2 = F3,3 = F4).
>return: keine
hit(id,source,weapon,hpdmg,apdmg) --Beim treffen eines Spielers.
-id: Die ID des Spielers der angegriffen wird.
-source: Die ID des Spielers der getroffen hat.
-weapon: Die Waffe mit der getroffen wurde.
-hpdmg: Der Schaden den der getroffene Spieler an Leben erleidet.
-apdmg: Der Schaden den der getroffene Spieler am Panzer erleidet.
>return: 1 - Den Schaden nicht berechnen.
0 - Normal Schaden Berechnen.
leave(id,reason) --Wenn jemand den Server verlässt.
-id: Die ID des Spielers der den Server verlässt.
-reason: Falls der spieler nur disconnected und nicht gekickt/gebannt wird dann ist diese variable 0, sonst über 0.
>return: keine
always() --Jeden Frame (50) mal pro sekunde.
ms100() --Jede Zehntel Sekunde.
second() --Jede Sekunde.
minute() --Jede Minute.
usw.
Dann gibt es noch Funktionen die der ersteller von CS2D, Peter Schauß, eingefügt hat, z.B.:
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
parse(ein cs2d command)
msg("Eine msg in-game anzeigen.")
msg2(id,"Eine msg an einen bestimmten Spieler in-game anzeigen.")
player(id,"parameter") -- Gibt Infos über einen Spieler aus. z.B: Leben(health),Geld(money),RCon(rcon),X position(x),Y position(y) usw.
game("Einstellung") -- Gibt Infos über die Servereinstellungen
Noch etwas genauer:
1. Funktion: parse
So ähnlich wie RCon, der befehl(ein String, also z.B. "equip 1 32") wird an den Server geschickt und ausgeführt.
*Befehle/Commands*
2. Funktion: msg
Es wird ein Text(z.B. msg("hi") -> hi) an alle Spieler auf dem Server angezeigt.
(vgl. "sv_msg <text>" in Console)
3. Funktion: msg2
Funktioniert eigendlich genauso wie msg, nur dass es einen weiteren parameter(id) gibt, der die ID der Person die den Text sehen soll enthält(z.B. msg2(1,"Hi!") -> der Text Hi! wird an den Spieler mit der ID 1 angezeigt)
(vgl. "sv_msg2 <id> <text>" in Console)
4. Funktion: player
Gibt den Wert des angegebenen 2ten Parameters zurück, z.B. player(1,"health") gibt die Lebenspunkte des Spielers mit der ID 1 zurück.
5. Funkion: game
Gibt den Wert einer "Einstellung" des Servers zurück. z.B. game("sv_maxplayers") -> gibt die Maximale Anzahl von Spielern zurück.
game("mp_dispenser_health") -> gibt die Werte dieser Einstellung zurück. usw.
Ein kommentierter beispiel Code mit Hooks:
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
addhook("join","joiner")
function joiner(id)
msg('Spieler '..player(id,'name').." nimmt am Spiel teil!@C") --Eine MSG anzeigen lassen, die sagt wer zum Server Joint.
end
addhook([[spawn]],[[spawner]])
function spawner(id)
return "3,32,83" --Deagle,M4A1 und Super Armor equippen.
end
Ich habe bewusst "", '' und [[]] benutzt, weil man all diese benutzen kann, um einen String zu erstellen.
Noch etwas Allgemeines über Lua:
Es gibt Lokale variablen die man nur innerhalb der Funktion in der man sie zugeordnet hat benutzen kann. z.B.:
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
nice = 1 -- die Globale Variable zuordnen
function hey()
do
local nice = 3
print(nice) -- gibt 3 aus
end
print(nice) -- gibt 1 aus
end
1
nice = 3
1
_G.nice = 3
Falls etwas wichtiges fehlt bitte Posten

Falls ich dieses Tut nicht gepostet haben sollte, bitte schreiben, denn dann lösche ich es natürlich.
MfG Yasday
edited 2×, last 12.01.11 07:50:21 pm