Rank label problem.
#1

Ok so, i created the rank label depending on player's score. Problem is, when one player dies and respawn, another player's label disappears. I couldn't find any problem on the script. Can someone help me?

pawn Код:
new Text3D:RankLabel[MAX_PLAYERS];

public OnPlayerSpawn(playerid)
{
    if (APlayerData[playerid][PlayerClass] == ClassTruckDriver)
    {
    if (GetPlayerScore(playerid) >= 0 && GetPlayerScore(playerid) <= 199)
    {
            RankLabel[playerid] = Create3DTextLabel("Newbie Trucker",GREEN,30.0,40.0,50.0,40.0,0);
            Attach3DTextLabelToPlayer(RankLabel[playerid], playerid, 0.0, 0.0, 0.3);
            SendClientMessage(playerid, WHITE,"Your current rank is: 1 [ Newbie Trucker ]");
    }
    if (GetPlayerScore(playerid) >= 200 && GetPlayerScore(playerid) <= 499)
    {
            RankLabel[playerid] = Create3DTextLabel("Rookie Trucker",GREEN,30.0,40.0,50.0,40.0,0);
            Attach3DTextLabelToPlayer(RankLabel[playerid], playerid, 0.0, 0.0, 0.3);
            SendClientMessage(playerid, WHITE,"Your current rank is: 2 [ Rookie Trucker ]");
    }
    if (GetPlayerScore(playerid) >= 500 && GetPlayerScore(playerid) <= 999)
    {
            RankLabel[playerid] = Create3DTextLabel("Trusted Trucker",GREEN,30.0,40.0,50.0,40.0,0);
            Attach3DTextLabelToPlayer(RankLabel[playerid], playerid, 0.0, 0.0, 0.3);
            SendClientMessage(playerid, WHITE,"Your current rank is: 3 [ Truested Trucker ]");
    }
    if (GetPlayerScore(playerid) >= 1000 && GetPlayerScore(playerid) <= 1999)
    {
            RankLabel[playerid] = Create3DTextLabel("Experienced Trucker",GREEN,30.0,40.0,50.0,40.0,0);
            Attach3DTextLabelToPlayer(RankLabel[playerid], playerid, 0.0, 0.0, 0.3);
            SendClientMessage(playerid, WHITE,"Your current rank is: 4 [ Experienced Trucker]");
    }
    if (GetPlayerScore(playerid) >= 2000 && GetPlayerScore(playerid) <= 3999)
    {
            RankLabel[playerid] = Create3DTextLabel("Professional Trucker",GREEN,30.0,40.0,50.0,40.0,0);
            Attach3DTextLabelToPlayer(RankLabel[playerid], playerid, 0.0, 0.0, 0.3);
            SendClientMessage(playerid, WHITE,"Your current rank is: 5 [ Professional Trucker ]");
    }
    if (GetPlayerScore(playerid) >= 4000)
    {
            RankLabel[playerid] = Create3DTextLabel("King Of The Road",GREEN,30.0,40.0,50.0,40.0,0);
            Attach3DTextLabelToPlayer(RankLabel[playerid], playerid, 0.0, 0.0, 0.3);
            SendClientMessage(playerid, WHITE,"Your current rank is: 6 [ King Of The Road ]");
    }
    }
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    Delete3DTextLabel(RankLabel[playerid]);
    return 1;
}
Reply
#2

Use a for loop ?
Reply
#3

You put on PlayerDeath that it Deletes Text Label.
Reply
#4

Quote:
Originally Posted by MatriXgaMer
Посмотреть сообщение
You put on PlayerDeath that it Deletes Text Label.
Yeah and if i don't delete it, there will be rank label for police class as well whenever they choose it. So deleting it is necessary. Also it really doesn't matter as i used [playerid] already which should delete the text of only one player who dies. But it didn't and got bugged. I think i should loop it as Wizzy said.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)