[Off] (Pawn) bProteзгo. Anti Hacking
#16

Й, estou meio ruim hoje e deixo algumas coisa passar. Valeu por avisar amigo

pawn Code:
#include <a_samp>


////////////////////////////////////////////////////////////////////////////////
//
//
//        #### ########   ######     ######## ########    ###    ##     ##
//         ##  ##     ## ##    ##       ##    ##         ## ##   ###   ###
//         ##  ##     ## ##             ##    ##        ##   ##  #### ####
//         ##  ########   ######        ##    ######   ##     ## ## ### ##
//         ##  ##              ##       ##    ##       ######### ##     ##
//         ##  ##        ##    ##       ##    ##       ##     ## ##     ##
//        #### ##         ######        ##    ######## ##     ## ##     ##
//
//
//                    Criado por Bruno da Silva (iPs DraKiNs)
//
//          Acesse meu blog sobre programaзгo http://www.brunodasilva.com.br
//
//
//              -----------------------------------
//
//                  Detectar:
//                      bots, ataques
///                     fake kill
//                      flood chat
//                      publicacao chat
//                      ofensa chat
//                      freeze hack
//                      score hack
//                      money hack
//                      state hack
//                      car teleport
//                      anti ammo hack, noreload,
//                      anti weapon hack, high ping
//
//              ------------------------------------
//
//                 http://www.brunodasilva.com.br
//
//              Ingresse tambйm na [iPs]TeaM
//              wwww.ips-team.forumeiros.com
//
//////////////////////////////////////////////////////////////////////////////////

// ------------------------

#define Hook%0(%1) \
            stock %0_Ex(%1)

// ------------------------

#define varGet(%0) \
            getproperty(0,%0)

// ------------------------

#define varSet(%0,%1) \
            setproperty(0, %0, %1)


// --------------------------



enum {
    // Anti DDos Bots
    PLAYER_BOT_LEVEL3,
    PLAYER_BOT_LEVEL2,
    PLAYER_BOT_LEVEL1,

    // Anti Cleo4 Fake-kill
    PLAYER_DEATHFLOOD_LEVEL3,
    PLAYER_DEATHFLOOD_LEVEL2,
    PLAYER_DEATHFLOOD_LEVEL1,

    // Anti Bug Cars
    PLAYER_SURF_VEHICLE,
    PLAYER_CAR_TELEPORT,
    PLAYER_STATE_HACK,

    // Ammo Weapon
    PLAYER_NORELOAD_HACK,
    PLAYER_WEAPON_HACK,
    PLAYER_AMMO_HACK,


    // hackings
    PLAYER_FREEZE_HACK,
    PLAYER_SCORE_HACK,
    PLAYER_MONEY_HACK,

    // Text Chat
    PLAYER_PUBLISH_TEXT,
    PLAYER_OFFEND_TEXT,
    PLAYER_FLOOD_TEXT,

    // pos cheat
    PLAYER_TELEPORT_HACK,
    PLAYER_AIRBREAK_HACK,
   
    // outros
    PLAYER_HIGH_PING
}



#define INVALID_CHAT_BLOCK

#define MAX_STRING_CHAT     (128)

#define WEAPON_SLOT_HACK    (015)

#define SERVER_SIDE_DELAY   (002)

#define MAX_DISTANCE_DEF        (83.1)

#define MAX_PING            (800)


// =============================================================================
//
// OBSERVAЗхES IMPORTANTES:

// #define INVALID_CHAT_BLOCK
// Em caso de nгo quiser bloquear o texto em caso de texto invбlido
// Texto invбlido, spam, flood, palavreado, ofensa, publicaзгo. etc

// Ping acima de 1 segundo (1000 ms) poderб ocorrer graves problemas de precisгo no anti cheater.
// Em caso de ping muito elevado aconselha-se o uso de SERVER_SIDE_DELAY elevado para maior precisгo

// SERVER_SIDE_DELAY equivale ao tempo de delay entre o uso de uma funзгo registrada
// que influencia no detectamento do anti cheater. Aconselhбvel 1 a 5 segundos.
// Dependendo da conexгo do servidor vocк coloca maior delay ou menor dealay

// MAX_DISTANCE_DEF й essencial para busca e detecзгo de anti-teleport e air break
// O nъmero padrгo foi calculado e nгo houve bugs por parte do sistema
// A ъnica coisa que pode influenciar serб o sistema de SetPlayerPos. Mas o SERVER_SIDE_DELAY supriu isto com precisгo

