SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian > Релизы/Releases

Reply
 
Thread Tools Display Modes
Old 14/07/2012, 03:15 PM   #1
GameMan
Huge Clucker
 
GameMan's Avatar
 
Join Date: Mar 2011
Location: Russia
Posts: 370
Reputation: 19
Lightbulb Anti CarAirSlap v1.2.1

Привет всем! Многие знают про такой чит как CarAirSlap. Если кто не знает, он кидает соседний автомобиль путем быстрого перемещения в него. (При этом состояние игрока не меняется и OnPlayerStateChange не вызывается)
Насколько я знаю такого анти-чита в паблике нет. Представляю вам свой античит на этот хак.

Дальнейшая поддержка античита прекращена

Автор: GameMan (MeowCola)

История версий:
Версия 1.0 - релиз
Версия 1.1 - PVar's были заменены на обычные переменные
Версия 1.2 - Оптимизирован код (Спасибо Степашке )
Версия 1.2.1 - Улучшена защита (Теперь анти-чит срабатывает если игрок использовал чит сидя на пассажирском месте)

Установка:
в OnPlayerUpdate
pawn Code:
static oldData[MAX_PLAYERS][2];
new newstate = GetPlayerState(playerid); // Получаем состояние игрока
if(newstate == PLAYER_STATE_DRIVER)
{
    new newveh = GetPlayerVehicleID(playerid); // Получаем ID транспортного средства в котором сидит игрок
    if((oldData[playerid][0] == PLAYER_STATE_DRIVER || oldData[playerid][0] == PLAYER_STATE_PASSENGER) && oldData[playerid][1] != INVALID_VEHICLE_ID && newveh != oldData[playerid][1])
    {
        SetVehicleVelocity(newveh, 0.0, 0.0, 0.0); // Останавливаем подкинутый автомобиль
        new str[100]; // Создаем переменные
        GetPlayerName(playerid, str, sizeof(str)); // Получаем ник игрока
        format(str, sizeof(str), "Игрок {ffffaa}%s(%d){ffffff} был кикнут за использование читов", str, playerid);
        SendClientMessageToAll(0xffffffff, str); // Отправляем всем игрокам сообщение в чат
        Kick(playerid); // Кикаем игрока
        oldData[playerid] = {PLAYER_STATE_NONE, INVALID_VEHICLE_ID};
        return 1;
    }
    oldData[playerid][1] = newveh; // Устанавливаем "старый" ID транспортного средства
}
else
{
    oldData[playerid][1] = INVALID_VEHICLE_ID;
}
oldData[playerid][0] = newstate;  // Устанавливаем "старое" состояние игрока

Если будут ложные срабатывания и т.д. сообщайте, буду исправлять.

Last edited by GameMan; 06/09/2013 at 04:23 PM. Reason: Поддержка прекращена
GameMan is offline   Reply With Quote
Old 15/07/2012, 10:07 AM   #2
DANGER1979
Gangsta
 
DANGER1979's Avatar
 
Join Date: Sep 2009
Location: Belarus
Posts: 793
Reputation: 21
Default Re: Anti CarAirSlap

GetPVarInt в public OnPlayerUpdate?
Уже говорилось о том что пивары медленные при записи и считывании.
И сувать их в пакетник тем более не оптимальный вариант.
НО для того чтобы показать суть, достаточно.

Цифры 2 надо заменивать на существующие всем известные константы: PLAYER_STATE_DRIVER
__________________
Virtual World Developer
DANGER1979 is offline   Reply With Quote
Old 15/07/2012, 02:30 PM   #3
GameMan
Huge Clucker
 
GameMan's Avatar
 
Join Date: Mar 2011
Location: Russia
Posts: 370
Reputation: 19
Thumbs up Re: Anti CarAirSlap

Quote:
Originally Posted by DANGER1979 View Post
GetPVarInt в public OnPlayerUpdate?
Уже говорилось о том что пивары медленные при записи и считывании.
И сувать их в пакетник тем более не оптимальный вариант.
НО для того чтобы показать суть, достаточно.

Цифры 2 надо заменивать на существующие всем известные константы: PLAYER_STATE_DRIVER
Исправил. Обновил релиз до v1.1
GameMan is offline   Reply With Quote
Old 15/07/2012, 04:07 PM   #4
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,750
Reputation: 138
Default Re: Anti CarAirSlap

pawn Code:
public OnPlayerUpdate(playerid) {
    static oldData[MAX_PLAYES][2];
    new newstate = GetPlayerState(playerid); // Получаем состояние игрока
    if(newstate == PLAYER_STATE_DRIVER) // Если игрок сидит на водительском месте то...
    {
        new newveh = GetPlayerVehicleID(playerid); // Получаем ID транспортного средства в котором сидит игрок
        if(oldData[playerid][0] == PLAYER_STATE_DRIVER && oldData[playerid][1] != INVALID_VEHICLE_ID && newveh != oldData[playerid][1]) // Если игрок раньше сидел на водительском месте и игрок сменил автомобиль то...
        {
            new str[100]; // Создаем переменные
            GetPlayerName(playerid, str, sizeof(str)); // Получаем ник игрока
            format(str, sizeof(str), "Игрок {ffffaa}%s(%d){ffffff} был кикнут за использование читов", str, playerid);
            SendClientMessageToAll(0xffffffff, str); // Отправляем всем игрокам сообщение в чат
            Kick(playerid); // Кикаем игрока
            oldData[playerid] = {PLAYER_STATE_NONE, INVALID_VEHICLE_ID};
            return 1;
        }
        oldData[playerid][1] = newveh; // Устанавливаем "старый" ID транспортного средства
    } else {
        oldData[playerid][1] = INVALID_VEHICLE_ID;
    }
    oldData[playerid][0] = newstate;  // Устанавливаем "старое" состояние игрока
    return 1;
}
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is online now   Reply With Quote
Old 15/07/2012, 04:36 PM   #5
GameMan
Huge Clucker
 
GameMan's Avatar
 
Join Date: Mar 2011
Location: Russia
Posts: 370
Reputation: 19
Default Re: Anti CarAirSlap

Релиз обновлен до версии 1.2
Код от Степшки будет целесообразней.
GameMan is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[FilterScript] Anti-Flood / Anti-Repeat + High Ping Kicker KoczkaHUN Filterscripts 21 25/01/2014 09:44 PM
[FilterScript] [FS]Zadmin2.0|Admin System + Anticheat + Anti-flood + Anti high ping [ZFM]Zuc Filterscripts 32 18/06/2012 05:29 PM
[FilterScript] [K.A.S] Knight's Anti Cheat (Anti: Armas, Spam, DB, MaxPing, Palavrхes, Money Hack) The Knight Lanзamentos/Releases 5 05/05/2011 03:41 AM


All times are GMT. The time now is 11:32 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.