Oggi è 01/05/2025, 9:02

Tutti gli orari sono UTC + 1 ora [ ora legale ]



Regole del forum


- Dare titoli sensati, non titoli tipo "Aiuto" oppure "Problema", i topic analoghi verranno immediatamente chiusi.
- Utilizzare http://www.pastebin.com per script superiori a 20 righe.



 Pagina 1 di 1 [ 17 messaggi ] 

  Apri un nuovo argomento Rispondi all’argomento

  Stampa pagina

Autore Messaggio
 Oggetto del messaggio: [HELP] timer.
MessaggioInviato: 31/01/2011, 20:54 
Avatar utente
Utente

Iscritto il: 19/01/2011
Messaggi: 445
Località: Cagliari,Sardegna
Favourite GTA: San Andreas

Karma
0


Non connesso
Salve, nella mia Gm, sto inserendo dei comandi "Bonus" che il player può digitare solo se ha tot punti. Ho pensato però di fare un sistema che non permetta al player di usare un bonus subito dopo un altro, devono passare almeno 5 minuti.
Allora ho fatto:

Inizio Gm:
Codice:
new Bon[MAX_PLAYERS];
forward ResetBonus();


OnPlayerConnect:
Codice:
Bon[playerid] = 0;


OnPlayerCommandText: (esempio)
Codice:
if(!strcmp(cmdtext, "/bonus rhino", true))
{
  if (Bon[playerid] != 0)return SendClientMessage(playerid, LIGHTRED, "ERRORE: hai già usato un bonus di recente, aspetta."
  {
    //Funzioni
   Bon[playerid] == 1;
   SetTimer("ResetBonus",60000,false);//60 sec
  }
  return 1;
}


Fuori da ogni Callback:
Codice:
public ResetBonus()
{
    Bon[playerid] = 0;
    SendClientMessage(playerid, LIGHTRED, "Ora puoi riutilizzare un Bonus");
}


Ora mi chiedo. Siccome con tutti i comandi il bonus si attiva, devo fare un timer per ogni comando per riportarlo a 0? Se si ci penso io, se no, come si fa? ghgh

_________________
Gamemodes:
GangWar/Rp v1.0.3: Download!


Top
 E-mail  
 

 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:03 
Avatar utente
Utente

Iscritto il: 31/10/2010
Messaggi: 901
Località: Universo - Via Lattea - Sistema Solare - Pianeta Terra - Europa - Italia - Sicilia - Grammichele(CT)
Favourite GTA: San Andreas
Xfire: Privato

Karma
2


Non connesso
c'è qualche piccolo bug, prova così:

In Cima
Codice:
new bool: Bon[MAX_PLAYERS];
forward ResetBonus(playerid);

In OnPlayerCommandText

if(!strcmp(cmdtext, "/bonus rhino", true))
{
    if (Bon[playerid])return SendClientMessage(playerid, LIGHTRED, "ERRORE: hai già usato un bonus di recente, aspetta."
    else
    {
        //Funzioni
        Bon[playerid] = true;
        SetTimerEx("ResetBonus", 60000, false, "d", playerid); //60 sec
    }
    return 1;
}

Fuori da tutto:

public ResetBonus(playerid)
{
    Bon[playerid] = false;
    SendClientMessage(playerid, LIGHTRED, "Ora puoi riutilizzare un Bonus");
}


sostituiscito tutto il tuo codice con questo, per maggiori info sul settimerex leggi la guida di alby:
viewtopic.php?f=40&t=647

_________________
Immagine


I Miei Filterscript Per Sa-Mp

Rampone System By me and Mik_Teck
Autovelox System By me and Mik_Teck
Metro System By me
pLaserPointer By me

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:04 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
Codice:
if(!strcmp(cmdtext, "/bonus rhino", true))
{
  if (Bon[playerid] != 0)return SendClientMessage(playerid, LIGHTRED, "ERRORE: hai già usato un bonus di recente, aspetta."
  {
    //Funzioni
   Bon[playerid] == 1; // QUI
   SetTimer("ResetBonus",60000,false);//60 sec
  }
  return 1;
}


Intanto dove ho messo il commento "QUI" devi togliere un =... Cioè ce ne vuole solo uno. Comunque è impossibile che si attiva con tutti i comandi. Dovrebbe farsi solo con questo.


p.S: Spiega meglio il problema che non ho capito bene...

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:06 
Avatar utente
Utente

Iscritto il: 18/11/2010
Messaggi: 352
Località: Valenza(AL)
Favourite GTA: San Andreas

Karma
0


Non connesso
Cita:
Codice:
Bon[playerid] == 1;

Guarda che è sbagliato questo codice, di " = " ce ne va uno quando bisogna settare le variabili... comunque non ho capito, tu qualsiasi comando fai, la variabile Bon viene settata ad 1 sul player??
Oppure intendi dire che per ogni comando hai bisogno che il player attivi il bonus?

_________________
Firma cancellata. Ripassa il regolamento.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:10 
Avatar utente
Utente

Iscritto il: 19/01/2011
Messaggi: 445
Località: Cagliari,Sardegna
Favourite GTA: San Andreas

Karma
0


Non connesso
La mia richiesta è un altra, mi sono accorto di aver sbagliato, è un semplice errore di battitura, che si può correggere. No, praticamente, ho fatto 3 - 4 comandi bonus, (stile COD) che vanno a punti. Per esempio, con 50 punti, puoi chiamare un bombardamento. Solo che, per evitare casini in un eventuale server, ho deciso di fare che se per esempio un player fa /Bombardamento, /CarroArmato, /Elicottero ecc, deve aspettare un Tot di tempo, prima di poter riusare uno di questi comandi. Volevo sapere come applicare un UNICO TIMER, senza doverne fare di diversi. E' il lavoro del timer unico per 4-5 comandi che non so fare.

_________________
Gamemodes:
GangWar/Rp v1.0.3: Download!


Ultima modifica di Francesco_Ronaldo il 31/01/2011, 21:11, modificato 1 volta in totale.

Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:11 
Avatar utente
Utente

Iscritto il: 31/10/2010
Messaggi: 901
Località: Universo - Via Lattea - Sistema Solare - Pianeta Terra - Europa - Italia - Sicilia - Grammichele(CT)
Favourite GTA: San Andreas
Xfire: Privato

Karma
2


Non connesso
Devi usare il SetTimerEx, nel mio post di ho fatto l'esempio col codice...

_________________
Immagine


I Miei Filterscript Per Sa-Mp

Rampone System By me and Mik_Teck
Autovelox System By me and Mik_Teck
Metro System By me
pLaserPointer By me

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:12 
Avatar utente
Utente

Iscritto il: 19/01/2011
Messaggi: 445
Località: Cagliari,Sardegna
Favourite GTA: San Andreas

Karma
0


Non connesso
Ok, ma devo creare un timer per ogni comando? Oppure posso creare un unico timer, che comprenda 4 comandi?

_________________
Gamemodes:
GangWar/Rp v1.0.3: Download!


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:16 
Avatar utente
Utente

Iscritto il: 31/10/2010
Messaggi: 901
Località: Universo - Via Lattea - Sistema Solare - Pianeta Terra - Europa - Italia - Sicilia - Grammichele(CT)
Favourite GTA: San Andreas
Xfire: Privato

Karma
2


Non connesso
No basta un solo timer, perchè non credo tu possa scrivere 4 comandi contemporaneamente xD

_________________
Immagine


I Miei Filterscript Per Sa-Mp

Rampone System By me and Mik_Teck
Autovelox System By me and Mik_Teck
Metro System By me
pLaserPointer By me

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:16 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
No puoi creare un solo Timer. Ti conviene però fare cosi:

Ad ogni comando metti "KillTimer(ResetBonus)" e sotto KillTimer aggiungi SetTimerEx("ResetBonus", 60000, false, "d", playerid);

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:18 
Avatar utente
Utente

Iscritto il: 31/10/2010
Messaggi: 901
Località: Universo - Via Lattea - Sistema Solare - Pianeta Terra - Europa - Italia - Sicilia - Grammichele(CT)
Favourite GTA: San Andreas
Xfire: Privato

Karma
2


Non connesso
Non serve il KillTimer perchè ogni comando può essere fatto quando il timer si stoppa...

_________________
Immagine


I Miei Filterscript Per Sa-Mp

Rampone System By me and Mik_Teck
Autovelox System By me and Mik_Teck
Metro System By me
pLaserPointer By me

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:20 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
Però è sempre utile aggiungerlo visto che sicuramente userà dei bonus aggiuntivi.

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:24 
Avatar utente
Utente

Iscritto il: 31/10/2010
Messaggi: 901
Località: Universo - Via Lattea - Sistema Solare - Pianeta Terra - Europa - Italia - Sicilia - Grammichele(CT)
Favourite GTA: San Andreas
Xfire: Privato

Karma
2


Non connesso
No, non serve perchè il comando controlla se il player ha quella variabile attiva, se sarà così allora il comando returnerà il messaggio.

Comunque Francesco hai risolto ?

_________________
Immagine


I Miei Filterscript Per Sa-Mp

Rampone System By me and Mik_Teck
Autovelox System By me and Mik_Teck
Metro System By me
pLaserPointer By me

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:27 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
Ok grazie dell'info ;)

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:42 
Avatar utente
Utente

Iscritto il: 18/11/2010
Messaggi: 352
Località: Valenza(AL)
Favourite GTA: San Andreas

Karma
0


Non connesso
Guarda che per stoppare un timer quando ha finito la sua funzione basta settare la variabile booleana a false :what: senza complicarsi la vita con dei KillTimer(che fra l'altro buggano se messi in questo modo)

_________________
Firma cancellata. Ripassa il regolamento.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 21:48 
Avatar utente
Utente

Iscritto il: 22/12/2010
Messaggi: 1098
Località: Agrigento (Sicilia)
Favourite GTA: San Andreas
Xfire: In PM

Karma
0


Non connesso
Okok ho ancora molto da imparare sui Timer...

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 22:06 
Avatar utente
Utente

Iscritto il: 19/01/2011
Messaggi: 445
Località: Cagliari,Sardegna
Favourite GTA: San Andreas

Karma
0


Non connesso
No, se magari fate parlare Angelo, invece di darvi lezioni sui timer (Alby e mitos) forse si riesce a risolvere :asd:
Angelo provo a spiegare CHIARAMENTE per l'ultima volta, postando anche i comandi ;):

Allora, ricapitolando: io ho fatto questi comandi:
Codice:
//Comando Bonus M3
   if(!strcmp(cmdtext, "/bonus m3", true))
   {
        if(gTeam[playerid] != Taskforce)return SendClientMessage(playerid, LIGHTRED, "ERRORE: Bonus esclusivo per la TaskForce");
        {
        if(Bonus <= 20)return SendClientMessage(playerid, LIGHTRED, "ERRORE: Servono 20 punti per questo bonus. ");
        {
           SetPlayerScore(playerid, GetPlayerScore(playerid) -20);
           format(string, 128, "%s ha spawnato un Abram M3, al prezzo di 20 punti.", pName);
         SendClientMessageToAll(ORANGE, string);
         CreateVehicle(432, -370.5325, 2356.4915, 29.7561, 187.8748, 0, 0, 0);
           Bon[playerid] = 1;
        }
        }
        return 1;
   }

   //Comando Bonus AH-6
    if(!strcmp(cmdtext, "/bonus ah6", true))
   {

     if(gTeam[playerid] != Taskforce)return SendClientMessage(playerid, LIGHTRED, "ERRORE: Bonus esclusivo per la TaskForce");
      {
      if(Bonus <= 30)return SendClientMessage(playerid, LIGHTRED, "ERRORE: Servono 30 punti per questo bonus. ");
      {
         SetPlayerScore(playerid, GetPlayerScore(playerid) -30);
         format(string, 128, "%s ha spawnato un AH-6 Little Bird, al prezzo di 30 punti.", pName);
       SendClientMessageToAll(ORANGE, string);
       SetPlayerPos(playerid, -489.3343, 2121.0906, 134.2246);
       CreateVehicle(447, -482.2934, 2125.7219, 133.7532, 100.2737, 0, 0, 0);
       Bon[playerid] = 1;
       }
     } 
      return 1;
   }
    //Comando Bonus AH-6
    if(!strcmp(cmdtext, "/bonus apache", true))
   {
      if(gTeam[playerid] != Taskforce)return SendClientMessage(playerid, LIGHTRED, "ERRORE: Bonus esclusivo per la TaskForce");
        {
       
          if(Bonus <= 50)return SendClientMessage(playerid, LIGHTRED, "ERRORE: Servono 50 punti per questo bonus. ");
          {
             SetPlayerScore(playerid, GetPlayerScore(playerid) -50);
             format(string, 128, "%s ha spawnato un Apache, al prezzo di 50 punti.", pName);
           SendClientMessageToAll(ORANGE, string);
           SetPlayerPos(playerid, -281.2365, 2151.3936, 112.8257);
           CreateVehicle(425, -280.1244, 2158.8660, 112.7489, 184.1964, 0, 0, 0);
             Bon[playerid] = 1;
         }
        }
        return 1;
    }


Vorrei fare un Timer, che faccia ritornare Bon[playerid] a 0, perchè, facendo questi comandi, Bon[playerid], diventa 1.
Questo timer, mi serve per evitare che i players usino Bonus in continuazione.
Il problema, è che Bon[playerid], diventa 1 in più comandi, come potete vedere. Devo fare più timer o ne basta solo uno per farlo tornare a 0 in tutti i casi?

_________________
Gamemodes:
GangWar/Rp v1.0.3: Download!


Top
 E-mail  
 
 Oggetto del messaggio: Re: [HELP] timer.
MessaggioInviato: 31/01/2011, 22:29 
Avatar utente
Utente

Iscritto il: 31/10/2010
Messaggi: 901
Località: Universo - Via Lattea - Sistema Solare - Pianeta Terra - Europa - Italia - Sicilia - Grammichele(CT)
Favourite GTA: San Andreas
Xfire: Privato

Karma
2


Non connesso
allora da come ho capito io, quando un player fa un bonus a esso viene settata la variabile Bon a 1, e viene settato un timer sul player (in questo caso un timerex) ora vorrei capire se durante questo timer il player non possa utilizzare un comando bonus o tutti i comandi bonus.

Se il player durante questo timer non può utilizzare tutti i cmd /bonus, allora usa il codice che ho messo nel primo post.

_________________
Immagine


I Miei Filterscript Per Sa-Mp

Rampone System By me and Mik_Teck
Autovelox System By me and Mik_Teck
Metro System By me
pLaserPointer By me

Immagine


Top
 E-mail  
 
Visualizza ultimi messaggi:  Ordina per  
 Pagina 1 di 1 [ 17 messaggi ] 

  Apri un nuovo argomento Rispondi all’argomento

Tutti gli orari sono UTC + 1 ora [ ora legale ]



Chi c’è in linea

Visitano il forum: Nessuno e 15 ospiti


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
cron