[Include] Xa0sAC v2.0(Xa0s AntiCheat)
#1

Версия 2.0.

Что же содержит в себе эта версия?


Анти:
  • JetPack,
  • Низкий FPS(АнтиЛаггер),
  • Высокий Ping,
  • SpectateHack(Слежка читера за игроками),
  • Разморозка,
  • Оружие,
  • Патроны,
  • Запрещенное оружие(Если у игрока будет найдено запрещеное оружие он будет кикнут),
  • AirBreak(Пешком и на ТС),
  • SpeedHack,
  • Деньги(Деньги из казино не считаются читом),
  • Здоровье(Бургер, содовые и пикапы с хп не считает читом),
  • Броня(Пикапы с броней не считает читом),
  • Починка ТС(Починки и тюнинг-гаражи читом не считает),
  • DriveBy,
  • SpawnKill,
  • SlideBug,
  • CBug,
  • TunningHack.
Особенности:
Xa0sAC быстрый:
  • Обнаружит SpeedHack за 550-600 миллисекунд,
  • Обнаружит AirBreak за 1 - 1,5 секунд,
  • Остальное за 500-600 миллисекунд.
Xa0sAC удобен:
  • Все в диалоговых окнах,
  • Чтобы выключить АнтиЧит на что либо:
    1. Нужно ввести команду(/cfg) затем выбрать нужно и нажать Включить\Выключить.

  • Чтобы изменить:
    1. Максимальный пинг,
    2. Максимальное здоровье игрока,
    3. Максимальное здоровье ТС,
    4. Максимальную броню.
  • Нужно ввести команду (/changedata), выбрать нужное и ввести в диалог число.

  • Разбан/Бан:
  • При бане игрока его ник записывается в файл(BanLog.ini),
  • Чтобы разбанить его нужно:
    1. Ввести команду(/unban),
    2. Ввести символ который присутсвует в нике игрока(Например: Ник Xa0s = Xa или Xa0 или s) чем больше символов тем лучше,
    3. Если совпадений меньше 19 вам их покажет ввиде диалога стиля LIST,
    4. Нажимаете на нужного и он удаляеться из файла(разбанивается).
Настройка:
Перед началом использования необходимо настроить его под себя:
  • Открыть инклуд HeartAC через pawno. И настроить Все что находиться вверху инклуда.
  • Прописать вверху мода #include <ConnectorAC>
  • В xWeapons(строки от 170 до 190) введите ID's оружия через запятую, которые вы хотите запретить на сервере,
  • Через /cfg и /changedata настроить Xa0sAC,
  • Установить какое действие будет происходить если игрок использует какой либо чит, (В инклуде есть описание каждого действия)
  • Вставить в OnGameModeInit() данную строку(Она выключает бонусы за стант.)
PHP Code:
EnableStuntBonusForAll(0); 
  • Вписать в свой мод команды(Можно поставить проверку на администратора):
PHP Code:
    if(!strcmp(cmdtext"/ban"true))
    {
        new 
Message[256];
        new 
gMessage[256];
        
tmp strtok(cmdtext,idx);
        if(!
strlen(tmp) || strlen(tmp) > 5)
        {
            
SendClientMessage(playerid,COLOR_RED,"/ban [id] [Причина]");
            return 
1;
        }
        new 
id strval(tmp);
        
gMessage strrest(cmdtext,idx);
        if(!
strlen(gMessage))
        {
            
SendClientMessage(playerid,COLOR_RED,"/ban [id] [причина]");
            return 
1;
        }
        if(!
IsPlayerConnected(id))
        {
            
SendClientMessage(playerid,COLOR_RED,"Игрок не найден");
            return 
1;
        }
        
xBan(id,gMessage,1);
        return 
1;
    }
   if(!
strcmp(cmdtext"/kick"true))
    {
        new 
Message[256];
        new 
gMessage[256];
        
tmp strtok(cmdtext,idx);
        if(!
strlen(tmp) || strlen(tmp) > 5)
        {
            
SendClientMessage(playerid,COLOR_RED,"/Kick [id] [причина]");
            return 
1;
        }
        new 
id strval(tmp);
        
gMessage strrest(cmdtext,idx);
        if(!
strlen(gMessage))
        {
            
SendClientMessage(playerid,COLOR_RED,"/Kick [id] [причина]");
            return 
1;
        }
        if(!
IsPlayerConnected(id))
        {
            
SendClientMessage(playerid,COLOR_RED,"Игрок не найден");
            return 
1;
        }
        
xKick(id,gMessage,1);
        return 
1;
    }
   if(!
strcmp(cmdtext"/unban"true))
    {
        
ShowPlayerDialog(playerid,1250,DIALOG_STYLE_INPUT,"Разбан","Введите примерный ник игрока","Выбрать","Назад");
        return 
1;
    }
    if(!
strcmp(cmdtext"/changedata"true))
    {
        
ShowPlayerDialog(playerid,1150,DIALOG_STYLE_LIST,"xAntiCheat данные","Максимальный пинг\nМаксимальное здоровье игрока\nМаксимальное здоровье ТС\nМаксимальное кол-во брони","Выбрать","Закрыть");
        return 
1;
    }
    if(!
strcmp(cmdtext"/cfg"true))
    {
        
ShowPlayerDialog(playerid,1120,DIALOG_STYLE_LIST,"xAntiCheat конфигурации","АнтиЧиты\nАнтиБаги\nАнтиПрочее","Выбрать","Закрыть");
        return 
1;
    } 
  • Если у вас выводит ошибку связанную с strrest вставте ниже следующий код:
PHP Code:
stock strrest(const string[], &index)
{
    new 
length strlen(string);
    while ((
index length) && (string[index] <= ' '))
    {
        
index++;
    }
    new 
offset index;
    new 
result[128];
    while ((
index length) && ((index offset) < (sizeof(result) - 1)))
    {
        
result[index offset] = string[index];
        
index++;
    }
    
result[index offset] = EOS;
    return 
result;

  • Вписать в мод этот код (Он нужен для посылки докладов о том что игрок использует чит):
PHP Code:
xfunction ReportOnThePlayer(playeridcheatid)
{
    new 
Message[256];
    switch(
cheatid)
    {
        case 
0:
        {
            
format(Message,sizeof(Message),"Игрок %s возможно использовал чит на деньги. ",xPlayerName(playerid));
            
/*Тут то как вы отправляете сообщение SendClientMessage и тд*/
        
}
        case 
1:
        {
            
format(Message,sizeof(Message),"Игрок %s возможно использовал чит на оружие. ",xPlayerName(playerid));
            
/*Тут то как вы отправляете сообщение SendClientMessage и тд*/
        
}
        case 
2:
        {
            
format(Message,sizeof(Message),"Игрок %s возможно использовал чит на патроны.",xPlayerName(playerid));
            
/*Тут то как вы отправляете сообщение SendClientMessage и тд*/
        
}
        case 
4:
        {
               
format(Message,sizeof(Message),"Игрок %s возможно использовал чит на скорость.",xPlayerName(playerid));
            
/*Тут то как вы отправляете сообщение SendClientMessage и тд*/
        
}
        case 
5:
        {
               
format(Message,sizeof(Message),"Игрок %s возможно использовал полет",xPlayerName(playerid));
            
/*Тут то как вы отправляете сообщение SendClientMessage и тд*/
        
}
        case 
6:
        {
            
format(Message,sizeof(Message),"Игрок %s возможно использовал чит на здоровье.",xPlayerName(playerid));
            
/*Тут то как вы отправляете сообщение SendClientMessage и тд*/
        
}
        case 
7:
        {
              
format(Message,sizeof(Message),"Игрок %s возможно использовал чит на броню.",xPlayerName(playerid));
            
/*Тут то как вы отправляете сообщение SendClientMessage и тд*/
        
}
        case 
11:
        {
            
format(Message,sizeof(Message),"Игрок %s возможно использовал чит на починку ТС.",xPlayerName(playerid));
            
/*Тут то как вы отправляете сообщение SendClientMessage и тд*/
        
}
    }
    return 
1;

Прочее:
Xa0sAC содержит в себе еще несколько простых функций которые вы можете использовать в своем моде
  • Получение скорости игрока и его ТС xGetSpeed(playerid),
  • Получение FPS игрока xGetPlayerFPS(playerid),
  • Получение растояния между двумя точкам xGetPointDistToPoint(Float1, Float:y1, Float2, Float:y2),
  • Получение инфо. в AFK игрок или нет xGetPlayerAFK(playerid),
  • Получения слота оружия игрока xGetWeaponSlot(weaponid),
  • Получение модели оружия(Для пикапа и т.д) xGetWeaponModel(weaponid).
Баги:
  • Изредка AntiAirBreak может лагать т.е у игрока сможет обнаружить AirBreak только через 10 секунд, но этот баг может появиться только если у игрока FPS < 10 поэтому AntiFPS лучше не выключать.
  • Если вы нашли баг пишите мне в личные сообщения.
  • Античит на патроны иногда не срабатывает и я незнаю почему это происходит. Если вы знаете напишите мне в Личные сообщения
Создатель:
  • Splav- исправление бага,
  • Stepashka - исправление ошибки в коде разбана,
  • OKStyle - Anti SlideBug,
  • Ym[0]n - Anti CBug,
  • АнтиЧит JunkBuster - коды:
  • AddPlayerClass, AddPlayerClassEx, SetSpawnInfo, AddStaticPickup, CreatePickup, DestroyPickup, т.е зате которые дают оружие, броню и здоровье
  • Xa0s. - Всё остальное (HeartAC и ConnectorAC).
Итог. Что нового?:
  • Было исправлено множество багов. (около 7)
  • Была улучшена система защиты сервера АнтиЧитом.
  • Создан новый античит на тюннинг. (В стандартных тюннингах не срабатывает)
  • Создано новое xAction действие(Вернее оно отключает xAction) но только для античитов на: Тюннинг. Здоровье, броню, здоровье ТС, Деньги.
  • Убрано пару проверок так как они зря работали. И без них все тоже самое.
  • Немного оптимизирован код.
  • Созданы две команды для того что бы вы могли банить\кикать как сами так и что бы это делал античит.
  • Теперь вы можете с легкостью указать собственный путь к файлу с забаненными редактировав #define BanFile
Скачать:Связь:
  • По всем вопросам обращайтесь в icq 5033561
  • По техническим причинам и нехваткой времени Skype не имею.
P.S Прочитайте пункт БАГИ. Нужна помощь
Reply
#2

норм =)
Reply
#3

Спасибо , хороший античит!
Reply
#4

Симпатично, поковыряю на досуге, спасибо.
Reply
#5

Тема симпатична, а вот код ужасен. Увы.
Reply
#6

Да мог бы нас и не указывать... Код какой есть, главное - работоспособность.
Reply
#7

Да, согласен, код ужасен, но зато работает безошибочно.
В следующей версии оптимизирую.
Reply
#8

Хорошая работа
Reply
#9

delete
Reply
#10

Ошибка:

return CallLocalFunction("Xs_AC_OnDialogResponse","ddddd" ,playerid,dialogid,response,listitem,inputtext);

inputtext строковой параметр. Последнюю d на s замени

Вот так:

return CallLocalFunction("Xs_AC_OnDialogResponse","dddds" ,playerid,dialogid,response,listitem,inputtext);
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)