08/05/2024 04:14
(04/05/2024 12:03)Carlos Victor Escreveu: Não meu jovem, existem formas de fazer isso sem ter que criar 100 timers diferentes, a força mais fácil é criar uma variável e armazenar o valor gettime (timestamp) com +3600 segundos e verificar se esse valor é maior ou menos do que o tempo atual, ou seja, se for maior significa que o tempo de uma hora passou e se for menor, não passou ainda, segue o exemplo:
Código PHP:new gPlayerGift[MAX_PLAYERS];
CMD:presente(playerid)
{
new
string[128], money;
if (gPlayerGift[playerid] > gettime()) {
format(string, sizeof(string), "* Aguarde %02d:%02d para pegar o próximo presente.", (gPlayerGift[playerid] - gettime()) / 60, (gPlayerGift[playerid] - gettime()) % 60);
return SendClientMessage(playerid, -1, string);
}
gPlayerGift[playerid] = gettime() + 3600;
money = random(1500) + 500; // 500 - 2000
format(string, sizeof(string), "* Você pegou o presente e recebeu $%d!", money)
SendClientMessage(playerid, -1, string);
return 1;
}
Aí, você pode usar essa variável para armazenar em alguma coluna do banco de dados.
Não tinha pensado em fazer dessa forma, irei testar. Muito obrigado pela dica