APRIAMO PAWNO,
immettiamo questo in cima:
#include <dini>e sotto
newLoggato[MAX_PLAYERS];
creiamo un enum
enum Info { Admin, } new PlayerInfo[MAX_PLAYERS][Info]; ora creiamo un forward che poi riprenderemo [code]forward SaveAccounts();
ora andiamo in OnPlayerCommandText e iniziamo mettendo questo:
public OnPlayerCommandText(playerid, cmd[]) { new tmp[256], tmp2[256], idx, file[128], cmd[256]; cmd = strtok(cmdtext, idx);//se non avete strtok visualizzate in fondo alla guida lo spoiler if(strcmp(cmd, "/registra", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, colore, "USA: /regisra [password]"); new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(file, sizeof(file), "Utenti/%s.ini", name); if(!fexist(file))//se non sapete cosa significherebbe guardate la guida di alexz { dini_Create(file); dini_Set(file, "password", tmp); dini_IntSet(file, "Soldi", 0); dini_IntSet(file, "Skin", 0); SendClientMessage(playerid, colore, "Account Creato !"); } else { SendClientMessage(playerid, colore, "Questo account esiste già!"); return 1; } } return 1; } if(strcmp(cmd, "/login", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, colore, "USA: /login [password]"); if(Loggato[playerid] == 1) return SendClientMessage(playerid, colore, "Hai già eseguito il login"); new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(file, sizeof(file), "Utenti/%s.ini", name); if(fexist(file)) { dini_Get(file, "password"); if(strcmp(tmp,tmp2, true) == 0) { Loggato[playerid] = 1; ResetPlayerMoney(playerid); SetPlayerSkin(playerid, dini_Int(file, "Skin")); GivePlayerMoney(playerid, dini_Int(file, "Soldi")); } else { SendClientMessage(playerid, colore, "La password è sbagliata riprova!"); return 1; } } } return 1; }
ora che abbiamo creato i comandi andiamo a riprendere il forward creato sopra e creiamo il public...
public SaveAccounts() { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(Loggato[i] == 1) { SaveAccount(i); } } } } SaveAccount(playerid) { new name[24], file[128]; GetPlayerName(playerid, name, sizeof(name)); format(file,sizeof(file),"Utenti/%s.ini",name); //Impostazioni dini_IntSet(file, "Soldi",GetPlayerMoney(playerid)); dini_IntSet(file,"Skin", PlayerInfo[playerid][Skin]); return 1; }
ora abbimoa creato il nostro sistema di registrazione possiamo anche creare un istetama admin, vi faccio vedere...
nel comando /registra vedete che abbimao messo
dini_IntSet(file, .....);
noi mettiamo così
dini_IntSet(file, "AdminLevel", 0);
ora andiamo nel comando /login e vediamo
SetPlayerSkin(playerid, dini_Int(file, "Skin");
per mettere ADMIN facciamo sotto
PlayerInfo[playerid][Admin] = dini_Int(file, "AdminLevel");
infine andiamo in SaveAccount(playerid) e sotto a questo
dini_IntSet(file, "Soldi",GetPlayerMoney(playerid));
mettiamo
dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][Admin]);
dopo aver fatto tutto, possiamo sbizzarrirci a creare comandi ADMIN mettendo la stringa
[code]if(PlayerInfo[playerid][Admin] >=livello)
il livello lo settate voi, qualsiasi numero volete, basta che dovete essere admin di quel livello per poter fare il comando
se notate ho messo in tutti i SendClientMessage la parola colore, voi al posto di quella parola, mettete il colore che volete
Messaggio modificato da [F12] phantom il 24 giugno 2010 - 18:05