SA-MP Forums Archive
[Ajuda] Delay nos comandos. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Delay nos comandos. (/showthread.php?tid=584817)



Delay nos comandos. - EmanuelRamos - 08.08.2015

Gostaria de saber se tem como aplicar um delay nos comandos. Exemplo: O player da "/equipar" ele equipa mas ele sу pode dar "/equipar" novamente depois de um certo tempo.

Simulaзгo:

Player: /equipar
Console: Vocк equipou com sucesso!
Player: /equipar
Console: Vocк sу pode equipar novamente daqui a 10 minutos
Player: /equipar
Console: Vocк sу pode equipar novamente daqui a 9 minutos
Player: /equipar
Console: Vocк sу pode equipar novamente daqui a 8 minutos
...


Re: Delay nos comandos. - iTakelot - 08.08.2015

PHP код:
//Estes 2 adicione no topo
//====-------------------===
new bool:libc[MAX_PLAYERS];
forward Habilitar(playerid);
//====-------------------===
//Isto no comando
libc[playerid] = false;
//Isso vai tambйm no comando
SetTimerEx("Habilitar"3000false"d"playerid); // 3000 = 3 segundos) ou //4000 = 4 Seg etc...
//Coloque isto no final do GM\Filterscript
public Habilitar(playerid)
{
    
libc[playerid] = true;
    return 
1;




Re: Delay nos comandos. - EmanuelRamos - 08.08.2015

Aonde eu coloco os:

libc[playerid] = false;
SetTimerEx("Habilitar", 10000, false, "d", playerid); // 3000 = 3 segundos) ou //4000 = 4 Seg etc...

No meu comando?

if (strcmp("/equipar", cmdtext, true, 10) == 0)
{
if (equipado[playerid] == 1) {
SendClientMessage (playerid, vermelho_erro, "Vocк jб estб equipado, agora compre muniзгo!");
}else{
GivePlayerWeapon (playerid, 24, 10);
GivePlayerWeapon (playerid, 35, 10);
SendClientMessage (playerid, verde_sucesso, "Vocк equipou com sucesso!");
equipado[playerid] = 1;
}
return 1;
}


Re: Delay nos comandos. - iTakelot - 08.08.2015

PHP код:
if (strcmp("/equipar"cmdtexttrue10) == 0)
{
    if (
equipado[playerid] == 1)
    {
        
SendClientMessage (playeridvermelho_erro"Vocк jб estб equipado, agora compre muniзгo!");
    }
    else
    {
        
GivePlayerWeapon (playerid2410);
        
GivePlayerWeapon (playerid3510);
        
SendClientMessage (playeridverde_sucesso"Vocк equipou com sucesso!");
        
libc[playerid] = false;
        
SetTimerEx("Habilitar"10000false"d"playerid); // 3000 = 3 segundos) ou //4000 = 4 Seg etc...
        
equipado[playerid] = 1;
    }
    return 
1;




Re: Delay nos comandos. - Locky_ - 08.08.2015

Tenho uma lуgica muito melhor e que nгo precisa de timers. Sу utilizar gettime.. Exemplo
PHP код:
if (strcmp("/equipar"cmdtexttrue10) == 0)
{
    if (
equipado[playerid] == 1) return SendClientMessage (playeridvermelho_erro"Vocк jб estб equipado, agora compre muniзгo!");
    if(
GetPVarInt(playerid,"tempo_equipar") > gettime()) return SendClientMessage(playeridvermelho_erro"Vocк usou equipar recentemente. Aguarde!");
    
GivePlayerWeapon (playerid2410);
    
GivePlayerWeapon (playerid3510);
    
SendClientMessage (playeridverde_sucesso"Vocк equipou com sucesso!");
    
equipado[playerid] = 1;
    
SetPVarInt(playerid,"tempo_equipar",gettime() + 10); // 10 segundos 
    
return 1;