04.03.2017, 17:10
Quote:
Mano me explica melhor seu cуdigo... Porque pos й uma variбvel = para todos... Entгo sempre que AddCP[playerid] for menor que o AddCP de todos os outros esse variavel vai ganhar +1 no seu valor, o que nгo faz sentido, pois se tiver 4 player correndo e ele estiver em 2є lugar e alguem passar ele, nada vai acontecer porque o AddCP[playerid] nгo vai ser menor do que TODOS, vai ser menor somente de quem passou ele e de quem estб na frente dele na corrida
|
Isso й uma boa maneira de achar a posiзгo...
Repare:
A posiзгo serб sempre 0 no inicio do cуdigo.
PHP код:
new pos = 0;
PHP код:
if(AddCP[playerid] < AddCP[i] && AlguemGanhou[Colocado[0]] == false) // Acrescenta mais 1 a posicao do jogador por cada player a frente dele
{
pos++;
}
PHP код:
if(AddCP[playerid] == AddCP[i]) // Caso alguem esteja empatado com o player
{
new JogadorCheckPoint = //O proximo checkpoint do player
new EmpatadoCheckPoint = // Proximo checkpoint com quem estб empatado
if(GetPlayerDistanceFromPoint(playerid, XCheckPoint,YCheckPoint, ZCheckPoint) > GetPlayerDistanceFromPoint(j,XCheckPoint, YCheckPoint, ZCheckPoint)) // Se a posiзгo do jogador em relaзгo ao checkpoint for maior do que com aquele que estб empatado acrescenta mais 1 a posiзгo
{
pos++;
}
}
Depois do fim do loop:
PHP код:
Posicao[playerid] = pos+1;
Ah e faзa um timer repetitivo para sempre checar as posiзхes:
PHP код:
new TimerPosicao[MAX_PLAYERS]
PHP код:
TimerPosicao[playerid] = SetTimerEx("VerificarPosicao", 500, true, "i", playerid);
PHP код:
KillTimer(TimerPosicao[playerid]);