Доступ к готовым решениям

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

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

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

Защита обхода регистрации

f0Re3t

Компетентный
Всем привет. Многие наверное знают что можно обойти систему регистрации и авторизации. Суть обхода заключается в том, что игрок не вызывает OnPlayerRequestClass и напрямую ставит себе состояние PLAYER_STATE_ONFOOT без PLAYER_STATE_SPAWNED. И так, как же это исправить ? Да очень просто.
1. Ко всем переменным добавляем -
PHP:
new bool: ac_1[MAX_PLAYERS char];
2. В OnPlayerConnect добавляем обнуление переменной -
PHP:
ac_1{playerid} = false;
3. В OnPlayerRequestClass добавляем (чтобы исключить ложные срабатывания) -
PHP:
ac_1{playerid} = true;
4. Ну и напоследок в OnPlayerStateChange добавляем (в самое начало) проверку состояния и переменной -
PHP:
if(!ac_1{playerid} && newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_NONE) return SendClientMessage(playerid, 0xE6E6FAFF, "AC #1 [ОБХОД РЕГИСТРАЦИИ / АВТОРИЗАЦИИ]");
Вот собственно и все, наша защита готова. А вот собственно доказательство что все работает -
Не забываем, что "SendClientMessage(playerid, 0xE6E6FAFF, "AC #1 [ОБХОД РЕГИ / АВТОРИЗАЦИИ]");" нужно заменить на свое наказание.
Всем спасибо за просмотр. Критика и идеи приветствуются.
 
Последнее редактирование:
Сверху Снизу