GTA-Center.com » Forum http://www.gta-center.com/forums/ |
|
[GUIDA]Timer http://www.gta-center.com/forums/viewtopic.php?f=40&t=647 |
Pagina 1 di 1 |
Autore: | Alby Fire [ 22/01/2011, 14:14 ] |
Oggetto del messaggio: | [GUIDA]Timer |
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 . 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 |
Autore: | Giovanni94m [ 22/01/2011, 14:16 ] |
Oggetto del messaggio: | Re: [GUIDA]Timer |
Ottima guida Alby |
Autore: | barletheking [ 22/01/2011, 14:28 ] |
Oggetto del messaggio: | Re: [GUIDA]Timer |
Bravo |
Autore: | Angelo [ 22/01/2011, 14:29 ] |
Oggetto del messaggio: | Re: [GUIDA]Timer |
bella guida, complimenti |
Autore: | Alby Fire [ 22/01/2011, 14:33 ] |
Oggetto del messaggio: | Re: [GUIDA]Timer |
Grazie ^^ |
Autore: | Peppinux AKA Peppe_Stasu [ 22/01/2011, 15:20 ] |
Oggetto del messaggio: | Re: [GUIDA]Timer |
Complimenti. |
Autore: | mitosking [ 22/01/2011, 19:14 ] |
Oggetto del messaggio: | Re: [GUIDA]Timer |
Fantastica... Continua cosi |
Pagina 1 di 1 | Tutti gli orari sono UTC + 1 ora [ ora legale ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |