Forum

> > CS2D > Scripts > Kleines CS2D Lua Tut von Big-Tut.de
Forums overviewCS2D overview Scripts overviewLog in to reply

German Kleines CS2D Lua Tut von Big-Tut.de

6 replies
To the start Previous 1 Next To the start

moved Kleines CS2D Lua Tut von Big-Tut.de

Yasday
User Off Offline

Quote
Also ich möchte hier mal ein kleines Lua Tut von mir von Big-Tut.de Posten, hier der Beitrag: [CS2D] Lua TuT


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
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)
zu einer funktion hinzugefügt werden:

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
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
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
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
nice = 1 -- die Globale Variable zuordnen
function hey()
	do
		local nice = 3
		print(nice) -- gibt 3 aus
	end
	print(nice) -- gibt 1 aus
end
Eine Globale Variable kann einfach so deklariert werden:
1
nice = 3
oder auch so:
1
_G.nice = 3
Es bewirkt genau das selbe, also empfehle ich das erste, weil es einfach weniger zu schreiben ist.

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

old Re: Kleines CS2D Lua Tut von Big-Tut.de

Routess
User Off Offline

Quote
ich finde es im gegenteil äuserst gut ! nur ein kleiner rechtschreibfehler


Quote
blabla...

Ein kommentierter beispiel Code mit Hooks:
1
blabla...


ist ja schließlich das und nicht der beispiel

nicht böse verstehen war nur gut gemeint

old Re: Kleines CS2D Lua Tut von Big-Tut.de

RAVENOUS
BANNED Off Offline

Quote
Timo has written
ziemlich ungenau!
Wenn du mehr Auf die einzelnen befehle eingehen würdest währe es besser aber das tust du nicht.


Welche Befehle. So ein Thread ist ja da, damit du was erwarten kannst, so ein Tutorial kann man ja nur freundlicher umgestalten.

old Re: Kleines CS2D Lua Tut von Big-Tut.de

Yasday
User Off Offline

Quote
Nochmal ein wenig überarbeitet, sagt was ich erklären soll und ich tu's(falls ichs kann ;)).

Edit:

@snyper2
der Code -> der beispiel Code
(glaub ich jedenfalls)
To the start Previous 1 Next To the start
Log in to reply Scripts overviewCS2D overviewForums overview