[Sistema di registrazione a dialoghi
innanzitutto dovete scaricare l'include Dini creato da DracoBlue ecco <a href="http://dracoblue.net/download/dini-16/35/">qua</a> il link di download.
al termine del download mettete questo file all'interno della cartella /pawno/include
dopodichè aprite la vostra gamemode e in clima mettete:
#include <Dini>
create una costante bool (in questo tutorial io userò la costante loggato)
new bool:loggato[MAX_PLAYERS];
in modo che utilizzando questa costante controlleremo se l'utente è loggato o no
ora andate nel public OnPlayerConnect // consiglio questo
e mettiamo:
new name[256], file[256]; GetPlayerName(playerid, name, 256); format(file, 256, "Utenti/%s.ini", name); if(!fexist(file)) { ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "registrazione","Digita la password","Registrati","Esci"); return 1; }
in questo modo controlla che se il file con il nome dell'utente in estensione ini se non existe con la funzione fexist e il ! sta per controllare se NON esiste allora crea un dialogo definito con dialogid ma consiglio di cambiare nome a stile input, chiamato Registrazione.
Andiamo nell Callback OnDialogResponse e mettiamo:
if(dialogid == dialogid) { new name[256], file[256]; GetPlayerName(playerid, name, 256); format(file, 256, "Utenti/%s.ini", name); dini_Create(file); dini_Set(file, "Password", inputtext); // aggiungete quello che volete con la funzione dini_IntSet SendClientMessage(playerid, colore, "Account Creato"); ShowPlayerDialog(playerid, nome, DIALOG_STYLE_INPUT, "Login","Digita la Password","Entra",£Esci"); return 1; }
in questo modo crea il file nella cartella Utenti e setta al suo interno una variabile password con il valore dell'inputtext ovvero ciò che noi scriviamo
sempre nello stesso callback mettiamo un dialogo per il login
if(dialogid == nome) { new name[256], file[256]; GetPlayerName(playerid, name, 256); format(file, 256, "Utenti/%s.ini", name); if(fexist(file)) // controlla se esiste { if(strcmp(dini_Get(file, "Password"), inputtext, true) == 0) { variabile[1] = dini_Int(file, "nomeattribuitoaldini_IntSet"); SendClientMessage(playerid, colore, "Login Effettuato"); return 1; } else { SendClientMessage(playerid, rosso, "Password errata riprova"); ShowPlayerDialog(playerid, dialog_Log, DIALOG_STYLE_INPUT, "Login", "Immetti la password per loggarti","Login","Esci"); return 1; } }
a questo punto noi abbiamo il sistema quasi completo, dico quai perchè al momento della disconnessione dal server cioò che è successo nel server finirà allora andiamo nell OnPlayerDisconnect e mettiamo:
nomignolo(playerid);
in fondo a tutti metteremo:
nomignolo(playerid) { new name[256], file[256]; GetPlayerName(playerid, name, 256); format(file, 256, "LARP/Utenti/%s.ini", name); dini_IntSet(file, "nome attribuito", variabile in cui salvarlo dal gioco); }
io ho scritto "variabile in cui salvarlo dal gioco", io esempio metterei
dini_IntSet(file, "nomeattribuito", PlayerInfo[playerid][pAdmin]);
in questo modo salva nella variabile PlayerInfo alla sezione pAdmin il valore corrispondente alla variabile nomeattribuito
ho messo PlayerInfo, perchè è il più comune
Guida Interamente Creata da [f12] phantom è vietata la riproduzione totale o spezzata senza la diretta autorizzazione via PM
Messaggio modificato da [F12] phantom il 09 febbraio 2011 - 21:04