#Fredd
Новичок
Проблема со сменой ника когда человек подаёт заявку на смену ника я её подтверждаю ник меняется но я могу ещё раз подтвердить смену ника и ник меняется на старый, как сделать что бы ник можно было менять один раз для одного игрока что бы не было вот так
Вот команда для подтверждения смены ника
Сама смена ника
Вот команда для подтверждения смены ника
PHP:
if(strcmp(cmd, "/changename", true) == 0){
new newname[128],stringo[128],string[128],passpass1[64];
new giveplayer[MAX_PLAYER_NAME],sendername[MAX_PLAYER_NAME];
new giveplayerid;
if (PlayerInfo[playerid][pAdmins] >= 3){
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SCM(playerid, COLOR_WHITE, "{F74848}» Введите{FFFFFF}: /changename [id]");
giveplayerid = ReturnUser(tmp);
if(giveplayerid != INVALID_PLAYER_ID){
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' ')){idx++;}{
format(stringo,sizeof(stringo),"users/%s.ini",newname);
if(fexist(stringo)) return SCM(playerid,COLOR_GREY,"Этот ник занят уже.");
GetPlayerName(playerid, sendername, sizeof(sendername));
if(strlen(WantNickChange[giveplayerid]) < 3) return SCM(playerid,RIFA_COLOR,"Этот игрок не подавал заявку на смену NickName");
nick[giveplayerid] = 1;
format(changenam,sizeof(changenam),"%s",WantNickChange[giveplayerid]);
format(stringo,sizeof(stringo),"users/%s.ini",WantNickChange[giveplayerid]);
dini_Create(stringo);
format(string,sizeof(string),"users/%s.ini",giveplayer);
new File = iniOpen(string);
iniGet(File,"Key",passpass1);
iniClose(File);
strmid(smgs[giveplayerid], passpass1, 0, strlen(passpass1), 255);
ChangeName(giveplayerid);}}else if(giveplayerid == INVALID_PLAYER_ID){ SCM(playerid, COLOR_GREY, "[X] Игрок оффлайн!");}}return true;}
PHP:
GetPlayerName(playerid,plnamep,sizeof(plnamep));
if(!strcmp(PlayerInfo[playerid][pNik1],"None",true)) strmid(PlayerInfo[playerid][pNik1], plnamep, 0, strlen(plnamep), 255);
else if(!strcmp(PlayerInfo[playerid][pNik2],"None",true)) strmid(PlayerInfo[playerid][pNik2], plnamep, 0, strlen(plnamep), 255);
else if(!strcmp(PlayerInfo[playerid][pNik3],"None",true)) strmid(PlayerInfo[playerid][pNik3], plnamep, 0, strlen(plnamep), 255);
else if(!strcmp(PlayerInfo[playerid][pNik4],"None",true)) strmid(PlayerInfo[playerid][pNik4], plnamep, 0, strlen(plnamep), 255);
else if(!strcmp(PlayerInfo[playerid][pNik5],"None",true)) strmid(PlayerInfo[playerid][pNik5], plnamep, 0, strlen(plnamep), 255);
else if(!strcmp(PlayerInfo[playerid][pNik6],"None",true)) strmid(PlayerInfo[playerid][pNik6], plnamep, 0, strlen(plnamep), 255);
else if(!strcmp(PlayerInfo[playerid][pNik7],"None",true)) strmid(PlayerInfo[playerid][pNik7], plnamep, 0, strlen(plnamep), 255);
else if(!strcmp(PlayerInfo[playerid][pNik8],"None",true)) strmid(PlayerInfo[playerid][pNik8], plnamep, 0, strlen(plnamep), 255);
else if(!strcmp(PlayerInfo[playerid][pNik9],"None",true)) strmid(PlayerInfo[playerid][pNik9], plnamep, 0, strlen(plnamep), 255);
else if(!strcmp(PlayerInfo[playerid][pNik10],"None",true)) strmid(PlayerInfo[playerid][pNik10], plnamep, 0, strlen(plnamep), 255);
SetPlayerName(playerid, changenam);
format(string,sizeof(string),"users/%s.ini",plnamep);
dini_Remove(string);
format(string,sizeof(string),"users/%s.ini",changenam);
new File = iniOpen(string);
iniSet(File,"Key",smgs[playerid]);
iniClose(File);
format(string,sizeof(string),"{fde910}%s Сменил(а) Имя на %s",plnamep,changenam);
SendClientMessageToAll(COLOR_ORANGE,string);
ShowPlayerDialog(playerid, 2612, DIALOG_STYLE_MSGBOX, "{FFA200}Имя успешно изменено","{FFFFFF}Не забудьте изменить имя в окне клиента SA-MP\nПерезайдите в игру с новым Nick Name", "Ок", "");
nick[playerid] = 0;
OnPropUpdates();
OnPropUpdate();
return true;
}
