Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Исправляем баг со сменой ника.

Статус
В этой теме нельзя размещать новые ответы.

Gressie

Мастер
Здраствуйте, суть бага в том что: Игроку можно менять ник 100 раз пока он не сменит пароль и не выйдит из игры. Естественно если игроку сменили ник 2 раза, то он теряет аккаунт.
Вот я и решил создать этот мануал, вернее меня "Maks5" попросил. :)
Данный мануал для модов Rls.

И так, нажимаем Ctrl +F и ищем public ChangeName(playerid)
Меняем старое:
PHP:
forward ChangeName(playerid);
public ChangeName(playerid)
{
	new plnamep[MAX_PLAYER_NAME];
	new string[256];
			new key = PlayerInfo[playerid][pPhousekey];
			if(PlayerInfo[playerid][pPhousekey] != 255 && strcmp(plnamep, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0)
			{
					strmid(HouseInfo[key][hOwner], changenam, 0, strlen(changenam), 255);
			}
			key = PlayerInfo[playerid][pPbiskey];
			if (key != 255)
			{
				if (key > 100)
				{
				key -= 100;
				strmid(SBizzInfo[key][sbOwner], changenam, 0, strlen(changenam), 255);
				}
				else
				{
				strmid(BizzInfo[key][bOwner], changenam, 0, strlen(changenam), 255);
				}
				OnPropUpdate();
			}
			GetPlayerName(playerid,plnamep,sizeof(plnamep));
			SetPlayerName(playerid, changenam);
			format(string,sizeof(string),"%s.ini",plnamep);
			dini_Remove(string);
			format(string,sizeof(string)," << %s сменил имя на %s >>",plnamep,changenam);
			SendClientMessageToAll(COLOR_LIGHTRED,string);
			ShowPlayerDialog(playerid,327,DIALOG_STYLE_INPUT,"Смена пароля","    Введите Ваш новый пароль     ","Принять","");
			PlayerInfo[playerid][pProverkaip] = 0;
			return 1;
}
На новое:
PHP:
forward ChangeName(playerid);
public ChangeName(playerid)
{
	new plnamep[MAX_PLAYER_NAME];
	new string[256];
			new key = PlayerInfo[playerid][pPhousekey];
			if(PlayerInfo[playerid][pPhousekey] != 255 && strcmp(plnamep, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0)
			{
					strmid(HouseInfo[key][hOwner], changenam, 0, strlen(changenam), 255);
			}
			key = PlayerInfo[playerid][pPbiskey];
			if (key != 255)
			{
				if (key > 100)
				{
				key -= 100;
				strmid(SBizzInfo[key][sbOwner], changenam, 0, strlen(changenam), 255);
				}
				else
				{
				strmid(BizzInfo[key][bOwner], changenam, 0, strlen(changenam), 255);
				}
				OnPropUpdate();
			}
			GetPlayerName(playerid,plnamep,sizeof(plnamep));
			SetPlayerName(playerid, changenam);
			format(string,sizeof(string),"%s.ini",plnamep);
			dini_Remove(string);
			format(string,sizeof(string)," << %s сменил имя на %s >>",plnamep,changenam);
			SendClientMessageToAll(COLOR_LIGHTRED,string);
			nick[playerid] = 0;
			Kick(playerid);
			return 1;
}
Далее "case 327:" удаляем полностью.

Автор: Max_Sumskiy.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу