[Pedido] Contagem para ganhar level
#1

Estou a procura de um code que em tempo altomatico fique setando score para ao PLAYER,

ex: a cada 10 minutos o player ganha um score.
( player em afk - ano Upa )

c alguem souber onde posso achar um code parecido fico grato desde ja <3
Reply
#2

Lк as regras e aprende a usar as devidas TAGs.
Reply
#3

puts nen vi vey @Arrumado
Reply
#4

simples:

PHP код:
public OnGameModeInit()
{
    
SetTimer("UpLevel",60*10*1000,true);
    return 
1;
}
forward UpLevel();
public 
UpLevel()
{
    for(new 
0<= GetPlayerPoolSizei++)
    {
        
SetPlayerScore(iGetPlayerScore(i) + 1);
    }
    return 
1;

Reply
#5

Vou te ensinar como fazer, primeiro de tudo vocк vк o que quer:

1-Timer com loop pra dar score a cada 10 minutos.
2-Saber calcular o tempo do timer.
3-Dar ou nгo o score.

Primeiro de tudo vocк precisa comeзar o temporizador (timer). A melhor forma de comeзar um timer global й na public OnGameModeInit.

Entгo precisamos saber o tempo do timer, pra isso usaremos matemбtica bбsica:

1 segundo = 1000 milisegundos
1 minuto = 60 segundos (60 segundos = 1000 * 60)
10 minutos = 10(minutos) * 60(segundos) * 1000(milisegundos)


Код:
public OnGameModeInit()
{
	SetTimer("DoarXP", 10 * 60 * 1000, true);
}

forward DoarXP();
public DoarXP()
{
        /*EXEMPLO:
        for(new player; player < GetPlayerPoolSize(); player++)
        {
            if(!IsPlayerConnected(player) || IsPlayerAfk(player)) continue;//ignora ids desconectados e afk e pula pro proximo id
            //caso a condicional acima nгo seja atendida, o script continua daqui...
	    SetPlayerScore(player, GetPlayerScore(player) + 2); //2 scores foram acrescidos na variбvel
            SendClientMessage(player, -1, "Vocк recebeu 2 scores por estar online");
         }
	*/
}
Porйm, vocк quer q jogadores inativos nгo recebam, entгo vocк precisa criar seu prуprio sistema de detecзгo AFK, geralmente dб pra fazer com macros como esta:


Код:
new PlayerTick[MAX_PLAYERS];

#define IsPlayerAfk(%0) (PlayerTick[%0]+1000 < GetTickCount())

public OnPlayerUpdate(playerid)
{
    PlayerTick[playerid]=GetTickCount();
}
Reply
#6

Quote:
Originally Posted by ipsLeon
Посмотреть сообщение
Код:
forward DoarXP();
public DoarXP()
{
        /*EXEMPLO:
        for(new player; player < GetPlayerPoolSize(); player++)
        {
            if(!IsPlayerConnected(player) || IsPlayerAfk(player)) continue;//ignora ids desconectados e afk e pula pro proximo id
            //caso a condicional acima nгo seja atendida, o script continua daqui...
	    SetPlayerScore(player, GetPlayerScore(player) + 2); //2 scores foram acrescidos na variбvel
            SendClientMessage(player, -1, "Vocк recebeu 2 scores por estar online");
         }
	*/
}
Existem duas coisas erradas, primeiramente ao usar o GetPlayerPoolSize й necessбrio utilizar o operador <= e nгo < visto que ele pega o id mais alto e nгo a quantidade de players, logo 10 players 9 ids o que acontece й que sу 8 jogadores receberam o XP.

Depois nгo existe necessidade de utilizar a funзгo IsPlayerConnected, isto porque o GetPlayerPoolSize jб faz isto, visto que ele pega o id mais alto em uso no servidor.
Reply
#7

Altere o Titulo do topico, leia as regras.
Reply
#8

ipsLeon Vllw mesmo obrigado a todos ae bjs 7belo
Reply
#9

Quote:
Originally Posted by BlueX
Посмотреть сообщение
Existem duas coisas erradas, primeiramente ao usar o GetPlayerPoolSize й necessбrio utilizar o operador <= e nгo < visto que ele pega o id mais alto e nгo a quantidade de players, logo 10 players 9 ids o que acontece й que sу 8 jogadores receberam o XP.

Depois nгo existe necessidade de utilizar a funзгo IsPlayerConnected, isto porque o GetPlayerPoolSize jб faz isto, visto que ele pega o id mais alto em uso no servidor.
Existe uma coisa errada!

Deve-se usar IsPlayerConnected!

Digamos que existam dois jogadores conectados (ID 1 e ID 3), a funзгo retornara 3, porйm o ID 2 nгo esta conectado!



Beijos!
Reply
#10

Quote:
Originally Posted by Gii
Посмотреть сообщение
Existe uma coisa errada!

Deve-se usar IsPlayerConnected!

Digamos que existam dois jogadores conectados (ID 1 e ID 3), a funзгo retornara 3, porйm o ID 2 nгo esta conectado!



Beijos!
Nesse aspeto tens razгo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)