17.07.2012, 14:04
This is horrible and limited coding:
Something like this would do the job much better and woulden't restrict the player's level (just an example of an algoritme):
pawn Код:
public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][EXP] == 50)
{
PlayerInfo[playerid][Rank] +=1;
}
if(PlayerInfo[playerid][EXP] == 150)
{
PlayerInfo[playerid][Rank] +=1;
}
if(PlayerInfo[playerid][EXP] == 300)
{
PlayerInfo[playerid][Rank] +=1;
}
if(PlayerInfo[playerid][EXP] == 400)
{
PlayerInfo[playerid][Rank] +=1;
}
if(PlayerInfo[playerid][EXP] == 500)
{
PlayerInfo[playerid][Rank] +=1;
}
if(PlayerInfo[playerid][EXP] == 650)
{
PlayerInfo[playerid][Rank] +=1;
}
if(PlayerInfo[playerid][EXP] == 800)
{
PlayerInfo[playerid][Rank] +=1;
}
if(PlayerInfo[playerid][EXP] == 1000)
{
PlayerInfo[playerid][Rank] +=1;
}
if(PlayerInfo[playerid][EXP] == 1500)
{
PlayerInfo[playerid][Rank] +=1;
}
if(PlayerInfo[playerid][EXP] == 3000)
{
PlayerInfo[playerid][Rank] +=1;
}
TextDrawShowForPlayer(playerid,Text:Ranked[playerid]);
return 1;
}
pawn Код:
public OnPlayerSpawn(playerid)
{
new rank = 0; // Final rank
new Float:neededexp = 50.0; // Starting exp needed
new Float:multiplier = 1.5; // Multiplier (exp will be 50 * multiplier for every raise of rank)
while(PlayerInfo[playerid][EXP] > neededexp) {
rank++;
neededexp *= multiplier;
}
PlayerInfo[playerid][Rank] = rank;
}