SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 29/01/2017, 12:06 AM   #1
Luiiiz
Huge Clucker
 
Join Date: Nov 2015
Location: Casa
Posts: 241
Reputation: 2
Default SetTimerEx

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...
Luiiiz is offline   Reply With Quote
Old 29/01/2017, 12:09 AM   #2
JonathanFeitosa
High-roller
 
Join Date: Jan 2011
Location: Manaus/AM
Posts: 2,760
Reputation: 346
Default Re: SetTimerEx

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.
__________________
Programador Java & Android
Instagram: jonathanfeitosajfs
JonathanFeitosa is offline   Reply With Quote
Old 29/01/2017, 12:14 AM   #3
Luiiiz
Huge Clucker
 
Join Date: Nov 2015
Location: Casa
Posts: 241
Reputation: 2
Default Re: SetTimerEx

Não entendi direito...
Luiiiz is offline   Reply With Quote
Old 29/01/2017, 12:17 AM   #4
Luiiiz
Huge Clucker
 
Join Date: Nov 2015
Location: Casa
Posts: 241
Reputation: 2
Default Re: SetTimerEx

Esse é o único jeito?
Luiiiz is offline   Reply With Quote
Old 29/01/2017, 12:22 AM   #5
Whoo
Guest
 
Posts: n/a
Default Re: SetTimerEx

Recomendo utilizar gettime e um pouco de matemática

PHP Code:
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;

  Reply With Quote
Old 29/01/2017, 04:05 AM   #6
GuiKommander
Gangsta
 
GuiKommander's Avatar
 
Join Date: Dec 2016
Posts: 811
Reputation: 25
Default Re: SetTimerEx

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;
}
GuiKommander is offline   Reply With Quote
Old 29/01/2017, 06:30 PM   #7
Luiiiz
Huge Clucker
 
Join Date: Nov 2015
Location: Casa
Posts: 241
Reputation: 2
Default Re: SetTimerEx

Não cara, eu quero é o tempo vei. Getar o tempo. Tipo: Falta 10 segundos, 13 segundos, 15 segundos, 9 segundos
Luiiiz is offline   Reply With Quote
Old 29/01/2017, 10:22 PM   #8
HoodScript
Big Clucker
 
Join Date: Dec 2016
Location: Itajaí , SC
Posts: 176
Reputation: 24
Default Re: SetTimerEx

Quote:
Originally Posted by Luiiiz View Post
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 Code:
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;

HoodScript is offline   Reply With Quote
Old 30/01/2017, 01:03 PM   #9
AuhMaru
Big Clucker
 
Join Date: Oct 2016
Posts: 97
Reputation: 11
Default Re: SetTimerEx

PHP Code:
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;

AuhMaru is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] SetTimerEx + TD FalcaoNC Português/Portuguese 2 14/10/2016 07:18 PM
[Ajuda] SetTimerEX Skiinner Português/Portuguese 11 20/07/2014 10:55 PM
[Help] SetTimerEx Mark k Help Archive 1 26/03/2010 07:51 PM
[Help] SetTimerEx Niixie Help Archive 16 26/02/2010 05:05 PM


All times are GMT. The time now is 03:17 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.