01.07.2016, 20:30
You shouldn't save password and other data that you know they will not change during the player's gameplay.
On another note, you had Kick function outside of the response so the player would get kicked no matter what. I changed few things:
On another note, you had Kick function outside of the response so the player would get kicked no matter what. I changed few things:
PHP код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialog)
{
case Dialog_Register:
{
if(!response) return xxx(playerid, Red, "Relog and try to register next time :D"), kick(playerid);
new hashpass[129];
WP_Hash(hashpass, sizeof(hashpass), inputtext);
if(!inputtext[0]) return ShowPlayerDialog(playerid, Dialog_Register, DIALOG_STYLE_INPUT, ""White"Registering...",""Red"You have entered an invalid password.\n"White"Type your password below to register a new account.","Register","Quit");
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"Superhuman_Roleplay");
INI_WriteString(file,"Password",hashpass);
INI_WriteInt(File,"Cash",0);
INI_WriteInt(File,"Admin",0);
INI_WriteString(File,"NormalName",GetPlayerName(playerid, nName, sizeof(nName),MAX_PLAYER_NAME);
INI_WriteInt(File,"NormalLevel",0, 128);
INI_WriteInt(File,"NormalSkin",26, 128);
INI_WriteString(File,"NormalAbility","None", 128);
INI_WriteString(File,"NormalWeakness","None", 128);
INI_WriteString(File,"SuperName","None", 128);
INI_WriteInt(File,"SuperLevel",0);
INI_WriteInt(File,"SuperSkin",0);
INI_WriteString(File,"Ability_1","None", 128);
INI_WriteString(File,"Ability_2","None", 128);
INI_WriteString(File,"Ability_3","None", 128);
INI_WriteString(File,"Weakness_1","None", 128);
INI_WriteString(File,"Weakness_2","None", 128);
INI_WriteString(File,"Weakness_3","None", 128);
INI_Close(File);
}
case Dialog_Login:
{
if(!response) return xxx(playerid, Red, "Relog and try to login next time :D"), kick(playerid);
new hashpass[129];
WP_Hash(hashpass, sizeof(hashpass), inputtext);
if(!strcmp(hashpass, shInfo[playerid][pPass], false))
{
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
GivePlayerMoney(playerid, shInfo[playerid][pCash]);
ShowPlayerDialog(playerid, Dialog_Success_2, DIALOG_STYLE_MSGBOX,""White"Success!",""Green"You have successfully logged in!","Ok","");
}
else ShowPlayerDialog(playerid, Dialog_Login, DIALOG_STYLE_INPUT,""White"Login",""Red"You have entered an incorrect password.\n"White"Type your password below to login.","Login","Quit");
}
default: return 0; // dialogid not found, search in other scripts
}
return 1; // dialogid was found
}