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();
}