[Ajuda] Loop Sorting
#1

Boa noite,

Fiz um sorting para verificar a colocaзгo na corrida, ele estб funcionando perfeitamente. Sу que eu quero que fica em 1є lugar o jogador que pegou o CP primeiro. Por exemplo: Um player pega o CP 4 e em seguida outro player tambйm pega o CP 4, entгo era para o player que pegou antes ficar em 1є, sу que o sorting estб colocando o player que pegou o CP depois em 1є e o que pegou antes em 2є. Isso acontece se o ID do player que pegou o CP depois for maior que o do ID que pegou o CP antes.

Isso acontece porque o Loop pega o segundo ID para comparar com um id anterior.

Segue o cуdigo:

Код:
public VerificarPosicao(playerid) 
{
	new j,
	aPID,
	I;

	for (I = 1; I < MAX_PLAYERS; I++) // Loop todos jogadores comeзando pelo ID 1
	{
	    if(!IsPlayerConnected(I)) continue;

	    
		Colocados[I] = I; 
 		aPID = Colocados[I];  

		j = I-1; 
  		Colocados[I-1] = j; 

		while (j > -1 && AddCP[Colocados[j+1]] < AddCP[Colocados[j]])
		{
  			Colocados[j+1] = Colocados[j]; 
			AddCP[Colocados[j+1]] = AddCP[Colocados[j]]; 
			j--; 

		}
		Colocados[j+1] = aPID; 
		AddCP[Colocados[j+1]] = AddCP[aPID]; 

	}
	return 1;
}
Eu atй tentei resolver adicionando isso:

Код:
if(AddCP[Colocados[I]] == AddCP[Colocados[I-1]])
{
 // sorting
}
Porйm, nгo tive sucesso, porque a funзгo nem funcionou.
Reply


Messages In This Thread
Loop Sorting - by Tuznn - 06.03.2017, 00:56
Re: Loop Sorting - by AuhMaru - 06.03.2017, 01:55
Re: Loop Sorting - by Tuznn - 06.03.2017, 01:58
Re: Loop Sorting - by AuhMaru - 06.03.2017, 02:43
Re: Loop Sorting - by Tuznn - 06.03.2017, 12:03
Re: Loop Sorting - by Tuznn - 08.03.2017, 02:33

Forum Jump:


Users browsing this thread: 1 Guest(s)