Can login with any password -
izeatfishz - 14.02.2015
I'm using my GM, and you can login to any admin/testers account with a random password, but if you try it with a regular players acc it wont work.
REGISTER CODE:
pawn Код:
else if(dialogid == 1) // Register
{
if(response)
{
if(strlen(inputtext) < 2)
{
SendClientMessage(playerid, COLOR_GREY, "Password can't be shorter than 2 characters.");
SSSShowDialog(playerid, 1);
return 1;
}
if(strlen(inputtext) > 20)
{
SendClientMessage(playerid, COLOR_GREY, "Password can't be longer than 20 characters.");
SSSShowDialog(playerid, 1);
return 1;
}
new file[64], IP[16], string[128], password[256];
format(file, sizeof(file), "users/%s.ini", RPNU(playerid));
if(!dini_Exists(file))
{
GetPlayerIp(playerid, IP, sizeof(IP));
dini_Create(file);
WP_Hash(password, sizeof(password), inputtext);
dini_Set(file, "Password", password);
dini_Set(file, "IP", IP);
PlayerInfo[playerid][pLevel] = 1;
dini_IntSet(file, "Level", PlayerInfo[playerid][pLevel]);
format(string, sizeof(string), "SERVER: {FFFFFF}You have successfully registered on {FF6347}Lakeside Valley Roleplay{FFFFFF}. (Password: %s)", inputtext);
SendClientMessage(playerid, COLOR_GREY, string);
SSSShowDialog(playerid, 2);
}
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER: {FFFFFF}You have chosen to quit the server.");
Kick(playerid);
}
LOGIN CODE:
pawn Код:
else if(dialogid == 2) // Login
{
if(response)
{
new file[64], password[256], IP[16];
format(file, sizeof(file), "users/%s.ini", RPNU(playerid));
password = dini_Get(file, "Password");
if(strcmp(inputtext) == password)
{
LoadChar(playerid);
SpawnPlayer(playerid);
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER: {FFFFFF}Invalid password.");
SSSShowDialog(playerid, 2);
return 1;
}
if(sscanf(inputtext, "s[128]", inputtext))
{
SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER: {FFFFFF}You must enter a password to procceed.");
SSSShowDialog(playerid, 2);
return 1;
}
else
{
format(PlayerInfo[playerid][pIP], 16, "%s", dini_Get(file, "IP"));
GetPlayerIp(playerid, IP, sizeof(IP));
dini_Set(file, "IP", IP);
PlayerInfo[playerid][pGender] = dini_Int(file, "Gender");
PlayerInfo[playerid][pAge] = dini_Int(file, "Age");
if(!PlayerInfo[playerid][pGender] || !PlayerInfo[playerid][pAge])
{
SSSShowDialog(playerid, 3);
}
}
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER: {FFFFFF}You have chosen to quit the server.");
Kick(playerid);
}
MAKE ADMIN CODE:
pawn Код:
CMD:makeadmin(playerid, params[])
{
if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
if(!aDuty[playerid]) return SendClientMessage(playerid, COLOR_GREY, "You are not on Admin Duty.");
if(PlayerInfo[playerid][pAdmin] >= 7)
{
new playerb, admin, string[128];
if(sscanf(params, "ui", playerb, admin)) return SendClientMessage(playerid, COLOR_WHITE, "[Usage]: /makeadmin [playerid] [level]");
if(!IsPlayerLoggedIn(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Invalid player id.");
if(admin < 0 || admin > 8055) return SendClientMessage(playerid, COLOR_GREY, "Admin levels are between 1-[8055]");
if(PlayerInfo[playerb][pAdmin] != admin)
{
new log[256];
if(PlayerInfo[playerb][pAdmin] < admin)
{
format(string, sizeof(string), "AdmWarn: %s has {33AA33}promoted {AA3333}%s to level {33AA33}%d {AA3333}admin.", RPN(playerid), RPN(playerb), admin);
format(log, sizeof(log), "AdmWarn: %s (%s) has promoted %s (%s) to level %d admin.", RPN(playerid), RPIP(playerid), RPN(playerb), RPIP(playerb), admin);
}
else if(PlayerInfo[playerb][pAdmin] > admin)
{
format(string, sizeof(string), "AdmWarn: %s has {FF9900}demoted {AA3333}%s to level {FF9900}%d {AA3333}admin.", RPN(playerid), RPN(playerb), admin);
format(log, sizeof(log), "AdmWarn: %s (%s) has demoted %s (%s) to level %d admin.", RPN(playerid), RPIP(playerid), RPN(playerb), RPIP(playerb), admin);
}
Log("logs/makeadmin.log", log);
PlayerInfo[playerb][pAdmin] = admin;
PlayerInfo[playerb][pSafeAdmin] = 1;
SendAdminMessage(COLOR_YELLOW, 1, string);
if(!PlayerInfo[playerb][pAdmin])
{
PlayerInfo[playerb][pSafeAdmin] = 0;
PlayerInfo[playerid][pGangMod] = 0;
PlayerInfo[playerid][pFacMod] = 0;
PlayerInfo[playerid][pBanAppealer] = 0;
SendClientMessage(playerb, COLOR_YELLOW, string);
}
new file[32];
format(file, sizeof(file), "users/%s.ini", RPNU(playerb));
if(dini_Exists(file))
{
dini_IntSet(file, "Admin", PlayerInfo[playerb][pAdmin]);
}
format(file, sizeof(file), "users/%s.ini", RPNU(playerb));
if(dini_Int(file, "AdminAccount") == 1)
{
format(file, sizeof(file), "users/%s.ini", dini_Get(file, "OldName"));
dini_IntSet(file, "Admin", PlayerInfo[playerb][pAdmin]);
}
}
else SendClientMessage(playerid, COLOR_GREY, "Player already has this admin level.");
}
else
{
SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
}
return 1;
}