SA-MP Forums Archive
[Ajuda] Sistema de colocaзгo Race - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Sistema de colocaзгo Race (/showthread.php?tid=629721)



Sistema de colocaзгo Race - Tuznn - 02.03.2017

Boa noite,
Estou criando um sistema de race, jб estб quase 100%, o que estб faltando й o maldito sistema de colocaзгo na corrida, que eu nгo faзo ideia de como comeзo criar isso.

Estou fazendo o sistema de colocaзгo em Textdraw, e quero criar para que nгo haja bugs. Quero que o player que adquiriu mais cps e que tem menor distвncia do prуximo CP fique em primeiro e assim sucessivamente.

O que venho pedir й que me ajudem com uma base para eu comeзar, porque acho que gastei todas minhas energias desde que comecei criar ele SUAHSUAHS. Enfim, aguardo respostas.

Segue abaixo a variбvel que conta os CPs conquistados:

PHP код:
AddCP[playerid]++ // Adiciona +1 checkpoint conquistado para o playerid 



Re: Sistema de colocaзгo Race - renatog - 02.03.2017

Olha, recomendo vocк fazer a colocaзгo pelo primeiro que pegar o checkpoint. Exemplo:
Player1 й o primeiro colocado e acabou de pegar o cp10
Player2 й o segundo colocado e acabou de pegar o cp10
Player3 й o terceiro colocado e acabou de pegar o cp10
...

Se o Player3 pegar o cp11 primeiro que os outros ele ficam em primeiro lugar, se o Player1 pegar o cp11 antes do Player2 ele ficam em segundo lugar e assim por diante.
Digo isso por termos de performance, pra vocк fazer um placar tгo preciso usando a distвncia entre os jogadores e o checkpoint, vocк vai ter que usar a OnPlayerUpdate ou um timer que se repete vбrias vezes por segundo. Vocк terб essa precisгo nos colocados durante a corrida, mas o placar final sempre serб decidido por quem pegar o checkpoint primeiro, saca?
Se ainda quiser usar a distвncia, segue a estrutura:
PHP код:
Timer
{
    
1. Crie uma array para conter a ordem das posiзхes (primeirosegundoterceiro, ... colocado);
    
2. Loop todos os jogadores na corrida e vai colocando na ordem (maior score em cimase o nъmero de cps for o mesmocoloca o que tiver mais prуximo do cp na frente);
    
3. Atualize os textdraws baseando-se nessa array;

Leia isso, se nгo souber fazer sorting.


Re: Sistema de colocaзгo Race - Tuznn - 03.03.2017

Cara to tentando aqui e pensei no seguinte:

PHP код:
        for(new iMAX_PLAYERSi++){ // Loop todos os jogadores no evento.
            
if(!IsPlayerConnected(i)) continue; // Se o ID nгo estiver conectado pula.
            
if(Evento[i] == false) continue; // Se o ID nгo estiver no evento pula.
            
for(new XiX++){ // Loop todos os jogadores no evento, exceto o playerid.
                
if(== playerid) continue; // Se X for igual ao playerid, o loop pula 1.
                
if(AddCP[playerid] > AddCP[X]){ // Se os CP's conquistados pelo playerid for maior que de todos os jogadores:
                    
Colocado[0] = playerid// ID do jogador em 1є lugar = playerid.
                
}
            }
            
        } 
Ta certo essa verificaзгo que fiz?

OBS: Nгo sei se estб certo, pois nunca fiz uma LOOP dentro de outra.