[Ajuda] Scoreboard em textdraw
#1

Quando todos estгo level 0 nгo hб problema, o problema surge a partir que 1 ganha o primeiro level e passa a repetir o nome dele de acordo com a quantidade de membros online

Exemplo
id 1 Level 1
id 2 level 0

Repete:

id 1 Level 1
id 1 Level 0
Desconhecido
Desconhecido
Desconhecido

pawn Код:
enum Rank5On
{
    LevelRank,
    IDRank
}

public OnPlayerUpdate(playerid)
{
    new PlayerRank[MAX_PLAYERS][Rank5On], index;
    for(new i; i < MAX_PLAYERS; ++i)
    {
        if(IsPlayerConnected(i) && !IsPlayerNPC(i))
        {
            PlayerRank[index][LevelRank] = PlayerInfo[i][Level];
            PlayerRank[index][IDRank] = i;
            index++;
        }
    }
    GetPlayerHighestScores(PlayerRank, 0, index);
   
    new score_Text[256] = "~n~";
    for(new i; i < 5; ++i)
    {
        if(i < index)
        {
            format(score_Text, sizeof(score_Text), "%s~n~~w~ ~r~%d. ~w~%s - ~r~Level:%d~w~", score_Text, i + 1, Nome(PlayerRank[i][IDRank]), PlayerRank[i][LevelRank]);
        }
        else
        {
            format(score_Text, sizeof(score_Text), "%s~n~~w~ ~r~%d.  ~w~Desconhecido~w~", score_Text, i + 1);
        }
    }
    TextDrawSetString(TextDraw[7], score_Text);
    return 1;
}

stock GetPlayerHighestScores(array[][Rank5On], left, right)
{
    new tempLeft = left, tempRight = right, pivot = array[(left + right) / 2][LevelRank], tempVar;
    while(tempLeft <= tempRight)
    {
        while(array[tempLeft][LevelRank] > pivot) tempLeft++;
        while(array[tempRight][LevelRank] < pivot) tempRight--;

        if(tempLeft <= tempRight)
        {
            tempVar = array[tempLeft][LevelRank], array[tempLeft][LevelRank] = array[tempRight][LevelRank], array[tempRight][LevelRank] = tempVar;
            tempVar = array[tempLeft][IDRank], array[tempLeft][IDRank] = array[tempRight][IDRank], array[tempRight][IDRank] = tempVar;
            tempLeft++, tempRight--;
        }
    }
    if(left < tempRight) GetPlayerHighestScores(array, left, tempRight);
    if(tempLeft < right) GetPlayerHighestScores(array, tempLeft, right);
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)