SetTimer significado.
#1

їAlguien me podria explicar bien como utilizar SetTimerEx? o darme un pequeсo ejemplo de este recuadro, diciйndome en que casos se usa la "i" la "d" la "a" Etc etc, se los agradecerнa mucho, es que busque en wiki.samp y esta todo en ingles, la verdad entiendo muy poco ese idioma y traducirlo no me solucionara la duda



gracias
Reply
#2

Quote:
Originally Posted by watohe
Посмотреть сообщение
pawn Код:
SetTimer("Kickear", 500, false);
En realidad ese SetTimer estб bien, sуlo que no irнa en OnPlayerConnect.

Con respecto a esas letras, son especificadores de formato, y hay que elegir el adecuado segъn cуmo vas a aplicar esa funciуn. En teorнa, los especificadores usados en PAWN son i y d (ambos usados para integer, es decir, formatos enteros decimales), f (viene de float, formatos flotantes) y por ъltimo b (de bool, formatos booleanos, los que tienen valores true y false ъnicamente).
Reply
#3

Quote:
Originally Posted by Glimma
Посмотреть сообщение
En realidad ese SetTimer estб bien, sуlo que no irнa en OnPlayerConnect.

Con respecto a esas letras, son especificadores de formato, y hay que elegir el adecuado segъn cуmo vas a aplicar esa funciуn. En teorнa, los especificadores usados en PAWN son i y d (ambos usados para integer, es decir, formatos enteros decimales), f (viene de float, formatos flotantes) y por ъltimo b (de bool, formatos booleanos, los que tienen valores true y false ъnicamente).
Y si un caso pusiera asi para que se me repita el mensaje? el true me hace que repita el mensaje verdad o me equivoco?

pawn Код:
SetTimerEx("MCombate", 15000, true,"d",playerid);
Reply
#4

Si usбs true (es lo mismo que poner 1) al llamarse MCombate pasados los 15 segundos, se repetirб nuevamente (serб llamada la funciуn dentro de otros 15 segundos) y asн sucesivamente. Si usбs false (es lo mismo que poner 0) al pasar esos 15 segundos, la funciуn no se repetirб mбs.

Una cosa, para matar un timer se usa la funciуn KillTimer. Por ejemplo:

pawn Код:
new Timer[MAX_PLAYERS]; // Variable al que se le darб como valor la funciуn que llamarб a otra funciуn en un determinado tiempo. Esto se hace para poder matarla posteriormente.

public OnPlayerConnect(playerid)
{
    Timer[playerid] = SetTimerEx("FuncionLlamada", 15000, true, "i", playerid); // Creamos el timer al conectarse el jugador, el mismo se repetirб cada vez que se termine. Asн, la ъnica forma de matarlo es con KillTimer, que posteriormente usaremos.
    return 1;
}

public OnPlayerDisconnect(playerid)
{
    KillTimer(Timer[playerid]); // Al desconectarse el jugador, el timer se destruirб.
    return 1;
}

forward FuncionLlamada(playerid);
public FuncionLlamada(playerid)
{
    // Cуdigo que se ejecutarб al ejecutarse йsta funciуn (la cual serб ejecutada mediante la funciуn SetTimerEx, cada determinado tiempo, que segъn lo establecido, son 15000 milisegundos, equivalentes a 15 segundos).
}
Reply
#5

SetTimerEx llama a una callback -despuйs de X tiempo- con parбmetros.
El Format Syntax es el mismo que usas en format, pero sin el % anteponiйndose.

Un ejemplo:

pawn Код:
// En alguna parte:
SetTimerEx("AnyCallback", 1000, false, "idfsb", 0, 1, 1000.00, "Hey guys", true);


public AnyCallback(int_1, int_2, Float:myfloat, string[], bool:mybool)
{
    printf("%i %i %f %s %b", int_1, int_2, myfloat, string, mybool);
    return 1;
}

Al iniciar la consola, despuйs de un segundo saldrб:

Quote:

[...] 0 1 1000.00 Hey guys 1

Reply
#6

Me olvidй de decirte otra cosa. Donde van los especificadores de formato, hay que poner uno por cada argumento de la funciуn llamada. Como se ve, en mi ejemplo es sуlo playerid, pero si se tratara de dos argumentos de jugador, irнa ii:

pawn Код:
Timer[playerid] = SetTimerEx("FuncionLlamada", 15000, true, "ii", playerid);
Reply
#7

Quote:
Originally Posted by Glimma
Посмотреть сообщение
Si usбs true (es lo mismo que poner 1) al llamarse MCombate pasados los 15 segundos, se repetirб nuevamente (serб llamada la funciуn dentro de otros 15 segundos) y asн sucesivamente. Si usбs false (es lo mismo que poner 0) al pasar esos 15 segundos, la funciуn no se repetirб mбs.

Una cosa, para matar un timer se usa la funciуn KillTimer. Por ejemplo:

pawn Код:
new Timer[MAX_PLAYERS]; // Variable al que se le darб como valor la funciуn que llamarб a otra funciуn en un determinado tiempo. Esto se hace para poder matarla posteriormente.

public OnPlayerConnect(playerid)
{
    Timer[playerid] = SetTimerEx("FuncionLlamada", 15000, true, "i", playerid); // Creamos el timer al conectarse el jugador, el mismo se repetirб cada vez que se termine. Asн, la ъnica forma de matarlo es con KillTimer, que posteriormente usaremos.
    return 1;
}

public OnPlayerDisconnect(playerid)
{
    KillTimer(Timer[playerid]); // Al desconectarse el jugador, el timer se destruirб.
    return 1;
}

forward FuncionLlamada(playerid);
public FuncionLlamada(playerid)
{
    // Cуdigo que se ejecutarб al ejecutarse йsta funciуn (la cual serб ejecutada mediante la funciуn SetTimerEx, cada determinado tiempo, que segъn lo establecido, son 15000 milisegundos, equivalentes a 15 segundos).
}
Y como hago para matar solo un timer especifico ejemplo el MCombate, seria asi?

pawn Код:
KillTimer(MCombate,Timer[playerid]);
Reply
#8

Quote:
Originally Posted by Zodiaco
Посмотреть сообщение
Y como hago para matar solo un timer especifico ejemplo el MCombate, seria asi?

pawn Код:
KillTimer(MCombate,Timer[playerid]);
como te dijo Glimma, Timer[playerid] representa el Timer que creaste, por lo que

pawn Код:
KillTimer(Timer[playerid]);
estarнas destruyendo tal timer
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)