[Ajuda] Ranking
#1

Ola.
Gostaria de saber como posso fazer um Ranking .
Tenho em mente dois modo .
Um ranking so de jogadores online , esse eu sei que da pra fazer .Outro seria um ranking de todas as contas , porem nгo sei se e possivel .

Ha possibilidade




#VemaiLoucosPorDrifv-2.0AinovaзгododriftBrasileiro
Reply
#2

O de todas as contas, ou vocк faz usando SQL ou usando uma funзгo do Bruno ae. Porem essa funзгo й em PHP e pode demorar muito, dependendo da quantidade de contas registradas '-'
Reply
#3

MYSQL

[ame]http://www.youtube.com/watch?v=5GoKA94x4q4[/ame]
Reply
#4

Sim os dois sгo possнveis, o com os players que estгo online й sу fazer uma loop para checar os dados de todos players, depois sу comparar os dados de um playerid com os dados de todos players.
Reply
#5

Exemplos

Nгo quero nada em MySql.
Reply
#6

Usa como base https://sampforum.blast.hk/showthread.php?tid=191605
Reply
#7

Possнvel й. Mas tu terб que abrir/fechar todas as contas de seus usuбrios - viabilidade 0.
Reply
#8

Caso seja um sistema INI, й totalmente possнvel.(se este plugin abaixo funcionar como eu penso)

1 - Baixe este plugin.
https://sampforum.blast.hk/showthread.php?tid=100177


2 - Veja este post meu...
http://forum.sa-mp.com/showpost.php?...postcount=2485

3 -
- Coloque o .bat do meu post na scriptfiles.
- instale o plugin
- Execute isto "exec("coloqueaquisuapastadosamp/scriptfiles/nomedomeubat.bat ");", essa funзгo do plugin deve ser usada toda vez antes de comparar os ranks, para assim ter a lista de todos os usuбrios sempre atualizados.
- Vai criar um arquivo "lista.txt" com todos os nomes da pasta que vocк escolheu no .bat
- A partir dai, podes trabalhar fazendo um loop no lista.txt e checando seus ranks de acordo.


Viu sу, й bem simples. й bem lento o processo... porйm й melhor que "tentar" converter tudo para outra coisa.
Reply
#9

E em DOF2.

Cheguei a este comando

pawn Code:
command(rank,playerid,params[])
{
    new top, top2[5] = -1, Jogadortop[5][24];
    while(top < 5)
    {
         for(new i; i < MAX_PLAYERS; i++)
         {
               if(IsPlayerConnected(i))
               {
                    if(PlayerInfo[i][pScore] > top2[top])
                    {
                           top2[top] = PlayerInfo[i][pScore];
                    }
               }
          }
     }
     //for(new i; i < 5;i++)
     for(new i=0; i< 5; i++)
     {
          if(Jogadortop[i][0] == EOS)
          {
               format(arquivo,sizeof arquivo,"[%d] %s | Score: %d",i+1,Nome(top),top2[i]);
               SendClientMessage(playerid,0xC9170EFF,arquivo);
          }
     }
     return true;
}

Meio sem sentido mas tmb nao pega
Reply
#10

PHP Code:
new
bool:TopFoi[512],
string_format[128],
Valor_Maximo[10] = -1,
PlayerMelhor[10][24],
Percorrido
;
CMD:rank(playerid)
{
    
TopPlayersOnline(playerid);
    return 
1;
}
stock TopPlayersOnline(playerid)
{
    while(
Percorrido 10) {
        for(new 
i500i++)  if(IsPlayerConnected(i)) {
            if(
GetPlayerScore(i) > Valor_Maximo[Percorrido] && TopFoi[i] == false) {
                
GetPlayerName(i,PlayerMelhor[Percorrido],24);
                
Valor_Maximo[Percorrido] = GetPlayerScore(i);
                
TopFoi[i] = true;
            }
        }
        
Percorrido++;
    }
    for(new 
a500a++)  if(IsPlayerConnected(a)) TopFoi[a] = false;
    
Percorrido 0;
    for(new 
i10;i++) {
        if(
PlayerMelhor[i][0] != EOS) {
            
format(string_format,64,"[%d] - Player: %s | Score: %d",i+1,PlayerMelhor[i],Valor_Maximo[i]);
            
SendClientMessage(playerid,0xC9170EFF,string_format);
            
Valor_Maximo[i] = -1;
        }
    }

Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)