1. Ded Dobiv18.05.2025 в 23:50от
Загрузка...
Загрузка...

Античит на UNFREEZE

Тема в разделе "Grand Theft Auto", создана пользователем EvgenJoker, 12.09.2012.

  1. EvgenJoker

    EvgenJoker

    Статус:
    Оффлайн
    Регистрация:
    11.09.12
    Сообщения:
    76
    Репутация:
    72 +/-
    И так работает отлично. Ловит как в авто так и пешком. Не ловит когда игрок пассажир, например в куфе.
    Ко всем new добавляем:
    PHP:
    new boolgAntiCheatControlable[MAX_PLAYERS] = true;//легально перемещаться
    new FloatposXFloatposYFloatposZ;//для записи координат
    new FloatposRealXFloatposRealYFloatposRealZ;//для записи координат
    new CheatFloodCounter[MAX_PLAYERS] = 0;//счетчик использования чита
    в паблик OnPlayerUpdate вот это:
    PHP:
    if(!gAntiCheatControlable[playerid])//если игрок не может двигаться
    {//начало античита
    GetPlayerPos(playeridposRealXposRealYposRealZ);//записали координаты где он сейчас стоит
    if(posRealX != posX || posRealY != posY || posRealZ != posZ)//и сверили там он должен находиться или нет
    {//с помощью собейта
    if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)//сделаем наказание для читера
    {
    CheatFloodCounter[playerid] = 0;//оборвем событие, вдруг он замарожен и просто сидит в авто пассажиром
    }
    if(
    CheatFloodCounter[playerid] >= 20)//если зафиксирован больше 20 раз, значит он использует NOP в собейте
    {
    CheatFloodCounter[playerid] = 0;
    SendClientMessage(playerid,COLOR_RED,"Вы были кикнуты с сервера по подозрению в{ffffff} NOP TogglePlayerControlable{ffffff}.");
    Kick(playerid);
    }
    }
    добавим сток отвечающий за замарозку и размарозку игрока, в дальнейшем используем только его для замарозки/замарозки в моде.
    PHP:
    stock TogglePlayerControllableEx(playeridtoggle)
    {
    if(
    toggle == 1)
    {
    TogglePlayerControllable(playeridtrue);//освобождает
    gAntiCheatControlable[playerid] = true;//может легально двигаться
    CheatFloodCounter[playerid] = 0;//сбросили
    }
    else
    {
    TogglePlayerControllable(playeridfalse);//обездвиживает
    gAntiCheatControlable[playerid] = false;//не может легально двигаться
    GetPlayerPos(playeridposXposYposZ);//записали координаты при замарозке
    }
    return 
    1;
    }
    Ловит также блокирование функции NOP TogglePlayerControlable. Не забываем в моде заменить TogglePlayerControllable на TogglePlayerControllableEx.
     
  2. TheHenuz

    TheHenuz

    Статус:
    Оффлайн
    Регистрация:
    05.02.13
    Сообщения:
    5
    Репутация:
    0 +/-
    быдлокод :facepalm: поправь если не трудно
     
  3. Alexzc

    Alexzc

    Статус:
    Оффлайн
    Регистрация:
    18.02.13
    Сообщения:
    63
    Репутация:
    4 +/-
    Стоит попробывать
     
  4. XiR

    XiR

    Статус:
    Оффлайн
    Регистрация:
    27.05.13
    Сообщения:
    195
    Репутация:
    68 +/-
    Не помешало бы оптимизации