[Duda] Cuenta regresiva + Funciуn -
xTexTx - 24.06.2014
Hola, emm tengo pensado hacer un comando que tenga una cuenta regresiva, es decir:
"El servidor sera reiniciado en 10" "9" "8" "7" "6" "5" "4" "3" "2" "1" y cuando llega a 0 que se ejecute el comando RCON 'GMX'
Que creo que era algo asн: 'SendRconCommand("gmx");'
їAlguien me ayuda explicandome como hacer una funciуn asн?
Gracias de antemano.
Re: [Duda] Cuenta regresiva + Funciуn -
LeonardoEscobar - 24.06.2014
Hariamos una variable global que es la que ira cambiando a medida pasa el tiempo determinado, un cmd, y otra variable para sostener el timer y killearlo:
pawn Код:
new TiempoRestart; // var global
new MyTimer; // var del timer
pawn Код:
CMDEjemplo(restart)
{
TiempoRestart = 10; // aca ponemos los segundos que va a tener en la variable
MyTimer = SetTimer("Reinicio", 1000, true); // el timer repetira la funcion cada 1000 milisg, osea 1 segundo hasta que lo matemos
return 1;
}
Ahora vamos a hacer la funciуn que el timer va a repetir
pawn Код:
forward Reinicio();
public Reinicio()
{
new Info[64]; //este array contendra el texto y los segundos que iran pasando
format(Info, sizeof(Info), "Reiniciando en %d", TiempoRestart); //damos formato al texto del GameText
GameTextForAll(Info, 1000, 4); //enviamos el gametext a los jugadores
TiempoRestart--; // aca restamos 1 al tiempo de restart, cada vez que se repita osea cada segundo
if ( TiempoRestart <= 0 ) // si el tiempo, la var llego a 0 lo reiniciamos
{
KillTimer(MyTimer); // matamos el timer
SendRconCommand("gmx");// enviamos el comando
}
return 1;
}
En resumen cada segundo en la funciуn del timer va bajando 1 a la variable, asi contamos los 10 segundos que aviso y podemos reinciniar, cualquier duda que surja podes postearla y te ayudamos. Saludos
Respuesta: [Duda] Cuenta regresiva + Funciуn -
OTACON - 24.06.2014
o tambien puedes usar este , modificandolo.
https://sampforum.blast.hk/showthread.php?tid=466886
saludos.
Respuesta: [Duda] Cuenta regresiva + Funciуn -
xTexTx - 25.06.2014
їY como le pongo para que se utilize el comando solo estando logeado con la RCON?
PD: Es que lo puse asн el comando y no sй si esta bien:
pawn Код:
CMD:reiniciarservidor(playerid, params[])
{
if(IsPlayerAdmin (playerid)) return SendClientMessage(playerid, Color_Rojo, "Usted no es admin");
{
TiempoRestart = 10;
MyTimer = SetTimer("Reinicio", 1000, true);
return 1;
}
Ese esta bien o este?
pawn Код:
CMD:reiniciarservidor(playerid, params[])
{
if(IsPlayerAdmin (playerid))
{
TiempoRestart = 10;
MyTimer = SetTimer("Reinicio", 1000, true);
return 1;
}
else return SendClientMessage(playerid, Color_Rojo, "Usted no es admin");
}
Respuesta: [Duda] Cuenta regresiva + Funciуn -
Juance - 25.06.2014
pawn Код:
CMD:reiniciarservidor(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Color_Rojo, "Usted no es admin");
TiempoRestart = 10;
MyTimer = SetTimer("Reinicio", 1000, true);
return 1;
}
El segundo estб bien.
Respuesta: [Duda] Cuenta regresiva + Funciуn -
xTexTx - 25.06.2014
їEste?, es que me entreveraste, pusiste "El segundo estб bien." y pusiste el primer comando xD
pawn Код:
CMD:reiniciarservidor(playerid, params[])
{
if(IsPlayerAdmin (playerid))
{
TiempoRestart = 10;
MyTimer = SetTimer("Reinicio", 1000, true);
return 1;
}
else return SendClientMessage(playerid, Color_Rojo, "Usted no es admin");
}
Respuesta: [Duda] Cuenta regresiva + Funciуn -
Juance - 25.06.2014
Ese mismo. Te corregн el primer comando, se puede hacer como yo lo he hecho, o como el segundo comando. En el primeo te olvidabas de cerrar una llave, ademбs de que definias que si el usuario era admin, que le envнe el mensaje de restricciуn