[TuT] Simple AntiCheat system

Započeo Łuk@
22. Maj 2016. Zaključano
4,791
pregleda
21
postova
ophion
5
OG Legend
22. Maj 2016.
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;
        GetPlayerName(i, sendername, sizeof(sendername));
        new vehicleid = GetPlayerVehicleID(i);
        new Float:hp; GetVehicleHealth(vehicleid, hp);
        new string;
        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, animname;
                                GetAnimationName(anim_id, animlib, sizeof(animlib), animname, sizeof(animname));
                                new name;
                                GetPlayerName(playerid, name, sizeof(name));
                                new string;
                                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;
    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!
GANI
5
OG Legend
22. Maj 2016.
Fantasticno, posluzit ce nekom.
ophion
5
OG Legend
22. Maj 2016.
Hvala sad samo da dodam za tp map cheat.. 🙂
EDIT: dodan map teleport anticheat
Mate
5
Underboss
22. Maj 2016.
Fino,posluzit ce za Pocetnike  😁
ophion
5
OG Legend
22. Maj 2016.
@Plen Ki Mun  hvala 😄
Majkl_Mapping
4
Enforcer
22. Maj 2016.
Super je 😄
ophion
5
OG Legend
22. Maj 2016.
Hvala 😄
Muma Rascall
6
Forum Don
🔥4
22. Maj 2016.
Naaajs 😄
ophion
5
OG Legend
22. Maj 2016.
Thankks :3
seiz
4
Enforcer
22. Maj 2016.
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.
ophion
5
OG Legend
22. Maj 2016.
da.. znam..
raiN
4
Shot Caller
22. Maj 2016.
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
ophion
5
OG Legend
22. Maj 2016.
Uskoro 😄
Dzoni Zivkovic
5
Underboss
22. Maj 2016.
Seiz wrote on May 22, 2016, 6:18 pm:
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 😉
seiz
4
Enforcer
22. Maj 2016.
Nickname123 wrote on May 22, 2016, 6:18 pm:
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.

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha