Escolar Documentos
Profissional Documentos
Cultura Documentos
INC
Phanto
1 http://pawnoscripter.forumfree.it
Phanto
2 http://pawnoscripter.forumfree.it
Phanto
OnPlayerConnect(playerid) { new nome[25]; //Queste due variabili consiglio di definirle fuori dale funzioni, perch saranno usate altre volte new stringa[250]; GetPlayerName(playerid,nome,sizeof(nome)); format(stringa,sizeof(stringa),Utenti/%s,nome); if(!dini_Exists(stringa)) //Controlliamo se non esiste il file ShowPlayerDialog(playerid,DIALOGREG,DIALOG_STYLE_INPUT,Registrazione,Benvenuto nel server. Immetti una password per registrarti,Registrati,); else //Se il file esiste ShowPlayerDialog(playerid,DIALOGLOGIN,DIALOG_STYLE_INPUT,Login,Bentornato nel server. Immetti la password per loggarti,Login,); return 1; }
Ora dobbiamo decidere cosa salvare, prima per definiamo un array per ogni player, dove verranno caricati alcuni dati enum InfoGiocatore{Livello,Uccisioni,Morti,Loggato}; new Giocatore[MAX_PLAYERS][InfoGiocatore]; Quali sono le variabili che andremo a salvare? In questa guida andremo a creare un file che salver: -Un valore numerico che rappresenta il livello -Un valore numerico che rappresenta le uccisioni -Un valore numerico che rappresenta i morti -Una stringa per la password Ora andiamo a gestire gli eventi quando ci si registra: OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid==DIALOGREG) { if(!response) return Kick(playerid); //Kicka il player che non si registra if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOGREG,DIALOG_STYLE_INPUT,Registrazione,INSERISCI UNA PASSWORD\n Immetti una password per registrarti,Registrati,); GetPlayerName(playerid,nome,sizeof(nome)); format(stringa,sizeof(stringa),Utenti/%s,nome); dini_Create(stringa); //Creiamo il file per laccount utente dini_IntSet(stringa,Livello,0); dini_IntSet(stringa,Uccisioni,0); dini_IntSet(stringa,Morti,0); dini_Set(stringa,Password,inputtext); ShowPlayerDialog(playerid,DIALOGLOGIN,DIALOG_STYLE_INPUT,Login,Ora sei registrato. Immetti la password per loggarti,Login,); return 1; } . }
3 http://pawnoscripter.forumfree.it
Phanto
OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { .. //Qui dovrebbe esserci levento per il DIALOGREG if(dialogid==DIALOGLOGIN) { if(!response ) return Kick(playerid); //Kicka il player che non si logga GetPlayerName(playerid,nome,sizeof(nome)); format(stringa,sizeof(stringa),Utenti/%s,nome); new Pass[250]; Pass=dini_Get(stringa,Password); if(strcmp(Pass,inputtext,true) || !strlen(inputtext)) //Controlla se la password corretta { ShowPlayerDialog(playerid,DIALOGLOGIN,DIALOG_STYLE_INPUT,Login,PASSWORD INCORRETTA \nImmetti la password per loggarti,Login,); return 1; } Giocatore[playerid][Livello]=dini_Int(stringa,Livello); //Qui carica i dati del giocatore Giocatore[playerid][Morti]=dini_Int(stringa,Morti); Giocatore[playerid][Uccisioni]=dini_Int(stringa,Uccisioni); Giocatore[playerid][Loggato]=1; //Ci servir per quando si disconnetter return 1; } . }
Ora ci manca solo il salvataggio dati del player. In questo caso faremo che i dati verranno salvati alla disconnessione del player dal server. Andiamo quindi nel callback OnPlayerDisconnect(playerid) OnPlayerDisconnect(playerid) { if(!Giocatore[playerid][Loggato]) return 1; //Se il giocatore non loggato non salva i dati GetPlayerName(playerid,nome,sizeof(nome)); format(stringa,sizeof(stringa),Utenti/%s,nome); dini_IntSet(stringa,Livello,Giocatore*playerid+*Livello+); //Salva tutti i valori che ci interessano dini_IntSet(stringa,Morti,Giocatore*playerid+*Morti+); dini_IntSet(stringa,Uccisioni,Giocatore*playerid+*Uccisioni+); Giocatore[playerid][Loggato]=0; //Cancelliamo lo status loggato per il player return 1; }
4 http://pawnoscripter.forumfree.it
Phanto
Ora dovremmo solo aggiungere nella funzione OnPlayerDeath(playerid,killerid,reason) alcune cose per i dati da salvare OnPlayerDeath(playerid,killerid,reason) { Giocatore[playerid][Morti]++; //Aumentiamo di uno il valore dei dati da salvare Giocatore[killerid][Uccisioni]++; return 1; }
Giocatore[playerid][Livello+ magari lo potete usare per livelli admin basilari per usare comandi e quantaltro.
Grazie per aver letto! Se avete suggerimenti fate riferimento alla discussione originale su http://pawnoscripter.forumfree.it in sezione guide. Cordiali saluti
Phanto
5 http://pawnoscripter.forumfree.it