Новый способ детекта ботов на Аризона РПГ
Всем приветос, на связи Безликий. Вы меня наверняка знаете по моддингу для GTA SA:MP, в том числе для Аризоны. И на этот раз у меня есть кое-что удивительное для администрации сервера: автоматический безошибочный детект ботов. Точнее, игроков, которые используют бота для работ. Под него сейчас попадают большинство публичных ботов на шахту, лесопилку, начальную ферму (= деморган), ферму льна и хлопка и трамвайщика.
Принцип работы довольно прост. GTA San Andreas изначально разрабатывалась для Playstation 2, поэтому направление движения игрока (на ПК это кнопки WASD) игра хранит (и, соответственно, передаёт) как два целочисленных значения - вперёд/назад и влево/вправо. Функция обработки ввода на уровне движка ограничивает их до 128 в обоих направлениях. В том числе при игре с контроллера и на телефоне.
В транспорте, правда, почему-то стрелочки отправляются как 255, но я не видел ни одного бота, который использует стрелочки в транспорте.
Некоторые боты в определённые моменты отправляют направление движения игрока в виде ±255 (боты на шахту, начальную ферму) или "виляют" в стороны до ±192 (лесопилка). В тулсе это, естественно, не видно.
Естественно, эта информация доходит до клиента и её можно подсмотреть, чем и занимается скрипт (активация /stickflick). Посмотрите сами:
Игрок с ботом:

Игрок без бота:

В активном режиме скрипт также пишет найденных ботов внизу экрана.
Ещё раз. Средствами стандартной игры пешком НЕВОЗМОЖНО нажать на WASD сильнее, чем 128, следовательно, зелёный круг никогда не покинет чёрный квадрат. То есть, если скрипт указывает на какого-то игрока - он абсолютно точно использует стороннее ПО (т.е. бота).
Не распространяйте эту информацию дальше админ-чата, если о ней узнают разработчики ботов - способ могут прикрыть. Пис.