[TuT] Simple AntiCheat system

Započeo Łuk@, Maj 22, 2016, 17:48:01 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Jednostavan antičit sistem (eng. AntiCheat system),u kojem se nalazi nekoliko opcija preko kojeg mozete ulovit citera (eng. cheater)

Puno vas ne zna da napravi obicni anticheat sistem a i mnogi se pate te dobijaju errore,pa da krenemo!
1. SPEED HACK
Kao sto mnogi ne znaju, ovu funkciju stavljamo pod public OnPlayerUpdate(playerid)
FORWARD:
forward AntiSpeedHack();
DEFINE:
#define MAX_SPEED 300 //DOSTA JE 300 KM/H ZBOG MOUNT CHILLIADA SKAKANJA ITD..
NEW ZA VOZILA:
new VehicleNames[][] =
{
  "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster",
  "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
  "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer",
  "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach",
  "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow",
  "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
  "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic",
  "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton",
  "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher",
  "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick",
  "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher",
  "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain",
  "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck",
  "Fortune", "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan",
  "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder",
  "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster",
  "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
  "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30",
  "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
  "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car", "Police Car", "Police Car",
  "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs",
  "Boxville", "Tiller", "Utility Trailer"
};

TIMER:
TIMER postavljate u OnGameModeInit
Mozete postaviti da provera svakih 5ms ili 1ms kako hocete.
SetTimer("AntiCheat", 5000, 1);
STOCK:
STOCKOVE STAVLJATE NA KRAJ SKRIPTE!
stock GetPlayerSpeed(playerid,bool:kmh)
{
  new Float:Vx,Float:Vy,Float:Vz,Float:rtn;
  if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),Vx,Vy,Vz); else GetPlayerVelocity(playerid,Vx,Vy,Vz);
  rtn = floatsqroot(floatabs(floatpower(Vx + Vy + Vz,2)));
  return kmh?floatround(rtn * 100 * 1.61):floatround(rtn * 100);
}

STOCKOVI - PROVERE JE LI AVION I VOZ!:
Stavljamo ovo posto na mnogim serverima kao sto je BElite kada vozite voza anticheat vas zaustavlja (KOD UP EDITA)
stock IsATrain(vehicleid)
{
    switch(GetVehicleModel(vehicleid))
    {
        case 449,537,538,569,570,590: return 1;
    }
    return 0;
}

stock IsAPlane(vehicleid)
{
    switch(GetVehicleModel(vehicleid))
    {
        case 460,464,476,511,512,513,519,520,553,577,592,593: return 1;
    }
    return 0;
}

ANTI SPEED HACK PUBLIC:
STAVLJATE ISTO NA KRAJ SKRIPTE!
public AntiSpeedHack()
{
        foreach (new i : Player)
        {
        new currentspeed = GetPlayerSpeed(i,true);
        if(currentspeed > MAX_SPEED)
        {
    new tmpcar = GetPlayerVehicleID(i), surf = GetPlayerSurfingVehicleID(i);
        if(!IsAPlane(tmpcar) && !(GetPlayerState(i) == PLAYER_STATE_PASSENGER) && !(IsATrain(tmpcar)) && surf == INVALID_VEHICLE_ID && GetPVarInt(i, "spawned") == 1)
        {
        new sendername[MAX_PLAYER_NAME];
        GetPlayerName(i, sendername, sizeof(sendername));
        new vehicleid = GetPlayerVehicleID(i);
        new Float:hp; GetVehicleHealth(vehicleid, hp);
        new string[150];
        format(string, sizeof(string), "Igrac %s (%d) (%d km/h) u %s sa %.2f VehHp.",sendername,i,currentspeed,VehicleNames[GetVehicleModel(GetPlayerVehicleID(i))-400],hp);
        SendClientMessageToAll(-1, string);
        }
        }
        }
}
}


2. ANTI GOD MODE:
OVO STAVLJATE POD public OnPlayerConnect(playerid)
    SetPVarInt(playerid, "LastHP", 0);
        SetPVarInt(playerid, "LastHP1", 0);
        SetPVarInt(playerid, "last_anim", 0);


OVO STAVLJATE POD public OnPlayerDisconnect(playerid)
    DeletePVar(playerid, "LastHP");
        DeletePVar(playerid, "LastHP1");
        DeletePVar(playerid, "last_anim");


