hi,
i habe versucht ein rank system einzubauen, das je nachdem wie viele kills ein player hat einen bestimmten rank vergibt und man diesen jederzeit mit dem befehl /ranki nachschauen kann.
Also wenn ich jetzt 20 kills habe, dann wird mir angezeigt, dass ich nun einen neuen rank erreicht haben, soweit sogut.
Jedoch ändert sich der rank, wenn ich diesen mit dem befehl /ranki überprüfen möchte nicht.
Es steht immer nur rank: Newbie und ranknumer: 0 da .
Ich weis wirklich nicht mehr weiter, für mich sieht alles richtig aus.
Ich hoffe, dass mir einer von euch helfen kann.
new pRank[MAX_PLAYERS];
//bei OnPlayerDeath
new string[256];
if(kills[killerid] == 20)
{
GetPlayerName(killerid, string, sizeof(string) );
format(string, sizeof(string), "%s has been promoted to Baby Killer and now has %d kills!!", string, kills[killerid] );
SendClientMessageToAll(0x993300AA, string);
pRank[playerid] = 1;
}
else if(kills[killerid] == 100)
{
GetPlayerName(killerid, string, sizeof(string) );
format(string, sizeof(string), "%s has been promoted to Shooter and now has %d kills!!", string, kills[killerid]);
SendClientMessageToAll(0x993300AA, string);
pRank[playerid] = 2;
}
//bei OnPlayerCommandText
if (strcmp("/ranki", cmdtext, true) == 0)
{
if(IsPlayerConnected(playerid))
{ SendClientMessage(playerid, 0xFFFF00AA, "///////////////////////////////////////////////////");
new rankid = pRank[playerid];
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
new rank[20];
if(pRank[playerid] == 0) { rank = "Newbie"; }
else if(pRank[playerid] == 1) { rank = "Baby Killer"; }
else if(pRank[playerid] == 2) { rank = "Shooter"; }
new s[50];
format(s,sizeof(s), "Your Rank: %s | Rank number: %d",rank,rankid);
SendClientMessage(playerid, 0xFFFF00AA,s);
SendClientMessage(playerid, 0xFFFF00AA, "///////////////////////////////////////////////////");
}
return 1;
}