SA-MP Forums Archive
[Ajuda] SetTimerEx - 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: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] SetTimerEx (/showthread.php?tid=627513)



SetTimerEx - Luiiiz - 28.01.2017

Comecei a mexer com SetTimerEx a pouco tempo e quero saber como que geto o tempo que falta no SetTimerEx.
Exemplo: Digitei o comando /kill e morri. Sу depois de 20 segundos eu posso voltar a usб-lo. Daн ainda nгo se passou 20 segundos. Ai aparece: Vocк deve esperar .. segundos para usar /kill novamente.
Esse .. seria o tempo que falta...


Re: SetTimerEx - JonathanFeitosa - 28.01.2017

Em vez de fazer um SetTimerEx com 20 segundos. Faзa de 1 segundo. E vai contando com uma variбvel +1. Quando o SetTimerEx de 1seg repetir 20 vezes, vocк usa o KillTimer... Essa vбriavel que vai contando +1 vai te dar o valor que estб faltando.


Re: SetTimerEx - Luiiiz - 28.01.2017

Nгo entendi direito...


Re: SetTimerEx - Luiiiz - 28.01.2017

Esse й o ъnico jeito?


Re: SetTimerEx - Whoo - 28.01.2017

Recomendo utilizar gettime e um pouco de matemбtica

PHP код:
new
    
TempoCMD[MAX_PLAYERS]
;
CMD:kill(playerid)
{
    new 
TempoRestante = (gettime() - TempoCMD[playerid]), cmdString[128];
    if(
TempoRestante 20)
    {
         
format(cmdString128"Ainda restam %d para vocк utilizar novamente o cmd", (TempoRestante 20) * -1);
         
SendClientMessage(playerid, -1cmdString);
    }
    else
    {
        
SetPlayerHealth(playerid0.0);
        
TempoCMD[playerid] = gettime();
    }
    return 
1;




Re: SetTimerEx - GuiKommander - 29.01.2017

new bool:SUA_VARIAVEL[MAX_PLAYERS] = false; // No Inicio do GM
if(strcmp(cmdtext, "/kill", true) ==0){
if( SUA_VARIAVEL[ playerid ] == true ) return SendClientMessage( playerid, -1, "Sу depois de 20 segundos mano");
SetPlayerHealth(playerid, 0.0);
SUA_VARIAVEL[playerid] = true;
SetTimerEx("Desbloquearcmd", 120000, false, "i", playerid); // 120000 // porque 1000, й a cada 1 segundo! nunca esqueзa
return 1;}
// No fim do GM
forward Desbloquearcmd(playerid);
public Desbloquearcmd(playerid)
{
SUA_VARIAVEL[playerid] = false;
return 1;
}


Re: SetTimerEx - Luiiiz - 29.01.2017

Nгo cara, eu quero й o tempo vei. Getar o tempo. Tipo: Falta 10 segundos, 13 segundos, 15 segundos, 9 segundos


Re: SetTimerEx - HoodScript - 29.01.2017

Quote:
Originally Posted by Luiiiz
Посмотреть сообщение
Comecei a mexer com SetTimerEx a pouco tempo e quero saber como que geto o tempo que falta no SetTimerEx.
Exemplo: Digitei o comando /kill e morri. Sу depois de 20 segundos eu posso voltar a usб-lo. Daн ainda nгo se passou 20 segundos. Ai aparece: Vocк deve esperar .. segundos para usar /kill novamente.
Esse .. seria o tempo que falta...
amigo ъnica forma que conheзo para fazer isto й assim..

desculpe por tar mal organizado mais й sу vocк ajeitar que ta de boa..

PHP код:
SetTimer("MORRER"10001);
new 
tempomorrer[MAX_PLAYERS];
if(
strcmp("/kill"cmdtexttrue) == 0)
{
      new 
string[128];
      if(!(
tempomorrer[playerid] == 0))
      {
            
format(stringsizeof(string), "desculpe, mas vocк deve aguardar mais %d segundos para suicidar-se novamente."tempomorrer[playerid]);
        
SendClientMessage(playerid0xFF0000AAstring);
      }
      else
      {
            
SetPlayerHealth(playerid0);
            
SendClientMessage(playerid0x00FF00AA"vocк se matou.");
            
tempomorrer[playerid] = 20//TEM QUE ESPERAR 20 SEGUNDOS PARA PODER SE MATAR NOVAMENTE
      
}
      return 
1;
}
forward MORRER();
public 
MORRER()
{
      for(new 
0MAX_PLAYERSi++)
      {
            if(
IsPlayerConnected(i))
        {
              if(!(
tempomorrer[i] == 0))
          {
                        
tempomorrer[i] = tempomorrer[i]-1;
          }
        }
      }
      return 
1;




Re: SetTimerEx - AuhMaru - 30.01.2017

PHP код:
new timerKill[MAX_PLAYERS];
CMD:kill(playerid)
{
    if(
gettime() - timerKill[playerid] > 20) {
        
timerKill[playerid] = gettime();
        
SetPlayerHealth(playerid0);
    }
    else {
        static 
str[55];
        
format(strsizeof str"Aguarde %d segundos para usar o comando novamente!"gettime() - timerKill[playerid] - 20);
        
SendClientMessage(playerid, -1str);
    }
    return 
true;