OVO STAVLJATE POD public OnPlayerConnect(playerid)
       new Float: health, Float: armour;
        GetPlayerHealth(playerid, health);
        GetPlayerArmour(playerid, armour);
        new HP = floatround(health +armour, floatround_floor);
        if (GetPlayerTeam(playerid) == 255)
        {
            new anim_id = GetPlayerAnimationIndex(playerid);
                if (anim_id != GetPVarInt(playerid, "last_anim"))
                {
                        if (1071 <= anim_id <= 1086 || 1170 <= anim_id <= 1179 || 1240 <= anim_id <= 1243)
                        {
                        if (HP == GetPVarInt(playerid, "LastHP1") && HP == GetPVarInt(playerid, "LastHP"))
                            {
                                    new animlib[32], animname[32];
                                GetAnimationName(anim_id, animlib, sizeof(animlib), animname, sizeof(animname));
                                new name[MAX_PLAYER_NAME];
                                GetPlayerName(playerid, name, sizeof(name));
                                new string[128];
                                format(string, sizeof(string), "%s(%d) je pogodjen ali nije izgubio health!", name, playerid);
                                SendClientMessageToAll(-1, string);
                                }else{
                                        SetPVarInt(playerid, "LastHP1", HP);
                                }
                        }
                        SetPVarInt(playerid, "last_anim", anim_id);
                }
        }
        if (HP != GetPVarInt(playerid, "LastHP"))
        {
                SetPVarInt(playerid, "LastHP", HP);
        }


3. ANTI ARMOUR HACK
OVO STAVLJATE POD public OnPlayerUpdate(playerid)

new Float:Armour; GetPlayerArmour(playerid, Armour);
if(Armour > 99.0)
{
SendClientMessage(playerid, -1, "Kikovani ste");
Kick(playerid);
return 1;
}

4. ANTI HEALTH HACK
OVO STAVLJATE POD public OnPlayerUpdate(playerid)
new Float:Health; GetPlayerArmour(playerid, Health);
if(Health > 99.0)
{
SendClientMessage(playerid, -1, "Kikovani ste");
Kick(playerid);
return 1;
}



5. MAP TELEPORT CHEAT
OVO JE PUBLIC TE GA STAVLJATE NA KRAJ SKRIPTE!
    public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
{
    new aporuka[128];
    format(aporuka, sizeof(aporuka), "Igrac %s oznaciva markerom po karti (Moguc TP HACK)!",GetName(playerid));
    SendClientMessageToAll(-1, aporuka);
    return 1;
}

CREDITS: forum samp za pomoc oko detektovanja!
MOLIM MODERATORE DA OVO NE LOCKAJU JER CE SE OVA TEMA ÄŒESTO UPDATEOVAT!
Poslednja Izmena: Maj 22, 2016, 17:53:18 POSLE PODNE od ophion
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci


Hvala sad samo da dodam za tp map cheat.. :)
EDIT: dodan map teleport anticheat
Poslednja Izmena: Maj 22, 2016, 17:53:33 POSLE PODNE od ophion
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci


@Mate  hvala :D
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci


Hvala :D
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci


Thankks :3
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci

Nije lose samo sto za anti health i armour treba kad igracu postavlja hp ili pancir da postavlja na 99 inace ce po defaultu na 100 i detektovace igrace bzv, isto tako ce da detektuje ako igraci koriste automate za hp.

da.. znam..
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci

Jednostavno i lijepo, možda još da uradiš nešto za admine kao neki dialog u kojem mogu birati kako će anticheat raditi i te gluposti.

Inače, bravo za tutorijal. 10/10

Uskoro :D
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci

Citat: Seiz poslato Maj 22, 2016, 20:18:07 POSLE PODNE
Nije lose samo sto za anti health i armour treba kad igracu postavlja hp ili pancir da postavlja na 99 inace ce po defaultu na 100 i detektovace igrace bzv, isto tako ce da detektuje ako igraci koriste automate za hp.
zato se stavi da ne reaguje kad je igrac na poziciji gde su masine ;)

Citat: Nickname123 poslato Maj 22, 2016, 23:38:20 POSLE PODNE
Citat: Seiz poslato Maj 22, 2016, 20:18:07 POSLE PODNE
Nije lose samo sto za anti health i armour treba kad igracu postavlja hp ili pancir da postavlja na 99 inace ce po defaultu na 100 i detektovace igrace bzv, isto tako ce da detektuje ako igraci koriste automate za hp.
zato se stavi da ne reaguje kad je igrac na poziciji gde su masine ;)
Logicno.