SA-MP Forums Archive
[Duda] Cuenta regresiva + Funciуn - 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: [Duda] Cuenta regresiva + Funciуn (/showthread.php?tid=521857)



[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