"Abschussserien" mit Belohnung
Hallo,
dieses Tutorial kommt von der Idee von @_Crytec_: easy-scripting.net/index.php?p…ad&postID=11907#post11907 - zwar etwas spät, aber lieber spät als nie! :)
Was haben wir vor?
Wir möchten, dass der Spieler nach Abschüssen je nach "Serie" nacheinander verschiedene Waffen bekommt.
Dazu benutzen wir:

Fangen wir mit dem Array an:
[pwn]new killUpgrades[3][5] = {
{500, 24, 1000, 1}, // 1 Kill "Serie"
{1500, 31, 1000, 1} // 2 Kill Serie
};[/pwn]
Dies sind nur mal zwei Beispiele. Was hat es mit diesen ganzen Zahlen auf sich?
Ganz einfach:

Nun machen wir schlichtweg folgendes im OnPlayerDeath:
[pwn]SetPVarInt(killerid, "kill_strike", GetPVarInt(killerid, "kill_strike")+1);[/pwn]
Wir erhöhen die PVar "kill_strike" (Integer) um 1.
[pwn]if(killUpgrades[GetPVarInt(killerid, "kill_strike")+1][3]) {
ResetPlayerWeapons(killerid);
}[/pwn]
Fragen ab, ob für den Killstrike (bspw. wenn 1 Kill gemacht wurde) es vorgesehen ist, dem Spieler eine Waffe zu geben bzw. abzunehmen, wenn ja werden die Waffen des Spielers "entfernt" bzw. "resettet".
[pwn]GivePlayerWeapon(killerid, killUpgrades[GetPVarInt(killerid, "kill_strike")+1][1], killUpgrades[GetPVarInt(killerid, "kill_strike")+1][2]);[/pwn]
Wir geben dem Spieler "killerid" die WaffenID aus der bspw. 1. Zeile, Spalte 1 (Achtung: Arraykeys fangen bei 0 an!) mit Munition aus Zeile 1, Spalte 2.
[pwn]GivePlayerMoney(killerid, killUpgrades[GetPVarInt(killerid, "kill_strike")+1][0]);[/pwn]
Wir geben dem Spieler noch das Geld, welches vorgesehen ist.
Für den Ermordeten "resetten" wir die PVar:
[pwn]DeletePVar(playerid, "kill_strike");[/pwn]
Fertig.
Mehr steckt da soweit nicht hinter, zumindest in meiner Theorie nicht.
Feedback & Fragen gerne erwünscht!
Grüße.
dieses Tutorial kommt von der Idee von @_Crytec_: easy-scripting.net/index.php?p…ad&postID=11907#post11907 - zwar etwas spät, aber lieber spät als nie! :)
_Crytec_ schrieb:
Ich hätte gern ein Tutorial, indem man sehen kann, wie man jemandem Waffen geben kann, sobald man einem gekillt hat: z.b. 1kill = 9mm, 2kills=desert eagle, 3kills=mp5. MfG ;)Wenn du eins machst, bitte nochmal link als pn schicken
Wir möchten, dass der Spieler nach Abschüssen je nach "Serie" nacheinander verschiedene Waffen bekommt.
Dazu benutzen wir:
- Ein Array
- Den Callback "OnPlayerDeath"

Fangen wir mit dem Array an:
[pwn]new killUpgrades[3][5] = {
{500, 24, 1000, 1}, // 1 Kill "Serie"
{1500, 31, 1000, 1} // 2 Kill Serie
};[/pwn]
Dies sind nur mal zwei Beispiele. Was hat es mit diesen ganzen Zahlen auf sich?
Ganz einfach:
- Die erste "500"/"1500" steht für das Geld, was der Spieler bekommt, wenn der 1 "Kill" oder eben 2 "Kills" macht.
- Die zweite "24"/"31" steht für die WaffenID, die er bekommt, wenn er 1 "Kill" oder 2 "Kills" macht
- Die 1000 steht für die Munition die er bekommt
- Die 1 steht dafür, dass die bisher vorhandenen Waffen ihm erst abgenommen werden (wenn 0, wird ihm lediglich die Waffe gegeben)

Nun machen wir schlichtweg folgendes im OnPlayerDeath:
[pwn]SetPVarInt(killerid, "kill_strike", GetPVarInt(killerid, "kill_strike")+1);[/pwn]
Wir erhöhen die PVar "kill_strike" (Integer) um 1.
[pwn]if(killUpgrades[GetPVarInt(killerid, "kill_strike")+1][3]) {
ResetPlayerWeapons(killerid);
}[/pwn]
Fragen ab, ob für den Killstrike (bspw. wenn 1 Kill gemacht wurde) es vorgesehen ist, dem Spieler eine Waffe zu geben bzw. abzunehmen, wenn ja werden die Waffen des Spielers "entfernt" bzw. "resettet".
[pwn]GivePlayerWeapon(killerid, killUpgrades[GetPVarInt(killerid, "kill_strike")+1][1], killUpgrades[GetPVarInt(killerid, "kill_strike")+1][2]);[/pwn]
Wir geben dem Spieler "killerid" die WaffenID aus der bspw. 1. Zeile, Spalte 1 (Achtung: Arraykeys fangen bei 0 an!) mit Munition aus Zeile 1, Spalte 2.
[pwn]GivePlayerMoney(killerid, killUpgrades[GetPVarInt(killerid, "kill_strike")+1][0]);[/pwn]
Wir geben dem Spieler noch das Geld, welches vorgesehen ist.
Für den Ermordeten "resetten" wir die PVar:
[pwn]DeletePVar(playerid, "kill_strike");[/pwn]
Fertig.
Mehr steckt da soweit nicht hinter, zumindest in meiner Theorie nicht.
Feedback & Fragen gerne erwünscht!

Grüße.