[Guía] Tiempo Cmd

Aprende lo que no sabes de este lenguaje y encuentra herramientas y códigos útiles.

Moderador: Ayudantes

Reglas del Foro
  • Si tu código es corto, no crees un tema nuevo para liberarlo, publica un mensaje en el tema [Funciones] ¡Publica tu código aquí!.
  • Si creas una guía, debes explicar el código claramente. Evita poner la explicación en forma de comentarios dentro del mismo y no olvides utilizar el BBCode correspondiente: [Pawn]Código aquí[/Pawn].
  • No postear códigos sin probar. Publicar códigos con errores (que impidan compilar el script para el cual está destinado) en este apartado es motivo de sanción.
  • Si tu código necesita plugins, includes u otros códigos adicionales para funcionar, debes mencionarlo en el mensaje.
  • Si has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).
  • Si tu aporte es para un GameMode en específico, debes publicar el tema en el apartado "Guías y Aportes para GameModes específicos".
Responder
EL CHUKY
Aprendiz
Aprendiz
Mensajes: 42
Registrado: 28 Oct 2018 03:55
Reputación: 2

11 Ene 2019 01:19

Buenas, aquí haciendo otro aporte -thumbup espero les sirva



Empezamos haciendo la variable y el forward
 Codigo Pawno:
1
2

new TiempoCmd[MAX_PLAYERS]; //Esto lo colocan en sus varialbes
forward TiempoComando(playerid, params[]) //Esto es para que pase el tiempo del comando
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 2
Ahora seguimos con el comando
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10

CMD:comando(playerid,params[])
{
 if(TiempoCmd[playerid] == 1) return SendClientMessage(playerid,-1,"Tienes que esperar 60 segundos para volver a usar el comando"); //Es el mensaje que va a poner si no ha paso el tiempo que han pusto
 {
  TiempoCmd[playerid] = 1; //Activa la variable
  SendClientMessage(playerid,-1,"Comando usado con exito"); //es el texto que dirá
  SetTimer("TiempoComando", 60000*1, playerid); //empezara a contar el tiempo para nosotros, serán 60 segundos
 }
return 1;
}
  Cantidad de llaves: Abiertas(2)-Cerradas(2) | Lineas Totales: 10
Bien, ahora creamos un public para que la variable de tiempo de desactive y se pueda volver a usar el comando
 Codigo Pawno:
1
2
3
4
5
6

public TiempoComando(playerid, params[]) //Esto lo pudimos crear porque creamos "forward TiempoComando"
{
 TiempoCmd[playerid] = 0; //Se desactiva la variable y el comando se puede volver a usar
 SendClientMessage(playerid,-1,"Ya pasaron 60 segundos, puedes volver a usar /comando"); //Este mensaje avisara al usuario que ya puede volver a usar es comando
 return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 6
Y por ultimo colocamos esto en OnPlayerConnect
 Codigo Pawno:
1
2
3
4
5
6

public OnPlayerConnect(playerid)
{
 new TiempoCmd[MAX_PLAYERS];
 TiempoCmd[playerid] = 0; //Esto es para que cuando el usuario se conecte, la variable se desactive y así pueda usar el comando
 return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 6
Y listo, espero les haya servido. Saludos -punk

PROGRAMAR ES UN ARTE, SIGUE TUS METAS

Imagen

Avatar de Usuario
Roberth Clouthier
Aprendiz
Aprendiz
Mensajes: 33
Registrado: 25 Jul 2018 18:58
Reputación: 2

11 Ene 2019 03:19

o esto

Código: Seleccionar todo

new tiempo[MAX_PLAYERS];
CMD:comando(playerid,params[])
{
    if(tiempo[playerid] > gettime()) return SendClientMessage(playerid, -1, "Espera!");
    SendClientMessage(playerid, -1, "Usaste este comando");
    tiempo[playerid] = gettime() + 30;
    return 1;
}
Paulo Arce
Aprendiz
Aprendiz
Mensajes: 609
Registrado: 03 Jul 2016 19:57
Reputación: 2

11 Ene 2019 23:05

Mal aporte. Además de que usar gettime es más optimizado que usar un timer inadecuadamente, no debe ser definida otra vez la variable en OnPlayerConnect.
Responder