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