24/11/2022 09:17
(24/11/2022 07:00)MisteriumBr Escreveu: Para isto existe a função KillTimer.Para isso não é necessário SetTimerEx. Você pode usar timestamp.
Código PHP:new timer[MAX_PLAYERS];
public OnPlayerConnect(playerid) {
Timer[playerid] = SetTimerEx("StartTimer", 10000, true, "i", playerid); // Inicia o timer quando o player entra no servidor
return 1;
}
public OnPlayerDisconnect(playerid, reason) {
KillTimer(Timer[playerid]); // Executamos a KillTimer, que para o timer.
return 1;
}
forward StartTimer(playerid);
public StartTimer(playerid) {
GivePlayerMoney(playerid, 1000); // Neste exemplo, o timer dará $1,000 para o player a cada 10 segundos enquanto ele estiver desconectado
return 1;
}
Me tira uma dúvida para ver se estou fazendo certo, estou querendo colocar um anti farm na hora de vender veiculos, para o player não ficar comprando e vendendo o veículo o tempo todo, então pensei em colocar um SetTimer para limitar o uso do comando caso ele seja executado de novo. E seja liberado depois de 1 hora por exemplo. O uso do SetTimeEx serve para fazer isso, se puder me dar uma luz de código alternativo mais simples, valeu irmão
OBS: Se o jogador sair do servidor e entrar, o tempo será zerado. Então se quiser salvar terá que usar seu sistema de salvamento.
Código PHP:
CMD:teste(playerid) {
if(gettime() - GetPVarInt(playerid, "Time") < 3600000) return SendClientMessage(playerid, -1, "Aguarde 1 hora para usar o comando novamente.");
SetPVarInt(playerid, "Time", gettime());
SendClientMessage(playerid, -1, "Você usou o comando! Agora só poderá usar novamente em 1 hora.");
return 1;
}
Não estou disponível para realizar serviços relacionados ao SA-MP e não costumo responder a mensagens privadas, a menos que estejam relacionadas à moderação do fórum.