Heyho,
weil bestimmt welche von euch für das Accountsystem von Map auch ein Levelsystem haben wollen
aber es alleine vllt. nicht schaffen, zeige ich euch mal wie ihr soetwas macht.
Was ihr braucht:
N-Client: Download
N-Server: Download
Und einen Lua-Editor.
Fügt 2 EventListener hinzu, einmal OnClientEnter um den Namen beim joinen
zu ändern und OnDie um die Kills abzurufen.
Fügt 2 Integer hinzu, einmal Exp und Level jedoch mit einem Startwert von 1.
Und einen String OldName, der später zum speichern des Namens benötigt wird.
Tick-Funktionen, die wir bei dem System aber nicht benötigen.
Hier wird der Name in OldName gespeichert, und '[1]' vor den Namen
gesetzt, wenn man den Server betritt.
Alles anzeigen
Jetzt kommen wir zum Levelsystem. Zuerst wird abgefragt, ob man der Killer ist, also
der Spieler der den anderen Spieler umgebracht hat. Wenn ja, wird Exp um 1 erhöht und
eine Chatnachricht mit ein paar Info-Daten ausgegeben. Dann wird geprüft, ob Exp genauso
hoch ist wie das Level oder etwas höher ist. Wenn das zutrifft, wird Exp auf Null gesetzt, das Level
um 1 erhöht. Dann kommt OldName zum Einsatz, worin wir den Namen gespeichert haben. In diesem
Fall dann "Toast". Dann erst wird vor den Namen wieder '[1]' gesetzt jedoch mit dem nächsten Wert
in diesem Fall 2. Warum das ganze? Ganz einfach, weil sich das Level zwar erhöhen würde aber jedoch
nicht so:
Level 1: [1]Toast
Level 2: [2]Toast
sondern so:
Level 1: [1]Toast
Level 2: [2][1]Toast
Zum Schluss wird eine letzte Nachricht ausgegeben mit der Info, dass der Spieler ein Level gestiegen ist
und nun *Hier Level einfüg* Level hoch ist. Map hatte ja gesagt
und ich habe euch die Arbeit somit erspart^^
Und jetzt nochmal der ganze Code:
Alles anzeigen
Ich hoffe euch hat das Tutorial gefallen, viel Spaß damit!
lg.
weil bestimmt welche von euch für das Accountsystem von Map auch ein Levelsystem haben wollen
aber es alleine vllt. nicht schaffen, zeige ich euch mal wie ihr soetwas macht.
Was ihr braucht:
N-Client: Download
N-Server: Download
Und einen Lua-Editor.
Fügt 2 EventListener hinzu, einmal OnClientEnter um den Namen beim joinen
zu ändern und OnDie um die Kills abzurufen.
Fügt 2 Integer hinzu, einmal Exp und Level jedoch mit einem Startwert von 1.
Und einen String OldName, der später zum speichern des Namens benötigt wird.
Tick-Funktionen, die wir bei dem System aber nicht benötigen.
Hier wird der Name in OldName gespeichert, und '[1]' vor den Namen
gesetzt, wenn man den Server betritt.
Quellcode
- function Kill(Killer, Victim, Weapon)
- if (Killer ~= Victim) then
- Exp = Exp + 1
- SendChatTarget(Killer, "Exp: "..Exp.."/"..Level)
- if (Exp > Level or Exp == Level) then
- Exp = 0
- Level = Level + 1
- SetPlayerName(Killer, OldName)
- SetPlayerName(Killer, "["..Level.."]"..GetPlayerName(Killer))
- SendChatTarget(Killer, "Level Up! You are now Level: "..Level)
- end
- end
- end
Jetzt kommen wir zum Levelsystem. Zuerst wird abgefragt, ob man der Killer ist, also
der Spieler der den anderen Spieler umgebracht hat. Wenn ja, wird Exp um 1 erhöht und
eine Chatnachricht mit ein paar Info-Daten ausgegeben. Dann wird geprüft, ob Exp genauso
hoch ist wie das Level oder etwas höher ist. Wenn das zutrifft, wird Exp auf Null gesetzt, das Level
um 1 erhöht. Dann kommt OldName zum Einsatz, worin wir den Namen gespeichert haben. In diesem
Fall dann "Toast". Dann erst wird vor den Namen wieder '[1]' gesetzt jedoch mit dem nächsten Wert
in diesem Fall 2. Warum das ganze? Ganz einfach, weil sich das Level zwar erhöhen würde aber jedoch
nicht so:
Level 1: [1]Toast
Level 2: [2]Toast
sondern so:
Level 1: [1]Toast
Level 2: [2][1]Toast
Zum Schluss wird eine letzte Nachricht ausgegeben mit der Info, dass der Spieler ein Level gestiegen ist
und nun *Hier Level einfüg* Level hoch ist. Map hatte ja gesagt
MAP94 schrieb:
Auf grundlage dieser Mod/dieses Tutorials kann man mit ein bisschen übung eine ganze Levelmod programmieren.
und ich habe euch die Arbeit somit erspart^^
Und jetzt nochmal der ganze Code:
Quellcode
- AddEventListener("OnClientEnter", "ClientEnter")
- AddEventListener("OnDie", "Kill")
- Exp = 0
- Level = 1
- OldName = ""
- iTick = 0
- function Tick(Time, ServerTick)
- iTick = iTick + 1
- end
- function TickDefered(Time, ServerTick)
- end
- function PostTick(Time, ServerTick)
- end
- function ClientEnter(ClientID)
- OldName = GetPlayerName(ClientID)
- SetPlayerName(ClientID, "["..Level.."]".. GetPlayerName(ClientID))
- end
- function Kill(Killer, Victim, Weapon)
- if (Killer ~= Victim) then
- Exp = Exp + 1
- SendChatTarget(Killer, "Exp: "..Exp.."/"..Level)
- if (Exp > Level or Exp == Level) then
- Exp = 0
- Level = Level + 1
- SetPlayerName(Killer, OldName)
- SetPlayerName(Killer, "["..Level.."]"..GetPlayerName(Killer))
- SendChatTarget(Killer, "Level Up! You are now Level: "..Level)
- end
- end
- end
Ich hoffe euch hat das Tutorial gefallen, viel Spaß damit!
lg.