Софт Античит для open.mp

Andrey Markelov

Участник
Автор темы
26
46

Античит для open.mp (TypeScript, @omp-node/core)​


Серверный античит. Ловит подозрительные действия игрока и может кикнуть его.

Что проверяет (включено по умолчанию):​

  • AirBreak пешком и в транспорте
  • Телепорт пешком, в транспорте и при посадке в машину
  • FlyHack пешком и в транспорте
  • SpeedHack пешком и в транспорте
  • ХП игрока и ХП транспорта
  • Броня
  • Деньги (сверка с серверным счетом)
  • Лишнее оружие
  • Лишние патроны
  • Неверный ID оружия (crasher)
  • Jetpack без разрешения сервера
  • Fake spawn (спавн без авторизации)
  • Быстрый реконнект
  • Высокий пинг (с предупреждениями)
  • Много подключений с одного IP
  • Флуд колбеков
  • DoS по числу пакетов в секунду

Что выключено по умолчанию​

Выключены коды с нестабильной логикой или высоким риском ложных киков, например:
  • Rapid fire
  • CJ run
  • Invisible, DialogHack, CarJack, Quick turn, FakeKill
  • NOP-проверки, Pro Aim, GodMode, Tuning и ряд crasher-кодов
Их можно включить в config.ts через setCodeEnabled.

Как подключить к проекту Los Santos Role Play (LSRP) v2​

  1. Скопируйте папку:
    resources/src/modules/anticheat
  2. В главном файле модулей (например resources/src/index.ts) импортируйте anticheatModule и добавьте его в список модулей, лучше ближе к концу (после auth и основных систем):
    import { anticheatModule } from "./modules/anticheat";
    // ...
    anticheatModule,
  3. Подгоните импорты под свой проект (auth, player utils), если пути другие.

Важно trust API​

Античит хранит "ожидаемые" позицию, деньги, ХП, броню и оружие. Если мод сам телепортирует игрока, выдает оружие или меняет ХП, нужно сообщить об этом античиту. Иначе будет ложный кик.

Импорт:​

Импорт:
import {
  trustPosition,
  trustMoney,
  trustHealth,
  trustArmour,
  grantWeapon,
  grantArmour,
  setTrustedHealth,
} from "./modules/anticheat";

Примеры:​

  • После setPos / телепорта:
    trustPosition(player, x, y, z, interior, world);

  • После выдачи денег с сервера:
    trustMoney(player, сумма);

  • После setHealth:
    trustHealth(player, hp); или setTrustedHealth(player, hp);

  • Вместо giveWeapon / setArmor
    grantWeapon(player, weaponId, ammo);
    grantArmour(player, armor);
P.S grantWeapon учитывает, что giveWeapon в SA добавляет патроны к слоту, а не заменяет их.

Зависимости в вашем моде​

Модуль ожидает:
  • авторизацию игрока (isAuthenticated / getAccount с полем money и health)
  • утилиты playerId, playerIp, isPlayerActive, kickSamePlayer
  • omp.on события open.mp
  • для уведомлений админам: getAccount(...).adminLevel
Если структура проекта другая, подправьте импорты в loop.ts, punish.ts, vitals.ts и trust.ts под свои пути.

Настройки​

Файл: modules/anticheat/config.ts
Полезные поля:
  • enabled - вкл/выкл весь античит
  • kickOnDetect - кикать при срабатывании
  • softStrikeMax - сколько срабатываний до кика (сейчас 1)
  • debug - подробный лог предупреждений
  • maxPing, maxConnectsPerIp, пороги скорости и телепорта
Включить или выключить один детектор: setCodeEnabled(AcCode.Money, false);

Что происходит при срабатывании​

  1. Запись в лог сервера: [AC] ...
  2. Сообщение админам в чат (adminLevel >= 1)
  3. Сообщение игроку
  4. Kick этого игрока (если kickOnDetect = true)
Жесткие коды (кик сразу): fake spawn, weapon crasher, sandbox IP, DoS.

Структура папки​

anticheat/
index.ts - модуль и экспорт API
codes.ts - коды детектов
config.ts - настройки
state.ts - состояние игроков
trust.ts - API доверия для мода
punish.ts - кик и уведомления
loop.ts - события и таймер
detectors/ - проверки (движение, деньги, оружие и т.д.)
 

Вложения

  • anticheat.zip
    18.1 KB · Просмотры: 6
Последнее редактирование:
  • Нравится
Реакции: kyrtion и камущки