Como funcionan los timers -
JaimitoxD - 20.12.2013
Hola chicos me pueden dar unos mini tutoriales acб de como se usan los timer
ya que veo mucha gente que dice usa un timer para tal cosa en vez de onplayerUpdate
pero de la forma mas optimas posible muchas gracias los amo.
Respuesta: Como funcionan los timers -
CrossOv3r - 20.12.2013
- Los timers se usan para ejecutar determinadas acciones(funciones) cada X tiempo, o al terminar X tiempo.
- Los timers se asignan mediante milisegundos
- Cuando se habla de usar timers en vez de "OnPlayerUpdate" , es para referirse a que OnPlayerUpdate es llamado infinitas veces en un solo segundo (o menos) por lo que para optimizar el gamemode, es mejor usar un timer aunque sea llamado cada 1 segundo
- Los timers con loops se pueden parar con la funciуn "KillTimer"
Al menos lo mбs bбsico
Respuesta: Como funcionan los timers -
JaimitoxD - 20.12.2013
Quote:
Originally Posted by CrossOv3r
- Los timers se usan para ejecutar determinadas acciones(funciones) cada X tiempo, o al terminar X tiempo.
- Los timers se asignan mediante milisegundos
- Cuando se habla de usar timers en vez de "OnPlayerUpdate" , es para referirse a que OnPlayerUpdate es llamado infinitas veces en un solo segundo (o menos) por lo que para optimizar el gamemode, es mejor usar un timer aunque sea llamado cada 1 segundo
- Los timers con loops se pueden parar con la funciуn "KillTimer"
Al menos lo mбs bбsico 
|
gracias bebй ya eso lo sabia haha, yo solo queria ejemplos como seria en un cуdigo :3 varios
Respuesta: Como funcionan los timers -
Swedky - 20.12.2013
Mira la Wiki: https://sampwiki.blast.hk/wiki/SetTimer y https://sampwiki.blast.hk/wiki/SetTimerEx.
Re: Como funcionan los timers -
Galileo - 20.12.2013
Por ejemplo, un timer para usar comando solo 5 segundos despues de spawnear:
Код:
// Arriba del GM
new Puede[MAX_PLAYERS];
// En OnPlayerSpawn
Puede[playerid] = 0;
SetTimer("PuedeUsarCMD",5000,false);
// Creando la funcion que llama el timer
forward PuedeUsarCMD(playerid);
public PuedeUsarCMD(playerid)
{
Puede[playerid] = 1;
return 1;
}
CMD:vehiculo(playerid,params[])
{
if(PuedeUsarCMD[playerid] == 1)
{
// Codigo bla bla
return 1;
}
else
{
SendClientMessage(playerid,-1,"Espera 5 segundos!");
}
return 1;
}
Respuesta: Re: Como funcionan los timers -
Swedky - 20.12.2013
Quote:
Originally Posted by Galileo
Por ejemplo, un timer para usar comando solo 5 segundos despues de spawnear:
Код:
// Arriba del GM
new Puede[MAX_PLAYERS];
// En OnPlayerSpawn
Puede[playerid] = 0;
SetTimer("PuedeUsarCMD",5000,false);
// Creando la funcion que llama el timer
forward PuedeUsarCMD(playerid);
public PuedeUsarCMD(playerid)
{
Puede[playerid] = 1;
return 1;
}
CMD:vehiculo(playerid,params[])
{
if(PuedeUsarCMD[playerid] == 1)
{
// Codigo bla bla
return 1;
}
else
{
SendClientMessage(playerid,-1,"Espera 5 segundos!");
}
return 1;
}
|
Tъ tambiйn lee la wiki.
Serнa asн:
pawn Код:
// Arriba del GM
new Puede[MAX_PLAYERS];
// En OnPlayerSpawn
Puede[playerid] = 0;
SetTimerEx("PuedeUsarCMD", 5000, false, "d", playerid);
// Creando la funcion que llama el timer
forward PuedeUsarCMD(playerid);
public PuedeUsarCMD(playerid)
{
Puede[playerid] = 1;
return 1;
}
CMD:vehiculo(playerid,params[])
{
if(PuedeUsarCMD[playerid] == 1)
{
// Codigo bla bla
return 1;
}
else
{
SendClientMessage(playerid,-1,"Espera 5 segundos!");
}
return 1;
}
Respuesta: Re: Como funcionan los timers -
MillerUTL - 20.12.2013
Quote:
Originally Posted by EnzoMetlc
Tъ tambiйn lee la wiki.
Serнa asн:
pawn Код:
// Arriba del GM
new Puede[MAX_PLAYERS];
// En OnPlayerSpawn
Puede[playerid] = 0; SetTimerEx("PuedeUsarCMD", 5000, false, "d", playerid);
// Creando la funcion que llama el timer forward PuedeUsarCMD(playerid); public PuedeUsarCMD(playerid) { Puede[playerid] = 1; return 1; }
CMD:vehiculo(playerid,params[]) { if(PuedeUsarCMD[playerid] == 1) { // Codigo bla bla return 1; } else { SendClientMessage(playerid,-1,"Espera 5 segundos!"); } return 1; }
|
Una pregunta que siempre tuve en duda, los timers como este: SetTimerEx("PuedeUsarCMD", 5000, false, "d", playerid);
їHace falta matarlos, osea con KillTimer, o el false ya lo hace?
Re: Respuesta: Re: Como funcionan los timers -
Galileo - 20.12.2013
Quote:
Originally Posted by EnzoMetlc
Tъ tambiйn lee la wiki.
Serнa asн:
pawn Код:
// Arriba del GM
new Puede[MAX_PLAYERS];
// En OnPlayerSpawn
Puede[playerid] = 0; SetTimerEx("PuedeUsarCMD", 5000, false, "d", playerid);
// Creando la funcion que llama el timer forward PuedeUsarCMD(playerid); public PuedeUsarCMD(playerid) { Puede[playerid] = 1; return 1; }
CMD:vehiculo(playerid,params[]) { if(PuedeUsarCMD[playerid] == 1) { // Codigo bla bla return 1; } else { SendClientMessage(playerid,-1,"Espera 5 segundos!"); } return 1; }
|
Error fatal mio, me olvide de que era SetTimerEx.
Gracias por corregir el error Enzo!
Respuesta: Como funcionan los timers -
OTACON - 20.12.2013
pawn Код:
#include <a_samp>
#include <zcmd>
new bool:PuedeUsarCMD[MAX_PLAYERS],
MatarPuede[MAX_PLAYERS];
public OnPlayerDisconnect(playerid, reason){
PuedeUsarCMD[playerid] = false;
KillTimer(MatarPuede[playerid]);
return true;
}
public OnPlayerSpawn(playerid){
PuedeUsarCMD[playerid] = false;
KillTimer(MatarPuede[playerid]);
MatarPuede[playerid] = SetTimerEx("TimerCargar", 5*1000, false, "d", playerid);
return true;
}
forward TimerCargar(playerid);
public TimerCargar(playerid){
PuedeUsarCMD[playerid] = true;
KillTimer(MatarPuede[playerid]);
return true;
}
COMMAND:vehiculo(playerid,params[]){
if(PuedeUsarCMD[playerid]!=false){
// Codigo bla bla
}else{
SendClientMessage(playerid,-1,"Espera 5 segundos!");
}
return true;
}
Respuesta: Re: Como funcionan los timers -
Swedky - 20.12.2013
Quote:
Originally Posted by MillerUTL
Una pregunta que siempre tuve en duda, los timers como este: SetTimerEx("PuedeUsarCMD", 5000, false, "d", playerid);
їHace falta matarlos, osea con KillTimer, o el false ya lo hace?
|
No, ya que cuando usas 'false', se detienea y llama su funciуn...