02.03.2013, 20:39
Antes de nada lйete SetTimer, SetTimerEx, KillTimer
Tienes que declarar el timer:
Un error que muchos cometen, esque cuando usamos el timer para un solo player (SetTimerEx), no declaran el tamaсo de la array, y esto causarнa bugs importantes
Un ejemplo correcto:
Saludos, y espero haberte aclarado tus dudas con los timers.
PD: http://forum.sa-mp.com/showpost.php?...&postcount=334
Tienes que declarar el timer:
pawn Код:
new Timer1;
//CMD
if(strcmp(cmd, "/timer", true) == 0)
{
Timer1 = SetTimer("Test", 5000, true); //Retorna la id del timer .true es para que se repita cada 5 segundos, normalmente si es false no necesitas 'KillerTimer' al no ser que quieras pararlo antes de que se cumpla la funciуn.
return 1;
}
//public
forward Test();
public Test()
{
print("timer 1");
return 1;
}
//CMD Kill
if(strcmp(cmd, "/killtimer", true) == 0)
{
KillTimer(Timer1); // Ahora ya no mandarнa mбs prints.
return 1;
}
Un ejemplo correcto:
pawn Код:
new Timer2[MAX_PLAYERS]; // MAX_PLAYERS = 500, puedes cambiar MAX_PLAYERS por el nъmero de maxplayers de tu sv para optimizar. o tambiйn debajo de los includes y antes de los news:
#undef MAX_PLAYERS
#define MAX_PLAYERS 100 //100 es un ejemplo si tu server usara 100 slots.
// esto no tiene nada que ver con lo del timer es tan solo para optimizar.
if(strcmp(cmd, "/timer", true) == 0)
{
Timer2[playerid] = SetTimerEx("Test", 5000, true. "i", playerid); //Timer para un solo jugador, lйete SetTimerEx en la samp wiki.
return 1;
}
forward Test(playerid);
public Test(playerid)
{
SendClientMessage(playerid, -1, "timer 2");
return 1;
}
//CMD Kill
if(strcmp(cmd, "/killtimer2", true) == 0)
{
KillTimer(Timer2[playerid]); // Ahora ya no mandarнa mбs mensajes al jugador.
return 1;
}
PD: http://forum.sa-mp.com/showpost.php?...&postcount=334