SA-MP Forums Archive
[Ajuda] Executar uma funзгo por tempo - 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] Executar uma funзгo por tempo (/showthread.php?tid=358191)



Executar uma funзгo por tempo - Adriano_MQD - 09.07.2012

Existe algum modo de tipo eu ficar segurando 2 teclas em um tanto de tempo ai quando acabar esse tempo executar uma funзгo.

Como eu faзo isso?


Re: Executar uma funзгo por tempo - Bruno Alves - 09.07.2012

Bem criativo mas pelo meu ponto de vista с, up


Respuesta: Executar uma funзгo por tempo - Brazuca[]s - 09.07.2012

acho que й possivel, usando as keys que sгo definidas para o sa-mp e usar uma settimer!


Re: Executar uma funзгo por tempo - .FuneraL. - 09.07.2012

Acho eu que й possivel sim, como o Brazucas disse, Use: OnPlayerKeyStateChange e SetTimerEx


Re: Executar uma funзгo por tempo - andmeida10 - 09.07.2012

https://sampwiki.blast.hk/wiki/OnPlayerKeyStateChange

e

https://sampwiki.blast.hk/wiki/SetTimerEx

e lк

https://sampforum.blast.hk/showthread.php?tid=235924


Re : Executar uma funзгo por tempo - Adriano_MQD - 09.07.2012

para mim usar 2 teclas em vez de uma ficaria assim nй?

pawn Code:
if ((newkeys & 8) && !(oldkeys & 32))
ou nгo?


Respuesta: Executar uma funзгo por tempo - ipsBruno - 09.07.2012

Claro!

pawn Code:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys != KEY_FIRE || oldkeys == KEY_FIRE) SetPVarInt(playerid, "heyMano", gettime());
    return 1;
}


public OnPlayerUpdate(playerid)
{
    new Keys,ud,lr;
    GetPlayerKeys(playerid,Keys,ud,lr);
    if(Keys == KEY_FIRE) {
        if(GetPVarInt(playerid, "key")) {
            if(gettime() - GetPVarInt(playerid, "heyMano") > 2 && gettime() - GetPVarInt(playerid, "key") == 2) {
                SendClientMessage(playerid, -1, "mermao, tu clico 2 segundos NO KEY FIRE !!");
                SetPVarInt(playerid, "key", 0);
            }
        }
        else {
            SetPVarInt(playerid, "key", gettime());
        }
    }
    else {
        SetPVarInt(playerid, "key", 0);
    }
    return true;
}
Pode-se fazer com SetTimer. Mas com SetTimer ficaria muito impreciso, alйm de poder dar possнveis lags no servidor
Deve funcionar


Re : Executar uma funзгo por tempo - Adriano_MQD - 09.07.2012

vou testar aqui...


Respuesta: Executar uma funзгo por tempo - ipsBruno - 09.07.2012

Aguardo sua resposta. Lembrando que nгo pode estar clicando outras teclas ou o valor muda.

Boa sorte


Re : Executar uma funзгo por tempo - Adriano_MQD - 09.07.2012

Cara funcionou tudo certo, mas existe algum modo de ser 2 teclas em vez de uma sу?


Respuesta: Executar uma funзгo por tempo - ipsBruno - 09.07.2012

Claro que existe !!

Basta usar

(KEY1 | KEY2)

no lugar de KEY_FIRE


Re: Executar uma funзгo por tempo - Adriano_MQD - 09.07.2012

Vlw cara funcionou direitin =D