06.04.2014, 21:10
I create a password when registering, but I can log in with any password. Please help :/
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTER)
{
if(!response)
{
return SendClientMessage(playerid, -1, "SERVER: You have left the server."), Kick(playerid);
}
if(isnull(inputtext)) {
return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{1564F5}Register", "Type in a password below to register an account.", "Okay", "Cancel");
}
if(strlen(inputtext) >= MAX_PASS_LENGTH) {
return SendClientMessage(playerid, -1, "SERVER: Password must not be more than 40 characters"), ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{1564F5}Register", "Type in a password below to register an account.", "Okay", "Cancel");
}
new
Salt[30],
hash[129];
randomString(Salt, 30);
format(hash, sizeof(hash), "%s%s", Salt, inputtext);
WP_Hash(hash, sizeof(hash), hash);
CreateAccount(playerid, Salt, hash);
format(hash, sizeof(hash), "SERVER: Welcome %s", returnNameEx(playerid));
SendClientMessage(playerid, -1, hash);
g_PlayerInfo[playerid][pSkin] = NEWB_SKIN;
ToggleMainMenu(playerid, 0);
SetCameraBehindPlayer(playerid);
SetPlayerPos(playerid, posArr{g_newbSpawn});
SetPlayerFacingAngle(playerid, g_newbSpawn[3]);
SetPlayerSkin(playerid, NEWB_SKIN);
return 1;
}
if(dialogid == DIALOG_LOGIN)
{
if(!response || !strlen(inputtext)) {
return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{1564F5}Login", "Type in your password below to log in.", "Okay", "Cancel");
}
new
hashedinput[129];
format(hashedinput, sizeof(hashedinput), "%s%s", g_PlayerInfo[playerid][pSalt], inputtext);
WP_Hash(hashedinput, 129, hashedinput);
if(strcmp(hashedinput, g_PlayerInfo[playerid][pPass])) {
g_LogTries[playerid]++;
if(g_LogTries[playerid] == MAX_LOG_TRIES) {
return SendClientMessage(playerid, -1, "SERVER: Too many login attempts."), Kick(playerid);
}
SendClientMessage(playerid, -1, "SERVER: Invalid password!"),
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{1564F5}Login", "Type in your password below to log in.", "Okay", "Cancel");
}
else {
LoadAccount(playerid);
}
return 1;
}
return 1;
}