19.08.2015, 04:45
The problem is that you are not saving the player's password back again to the file, if you are using Y_INI you could:
NOTE: The PlayerInfo[playerid][pPassword] is an example, you must put the variable where you store the player's password.
PHP код:
CMD:changename(playerid, params[])
{
new id, newname[10], oldname[10], string[128];
if(isnull(params)) return SendClientMessage(playerid, -1, "Changename [NewName]");
if(sscanf(params,"s[10]", newname)) return SendClientMessage(playerid, -1 , "/Changename [NewName]");
if(strlen(params) < 4) return SendClientMessage(playerid,-1,"Name shoulkd not be less than 4 characters.");
if(strlen(params) > 10) return SendClientMessage(playerid,-1,"Name must be 10 characters max.");
GetPlayerName(playerid, oldname, sizeof(oldname));
new file[64];
format(file, sizeof(file), "/Users/%s.ini", newname);
if (fexist(file)) return SendClientMessage(playerid, -1, "The name you entered is already being used by another player!");
fremove(UserPath(id));
SetPlayerName(id,newname);
new INI:pfile = INI_Open(file);
INI_WriteInt(pfile, "Password", PlayerInfo[playerid][pPassword]);
INI_Close(pfile);
format(string, sizeof(string), "%s Name changed to (%s).", oldname, newname);
SendClientMessageToAll( -1,string);
Kick(id);
return 1;
}