SA-MP Forums Archive
[AYUDA]Comandos con tiempo - 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: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [AYUDA]Comandos con tiempo (/showthread.php?tid=118362)



[AYUDA]Comandos con tiempo - Karkanos - 03.01.2010

bueno me gustaria saber como crear comandos que funcionen en un tiempo determinado

ejemplo cada 10 minutos el comando /dm funcione y despues de esos 10 minutos el comando /dm esta desabilitado

bueno gracias


Re: [AYUDA]Comandos con tiempo - Miguel - 03.01.2010

Bueno es muy simple, necesitamos:
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:
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;
}



Re: [AYUDA]Comandos con tiempo - Zoutdaxv - 03.01.2010

pawn Код:
disponibilidad == false;
>

pawn Код:
disponibilidad = false;
Ademбs necesitas darle valor inicial de true.

pawn Код:
new bool:disponibilidad[MAX_PLAYERS] = true;
Tendrнa que ir asн para que cada jugador tenga su tiempo de disponibilidad.


Re: [AYUDA]Comandos con tiempo - CristianTdj - 03.01.2010

Vaya cracks estais hechos
Lo voy a poner para mis carreras


Re: [AYUDA]Comandos con tiempo - Miguel - 03.01.2010

Quote:
Originally Posted by Infierno
pawn Код:
disponibilidad == false;
>

pawn Код:
disponibilidad = false;
Tendrнa que ir asн para que cada jugador tenga su tiempo de disponibilidad.
Corregido.


Re: [AYUDA]Comandos con tiempo - Karkanos - 03.01.2010

gracias


Re: [AYUDA]Comandos con tiempo - Miguel - 03.01.2010

Quote:
Originally Posted by Infierno
pawn Код:
new bool:disponibilidad[MAX_PLAYERS] = true;
Tendrнa que ir asн para que cada jugador tenga su tiempo de disponibilidad.
Estamos suponiendo que el comando no deberнa estar disponible para nadie, pero si fuera para cada jugador entonces si, tendriamos que utilizar MAX_PLAYERS, playerid...


Re: [AYUDA]Comandos con tiempo - Zoutdaxv - 04.01.2010

Pero igual hay que darle valor inicial de true, si no tu codigo no funcionara.


Re: [AYUDA]Comandos con tiempo - Donuts - 04.01.2010

Si la variable no esta usando MAX_PLAYERS, porque usar el parametro playerid en reset(), no sirve de nada.


Re: [AYUDA]Comandos con tiempo - Miguel - 05.01.2010

Quote:
Originally Posted by YeahYeahYeahs
Si la variable no esta usando MAX_PLAYERS, porque usar el parametro playerid en reset(), no sirve de nada.
pawn Код:
SetTimerEx("reset", 10*1000, false, "d", playerid);
Aunque si, tienes razуn, no hay porque ponerlo. :P