Originally Posted by BenzoAMG
pawn Код:
enum pInfo { pPassword[129] } new PlayerInfo[MAX_PLAYERS][pInfo];
forward LoadUser_data(playerid,name[],value[]); public LoadUser_data(playerid,name[],value[]) { INI_String("password", PlayerInfo[playerid][pPassword], 129); return 1; }
stock UserPath(playerid) { new string[35], playername[MAX_PLAYER_NAME]; GetPlayerName(playerid,playername,sizeof(playername)); format(string,sizeof(string),"Users/%s.ini",playername); return string; }
public OnPlayerConnect(playerid) { new name[MAX_PLAYER_NAME]; if(!fexist(UserPath(playerid))) { new string[367 + MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "-MSG- The username '%s' is not registered. Please enter a Password to Register",name); SendClientMessage(playerid, COLOR_YELLOW, string); format(string, sizeof(string), "{FFFF00}Requested username: {FFFFFF}%s\nThis username is: {009900}Available\n\n{AF0000}We suggest that you don't register\nwith an RP name (Firstname_Lastname)\nbecause you can manage multiple\ncharacters from one account.\nThe name you register now will not\nbe your in-game name.\n\n{FFFFFF}By registering,\nyou agree to our terms of use.\n\n{FFFF00}Enter a Password to register",name); ShowPlayerDialog(playerid, MENU_REGISTER, DIALOG_STYLE_PASSWORD, "Hopes Hills RP Account", string, "Register", "Quit"); } else { INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid); new string[80 + MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "-MSG- The username '%s' is already registered. Please log in with your Password",name); SendClientMessage(playerid, COLOR_YELLOW, string); SendClientMessage(playerid, COLOR_GREY, "-MSG- Not your account? Then relog with another name"); format(string, sizeof(string), "{FFFF00}Your username: {FFFFFF}%s\n\nEnter your Password to log in",name); ShowPlayerDialog(playerid, MENU_LOGIN, DIALOG_STYLE_PASSWORD, "Hopes Hills RP Account", string, "Login", "Quit"); } return 1; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch ( dialogid ) { case MENU_REGISTER: { if (!response) { SendClientMessage(playerid, COLOR_DARKRED, "-MSG- You must register in order to play on this server"); return Kick(playerid); } else { if(strlen(inputtext) > 20 || strlen(inputtext) < 5) { new string[170 + MAX_PLAYER_NAME], name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "{FFFF00}Requested username: {FFFFFF}%s\n\n{AF0000}Password must be 5-20 characters\n\n{FFFFFF}By registering,\nyou agree to our terms of use.\n\n{FFFF00}Enter a Password to register",name); return ShowPlayerDialog(playerid, MENU_REGISTER, DIALOG_STYLE_PASSWORD, "Hopes Hills RP Account", string, "Register", "Quit"); } else { new buf[129]; WP_Hash(buf, sizeof(buf), inputtext); new INI:iniFile = INI_Open(UserPath(playerid)); INI_SetTag(iniFile, "data"); INI_WriteString(iniFile, "password", buf); INI_WriteInt(iniFile, "admin_level", 0); INI_WriteInt(iniFile, "permanent_banned", 0); INI_Close(iniFile); } } return 1; } case MENU_LOGIN: { if (!response) { SendClientMessage(playerid, COLOR_DARKRED, "-MSG- You must log in in order to play on this server"); return Kick(playerid); } else { new buf[129]; WP_Hash(buf, sizeof(buf), inputtext); if(strcmp(buf, PlayerInfo[playerid][pPassword], false) != 0) { new string[100 + MAX_PLAYER_NAME], name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "{FFFF00}Your username: {FFFFFF}%s\n\n{AF0000}Incorrect password!\n\n{FFFF00}Enter your Password to log in",name); return ShowPlayerDialog(playerid, MENU_LOGIN, DIALOG_STYLE_PASSWORD, "Hopes Hills RP Account", string, "Login", "Quit"); } else SendClientMessage(playerid, COLOR_GREEN, "-MSG- Welcome back!"); } return 1; } } return 0; }
Basically, you had 'if(!strcmp(buf, inputtext, false))' which means 'both strings are equal and match each other, or... correct password', where you should of had 'if(strcmp(buf, inputtext, false) != 0)' which means 'both strings do not match each other, or... incorrect password'. Read here: https://sampwiki.blast.hk/wiki/strcmp
I also tidied up your code just slightly, but not by much because I'm in a rush.
|