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

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

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

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

Не проходит проверку, если ip разные

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

Zeka_Peka228

Умник
Делаю защиту по ip адресу. При не совпадение ip регистрации и текущего - должно показывать диалог.

Проблема в том, что он его не показывает, а пускает дальше игрока логиниться.

Вот собсна код:
PHP:
publics LoadAccount(playerid)
{
	if(Player[playerid][pCheckKey] == 1 && GetPVarInt(playerid,"ProverkaIPS") == 0)
	{
		new currentip[16];
		GetPlayerIp(playerid, currentip, sizeof(currentip));
		if(strcmp(currentip, Player[playerid][pIP]))
		{
			TogglePlayerControllable(playerid, false);
			ShowPlayerDialog(playerid,777,DIALOG_STYLE_PASSWORD,"Введите ключ безопасности","==== Ваш IP адрес изменился! ====\n=== Введите ключ безопасности ===","Готово","Выход");
			//PlayerInfo[playerid][pLogin] = 0;
			return true;
		}
	}
 	Player[playerid][pID] = cache_get_field_content_int(0, "ID", connects);
  	Player[playerid][pModel] = cache_get_field_content_int(0, "Model", connects);
   	Player[playerid][pAdmin] = cache_get_field_content_int(0, "Admin", connects);
    cache_get_field_content(0, "APassword", Player[playerid][pAKey], connects, 12);
    Player[playerid][pMoney] = cache_get_field_content_int(0, "Money", connects);
    Player[playerid][pSuperKey] = cache_get_field_content_int(0, "pSuperKey", connects);
    Player[playerid][pCheckKey] = cache_get_field_content_int(0, "pCheckKey", connects);
	//for(new o;o < 15;o++) SendClientMessageToAll(-1,"");
	new playersip[16];
	GetPlayerIp(playerid,playersip,sizeof(playersip));
	new query[128];
	new name [MAX_PLAYER_NAME];
	GetPlayerName(playerid, name, sizeof(name));
	format(query, sizeof(query), "UPDATE `accounts` SET `pGetonIP` = '%s' WHERE `name` = '%s'",playersip,name);
	mysql_function_query(connects, query, false, "", "");
  	if(Player[playerid][pAdmin] >= 1) { send(playerid, -1, " Вы авторизовались как администратор."); }
  	send(playerid, COLOR_GREEN, "-------------------------------------");
  	send(playerid, -1, "Добро пожаловать!");
  	Logged{playerid} = true;
  	GivePlayerMoney(playerid, Player[playerid][pMoney]);
  	SetPlayerScore(playerid, 1);
  	SpawnPlayer(playerid);
    return true;
}
pCheckKey в таблице игрока = 1. Также, ip регистрации и ip входа не совпадают(просил друга зарегистрировать аккаунт).

Вот где пвар ProverkaIPS
PHP:
case 777:
		{
			if(response)
			{
				if(!strlen(inputtext)) return ShowPlayerDialog(playerid,777,DIALOG_STYLE_PASSWORD,"Введите ключ безопасности","==== Ваш IP адрес изменился! ====\n=== Введите ключ безопасности ===","Готово","Выход");
				if(!strcmp(inputtext, Player[playerid][pSuperKey], true))
				{
					new ipstt[16], Aplayersip[16];
					GetPlayerIp(playerid,Aplayersip,sizeof(Aplayersip));
					format(ipstt,sizeof(ipstt),"%s",Aplayersip);
					strmid(Player[playerid][pIP], ipstt, 0, strlen(ipstt), 16);
					TogglePlayerControllable(playerid, true);
					SetPVarInt(playerid,"ProverkaIPS",1);
					LoadAccount(playerid);
					return true;
				}
				else return ShowPlayerDialog(playerid,999,DIALOG_STYLE_MSGBOX,"Ошибка","{FF6347}Вы были кикнуты с сервера\nПричина: \"Не верный ключ безопасности\"\nВведите \"/q\", чтобы выйти","Ок",""),Kick(playerid);
			}
			else return Kick(playerid);
		}
В чем проблема? Почему не проходит проверку?

p.s конечно, как и всегда, отблагодарю репой
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу