Nex Anticheat (Nex-AC) - это комплексная защита, объединяющая в себе мощный античит и защиту от различных атак (флуда, DoS). Античит обнаруживает большинство популярных читов, моментально наказывая нечестного игрока. Анти-DoS сочетает в себе мощный гибко настраиваемый антифлуд, анти-DoS на сетевом уровне и множество защит от взломов, крашеров и т.д.
Список основных античитов: * Анти-AirBreak (пешком/в авто) * Анти-телепорт (пешком/в/к себе/между транспортом) * Анти-телепорт пикапов * Анти-FlyHack (пешком/в авто) * Анти-SpeedHack (пешком/в авто) * Анти-чит на здоровье (пешком/в авто) и броню * Анти-чит на оружие/бесконечные/патроны * Анти-чит на все спец. действия (в т.ч. и на jetpack) * Анти-GodMode от пуль (пешком/в авто) * Анти-чит на невидимость * Анти-чит на деньги * Анти-чит на тюнинг * Анти-lagcomp-spoof * Анти-Паркур мод * Анти-Quick turn * Анти-Rapid fire * Анти-FakeSpawn * Анти-FakeKill * Анти-Pro Aim * Анти-Бег CJ * Анти-CarShot * Анти-CarJack * Анти-UnFreeze * Анти-AFK Ghost * Анти-Reconnect * Защита от фейк NPC * Защита от песочницы * Защита от высокого пинга * Защита от подмены диалогов * Защита от флуда сменой мест * Защита от флуда коннектами в один слот * Защита от взлома Rcon (брут/брутфорс) * Анти-флуд автовызываемыми функциями (полный их список ниже) * Анти-крашеры (полный их список ниже) * Анти-NOP'ы (полный их список ниже) * Защита от Dos
Дополнительные возможности: * Настройка античита через файл Настройки находятся в отдельном файле (scriptfiles\nex-ac_settings.cfg) * Просмотр статистики Возможность просмотра статистики античита за время работы сервера с момента его запуска Выводится автоматически при его выключении, сохраняясь в лог сервера (server_log.txt) * Логирование самых важных действий По желанию можно включить debug-режим для логирования всех действий * Мультиязычность Возможность устанавливать любой из имеющихся языков. Также это упрощает перевод античита на другие языки
* Невалидный тюнинг * Невалидное место в авто * Запрещённые символы в диалогах (удаляются) * Невалидные приаттаченные объекты * Weapon Crasher
Функции:
public OnCheatDetected(playerid, ip_address[], type, code) Вызывается, когда сработал один из античитов playerid - ID нарушителя ip_address[] - IP-адрес нарушителя type - тип нарушения (при 0 возвращает ID, при 1 - IP) code - Код (ID) античита
EnableAntiCheat(acid, enable) Используйте для включения/отключения одного из античитов acid - ID античита enable - 1 для включения/0 для выключения
EnableAntiCheatForPlayer(playerid, acid, enable) Используйте для включения/отключения одного из античитов для конкретного игрока playerid - ID игрока, которому необходимо включить/отключить античит acid - ID античита enable - 1 для включения/0 для выключения
Добавленные в v1.3:
IsAntiCheatEnabled(acid) Используйте для проверки включения/отключения одного из античитов acid - ID античита Возвращает 1 (true), если включён, или 0 (false), если выключен
IsAntiCheatEnabledForPlayer(playerid, acid) Используйте для проверки включения/отключения одного из античитов для конкретного игрока acid - ID античита playerid - ID игрока, у которого необходимо проверить включение/отключение античита Возвращает 1 (true), если включён, или 0 (false), если выключен
Добавленные в v1.8.8:
AntiCheatGetHealth(playerid, &Float:health) Используйте для получения количества здоровья игрока playerid - ID игрока, у которого необходимо узнать количество здоровья &Float:health - Переменная для хранения здоровья, передаётся по ссылке
AntiCheatGetArmour(playerid, &Float:armour) Используйте для получения количества брони игрока playerid - ID игрока, у которого необходимо узнать количество брони &Float:armour - Переменная для хранения брони, передаётся по ссылке
AntiCheatGetVehicleHealth(vehicleid, &Float:health) Используйте для получения количества здоровья транспорта vehicleid - ID транспорта, у которого необходимо узнать количество здоровья &Float:health - Переменная для хранения здоровья, передаётся по ссылке
AntiCheatGetWeaponData(playerid, slot, &weapons, &ammo) Используйте для получения оружия и патронов в определённом слоте у игрока playerid - ID игрока, у которого необходимо узнать оружие и патроны slot - Слот, в котором необходимо узнать оружие и патроны &weapons - Переменная для хранения оружия, передаётся по ссылке &ammo - Переменная для хранения количества патронов, передаётся по ссылке
AntiCheatGetSpawnWeapon(playerid, &weapon1, &weapon1_ammo, &weapon2, &weapon2_ammo, &weapon3, &weapon3_ammo) Используйте для получения оружия и патронов при спавне у игрока playerid - ID игрока, у которого необходимо узнать оружие и патроны, выдаваемые при спавне &weapon1 - Переменная для хранения оружия 1, передаётся по ссылке &weapon1_ammo - Переменная для хранения количества патронов для оружия 1, передаётся по ссылке &weapon2 - Переменная для хранения оружия 2, передаётся по ссылке &weapon2_ammo - Переменная для хранения количества патронов для оружия 2, передаётся по ссылке &weapon3 - Переменная для хранения оружия 3, передаётся по ссылке &weapon3_ammo - Переменная для хранения количества патронов для оружия 3, передаётся по ссылке
AntiCheatGetPos(playerid, &Float:x, &Float:y, &Float:z) Используйте для получения позиции игрока playerid - ID игрока, у которого необходимо узнать позицию &Float:x - Переменная для хранения координат по x, передаётся по ссылке &Float:y - Переменная для хранения координат по y, передаётся по ссылке &Float:z - Переменная для хранения координат по z, передаётся по ссылке
AntiCheatGetSpeed(playerid, &Float:speed) Используйте для получения скорости игрока playerid - ID игрока, у которого необходимо узнать скорость &Float:speed - Переменная для хранения скорости, передаётся по ссылке
AntiCheatGetVehicleVelocity(vehicleid, &Float:x, &Float:y, &Float:z) Используйте для получения скорости транспорта vehicleid - ID транспорта, у которого необходимо узнать скорость &Float:x - Переменная для хранения скорости по x, передаётся по ссылке &Float:y - Переменная для хранения скорости по y, передаётся по ссылке &Float:z - Переменная для хранения скорости по z, передаётся по ссылке
AntiCheatGetAnimationIndex(playerid) Используйте для получения индекса (ID'а) текущей анимации игрока playerid - ID игрока, у которого необходимо узнать ID анимации Возвращает ID анимации или 0, если игрок не подключен
AntiCheatGetDialog(playerid) Используйте для получения ID'а открытого диалога у игрока playerid - ID игрока, у которого необходимо узнать ID диалога Возвращает ID диалога или 0, если игрок не подключен
AntiCheatGetMoney(playerid) Используйте для получения количества денег игрока playerid - ID игрока, у которого необходимо узнать количество денег Возвращает количество денег или 0, если игрок не подключен
AntiCheatGetClass(playerid) Используйте для получения ID'а класса игрока playerid - ID игрока, у которого необходимо узнать ID класса Возвращает ID класса или 0, если игрок не подключен
AntiCheatGetEnterVehicle(playerid) Используйте для получения ID'а транспорта, в которое пытался сесть игрок playerid - ID игрока, у которого необходимо узнать ID транспорта Возвращает ID транспорта или 0, если игрок не подключен
AntiCheatGetVehicleID(playerid) Используйте для получения ID'а транспорта, в котором сидит игрок playerid - ID игрока, у которого необходимо узнать ID транспорта Возвращает ID транспорта или 0, если игрок не подключен
AntiCheatGetWeapon(playerid) Используйте для получения ID'а текущего оружия у игрока playerid - ID игрока, у которого необходимо узнать ID оружия Возвращает ID оружия или 0, если игрок не подключен
AntiCheatGetVehicleSeat(playerid) Используйте для получения места в транспорте, на котором сидит игрок playerid - ID игрока, у которого необходимо узнать место Возвращает номер места или 0, если игрок не подключен
AntiCheatGetSpecialAction(playerid) Используйте для получения ID'а специального действия игрока playerid - ID игрока, у которого необходимо узнать ID специального действия Возвращает ID специального действия или 0, если игрок не подключен
AntiCheatGetLastSpecialAction(playerid) Используйте для получения ID'а предыдущего специального действия игрока playerid - ID игрока, у которого необходимо узнать ID предыдущего специального действия Возвращает ID предыдущего специального действия или 0, если игрок не подключен
AntiCheatGetLastShotWeapon(playerid) Используйте для получения ID'а последнего оружия, из которого стрелял игрок playerid - ID игрока, у которого необходимо узнать ID последнего оружия Возвращает ID последнего оружия или 0, если игрок не подключен
AntiCheatGetLastPickup(playerid) Используйте для получения ID'а последнего подобранного игроком пикапа playerid - ID игрока, у которого необходимо узнать ID последнего подобранного пикапа Возвращает ID последнего подобранного пикапа или 0, если игрок не подключен
AntiCheatGetLastUpdateTime(playerid) Используйте для получения времени последнего обновления игрока playerid - ID игрока, у которого необходимо узнать время последнего обновления Возвращает время последнего обновления или 0, если игрок не подключен
AntiCheatGetLastReloadTime(playerid) Используйте для получения времени последней перезарядки (оружия) у игрока playerid - ID игрока, у которого необходимо узнать время последней перезарядки Возвращает время последней перезарядки или 0, если игрок не подключен
AntiCheatGetLastEnteredVehTime(playerid) Используйте для получения времени последней попытки посадки в авто у игрока playerid - ID игрока, у которого необходимо узнать время последней попытки посадки Возвращает время последней попытки посадки или 0, если игрок не подключен
AntiCheatGetLastShotTime(playerid) Используйте для получения времени последнего выстрела у игрока playerid - ID игрока, у которого необходимо узнать время последнего выстрела Возвращает время последнего выстрела или 0, если игрок не подключен
AntiCheatGetLastSpawnTime(playerid) Используйте для получения времени последнего спавна у игрока playerid - ID игрока, у которого необходимо узнать время последнего спавна Возвращает время последнего спавна или 0, если игрок не подключен
AntiCheatIntEnterExitsIsEnabled(playerid) Используйте для проверки включения/отключения маркеров входов/выходов в интерьеры для игрока playerid - ID игрока, у которого необходимо проверить включение/отключение маркеров Возвращает 1 (true), если включены, или 0 (false), если выключены
AntiCheatStuntBonusIsEnabled(playerid) Используйте для проверки включения/отключения денежного бонуса за трюки для игрока playerid - ID игрока, у которого необходимо проверить включение/отключение денежного бонуса Возвращает 1 (true), если включён, или 0 (false), если выключен
AntiCheatIsInModShop(playerid) Используйте для проверки: находится ли игрок в ModShop'е или нет playerid - ID игрока, у которого необходимо проверить, находится ли он в ModShop'е Возвращает 1 (true), если находится, или 0 (false), если не находится
AntiCheatIsFrozen(playerid) Используйте для проверки: заморожен ли игрок или нет playerid - ID игрока, у которого необходимо проверить, заморожен ли он Возвращает 1 (true), если заморожен, или 0 (false), если не заморожен
AntiCheatIsDead(playerid) Используйте для проверки: мёртв ли игрок или нет playerid - ID игрока, у которого необходимо проверить, мёртв ли он Возвращает 1 (true), если мёртв, или 0 (false), если не мёртв
AntiCheatIsConnected(playerid) Используйте для проверки: находится ли игрок на сервере или нет playerid - ID игрока, у которого необходимо проверить, находится ли он на сервере Возвращает 1 (true), если находится, или 0 (false), если не находится
Мультиязычность: Скрипт можно настроить на любой из имеющихся языков. Для этого просто скачайте по ссылке ниже интересующую вас локализацию, сохраните её в одну директорию с основной инклудой (nex_ac.inc) и перекомпилируйте свой скрипт.
Установка: 1. Скачать версию античита, совместимую с версией вашего сервера 2. Скачать файл локализации (.lang) на нужном вам языке 3. Скопировать оба файла в папку "/pawno/include", которая находится в папке с сервером 4. В гейммоде и всех фильтрскриптах прописать сразу после "#include " следующее: "#include " Предупреждение! Если вы используете Streamer Plugin от Incognito, подключать его нужно перед nex-ac! 5. Скомпилировать изменённые вами скрипты