GTA-Center.com » Forum http://www.gta-center.com/forums/ |
|
[GUIDA] Utilizzo di EasyINI http://www.gta-center.com/forums/viewtopic.php?f=57&t=950 |
Pagina 1 di 1 |
Autore: | barletheking [ 11/03/2011, 21:43 ] |
Oggetto del messaggio: | [GUIDA] Utilizzo di EasyINI |
Guida all'utilizzo di EasyINI Introduzione Su SA:MP siamo abituati a salvare parametri nei file usando i natives oppure Dini. Anche su IV:MP si può fare, utilizzando EasyINI creato da Jones. Inizio Scaricate l'include da qui: http://www.gta-center.com/area_download/index.php?act=view&id=1795 Inseritelo nella cartella scripts del server. Quindi, dobbiamo includerlo nella nostra GM, utilizzando nell'evento onScriptInit() la funzione dofile: Codice: function onScriptInit() { dofile("scripts/easyini.nut"); } addEvent("scriptInit", onScriptInit); Ora vi spiego il funzionamento e i parametri delle funzione per poi iniziare a creare un sistema account. EasyINI Viene utilizzata per creare il file su cui andremo a scrivere i dati. Esempio: Codice: local file = EasyINI("file.ini"); setKey(section, keyname, keyvalue) Viene utilizzata per scrivere nel file i dati. Esempio: Codice: local file = EasyINI("file.ini"); file.setKey("InfoPlayer", "Vita", "100"); Se si apre il file "file.ini" con il blocco note, si vedrà Codice: [InfoPlayer] Vita=100 saveData() Viene utilizzata per effettuare i cambiamenti sul file. Esempio: Codice: local file = EasyINI("file.ini"); file.setKey("InfoPlayer", "Vita", "100"); file.saveData(); getKey(section, keyname) Viene utilizzata per prelevare il valore da un file. Esempio: Codice: local file = EasyINI("file.ini"); file.getKey("InformazioniServer", "Nome"); Creazione sistema account Ora possiamo proseguire con la creazione del sistema account. Creiamo due funzioni: una che serve per salvare i dati, e una per leggere i dati del player che si sta connettendo/disconnettendo. Codice: function salvaAccount(playerid) { local file = EasyINI(GetPlayerName(playerid) + ".ini"); // Creiamo il file con il nome del player file.setKey("Info", "Vita", getPlayerHealth(playerid).tostring()); // Salviamo la vita file.setKey("Info", "Soldi", getPlayerMoney(playerid).tostring()); // Salviamo i soldi file.saveData(); // Apportiamo le modifiche al file } La funzione tostring() serve a convertire un qualsiasi tipo come integer o float in stringa, cosa vantaggiosa rispetto a Pawn, che ci fa risparmiare di usare la funzione format. Ora dobbiamo fare la funzione che carica l'account. In fondo mettiamo una funzione creata da Boylett per controllare se un file esiste: Codice: function fileExists(filename) { try { local testfile = file(filename, "r"); } catch(e) { return false; } return true; } Dopodiche facciamo la funzione vera e propria: Codice: function caricaAccount(playerid) { if(!fileExists(getPlayerName(playerid) + ".ini")) // Controlliamo se il file non esiste { return true; // Se non esiste non esegui il codice seguente } // Altrimenti... local file = EasyINI(getPlayerName(playerid) + ".ini"); // Carichiamo il file setPlayerHealth(file.getKey("Info", "Vita").tofloat()); // Settiamo la vita salvata setPlayerMoney(file.getKey("Info", "Soldi").tointeger()); // Settiamo i soldi salvati } Le funzioni tofloat() e tointeger() servono a convertire una stringa in float o integer. Nella vita abbiamo utilizzato tofloat() perchè sappiamo che la vita è un valore in float, invece per i soldi abbiamo utilizzato tointeger() perchè i soldi sono di tipo integer. Non ci resta altro che usare le funzioni per il salvataggio del file. Negli eventi onPlayerConnect e onPlayerDisconnect mettiamo: Codice: function onPlayerConnect(playerid) { sendMessageToAll(getPlayerName(playerid) + " è entrato nel server!", 0xFFFFFFAA, false); caricaAccount(playerid); return 1; } addEvent("playerConnect", onPlayerConnect); Codice: function onPlayerDisconnect(playerid, reason) { sendMessageToAll(getPlayerName(playerid) + " è uscito dal server!", 0xFFFFFFAA, false); salvaAccount(playerid); return 1; } addEvent("playerDisconnect", onPlayerDisconnect); Bene, abbiamo appena creato il nostro primo sistema account per IV:MP Alla prossima guida! Guida creata interamente da barletheking solo ed esclusivamente per GTA-Center.com Copia non autorizzata senza l'autorizzazione del sottoscritto. |
Autore: | Giovanni94m [ 11/03/2011, 22:18 ] |
Oggetto del messaggio: | Re: [GUIDA] Utilizzo di EasyINI |
Fantastico lavoro barle k+ |
Autore: | barletheking [ 11/03/2011, 22:20 ] |
Oggetto del messaggio: | Re: [GUIDA] Utilizzo di EasyINI |
Wow grazie |
Autore: | Angelo [ 11/03/2011, 22:31 ] |
Oggetto del messaggio: | Re: [GUIDA] Utilizzo di EasyINI |
Fantastica guida, te lo sei meritato il K+ |
Autore: | barletheking [ 11/03/2011, 22:34 ] |
Oggetto del messaggio: | Re: [GUIDA] Utilizzo di EasyINI |
Grazie |
Autore: | Peppinux AKA Peppe_Stasu [ 11/03/2011, 23:48 ] |
Oggetto del messaggio: | Re: [GUIDA] Utilizzo di EasyINI |
Nice guide |
Autore: | mitosking [ 12/03/2011, 16:43 ] |
Oggetto del messaggio: | Re: [GUIDA] Utilizzo di EasyINI |
Fantastica guida |
Autore: | andryXoX [ 14/03/2011, 21:19 ] |
Oggetto del messaggio: | Re: [GUIDA] Utilizzo di EasyINI |
Non avrei saputo spiegare meglio, bravissimo (p.s. alcune cose non le sapevo ) |
Autore: | barletheking [ 14/03/2011, 21:42 ] |
Oggetto del messaggio: | Re: [GUIDA] Utilizzo di EasyINI |
Thanks xD |
Autore: | S&C [ 16/08/2011, 22:40 ] |
Oggetto del messaggio: | Re: [GUIDA] Utilizzo di EasyINI |
Scusa, anche se la guida e vcchia ma qui: Codice: function caricaAccount(playerid) { if(!fileExists(getPlayerName(playerid) + ".ini")) // Controlliamo se il file non esiste { return true; // Se non esiste non esegui il codice seguente } // Altrimenti... local file = EasyINI(getPlayerName(playerid) + ".ini"); // Carichiamo il file setPlayerHealth(file.getKey("Info", "Vita").tofloat()); // Settiamo la vita salvata setPlayerMoney(file.getKey("Info", "Soldi").tointeger()); // Settiamo i soldi salvati } Non dovrebbe returnare false (0) se non esiste? |
Autore: | barletheking [ 27/08/2011, 0:10 ] |
Oggetto del messaggio: | Re: [GUIDA] Utilizzo di EasyINI |
Ma hai letto? Se non trova il file returna true. |
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/ |