SA-MP Forums Archive
[Ajuda] SetTimerEX - 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] SetTimerEX (/showthread.php?tid=404828)



SetTimerEX - Skiinner - 04.01.2013

Eu jб tentei aprender a usar esse outro timer, nгo fiquem mandando link de wiki pois jб li 25x.
Gostaria que alguйm, que estiver disposto, me ensine com exemplos aqui '-'
Tipo: chamar uma public para o player e executar alguma aзгo na public.
Obrigado


Re: SetTimerEX - Maklister - 04.01.2013

pawn Код:
CMD:teste(playerid)
{
    SetTimerEx("NomeFuncao", 1000, false, "d", playerid);
    return 1;
}

forward NomeFuncao(playerid);
public NomeFuncao(playerid)
{
    printf("meu ID й %d", playerid);
    return 1;
}
SetTimerEx usa quando se usa parametro na public, exemplo o playerid


Re: SetTimerEX - Skiinner - 04.01.2013

Ah, entendi, obrigado mano!!
Se eu quisesse aplicar em algum player poderia fazer assim?
pawn Код:
if(strcmp(cmd, "/funcaoplayer", true) == 0)
{
    new plid;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
        SendClientMessage(playerid, Vermelho, "{FF8000}| ERRO | {FFFFFF}Uso correto: {FF0000}/Precocasa [id]      [Valor]");
        return 1;
    }
    plid = strval(tmp);
    SetTimerEx("NomeFuncao", 1000, false, "d", plid);
    return 1;

forward NomeFuncao(plid);
public NomeFuncao(plid)
{
    printf("meu ID й %d", plid);
    return 1;
}



Re: SetTimerEX - Maklister - 04.01.2013

Isso, ai seria executado a funзгo printf apуs 1 segundo que no caso й 1000 milisegundos,
pawn Код:
if(strcmp(cmd, "/funcaoplayer", true) == 0)  // Comando em strcmp ( aconselho DOF2 )
{
    new plid;
    SetTimerEx("NomeFuncao", 1000, false, "d", plid); // 1000 = 1 segundo, false ou true ( false ira se executado o timer somente 1 vez, se for true ira ficar repetindo, aconselho usar killtimer quando usar true
    return 1;
}

forward NomeFuncao(plid);
public NomeFuncao(plid)
{
    printf("meu ID й %d", plid); // Funзгo a ser executada
    return 1;
}



Re: SetTimerEX - Skiinner - 04.01.2013

Se eu pusesse no lugar de printf um SendClientMessage, mandaria para o ID que eu digitei no comando?
Vocк nгo entendeu, eu quero que execute um timer no ID que eu colocar no comando
pawn Код:
if(strcmp(cmd, "/funcaoplayer", true) == 0)
{
    new plid;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
        SendClientMessage(playerid, Vermelho, "{FF8000}| ERRO | {FFFFFF}Uso correto: {FF0000}/FuncaoPlayer [id]");
        return 1;
    }
    plid = strval(tmp);
    SetTimerEx("NomeFuncao", 1000, false, "d", plid);
    return 1;
}
forward NomeFuncao(plid);
public NomeFuncao(plid)
{
    SendClientMessage(playerid, COR, "123");// seria playerid ou plid
    return 1;
}



Re: SetTimerEX - Maklister - 04.01.2013

pawn Код:
forward NomeFuncao(plid);
public NomeFuncao(plid)
{
    SendClientMessage(plid, COR, "123");// aqui seria plid.
    return 1;
}
Mais acho meio inutil um timer so pra uma SendClientMessage .-.


Re: SetTimerEX - Skiinner - 04.01.2013

Entendi, obrigado murilo, jб dei uma reputaзгo ;-;


Re: SetTimerEX - JonathanFeitosa - 04.01.2013

pawn Код:
#define TEMPOSETTIMEREX 10000 // 10 seg.
CMD:SeuComandoEmZCMD(playerid)
{
    SetTimerEx("NomePublic",  TEMPOSETTIMEREX , false, "i", playerid);
// No "TEMPOSETTIMEREX ", Vocк bota o tempo que queria que envie a funcao "NomePublic" ! 10000 = 10seg !
// false para nгo repetir, true para repetir(atualizar) toda hora, exemplo um relogio.
    return true;
}

forward NomePublic(playerid);
public NomePublic(playerid)
{
    print("Mostrando a Mensagem Depois de %d", TEMPOSETTIMEREX);
    return true;
}



Re: SetTimerEX - Skiinner - 04.01.2013

Por que em ZCMD '-'


Re: SetTimerEX - Maklister - 04.01.2013

Pois й mais rбpido e dinвmico, strcmp й apenas um comparador, ZCMD jб й um processador.