// Este sistema apenas detecta cheaters. Й aconselhavйl a checagem de um administrador humano antes de aplicar o banimento.

// ========================================================================================================

new connect = -1;
new Float:g_ucPos[4];
new databaseIP[MAX_PLAYERS][20];
new Float:g_diferencasAngle[MAX_VEHICLES];


stock resetBot(o);
stock registerBot(p);
stock registrarJogador(playerid);

// ---------------------------------------------
//  Nesta parte aparecem funзхes hookeadas
//  Elas sгo essenciais para ter controle server-side detalhado
//  Essencial para qualquer anti-hack. Controle minucioso
// ---------------------------------------------

Hook GivePlayerMoney(playerid, value)
{
    return SetPVarInt(playerid, #registerMoney, GetPVarInt(playerid, #registerMoney) + value), GivePlayerMoney(playerid, value);
}


// ---------------------------------------------

Hook SetPlayerScore(playerid, value)
{
    return SetPVarInt(playerid, #registerScore, value), SetPlayerScore(playerid, value);
}


// ---------------------------------------------

Hook PutPlayerInVehicle(playerid,vehicleid,seatid)
{
    return SetPVarInt(playerid, #registerState, gettime()-SERVER_SIDE_DELAY), PutPlayerInVehicle(playerid, vehicleid, seatid);
}


// ---------------------------------------------

Hook SetPlayerPos(playerid,Float:x,Float:y,Float:z)
{

    return SetPVarInt(playerid,"tposSet", gettime()), SetPlayerPos(playerid, x, y, z);
}


Hook GivePlayerWeapon(playerid, weaponid, ammo)
{
    return SetPVarInt(playerid, #ammoTime, gettime()), GivePlayerWeapon(playerid, weaponid, ammo), SetPVarInt(playerid, getWeaponNameID(weaponid), ammo + GetPVarInt(playerid, getWeaponNameID(weaponid)));
}


stock getWeaponNameID(id)
{
    static stringWeapon[12];
    return format(stringWeapon, 12, "wepid%d", id), stringWeapon;
}


// ---------------------------------------------

Hook TogglePlayerControllable(playerid, bool:control)
{

    if(control) {

        static Float:x, Float:y, Float:z;

        GetPlayerPos(playerid,x, y, z);
        SetPVarFloat(playerid,"xposControll", x),
            SetPVarFloat(playerid,"yposControll", y),
            SetPVarFloat(playerid,"zposControll", z);
    }
    else {
        SetPVarFloat(playerid,"xposControll", 0.0);
        SetPVarFloat(playerid,"yposControll", 0.0);
        SetPVarFloat(playerid,"zposControll", 0.0);
    }

    return SetPVarInt(playerid, "PlayerControllable", _:control), TogglePlayerControllable(playerid, control);
}


// ---------------------------------------------

Hook SetPlayerHealth(playerid, Float:health)
{
    return SetPVarFloat(playerid,"healthServerside", health), SetPlayerHealth(playerid, health);
}


// ---------------------------------------------

Hook SetPlayerArmour(playerid, Float:armour)
{
    return SetPVarFloat(playerid,"armourServerside", armour), SetPlayerArmour(playerid, armour);
}


// ---------------------------------------------

public OnPlayerConnect(playerid)
{
    // registrar conexгo logo que o jogador entra
    return registrarJogador(playerid);
}


public OnFilterScriptInit()
{
    // parte importante para registrar cada jogador em timers e variбveis no inicio do game mode
    // em caso de reloadfs / loadfs
    for(new i; i != MAX_PLAYERS; i++) if(IsPlayerConnected(i)) registrarJogador(i);
}


public OnPlayerDisconnect(playerid, reason)
{
    // Nгo retire estб parte. Isto serve para nгo enviar mensagens de desconecзгo quando o player й bot ddos
    if(GetPVarInt(playerid, #jogadorDisponivel)) return false;
    return true;
}

stock armaBranca(armaid) {
    switch(armaid) {
        case 16,17,18,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43: return false;
    }
    return true;
}


new const palavreado[][24] = {
    "daputa","babaca","baitola","piranha","bicha","bichona","biscat","bitch","bix", "boiola","boiolona","buceta","bucetudo","cuzona","bund","burr","fude","cacet",
    "viad","caral","vadi","carai","rola","chup","idiot","corno","nocu","eucu""ocu","cusa","cusi","cuza","cuzinho","piroca","embecil","fdp","foda",
    "fode","fuck","fud","hetard","homo","imbess","jegu","kacet","karai","karaleo","kct","kral", "krl","noku","lasarent","lazarent","mula","otari","pnc","pereb","penis","pint","prosti","punhet",
    "put","retardado","tnc","viad","viadi","vsf","vtnc","sobe","vogelz","baranga", "vagab","broxa","ignorant","comed",
    "ejacu","prosti","cachorr", "surub","peni","chup","pau","viad","perere", "bucet","bicha.","bixa","gay","desgra", "troxa", "tomanocu", "seucu"
};

public OnPlayerText(playerid, text[])
{

    /*--------------------------------------------------
     *
     *  Anti Publicaзгo de IP Inteligente
     *   Usando OnPlayerText com manipulaзгo de strings e outros
     *   A precisгo deste sistema estб em torno de 95%
     *
     * Detecta: 127.0.0.1 | 1 2    7 .   0  0 1 etc
    -------------------------------------------------*/


    static szText[MAX_STRING_CHAT], numerosNochat, j;

    numerosNochat = -1, j = -1;
    for(new i; text[i]; i++) {
        if(text[i] >= '0' && '9' >= text[i]) {
            numerosNochat ++ ;
            if(numerosNochat >= 8) {
                CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_PUBLISH_TEXT);
                #if defined INVALID_CHAT_BLOCK
                return false;
                #endif

            }
        }
        switch(text[i]) {
            case '0':{ szText[j] = 'o'; j++; continue; }
            case '1':{ szText[j] = 'i'; j++; continue; }
            case '2':{ szText[j] = 'z'; j++; continue; }
            case '3':{ szText[j] = 'e'; j++; continue; }
            case '4':{ szText[j] = 'a'; j++; continue; }
            case '5':{ szText[j] = 's'; j++; continue; }
            case '6':{ szText[j] = 'g'; j++; continue; }
            case '7':{ szText[j] = 't'; j++; continue; }
            case '8':{ szText[j] = 'b'; j++; continue; }
            case 65 .. 90, 97 .. 122: { szText[j] = tolower(text[i]); j++; continue; }
        }
    }

    /*--------------------------------------------------
     *
     *  Anti Palavreado Inteligente
     *   Usando OnPlayerText com manipulaзгo de strings e outros
     *   A precisгo deste sistema estб em torno de 85%
     *
     * Detecta: buceta, b - u c |e t-a, buc 3 7 4 etc
    -------------------------------------------------*/


    for(new i = 0; i < sizeof(palavreado); i++) {
        if(strfind(szText, palavreado[i], false) != -1) {
            CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_OFFEND_TEXT);
            #if defined INVALID_CHAT_BLOCK
            return false;
            #endif
        }
    }

    /*--------------------------------------------------
     *
     *  Anti Flood
     *   Usando OnPlayerText com gettime e outros
     *   A precisгo deste sistema estб em torno de 95%
     *
    -------------------------------------------------*/


    if(gettime() - GetPVarInt(playerid, #floodChat) < 3) {
        CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_FLOOD_TEXT);
        #if defined INVALID_CHAT_BLOCK
        return false;
        #endif
    }

    SetPVarInt(playerid, #floodChat, gettime());
    return true;
}


public resetBot(o)
{
    varSet(databaseIP[o],0);
    return databaseIP[o][0] = EOS;
}


public registerBot(p)
{

    /*--------------------------------------------------
     *
     *  Anti DDos Bots
     *   Usando GetPlayerPing/OnPlayerConnect com gettime e outros
     *   A precisгo deste sistema estб dividido em partes
     *
     *  PLAYER_BOT_LEVEL1 -> 70%
     *  PLAYER_BOT_LEVEL2 -> 90%
     *  PLAYER_BOT_LEVEL3 -> 100%
     *
     *
    -------------------------------------------------*/


    if(GetPlayerPing(p) != 0xffff && GetPlayerPing(p)  != 0) SetPVarInt(p, #jogadorDisponivel, 1);
    if(IsPlayerConnected(p) && GetPlayerPing(p)  == 0xffff) {
        static tmpip[20];
        GetPlayerIp(p, tmpip, 20);
        if(0x1c5 > gettime() - varGet(tmpip)) {
            tmpip[strlen(tmpip)-1] = 'x';
            if(varGet(tmpip) > 3) {
                return CallLocalFunction("OnPlayerHacking", "ii", p, PLAYER_BOT_LEVEL3);
            }
            CallLocalFunction("OnPlayerHacking", "ii", p, PLAYER_BOT_LEVEL2);
        }
        CallLocalFunction("OnPlayerHacking", "ii", p, PLAYER_BOT_LEVEL1);
        SetTimerEx("registerBot", 700, false, #i , p);
    }
    return false;
}



public registrarJogador(playerid)
{

    static tmpip[20];
    g_diferencasAngle[playerid] = 0;
    GetPlayerIp(playerid, tmpip, 20);
    varSet(tmpip, gettime()); ++connect;

    if(connect == MAX_PLAYERS - 1) {
        for(connect = 0; databaseIP[connect][0]; connect++) continue;
    }
    SetTimerEx("resetBot", 50000, false, "i", connect);

    tmpip[strlen(tmpip)-1] = 'x';
    format(databaseIP[connect], 20, tmpip);
    varSet(tmpip, varGet(tmpip) +1);

    SetTimerEx(#pdataCheck, 1000, true, "i", playerid);
    return SetTimerEx("registerBot", 700, false, #i , playerid);
}


public OnPlayerDeath(playerid,killerid,reason)
{

    /*--------------------------------------------------
     *
     *  Anti Fake Kill
     *   Usando OnPlayerDeath com gettime e outros
     *   A precisгo deste sistema estб dividido em partes
     *
     *  PLAYER_DEATHFLOOD_LEVEL1 -> 070%
     *  PLAYER_DEATHFLOOD_LEVEL2 -> 090%
     *  PLAYER_DEATHFLOOD_LEVEL3 -> 100%
     *
     *
    -------------------------------------------------*/


    if(gettime() - GetPVarInt(playerid, #registerDeath) < 20) {
        if(GetPVarInt(playerid, #registerValDeath) > 15) {
            CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_DEATHFLOOD_LEVEL1);
        }
        if(gettime() - GetPVarInt(playerid, #registerDeath) < 2) {
            CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_DEATHFLOOD_LEVEL2);
        }
        if(gettime() - GetPVarInt(playerid, #registerDeath) < 5) {
            if(GetPVarInt(playerid, #registerValDeath) > 3) {
                CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_DEATHFLOOD_LEVEL3);
            }
        }
    }
    SetPVarInt(playerid, #registerDeath, gettime());
    SetPVarInt(playerid, #registerValDeath, GetPVarInt(playerid, #registerValDeath) +1);
    return true;
}




public OnPlayerUpdate(playerid)
{

    /*--------------------------------------------------
     *
     *  Anti Ping Alto
     *   Usando GetPlayerScore com variбveis server sided
     *   A precisгo deste sistema fica em torno de 90%
     *
    -------------------------------------------------*/


    if(GetPlayerPing(playerid) > MAX_PING) {
        CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_HIGH_PING);
    }

    /*--------------------------------------------------
     *
     *  Anti Score Hack
     *   Usando GetPlayerScore com variбveis server sided
     *   A precisгo deste sistema fica em torno de 100%
     *
    -------------------------------------------------*/


    if(GetPlayerScore(playerid) >  GetPVarInt(playerid, #registerScore)) {
        CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_SCORE_HACK);
    }

    /*--------------------------------------------------
     *
     *  Anti Money Hack
     *   Usando GetPlayerMoney com variбveis server sided
     *   A precisгo deste sistema fica em torno de 100%
     *
    -------------------------------------------------*/


    if(GetPlayerMoney(playerid) > GetPVarInt(playerid, #registerMoney)) {
        CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_MONEY_HACK);
    }

    static armaJogador;
    armaJogador = GetPlayerWeapon(playerid);


    /*--------------------------------------------------
     *
     *  Anti Weapons Hack - Weapons Ammo Hack
     *   Usando GetWeaponAmmo com variбveis server sided
     *   A precisгo deste sistema fica em torno de 85%
     *
    -------------------------------------------------*/


    if(!armaBranca(armaJogador) && (GetPVarInt(playerid, getWeaponNameID(armaJogador)) == 0 && GetPlayerAmmo(playerid) > 1 || (GetPlayerAmmo(playerid) > (GetPVarInt(playerid, getWeaponNameID(GetPlayerWeapon(playerid))) +10) > 0 || (GetPlayerAmmo(playerid) < 0 && GetPVarInt(playerid, getWeaponNameID(GetPlayerWeapon(playerid))) < 9999)))) {

        static intid;
        intid = GetPlayerInterior(playerid);

        if(intid != 1 && intid != 7 && intid != 4 && intid != 6) {
            if(GetPVarInt(playerid, getWeaponNameID(armaJogador)) == 0 && gettime() - GetPVarInt(playerid, #ammoTime) > 1) {
                if(GetPVarInt(playerid, #warnAmmo) == WEAPON_SLOT_HACK) {
                    CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_AMMO_HACK);
                    SetPVarInt(playerid, #warnAmmo, 0);
                    SetPVarInt(playerid, getWeaponNameID(armaJogador), GetPlayerAmmo(playerid));
                }
                SetPVarInt(playerid, #warnAmmo, GetPVarInt(playerid, #warnAmmo) +1);
            }
            else if((gettime() - GetPVarInt(playerid, #ammoTime)) > 1) {
                CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_WEAPON_HACK);
                SetPVarInt(playerid, #warnAmmo, 0);
                SetPVarInt(playerid, getWeaponNameID(GetPlayerWeapon(playerid)), GetPlayerAmmo(playerid));
            }
        }
        else {
            SetPVarInt(playerid, getWeaponNameID(GetPlayerWeapon(playerid)), GetPlayerAmmo(playerid));
        }
    }

    SetPVarInt(playerid, #registerMoney, GetPlayerMoney(playerid));
    SetPVarInt(playerid, #registerScore, GetPlayerScore(playerid));

    /*--------------------------------------------------
     *
     *  Anti Freeze Hack
     *   Usando GetPlayerPos com variбveis server sided
     *   A precisгo deste sistema fica em torno de 90%
     *
    -------------------------------------------------*/


    static Float:x, Float:y,Float:z;

    if(GetPVarInt(playerid, "PlayerControllable")) {
        GetPlayerPos(playerid, x, y, z);
        if((GetPVarFloat(playerid,"xposControll") != x) ||  (GetPVarFloat(playerid,"yposControll") != y) || (GetPVarFloat(playerid,"zposControll") != z)) {
            CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_FREEZE_HACK);
        }
    }
    else {

        GetPlayerPos(playerid, x, y, z);
        if(GetPVarFloat(playerid,"xposSet") != 0 && GetPVarFloat(playerid,"yposSet") != 0 && GetPVarFloat(playerid,"zposSet") != 0) {

            new Float:MAX_DISTANCE = MAX_DISTANCE_DEF;
           
            x = GetPVarFloat(playerid,"xposSet") - x;
            y = GetPVarFloat(playerid,"yposSet") - y;
            z = GetPVarFloat(playerid,"zposSet") - z;
           
            if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && GetPlayerSurfingVehicleID(playerid) == INVALID_VEHICLE_ID){
                MAX_DISTANCE = 20.0;
            }
            if((x > MAX_DISTANCE || x < -MAX_DISTANCE ) || (y > MAX_DISTANCE  || y < -MAX_DISTANCE ) ||  (z > MAX_DISTANCE  || z < -MAX_DISTANCE )) {
                if(gettime() - GetPVarInt(playerid,"tposSet") > 3) {
               
                    GetPlayerPos(playerid, x, y, z);
                    SetPlayerPos(playerid, x, y, z + 1.0);
                   
                    SetTimerEx(#pCheckPos, 500, false, "ifff", playerid, x, y, z);
                }
            }
            MAX_DISTANCE = MAX_DISTANCE_DEF;
        }

        GetPlayerPos(playerid, x, y, z);
        SetPVarFloat(playerid,"xposSet", x);
        SetPVarFloat(playerid,"yposSet", y);
        SetPVarFloat(playerid,"zposSet", z);
    }

    return true;
}

pCheckPos(i, Float:x, Float:y, Float:z);
public pCheckPos(i, Float:x, Float:y, Float:z) {

    /*--------------------------------------------------
     *
     *  Anti Teleport Hack
     *   Usando GetPlayerPos com variбveis server sided
     *   A precisгo deste sistema fica em torno de 85%
     *
    -------------------------------------------------*/

       
    if(IsPlayerInRangeOfPoint(i, 2.012837, x, y, z)) {
        CallLocalFunction("OnPlayerHacking", "ii", i, PLAYER_TELEPORT_HACK);
    }
   
    /*--------------------------------------------------
     *
     *  Anti AirBreak Hack
     *   Usando GetPlayerPos e SetPlayerPos com variбveis server sided
     *   A precisгo deste sistema fica em torno de 95%
     *
    -------------------------------------------------*/

       
    else {
        CallLocalFunction("OnPlayerHacking", "ii", i, PLAYER_AIRBREAK_HACK);
    }
    return true;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {

    /*--------------------------------------------------
     *
     *  Anti No-Reload
     *   Usando GetWeaponState e GetWeaponAmmo
     *   A precisгo deste sistema fica em torno de 90%
     *
    -------------------------------------------------*/

   
    static armaJogador;
    armaJogador = GetPlayerWeapon(playerid);
   
    if((((newkeys & (KEY_FIRE)) == (KEY_FIRE)) && ((oldkeys & (KEY_FIRE)) != (KEY_FIRE)))) {
        if(GetPlayerWeaponState(playerid) != 3) {
            if(!armaBranca(armaJogador) && GetPlayerAmmo(playerid) == GetPVarInt(playerid, getWeaponNameID(armaJogador))) {

                SetPVarInt(playerid, "keyFire", GetPVarInt(playerid, "keyFire") +1);

                if(GetPVarInt(playerid, "keyFire") >= WEAPON_SLOT_HACK) {
                    SetPVarInt(playerid, #keyFire, 0);
                    CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_NORELOAD_HACK);
                }
            }
        }
        else {
            SetPVarInt(playerid, #keyFire, 0);
        }
    }
    return true;
}



public OnPlayerStateChange(playerid, newstate, oldstate)
{
    /*--------------------------------------------------
     *
     *  Anti State Hack
     *   Usando OnPlayerStateChange com gettime
     *   A precisгo deste sistema fica em torno de 95%
     *
    -------------------------------------------------*/


    if(newstate == PLAYER_STATE_DRIVER) {
        if(gettime() - GetPVarInt(playerid, #registerState) < 2) {
            CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_STATE_HACK);
        }
        SetPVarInt(playerid, #registerState, gettime());
    }
    return 1;
}


public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat)
{

    /*--------------------------------------------------
     *
     *  Anti Surfer Vehicle
     *   Usando OnUnoccupiedVehicleUpdate com gettime e outros
     *   A precisгo deste sistema fica em torno de 85%
     *
    -------------------------------------------------*/


    GetVehiclePos(vehicleid, g_ucPos[0], g_ucPos[1], g_ucPos[2]);

    if(IsPlayerInRangeOfPoint(playerid, 4.0, g_ucPos[0], g_ucPos[1], g_ucPos[2])) {
        GetVehicleZAngle(vehicleid, g_ucPos[3]);
        if(g_diferencasAngle[vehicleid] != g_ucPos[3]) {
            if(!IsPlayerInAnyVehicle(playerid)) {
                GetPlayerPos(vehicleid, g_ucPos[1], g_ucPos[1], g_ucPos[3]);
                if(g_ucPos[3] > g_ucPos[2]) {
                    SetPVarInt(playerid, #registrosUAF, GetPVarInt(playerid, #registrosUAF) +1);
                    if(GetPVarInt(playerid, #registrosUAF) > 15) {
                        CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_SURF_VEHICLE);
                    }
                }
            }
        }
        g_diferencasAngle[vehicleid] = g_ucPos[3];
        return true;
    }

    /*--------------------------------------------------
     *
     *  Anti Teleport Vehicle
     *   Usando OnUnoccupiedVehicleUpdate com gettime e outros
     *   A precisгo deste sistema fica em torno de 85%
     *
    -------------------------------------------------*/


    else if(!IsPlayerInRangeOfPoint(playerid, 100.0, g_ucPos[0], g_ucPos[1], g_ucPos[2])) {
        if(!IsPlayerInAnyVehicle(playerid)) {
            CallLocalFunction("OnPlayerHacking", "ii", playerid, PLAYER_CAR_TELEPORT);
        }
    }
    return true;
}



#define GivePlayerMoney             GivePlayerMoney_Ex
#define SetPlayerScore              SetPlayerScore_Ex
#define PutPlayerInVehicle          PutPlayerInVehicle_Ex
#define PutPlayerInVehicle          PutPlayerInVehicle_Ex
#define SetPlayerArmour             SetPlayerArmour_Ex
#define SetPlayerHealth             SetPlayerHealth_Ex
#define TogglePlayerControllable    TogglePlayerControllable_Ex
#define GivePlayerWeapon            GivePlayerWeapon_Ex



/*
    Exemplo de uso para OnPlayerHacking
    INCLUDE AINDA NГO TERMINADA. FALTA CRIAR ITENS ANTI HACKINGS E HOOKEAR PUBLICAS !!!
*/

forward OnPlayerHacking(playerid, hackid);
public OnPlayerHacking(playerid, hackid) {

    if(hackid == PLAYER_BOT_LEVEL1) {
        SendClientMessage(playerid, -1, "noob para de ddos no meu sv ");
        Kick(playerid);
    }
    if(hackid == PLAYER_BOT_LEVEL2) {
        SendClientMessage(playerid, -1, "noob para de ddos no meu sv ");
        Kick(playerid);
    }
    if(hackid == PLAYER_BOT_LEVEL3) {
        SendClientMessage(playerid, -1, "noob para de ddos no meu sv BAN ");
        BanEx(playerid, "fdppp");
    }

    if(hackid == PLAYER_DEATHFLOOD_LEVEL1 || PLAYER_DEATHFLOOD_LEVEL2 == hackid || PLAYER_DEATHFLOOD_LEVEL3 == hackid) {
        SendClientMessage(playerid, -1, "noob para de fake kill");
    }

    if(hackid == PLAYER_SURF_VEHICLE) {
        SendClientMessage(playerid, -1, "noob para de surf vehicle");
    }

    if(hackid == PLAYER_SURF_VEHICLE) {
        SendClientMessage(playerid, -1, "noob para de surf vehicle");
    }

    if(hackid == PLAYER_CAR_TELEPORT) {
        SendClientMessage(playerid, -1, "noob para de car teleport");
    }

    if(hackid == PLAYER_STATE_HACK) {
        SendClientMessage(playerid, -1, "noob para de state hack");
    }

    if(hackid == PLAYER_FREEZE_HACK) {
        SendClientMessage(playerid, -1, "noob para de freeze hack");
    }

    if(hackid == PLAYER_SCORE_HACK) {
        SendClientMessage(playerid, -1, "noob para de score hack");
    }

    if(hackid == PLAYER_MONEY_HACK) {
        SendClientMessage(playerid, -1, "noob para de money hack");
    }
    if(hackid == PLAYER_PUBLISH_TEXT) {
        SendClientMessage(playerid, -1, "ninguem quer entrar no teu sv noob");
    }
    if(hackid == PLAYER_OFFEND_TEXT) {
        SendClientMessage(playerid, -1, "vtnc, para de ofende os outros fdp");
    }
    if(hackid == PLAYER_FLOOD_TEXT) {
        SendClientMessage(playerid, -1, "calma ai mermгo, rlx cuca");
    }
    if(hackid == PLAYER_TELEPORT_HACK) {
        SendClientMessage(playerid, -1, "preguiзoso, USA CARRO mas nгo teleport !!1");
    }
    if(hackid == PLAYER_WEAPON_HACK) {
        SendClientMessage(playerid, -1, "nгo usa weapon hack po");
    }
    if(hackid == PLAYER_AMMO_HACK) {
        SendClientMessage(playerid, -1, "fdp nao usa ammo hack");
    }
    if(hackid == PLAYER_NORELOAD_HACK) {
        SendClientMessage(playerid, -1, "fdp nao usa no reload hack");
    }
    if(hackid == PLAYER_AIRBREAK_HACK) {
        SendClientMessage(playerid, -1, "fdp para de usa no airbreak hack");
    }

    return true;
}
Enfim. Ainda nгo foi lanзado, nгo precisa se preucupar em achar bugs. Dando-me dicas estб bom, o resto eu arrumo conforme os testes e o tempo.

Para checar lб se й um nъmero de telefone eu farei um sistema "Mais inteligente" dedicado .. Й um tanto fбcil. Os endereзos de IP variam de 128000000 a 192168255255

Abraзos !!
Reply


Messages In This Thread
(Pawn) bProteзгo. Anti Hacking - by ipsBruno - 27.06.2012, 05:49
Re: (Pawn) bProteзгo. Anti Hacking - by Rick_DR - 27.06.2012, 10:08
Re: (Pawn) bProteзгo. Anti Hacking - by Edu33 - 27.06.2012, 10:20
Re: (Pawn) bProteзгo. Anti Hacking - by ViniBorn - 27.06.2012, 14:51
Re: (Pawn) bProteзгo. Anti Hacking - by ipsBruno - 27.06.2012, 15:28
Re: (Pawn) bProteзгo. Anti Hacking - by Vitor_Gorzoni - 27.06.2012, 15:47
Re: (Pawn) bProteзгo. Anti Hacking - by [JD]BlackFire - 27.06.2012, 15:55
Re: (Pawn) bProteзгo. Anti Hacking - by ipsBruno - 27.06.2012, 16:25
Re: (Pawn) bProteзгo. Anti Hacking - by leonardo1434 - 27.06.2012, 16:29
Re: (Pawn) bProteзгo. Anti Hacking - by paulor - 27.06.2012, 16:52
Re: (Pawn) bProteзгo. Anti Hacking - by Edu33 - 27.06.2012, 17:05
Re: (Pawn) bProteзгo. Anti Hacking - by ipsBruno - 27.06.2012, 17:09
Re: (Pawn) bProteзгo. Anti Hacking - by BreakDriFT - 27.06.2012, 17:13
Re: (Pawn) bProteзгo. Anti Hacking - by ipsBruno - 27.06.2012, 17:15
Re: (Pawn) bProteзгo. Anti Hacking - by paulor - 27.06.2012, 17:17
Re: (Pawn) bProteзгo. Anti Hacking - by ipsBruno - 27.06.2012, 17:21
Re: (Pawn) bProteзгo. Anti Hacking - by paulor - 27.06.2012, 19:50
Re: (Pawn) bProteзгo. Anti Hacking - by Mr.Hardy - 27.06.2012, 21:22
Re: (Pawn) bProteзгo. Anti Hacking - by paulor - 27.06.2012, 21:55
Re: (Pawn) bProteзгo. Anti Hacking - by Mr.Hardy - 27.06.2012, 23:11
Re: (Pawn) bProteзгo. Anti Hacking - by BreakDriFT - 28.06.2012, 01:29
Respuesta: (Pawn) bProteзгo. Anti Hacking - by Luciano* - 28.06.2012, 02:52
Re: (Pawn) bProteзгo. Anti Hacking - by ipsBruno - 28.06.2012, 03:06
Re: (Pawn) bProteзгo. Anti Hacking - by StrondA_ - 28.06.2012, 13:50
Re: (Pawn) bProteзгo. Anti Hacking - by ipsBruno - 28.06.2012, 16:06
Re: (Pawn) bProteзгo. Anti Hacking - by ipsBruno - 28.06.2012, 16:16
Re: (Pawn) bProteзгo. Anti Hacking - by .FuneraL. - 28.06.2012, 16:19
Re: (Pawn) bProteзгo. Anti Hacking - by paulor - 28.06.2012, 16:23
Re: (Pawn) bProteзгo. Anti Hacking - by ipsBruno - 28.06.2012, 16:40
Re: (Pawn) bProteзгo. Anti Hacking - by ipsBruno - 28.06.2012, 16:54
Re: (Pawn) bProteзгo. Anti Hacking - by Kmatsu - 28.06.2012, 16:55
Re: (Pawn) bProteзгo. Anti Hacking - by ipsBruno - 28.06.2012, 16:58
Re: (Pawn) bProteзгo. Anti Hacking - by DiReCt hIt - 09.12.2012, 15:19
Re: (Pawn) bProteзгo. Anti Hacking - by Chefгo - 09.12.2012, 15:35
Re: (Pawn) bProteзгo. Anti Hacking - by ExtremeKilll - 30.12.2012, 13:09
Re: (Pawn) bProteзгo. Anti Hacking - by jonathan_scripter - 30.01.2013, 20:05
Re: (Pawn) bProteзгo. Anti Hacking - by Maklister - 30.01.2013, 21:15
Re: (Pawn) bProteзгo. Anti Hacking - by Geo1996 - 30.01.2013, 23:18
Re: (Pawn) bProteзгo. Anti Hacking - by jonathan_scripter - 31.01.2013, 00:48

Forum Jump:


Users browsing this thread: 3 Guest(s)