Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <dini>
- #include <dudb>
- #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
- new logged[MAX_PLAYERS];
- enum pInfo
- {
- AdminLevel,
- cash,
- score,
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- #if defined FILTERSCRIPT
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Blank Filterscript by your name here");
- print("--------------------------------------\n");
- return 1;
- }
- #endif
- public OnPlayerConnect(playerid)
- {
- new name[MAX_PLAYER_NAME];
- new file[128];
- GetPlayerName(playerid, name, sizeof(name));
- format(file,sizeof(file),"/Users/%s.ini",name);
- if(!fexist(file))
- {
- SendClientMessage(playerid, 0xFFFF00AA, "You're not registered, Type /Register (Password).. To get started!");
- logged[playerid] = 0;
- }
- if(fexist(file))
- {
- SendClientMessage(playerid, 0xFFFF00AA, "You're registered, Type /Login (Password.. To continue your account!");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new file[128];
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- format(file,sizeof(file),"/Users/%s.ini",name);
- if(dini_Exists(file))
- {
- dini_IntSet(file, "score", PlayerInfo[playerid][score]);
- dini_IntSet(file, "money", PlayerInfo[playerid][cash]);
- dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][AdminLevel]);
- }
- logged[playerid] = 0;
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- dcmd(register, 8, cmdtext);
- dcmd(login, 5, cmdtext);
- return 0;
- }
- //Dcmd Commands
- dcmd_register(playerid, params[])
- {
- new file[128], pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- format(file, sizeof(file), "\\Users\\%s.ini", pname);
- if(!strlen(params)) return SendClientMessage(playerid, 0xFFFF00AA, "Error:- /Register (Password.. To get an account!");
- if(dini_Exists(file)) return SendClientMessage(playerid, 0xFFFF00AA, "Error:- You're username is already registered!");
- dini_Create(file);
- dini_IntSet(file, "hashPW", udb_hash(params));
- dini_Set(file, "password", params);
- dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][AdminLevel] = 0);
- dini_IntSet(file, "score", PlayerInfo[playerid][score] = 0);
- dini_IntSet(file, "money", PlayerInfo[playerid][cash] = 500);
- new string[128];
- format(string, 128, "You have succesfully registered the nickname %s with password %s!", pname, params);
- SendClientMessage(playerid, 0xFFFF00AA, string);
- logged[playerid] = 1;
- SendClientMessage(playerid, 0xFFFF00AA, "You have been automatically logged in!");
- return 1;
- }
- dcmd_login(playerid, params[])
- {
- new file[128];
- new string[MAX_STRING], pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- format(file, sizeof(file), "\\Users\\%s.ini", pname);
- if(!strlen(params)) return SendClientMessage(playerid, 0xFFFF00AA, "Error:- /Login (Password).. To continue!");
- if(!dini_Exists(file)) return SendClientMessage(playerid, 0xFFFF00AA, "You're account is not registered, So it cannot be logged in.. Try Registering with /Register (Password!");
- if(logged[playerid]) return SendClientMessage(playerid, 0xFFFF00AA, "You are already logged in!");
- new tmp;
- tmp = dini_Int(file, "hashPW");
- if(udb_hash(params) != tmp)
- {
- format(string, 256, "You specified the wrong password for %s!", pname);
- SendClientMessage(playerid, 0xFFFF00AA, string);
- }
- else
- {
- logged[playerid] = 1;
- PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
- SetPlayerScore(playerid, PlayerInfo[playerid][score]);
- new lebel = PlayerInfo[playerid][AdminLevel];
- GivePlayerMoney(playerid, dini_Int(file, "money")-GetPlayerMoney(playerid));
- format(string, 256, "Successfully logged in! (level: %d)!", lebel);
- SendClientMessage(playerid, 0xFFFF00AA, string);
- printf("%s (%i) logged in with password %s", pname, playerid, params);
- }
- return 1;}
Advertisement
Add Comment
Please, Sign In to add comment