[Pedido] Rank Global
#1

Alguйm pode me passa uma base de um rank global que fala no chat global o player com mais level й tal й tal й atualiza sozinho sem precissar bota /atualizarrank se alguйm tive uma base me manda porfavor precisso muito
Reply
#2

Olha a lуgica :
Crie uma variбvel global,crie uma funзгo que sera chamada de X em X minutos,nesta funзгo vocк ira fazer um looping para percorrer todos os id's do servidor,vamos supor que vocк deseja ver o level mais alto do servidor naquele momento,entгo vocк iria usar uma condicional if,SE o level do player for maior que A variбvel criada,A variбvel criada ira receber o level do player. Simples assim.
PHP код:
new Maior;
forward Ranking(playerid);
public 
Ranking(playerid)
{
    for(new 
0<= GetPlayerPoolSize(); i++)
    {
        if(
GetPlayerLevel(i) > Maior)
        {
            
Maior GetPlayerLevel(i);
        }
    }

Estude e veja sobre SetTimer.
Reply
#3

Quote:
Originally Posted by FerrariL
Посмотреть сообщение
Olha a lуgica :
Crie uma variбvel global,crie uma funзгo que sera chamada de X em X minutos,nesta funзгo vocк ira fazer um looping para percorrer todos os id's do servidor,vamos supor que vocк deseja ver o level mais alto do servidor naquele momento,entгo vocк iria usar uma condicional if,SE o level do player for maior que A variбvel criada,A variбvel criada ira receber o level do player. Simples assim.
PHP код:
new Maior;
forward Ranking(playerid);
public 
Ranking(playerid)
{
    for(new 
0<= GetPlayerPoolSize(); i++)
    {
        if(
GetPlayerLevel(i) > Maior)
        {
            
Maior GetPlayerLevel(i);
        }
    }

Estude e veja sobre SetTimer.
Me tira uma duvida boto a mensagem abaixo do Maior = GetplayerLevel ne?
Reply
#4

Nгo,a mensagem iria repetir vбrias vezes...
O certo seria desse modo :
PHP код:
new Maior
new 
Str[120];
forward Ranking(playerid); 
public 
Ranking(playerid

    for(new 
0<= GetPlayerPoolSize(); i++) 
    { 
        if(
GetPlayerLevel(i) > Maior
        { 
            
Maior GetPlayerLevel(i); 
        } 
    }
    
    
format(Str,sizeof(Str),"O jogador com maior level online й %s. Level atual : %d",SuaFunзгodePegarOnomedoPlayer,Maior);
    
SendClientMessageToAll(-1,Str);

Reply
#5

Quote:
Originally Posted by FerrariL
Посмотреть сообщение
Nгo,a mensagem iria repetir vбrias vezes...
O certo seria desse modo :
PHP код:
new Maior
new 
Str;
forward Ranking(playerid); 
public 
Ranking(playerid

    for(new 
0<= GetPlayerPoolSize(); i++) 
    { 
        if(
GetPlayerLevel(i) > Maior
        { 
            
Maior GetPlayerLevel(i); 
        } 
    }
    
    
format(Str,sizeof(Str),"O jogador com maior level online й %s. Level atual : %d",SuaFunзгodePegarOnomedoPlayer,Maior);
    
SendClientMessageToAll(-1,Str);

Erros:
PHP код:
C:\Users\Lan\Desktop\Game Mode\gamemodes\Mode.pwn(15779) : error 035argument type mismatch (argument 1)
C:\Users\Lan\Desktop\Game Mode\gamemodes\Mode.pwn(15779) : error 035argument type mismatch (argument 1)
C:\Users\Lan\Desktop\Game Mode\gamemodes\Mode.pwn(15780) : error 035argument type mismatch (argument 2)
C:\Users\Lan\Desktop\Game Mode\gamemodes\Mode.pwn(15782) : warning 203symbol is never used"StrRank" 
Linha dos erros:
PHP код:
format(StrRank,sizeof(StrRank),"O jogador com maior level online й %s. Level atual : %d",GetPlayerScore,Maior);
    
SendClientMessageToAll(-1,StrRank);

Code completo
PHP код:
//topo do gm
new StrRank;
new 
Maior;
public 
Ranking(playerid)
{
    for(new 
0<= GetPlayerPoolSize(); i++)
    {
        if(
GetPlayerScore(i) > Maior)
        {
            
Maior GetPlayerScore(i);
        }
    }
    
format(StrRank,sizeof(StrRank),"O jogador com maior level online й %s. Level atual : %d",GetPlayerScore,Maior);
    
SendClientMessageToAll(-1,StrRank);

Reply
#6

Alguйm ajuda ae nos erros
Reply
#7

Do jeito que vocк esta fazendo nгo vai funcionar...
PHP код:
format(StrRank,sizeof(StrRank),"O jogador com maior level online й %s. Level atual : %d",FunзгoNomeDoPlayer,Maior); 
Onde esta FunзгoNomeDoPlayer vocк vai colocar a funзгo do seu gamemode que retorna o nome do jogador. E a variбvel Maior jб esta com o level do player,nгo precisa do GetPlayerLevel.

Outro erro que passou despercebido por minha parte,vocк deve declarar a variбvel StrRank como string,ela esta como inteira. Exemplo :
PHP код:
new StrRank[120]; 
Reply
#8

Caso nгo tenho nenhuma variбvel de pegar nome, use esta:
PHP код:
stock GetPlayerNameEx(playerid)
{
    new 
Nome[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNomesizeof(Nome));
    return 
Nome;

modo uso
PHP код:
GetPlayerNameEx(playerid
PHP код:
format(StrRank,sizeof(StrRank),"O jogador com maior level online й %s. Level atual : %d",GetPlayerNameEx(i), Maior); 
Reply
#9

Valeu geral +rep alguйm pode me dizer como faзo pra pega os players offline adaptei meu gm й deixei o rank assim como faзo pra pega os players off

Quote:

// | RANK |
public Ranking(playerid)
{
new
Money,
Level,
Kill
;
for(new i = 0; i <= GetPlayerPoolSize(); i++)
{
if(GetPlayerScore(i) > Level)
{
Level = GetPlayerScore(i);
}
if(GetPlayerMoney(i) > Money)
{
Money = GetPlayerMoney(i);
}
}
new String[500];
format(String,sizeof(String),"O jogador com maior level online й %s. Level atual : %d",Nome(playerid),Level);
SendClientMessageToAll(-1,String);
format(String,sizeof(String),"O jogador com mais dinheiro online й %s. Dinheiro atual : %d",Nome(playerid),Money);
SendClientMessageToAll(-1,String);
}

como faзo pra pegar as contas offline alguйm pode me explicar
Reply
#10

pode falar se tem um salvamento de dinheiro e level na sua gm?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)