• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Античит для open.mp
#1
Античит для 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
Античит хранит "ожидаемые" позицию, деньги, ХП, броню и оружие. Если мод сам телепортирует игрока, выдает оружие или меняет ХП, нужно сообщить об этом античиту. Иначе будет ложный кик.

Импорт:
PHP Code:
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.

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

Скачать
  Reply