23.02.2011, 03:37
You must use strcmp to compare strings...
Also you used WP_Hash wrongly...
Second,shouldn't the password be a string?
Also, in the first post I found that you missed a closing brace.
Also you used WP_Hash wrongly...
pawn Код:
if(WP_Hash(inputtext) != tmp)//Wrong
pawn Код:
new buffer[129];
WP_Hash(buffer,sizeof(buffer),inputtext);
//.....
if(strcmp(buffer,tmp,false))//No need to be case insensitive because Whirlpool always outputs capital characters.This can make the check faster.
//...
pawn Код:
new tmp;//:/
tmp = INI_Int(file, "Password");//Use the function to read string
pawn Код:
else if(dialogid == 2)//Using else if is faster,as it doesn't need to check the dialogid again when dialogid is 1.
{
new name[MAX_PLAYER_NAME], file[256], string[128];
GetPlayerName(playerid,name,sizeof(name));
format(file,sizeof(file),SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "You are registered", "Type your password below", "Login", "Quit");
new tmp;
tmp = INI_Int(file, "Password");
if(WP_Hash(inputtext) = !tmp) {
SendClientMessage(playerid,red,"ERROR: Wrong Password!");
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "You are registered", "Type your password below", "Login", "Quit");
}
else
{
PInfo[playerid][Logged] = 1;
PInfo[playerid][Level] = INI_Int(file,"Level");
SetPlayerScore(playerid,PInfo[playerid][Score]);
GivePlayerMoney(playerid,PInfo[playerid][Cash]);
SendClientMessage(playerid,limegreen,"You have successfully logged in!");
}//Here
}