Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Anti-Cheat AirBreak

#Mickey_Mouse

Ученик
Здравствуйте уважаемые форумчане. Заметил что иногда люди ищут Anti-Cheat от AirBrk. А он почти в 80% случаях он идет только в комплекте со сборниками читов.
Ну вот вам Anti-Cheat AirBreak:


Ко всем define :
PHP:
#define DYS 30 
#define DYS_A 140
Ко всем new :
PHP:
new PosTimer[MAX_PLAYERS];
Ко всем forward :
PHP:
forward OnPlayerUpdateEx();
В в public OnPlayerConnect(playerid) :
PHP:
PosTimer[playerid] = SetTimerEx("OnPlayerUpdateEx", 3000, true, "d", playerid);//поставил 3 сек если меньше то античит будет проверять и при проверке может кикнуть даже если зашли в дом
В public OnPlayerDisconnect(playerid) :
PHP:
KillTimer(PosTimer[playerid]);
Cоздаём паблик :
PHP:
public OnPlayerUpdateEx() 
{ 
        for(new i, g = GetMaxPlayers(); i < g; i++) 
        { 
            new Float:pos[3]; 
            GetPlayerPos(i, pos[0], pos[1], pos[2]); 
            new veh = GetPlayerVehicleID(i); 
            if(GetPlayerSurfingVehicleID(i) == INVALID_VEHICLE_ID && GetPlayerState(i) != PLAYER_STATE_SPAWNED) 
            { 
                if(!GetPVarInt(i, "NoAB")) 
                { 
                    switch(GetPlayerAnimationIndex(i)) 
                    { 
                        case 958, 959, 961, 962, 965, 971, 1126, 1130, 1132, 1134, 1156, 1208: 
                        { 
                            SetPVarInt(i, "NoAB", 1); 
                            continue; 
                        } 
                    } 
                    if(IsPlayerInAnyVehicle(i) || IsPlayerInVehicle(i, veh) && GetPlayerState(i) == 2) 
                    { 
                        if((floatabs(pos[0] - GetPVarFloat(i, "OldPosX"))) > DYS_A || (floatabs(GetPVarFloat(i, "OldPosX") - pos[0])) > DYS_A || 
                        (floatabs(pos[1] - GetPVarFloat(i, "OldPosY"))) > DYS_A || (floatabs(GetPVarFloat(i, "OldPosY") - pos[1])) > DYS_A || 
                        (floatabs(pos[2] - GetPVarFloat(i, "OldPosZ"))) > DYS_A/2 || (floatabs(GetPVarFloat(i, "OldPosZ") - pos[2])) > DYS_A/2) 
                        { 
                      GetPlayerName(i,sendername,sizeof(sendername)); 
                            format(logus, 80, "%s был кикнут. Причина: AirBreak/Телепорт",sendername); 
                            SendClientMessageToAll(COLOR_LIGHTRED, logus); 
                     Kick(i); 
                            log("Kick", logus); 
                        } 
                    } 
                    else 
                    { 
                        if((floatabs(pos[0] - GetPVarFloat(i, "OldPosX"))) > DYS || (floatabs(GetPVarFloat(i, "OldPosX") - pos[0])) > DYS || 
                        (floatabs(pos[1] - GetPVarFloat(i, "OldPosY"))) > DYS || (floatabs(GetPVarFloat(i, "OldPosY") - pos[1])) > DYS || 
                        (floatabs(pos[2] - GetPVarFloat(i, "OldPosZ"))) > DYS/2 || (floatabs(GetPVarFloat(i, "OldPosZ") - pos[2])) > DYS/2) 
                        { 
                            GetPlayerName(i,sendername,sizeof(sendername)); 
                            format(logus, 80, "%s был кикнут. Причина: AirBreak/Телепорт",sendername); 
                            SendClientMessageToAll(COLOR_LIGHTRED, logus); 
                             Kick(i); 
                            log("Kick", logus); 
                        } 
                    } 
                } 
                SetPVarInt(i, "NoAB", 0); 
            } 
            SetPVarFloat(i, "OldPosX", pos[0]); 
            SetPVarFloat(i, "OldPosY", pos[1]); 
            SetPVarFloat(i, "OldPosZ", pos[2]); 
        } 
        return true; 
}
В конец мода :
PHP:
stock SetPos(playerid,Float:x,Float:y,Float:z) 
{ 
        SetPVarInt(playerid, "NoAB", 1); 
        SetPVarFloat(playerid, "OldPosX", x); 
        SetPVarFloat(playerid, "OldPosY", y); 
        SetPVarFloat(playerid, "OldPosZ", z); 
        return SetPlayerPos(playerid,x,y,z);
}
 
Последнее редактирование:
Сверху Снизу