Bueno es muy simple, necesitamos:
- Una variable para saber cuando el comando esta habilitado y cuando no.
- Configurar un timer para cambiar esta variable.
- Una funcion para que cuando se acabe el tiempo todo esto pase.
Comenzamos creando una variable para checkear si el comando esta disponible o no:
pawn Код:
new bool:disponibilidad; // las variables bool son las que solo tienen dos valor disponibles, true o false. (false == 0, true == 1)
El comando que queremos delimitar:
pawn Код:
if(strcmp(cmdtext, "/comando", true, 7) == 0)
{
if(disponibilidad == true) // esto significa si la variable "disponibilidad" es 1... pasa lo que hay entre brackets
{
// aqui va todo lo que va a pasar si el comando esta disponible
disponibilidad = false; // cambiamos "disponibilidad" a false para que el comando no este disponible hasta que el siguiente timer se cumpla
SetTimerEx("reset", 10*1000, false, "d", playerid); // esto es un timer, su funcion es llamar a una funcion, la cual va a cambiar la disponibilidad a true
}
else // lo que pasa si no esta disponible (disponibilidad == false)
{
SendClientMessage(playerid, COLOR, "Este comando no esta disponible!");
}
return 1;
}
Lo que pasa aqui es:
- Checkeamos la disponibilidad del comando.
- Si esta disponible, pasa lo que tiene que pasar normalmente y cambia a no disponible (por medio de la variable).
- Creamos un cronomentro el cual cambiara la disponibilidad nuevamente a true.
- Si no esta disponible se manda el mensaje de error y no pasa nada.
Ahora necesitamos crear una funciуn publica la cual reseteara/cambiarб "disponibilidad" a
true para que vuelva a estar disponible despuйs del tiempo:
pawn Код:
forward reset(playerid); // declaramos que vamos a crear una funcion llamada "reset"
pawn Код:
public reset(playerid) // este es el "reset" que colocamos en SetTimerEx
{
// esto es lo que pasa cuando se acaba el tiempo
disponibilidad = true; // volvemos disponibilidad true otra vez para que el comando este disponible
return 1;
}