Hallo wie stelle ich ein, wenn jemand 3 Kills macht, dass er einen Level Up bekommt?
Also alle 3 Kills = Level Up.
MfG
Hallo wie stelle ich ein, wenn jemand 3 Kills macht, dass er einen Level Up bekommt?
Also alle 3 Kills = Level Up.
MfG
Ersteinmal:
Speicherst du seine Kills in einer Variable?
Wenn nicht:
new PlayerKills[MAX_PLAYERS];
new LevelUpCount[MAX_PLAYERS];
new Level[MAX_PLAYERS];
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid != INVALID_PLAYER_ID)
{
PlayerKills[killerid]++;
LevelUpCount[killerid]--;
if(LevelUpCount[killerid] == 0)
{
SendClientMessage(killerid, 0x00FF14FF, "Level Up!");
LevelUpCount[killerid] = 3;
Level[killerid]++;
}
}
}
Zum Beispiel so:
Wenn schon ein enum vorhanden ist einfach die pKills eintrage.
Dann zu OnPlayerDeath:
public OnPlayerDeath(playerid,killerid,reason)
{
SpielerInfo[killerid][pKills] ++;
if(SpielerInfo[killerid][pKills] == 3}
{
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
SpielerInfo[killerid][pKills] = 0;
}
return 1:
}
//Edit Vorposter war schneller
oder man macht es noch einfacher, indem man mit Modulo arbeitet:
public OnPlayerDeath(playerid, killerid, reason) {
if(killerid != INVALID_PLAYER_ID) {
SetPVarInt(killerid, "Kills", GetPVarInt(killerid, "Kills") + 1);
if(GetPVarInt(killerid, "Kills") % 3 == 0) {
SetPVarInt(killerid, "Level", GetPVarInt(killerid, "Level") + 1);
// LEVEL UP!
}
}
}
Alles anzeigenoder man macht es noch einfacher, indem man mit Modulo arbeitet:
public OnPlayerDeath(playerid, killerid, reason) {
if(killerid != INVALID_PLAYER_ID) {
SetPVarInt(killerid, "Kills", GetPVarInt(killerid, "Kills") + 1);
if(GetPVarInt(killerid, "Kills") % 3 == 0) {
SetPVarInt(killerid, "Level", GetPVarInt(killerid, "Level") + 1);
// LEVEL UP!
}
}
}
Ist ja ungefähr das selbe,
Nur das man dann nichtmehr die Variable "Kills" auf 0 setzen muss