Portal SAMP
[Ajuda] ajuda com set timer - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] ajuda com set timer (/showthread.php?tid=3970)



ajuda com set timer - Sr_Nublein - 16/09/2023

alguem me ajuda tipo quero fazer um sistema para reiniciar o server tipo ele da /reiniciarserver ae fala q vai ser reiniciado em 1 minuto ae quando chegar no 30 segundos vai dar outro aviso ae no 15 vai dar outro aviso tendeu como q faz isso? eu fiz e n deu certo


RE: ajuda com set timer - zBreno - 16/09/2023

forward Contar();
SetTimer("Contar", 1000, 1);

new segundos = 0;
new minutos = 0;

public Contar()
{

segundos++;

if(segundos >= 59)
{
segundos = 0;
minutos++;
}

if(minutos == 10 && segundos == 00)
{

}
if(minutos == 20 && segundos == 00)
{

}
if(minutos == 30 && segundos == 00)
{

}
return 1;
}


RE: ajuda com set timer - Sr_Nublein - 16/09/2023

não funciona man ele n começa pelo 45 segundos e sim pelo 1 2 3 até o 45 segundos


RE: ajuda com set timer - xbruno1000x - 16/09/2023

Você tem um relógio no seu servidor? Usa o tempo dele dentro de um timer para confirmar isso.

Tipo assim:

Código:
        if(ClockTime[tHour] >= 00 && ClockTime[tHour] <= 09) //ENTRE MEIA NOITE E NOVE DA MANHA
        {
            //ACONTECE ESSE CODIGO AQUI
        }



RE: ajuda com set timer - White_Blue - 16/09/2023

(16/09/2023 19:50)xbruno1000x Escreveu: Você tem um relógio no seu servidor? Usa o tempo dele dentro de um timer para confirmar isso.

Tipo assim:

Código:
        if(ClockTime[tHour] >= 00 && ClockTime[tHour] <= 09) //ENTRE MEIA NOITE E NOVE DA MANHA
        {
            //ACONTECE ESSE CODIGO AQUI
        }

Creio que não seja isso que ele esteja perguntando, mas sim um reinicio cronometrado.

Código PHP:
forward oneminute();
public 
oneminute() {
      
SendClientMessageToAll(playerid, -1"O servidor irá reiniciar em 1 minuto!");
      
SetTimer("fifteen"45000);
      return 
1;
}

forward fifteen();
public 
fifteen() {
      
SendClientMessageToAll(-1"O servidor irá reiniciar dentro de 30 segundos!");
      
SetTimer("thirty"15000false);
      return 
1;
}


forward thirty();
public 
thirty() {
     
SendRconCommand("gmx"); // Reinicia o servidor
     
return 1;
}

CMD:restart(playerid) {
   
oneminute(); // Inicia o ciclo de timers
   
return 1;


Creio que seja algo como no exemplo acima o que ele quis dizer.


RE: ajuda com set timer - Sr_Nublein - 16/09/2023

(16/09/2023 21:05)White_Blue Escreveu:
(16/09/2023 19:50)xbruno1000x Escreveu: Você tem um relógio no seu servidor? Usa o tempo dele dentro de um timer para confirmar isso.

Tipo assim:

Código:
        if(ClockTime[tHour] >= 00 && ClockTime[tHour] <= 09) //ENTRE MEIA NOITE E NOVE DA MANHA
        {
            //ACONTECE ESSE CODIGO AQUI
        }

Creio que não seja isso que ele esteja perguntando, mas sim um reinicio cronometrado.

Código PHP:
forward oneminute();
public 
oneminute() {
      SendClientMessageToAll(playerid, -1"O servidor irá reiniciar em 1 minuto!");
      SetTimer("fifteen"45000);
      return 1;
}

forward fifteen();
public 
fifteen() {
      SendClientMessageToAll(-1"O servidor irá reiniciar dentro de 30 segundos!");
      SetTimer("thirty"15000false);
      return 1;
}


forward thirty();
public 
thirty() {
     SendRconCommand("gmx"); // Reinicia o servidor
     return 1;
}

CMD:restart(playerid) {
   oneminute(); // Inicia o ciclo de timers
   return 1;


Creio que seja algo como no exemplo acima o que ele quis dizer.


Vlw ae o [b][b]White_Blue tu eme salvo era isso que tava precisando funciono vlw ae[/b][/b]


RE: ajuda com set timer - zBreno - 17/09/2023

(16/09/2023 16:01)Sr_Nublein Escreveu: não funciona  man ele n  começa pelo 45 segundos e sim pelo 1 2 3 até o 45 segundos

forward Contar(playerid);

new segundos = 0;

public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/contar", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid,-1,"O servidor vai reiniciar em um minuto!");
SetTimer("Contar", 1000, 1);
}
return 1;
}

public Contar(playerid)
{

segundos++;

if(segundos == 30)
{
SendClientMessage(playerid, -1,"O servidor vai reiniciar em 30 segundos!");
}

if(segundos == 45)
{
SendClientMessage(playerid, -1,"O servidor vai reiniciar em 15 segundos!");
}

if(segundos == 59)
{
SendRconCommand("GMX");
}

return 1;
}

eu não mandei o código pronto só publiquei uma função simples que quer gm usa ai na net pra você ler e fazer o seu sistema leia o código primeiro antes de usar pra não ficar preso nessa armadilha de só pegar o código pronto