[Ajuda] Sistema de Colocaзгo da corrida
#1

Entгo,
Basicamente eu estou criando um servidor jб hб um tempinho
E eu sou muito chato! Nгo gosto de pegar nada da net (acho isso um deserespeito)
Enfim!
Existem vбrios sistemas de Race na net, mas procurei fazer o meu prуprio
Jб fiz, porйm tem um problema
Jб estou hб 2 dias tentando resolver esse problema:
A colocaзгo (quero colocar os 4 primeiros) nгo estou conseguindo fazer
Atй fiz, mas ta .. Muito errado, rs.
Aqui vai o cуdigo:

Obs.: EColocado[0] й o ID do primeiro colocado, [1] й segundo, assim por diante, atй [3] que seria o quarto colocado.
RCPEvento[playerid] й o nъmero de Race Checkpoints que o playerid estб

pawn Код:
for(new i = 0; i < MAXPLAYERS; i++)
    {
        if(!IsPlayerConnected(i)) continue;
        if(!NoEvento[i]) continue;
        if(RCPEvento[i] > RCPEvento[EColocado[3]] && EColocado[i] != EColocado[3]) { EColocado[3] = i; }
    }
    new
        Float:D[6],
        id = -1;
    if(RCPEvento[EColocado[1]] > RCPEvento[EColocado[0]] && EColocado[0] != EColocado[1]) { id = EColocado[1]; EColocado[1] = EColocado[0]; EColocado[0] = id; }
    if(RCPEvento[EColocado[1]] == RCPEvento[EColocado[0]] && EColocado[0] != EColocado[1])
    {
        DistPlayerToPoint(EColocado[1], ERCP[RCPEvento[EColocado[1]]][0], ERCP[RCPEvento[EColocado[1]]][1], D[0]);
        DistPlayerToPoint(EColocado[0], ERCP[RCPEvento[EColocado[0]]][0], ERCP[RCPEvento[EColocado[0]]][1], D[1]);
        if(D[0] < D[1])
        {
            id = EColocado[1];
            EColocado[1] = EColocado[0];
            EColocado[0] = id;
        }
    }
    if(RCPEvento[EColocado[2]] > RCPEvento[EColocado[1]] && EColocado[2] != EColocado[1]) { id = EColocado[2]; EColocado[2] = EColocado[1]; EColocado[1] = id; }
    if(RCPEvento[EColocado[2]] == RCPEvento[EColocado[1]] && EColocado[2] != EColocado[1])
    {
        DistPlayerToPoint(EColocado[1], ERCP[RCPEvento[EColocado[1]]][0], ERCP[RCPEvento[EColocado[1]]][1], D[2]);
        DistPlayerToPoint(EColocado[0], ERCP[RCPEvento[EColocado[0]]][0], ERCP[RCPEvento[EColocado[0]]][1], D[3]);
        if(D[2] < D[3])
        {
            id = EColocado[2];
            EColocado[2] = EColocado[1];
            EColocado[1] = id;
        }
    }
    if(RCPEvento[EColocado[3]] > RCPEvento[EColocado[2]] && EColocado[2] != EColocado[3]) { id = EColocado[3]; EColocado[3] = EColocado[2]; EColocado[2] = id; }
    if(RCPEvento[EColocado[3]] == RCPEvento[EColocado[2]] && EColocado[2] != EColocado[3])
    {
        DistPlayerToPoint(EColocado[1], ERCP[RCPEvento[EColocado[1]]][0], ERCP[RCPEvento[EColocado[1]]][1], D[4]);
        DistPlayerToPoint(EColocado[0], ERCP[RCPEvento[EColocado[0]]][0], ERCP[RCPEvento[EColocado[0]]][1], D[5]);
        if(D[4] < D[5])
        {
            id = EColocado[3];
            EColocado[3] = EColocado[2];
            EColocado[2] = id;
        }
    }
    for(new i = 0; i < MAXPLAYERS; i++)
    {
        if(!IsPlayerConnected(i)) continue;
        if(!NoEvento[i]) continue;
        if(EColocado[0] == -1) continue;
        new
            Nome[MAX_PLAYER_NAME];
        GetPlayerName(EColocado[0], Nome, sizeof(Nome));
        if(strlen(Nome) > 10) { strins(Nome, "...", 8); strdel(Nome, 11, sizeof(Nome));}
        format(String, sizeof(String), "1. ~w~%s", Nome);
        TextDrawSetString(TDERace[i][1], String);
        if(EColocado[1] == -1) continue;
        GetPlayerName(EColocado[1], Nome, sizeof(Nome));
        if(strlen(Nome) > 10) { strins(Nome, "...", 8); strdel(Nome, 11, sizeof(Nome));}
        format(String, sizeof(String), "2. ~w~%s", Nome);
        TextDrawSetString(TDERace[i][2], String);
        if(EColocado[2] == -1) continue;
        GetPlayerName(EColocado[2], Nome, sizeof(Nome));
        if(strlen(Nome) > 10) { strins(Nome, "...", 8); strdel(Nome, 11, sizeof(Nome));}
        format(String, sizeof(String), "3. ~w~%s", Nome);
        TextDrawSetString(TDERace[i][3], String);
        if(EColocado[3] == -1) continue;
        GetPlayerName(EColocado[3], Nome, sizeof(Nome));
        if(strlen(Nome) > 10) { strins(Nome, "...", 8); strdel(Nome, 11, sizeof(Nome));}
        format(String, sizeof(String), "4. ~w~%s", Nome);
        TextDrawSetString(TDERace[i][4], String);
    }
*Se for necessбrio, posto prints aqui para melhor visualizaзгo do problema
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)