Oggi è 28/03/2024, 14:55

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





 Pagina 1 di 1 [ 7 messaggi ] 

  Apri un nuovo argomento Rispondi all’argomento

  Stampa pagina

Autore Messaggio
 Oggetto del messaggio: [GUIDA]Timer
MessaggioInviato: 22/01/2011, 14:14 
Avatar utente
Utente

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

Karma
0


Non connesso
Salve, in questa guida vi spiegherò come meglio potrò come utilizzare i timer su sa-mp.
Ci sono 2 diversi tipi di timer
• Il SetTimerEx: la sua struttura si presenta così:
Codice:
SetTImerEx(funzione, intervallo, variabile booleana, formato variabile, parametri)


La Funzione: consiste nel nome del callback o della funzione che dovrà far funzionare il timer.
L'Intervallo: è settato in ms (millisecondi) e serve ad indicare dopo quanto dovrà agire la funzione, o se la variabile booleana sarà settata a true, indica ogni quanto agirà la funzione
La Variabile Booleana: serve ad indicare se il timer dovrà ripetersi o meno
Il formato variabile: serve ad indicare che tipo di variabile si andrà ad utilizzare nel timer, esistono 6 diversi tipi di variabili:
Formati i e d, servono per timer con variabili integer (con numeri interi)
Formato a, serve a creare un timer con variabili in array
Formato s, serve a creare un timer con variabili string per le stringhe di testo
Formato f, serve a creare un timer con variabili float (con numeri decimali)
Formato b, serve a creare un timer con variabili booleane (variabili che possono assumere 2 valori true o false)
Parametri: infine ci sono i parametri che servono a specificare il timer, esempio:
Codice:
forward vita(playerid);
public vita(playerid)
{
    SetPlayerHealth(playerid, 250);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/vita", cmdtext, true) == 0)
    {
      SetTimerEx("vita", 500, true, "d", playerid);
      return 1;
    }
    return 0;
}

In questo caso abbiamo creato un timer che setta la vita a 250 HP, ogni 500ms(che equivalgono a mezzo secondo), si ripete (notare la variabile booleana settata a true), e con il parametro settato per il player che digiterà il comando (playerid)

• Il SetTimer: questo timer a differenza del SetTimerEx ha molti meno parametri da settare e la sua struttura si presenterà più semplice:
Codice:
SetTimer(funzione, intervallo, variabile booleana)


La Funzione: consiste nel nome del callback o della funzione che dovrà far funzionare il timer.
L'Intervallo: è settato in ms (millisecondi) e serve ad indicare dopo quanto dovrà agire la funzione, o se la variabile booleana sarà a true, indica ogni quanto agirà la funzione
La Variabile Booleana: serve ad indicare se il timer dovrà ripetersi o meno.
Presenta questi 3 parametri da settare che hanno lo stesso significato del SetTimerEx.
Esempio:
Codice:
forward vita(playerid);
public vita(playerid)
{
    SetPlayerHealth(playerid, 250);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/vita", cmdtext, true) == 0)
    {
      SetTimer("vita", 500, true);
      return 1;
    }
    return 0;
}

Bene, a questo punto avrete settato il vostro timer, scegliendo il SetTimerEx o il SetTimer più semplice, ora avrete bisogno sicuramente anche di un modo con cui stoppare il timer, per farlo dovrete utilizzare la funzione

• KillTimer: questa funzione nativa serve a stoppare il timer da voi startato prima, la struttura del KillTimer si presenta così:
Codice:
KillTimer(timerid)

Il timerid: sarà la variabile da voi assegnata al timer
Per poterlo utilizzare dovrete assegnare una variabile al vostro SetTimer/SetTimerEx, esempio:
Codice:
//in Alto
new timerVita[MAX_PLAYERS];
//CallBack
forward vita(playerid);
public vita(playerid)
{
    SetPlayerHealth(playerid, 250);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/vita", cmdtext, true) == 0)
    {
      timerVita[playerid] = SetTimer("vita", 500, true);
      return 1;
    }
    if (strcmp("/vitaoff", cmdtext, true) == 0)
    {
      KillTimer(timerVita[playerid]);
      return 1;
    }
    return 0;
}

A questo punto facendo /vitaoff avrete "killato" (stoppato) il vostro timer e potrete subire danni senza che il timer ricarichi la vita, i timers possono essere killati o risettati infinite volte.

N.B: se nella vostra GameMode utilizzerete molti timers con intervalli di pochi millisecondi, il vostro server laggherà.

Guida creata da: Alby Fire

Spero che sarà di aiuto a qualcuno che vorrà imparare l'uso e la sintassi dei timer :D.
I commenti sono ben accetti, non lo sono i "facepalm" o altri commenti e faccine sgradevoli, se nella guida ho commesso qualche errore o dimenticato qualcosa di cruciale, scrivetelo sotto e lo aggiungerò personalmente.
Alla prossima :awesome:

_________________
Firma cancellata. Ripassa il regolamento.


Ultima modifica di Alby Fire il 22/01/2011, 15:15, modificato 5 volte in totale.

Top
 E-mail  
 

 Oggetto del messaggio: Re: [GUIDA]Timer
MessaggioInviato: 22/01/2011, 14:16 
Avatar utente
Administrator

Iscritto il: 02/09/2010
Messaggi: 1349
Località: Agrigento
Favourite GTA: Vice City
PlayStation Network: Giovanni94m
Xfire: Giovanni94m
Steam: Giovanni94m

Karma
10


Non connesso
Ottima guida Alby ;)

_________________
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Timer
MessaggioInviato: 22/01/2011, 14:28 
Avatar utente
Moderatore

Iscritto il: 28/10/2010
Messaggi: 919
Località: Veduggio con Colzano (Milano-Monza)
Favourite GTA: San Andreas
PlayStation Network: Nessuno
Xbox Live: Nessuno
Xfire: barle97

Karma
1


Non connesso
Bravo

_________________
disasm 0xFFFF00 1: LE HANTENNE DEL RUTER SI MVONO DA SL!11!1!!1
[EPD]Giovanni94m: AHSUAHSAUSHAUSAHSAU
disasm 0xFFFF00 1: bella questa asd

[EPD]Giovanni94m: io non riesco a trovare un gioco che ci giocavo su ps1
[EPD]Giovanni94m: non ricordo il nome
[EPD]Giovanni94m: era un omino rosa
[EPD]Giovanni94m: ...
[BCD]barle_the_king: forse cercavi omino bianco [cit. google]
[BCD]barle_the_king: auhsahusuha
[EPD]Giovanni94m: no ahsau
[BCD]barle_the_king: firma duhahudshue

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Timer
MessaggioInviato: 22/01/2011, 14: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
bella guida, complimenti ;)

_________________
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: [GUIDA]Timer
MessaggioInviato: 22/01/2011, 14:33 
Avatar utente
Utente

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

Karma
0


Non connesso
Grazie ^^

_________________
Firma cancellata. Ripassa il regolamento.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Timer
MessaggioInviato: 22/01/2011, 15:20 
Banned

Iscritto il: 31/10/2010
Messaggi: 1363
Località: Sicilia
Favourite GTA: San Andreas
Xfire: peppinux

Karma
-10


Non connesso
Complimenti.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA]Timer
MessaggioInviato: 22/01/2011, 19:14 
Avatar utente
Utente

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

Karma
0


Non connesso
Fantastica... Continua cosi ;)

_________________
Immagine


Top
 E-mail  
 
Visualizza ultimi messaggi:  Ordina per  
 Pagina 1 di 1 [ 7 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 19 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