//-----------------------------------------------------------------------------------| // [svCheats] | // | // | // - You may not remove these credits | // - You may not claim this script as yours | // | // | // | // [VERSION 1.1] Created by SuperViper | //-----------------------------------------------------------------------------------| #include #include // ==================================== SETTINGS ================================== /// // //| /* Comment if you are using this include inside of a filterscript */ //| #define GAMEMODE //| // //| /* Comment if you would like to use regular 'for' loops instead of foreach */ //| #define USE_FOREACH //| // //| /* Comment if you would like to use regular 'ALS' hooks instead of y_hooks */ //| #define USE_YHOOKS //| // //| /* Comment if you would like to use regular 'strcmp' commands instead of ZCMD */ //| #define USE_ZCMD //| // //| /* Change this amount to set how fast the timer (in ms) to detect cheats runs */ //| #define TIMER_TIME 1250 //| // //| /* Comment this if you would like to disable the /acstats command */ //| #define ACSTATS_USED //| // //| /* Comment this if you would like to disable the /hh command */ //| #define HH_USED (1) //| // //| /* Comment the anticheat(s) that you dont want and change the security level */ //| #define HIGH_PING (2) //| #define WEAPON_SPAWN (1) //| #define SPEED_HACK (1) //| #define JETPACK_HACK (1) //| #define DRVBY_RESTRICT (-1) //| #define DDRIVEBY_OFF (-1) //| #define SWEARING_OFF (-1) //| //#define AIRBREAK_HACK (1) //| #define BUNNYHOP_OFF (1) //| #define FLY_HACK (1) //| #define TELEPORT_HACK (1) //| #define VEHICLE_REPAIR (1) //| #define CHATSPAM_OFF (-1) //| #define AFK_DISABLED (2) //| #define TABBED_DISABLED (2) //| #define NINJAJACK_CHEAT (-1) //| // //| // //| // //| /* Change the anticheat settings to best fit your server */ //| #define MAX_PING (750) // Maximum server ping //| #define USED_INTERIORS "1 2" // Used interiors separated by a space //| #define MAX_SPEED (198) // Maximum vehicle speed //| #define DRIVEBY_WEAPONS "28 29 32" // Driveby allowed weapons separated by a space //| #define BUNNYHOP_AMOUNT (6) // Amount of jumps before it's called bunny hopping //| #define CHATSPAM_LINES (4) // Amount of lines sent before it's called spam //| #define AFK_MINUTES (10) // Amount of minutes before a person is AFK //| new CurseWords[][] = {"ass", "bitch", "shit", "fuck", "nigger"}; //| // ================================================================================ /// // DO NOT TOUCH ANYTHING BELOW THIS /// // ================================================================================ /// #if defined USE_FOREACH #tryinclude #endif #if defined USE_YHOOKS #tryinclude #endif #if defined USE_ZCMD #tryinclude #endif #if defined AIRBREAK_HACK #tryinclude #endif #define CHEAT_HIGH_PING (1) #define CHEAT_WEAPON_SPAWN (2) #define CHEAT_SPEED_HACK (3) #define CHEAT_JETPACK_HACK (4) #define CHEAT_DRIVEBY (5) #define CHEAT_DDRIVEBY (6) #define CHEAT_SWEARING (7) #define CHEAT_AIRBREAK_HACK (8) #define CHEAT_BUNNYHOP (9) #define CHEAT_FLY_HACK (10) #define CHEAT_TELEPORT_HACK (11) #define CHEAT_VEHICLE_REPAIR (12) #define CHEAT_CHATSPAM (13) #define CHEAT_AFK (14) #define CHEAT_TABBED (15) #define CHEAT_GODMODE (16) #define CHEAT_NINJAJACK (17) forward svCheats_Detector(); forward svCheats_OnPlayerCheatUpdate(playerid, cheatid); enum e_svCheats_HH { svCheckedBy, bool: svInVehicle, svVehicleID, svVehicleSeat, Float: svOldPlayerPos[4], svInterior, svVirtualWorld, Float: svHealth, Float: svArmor, } new svCheats_SecurityLevel[MAX_PLAYERS], bool: svCheats_Debugging; new bool: svCheats_GrantedJetpack[MAX_PLAYERS], Float: svCheats_VehicleHealth[MAX_VEHICLES] = 1000.0; new svCheats_JumpCounters[MAX_PLAYERS], svCheats_JumpCounterTimer[MAX_PLAYERS]; new svCheats_PlayerWeapons[MAX_PLAYERS][13], svCheats_SpamCounters[MAX_PLAYERS]; new svCheats_AFKTime[MAX_PLAYERS], svCheats_LastAFKUpdate[MAX_PLAYERS], bool: svCheats_ReportedAFK[MAX_PLAYERS]; new svCheats_TabbedUpdates[MAX_PLAYERS], bool: svCheats_ReportedTabbed[MAX_PLAYERS], bool: svCheats_TabbedDisabled[MAX_PLAYERS]; new svCheats_HH[MAX_PLAYERS][e_svCheats_HH]; new svCheats_PossibleNinjaJack[MAX_PLAYERS]; new svCheats_AmountDetected; #if defined USE_YHOOKS #if defined GAMEMODE hook OnGameModeInit() { new File: svCheats_Stats; if(!fexist("svCheats_Stats.txt")) { svCheats_Stats = fopen("svCheats_Stats.txt", io_append); fwrite(svCheats_Stats, "0"); } else { new amountDetected[5]; svCheats_Stats = fopen("svCheats_Stats.txt", io_read); fread(svCheats_Stats, amountDetected); svCheats_AmountDetected = strval(amountDetected); } fclose(svCheats_Stats); SetTimer("svCheats_Detector", TIMER_TIME, 1); return 1; } hook OnGameModeExit() { new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write); format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected); fwrite(svCheats_Stats, amountDetected); fclose(svCheats_Stats); return 1; } #else hook OnFilterScriptInit() { new File: svCheats_Stats; if(!fexist("svCheats_Stats.txt")) { svCheats_Stats = fopen("svCheats_Stats.txt", io_append); fwrite(svCheats_Stats, "0"); } else { new amountDetected[5]; svCheats_Stats = fopen("svCheats_Stats.txt", io_read); fread(svCheats_Stats, amountDetected); svCheats_AmountDetected = strval(amountDetected); } fclose(svCheats_Stats); SetTimer("svCheats_Detector", TIMER_TIME, 1); return 1; } hook OnFilterScriptExit() { new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write); format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected); fwrite(svCheats_Stats, amountDetected); fclose(svCheats_Stats); return 1; } #endif hook OnPlayerConnect(playerid) { svCheats_SecurityLevel[playerid] = 0; #if defined JETPACK_HACK svCheats_GrantedJetpack[playerid] = false; #endif #if defined BUNNYHOP_OFF svCheats_JumpCounters[playerid] = 0; svCheats_JumpCounterTimer[playerid] = -1; #endif #if defined CHATSPAM_OFF svCheats_SpamCounters[playerid] = 0; #endif #if defined WEAPON_SPAWN for(new i = 0; i < 13; i++) { svCheats_PlayerWeapons[playerid][i] = 0; } #endif #if defined AFK_DISABLED svCheats_AFKTime[playerid] = 0; svCheats_LastAFKUpdate[playerid] = GetTickCount(); svCheats_ReportedAFK[playerid] = false; #endif #if defined TABBED_DISABLED svCheats_TabbedUpdates[playerid] = 0; svCheats_ReportedTabbed[playerid] = false; svCheats_TabbedDisabled[playerid] = true; #endif #if defined HH_USED svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID; #endif #if defined NINJAJACK_CHEAT svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID; #endif return 1; } hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { #if defined BUNNYHOP_OFF if(newkeys & KEY_JUMP) { if(svCheats_SecurityLevel[playerid] < BUNNYHOP_OFF || BUNNYHOP_OFF == -1) { new ai = GetPlayerAnimationIndex(playerid); if(ai != 1061 && ai != 1062 && ai != 1064 && ai != 1066 && ai != 1195 && ai != 1997) { svCheats_JumpCounters[playerid]++; if(svCheats_JumpCounterTimer[playerid] > -1) { KillTimer(svCheats_JumpCounterTimer[playerid]); svCheats_JumpCounterTimer[playerid] = -1; } if(svCheats_JumpCounters[playerid] == BUNNYHOP_AMOUNT) { svCheats_JumpCounters[playerid] = 0; CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_BUNNYHOP); svCheats_AmountDetected++; } else { svCheats_JumpCounterTimer[playerid] = SetTimerEx("svCheats_JumpCountersDown", 3000, 0, "i", playerid); } } } } #endif #if defined WEAPON_SPAWN if(newkeys & KEY_FIRE) { if(svCheats_SecurityLevel[playerid] < WEAPON_SPAWN || WEAPON_SPAWN == -1) { new w = GetPlayerWeapon(playerid); if(w > 0) { if(svCheats_PlayerWeapons[playerid][svCheats_GetWeaponSlot(w)] != w) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_WEAPON_SPAWN); svCheats_AmountDetected++; } } } } #endif return 1; } hook OnPlayerText(playerid, text[]) { #if defined SWEARING_OFF if(svCheats_SecurityLevel[playerid] < SWEARING_OFF || SWEARING_OFF == -1) { for(new c = 0; c < sizeof(CurseWords); c++) { if(strfind(text, CurseWords[c], true) > -1) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SWEARING); svCheats_AmountDetected++; return 0; } } } #endif #if defined CHATSPAM_OFF if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1) { svCheats_SpamCounters[playerid]++; if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES) { svCheats_SpamCounters[playerid] = 0; CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_CHATSPAM); svCheats_AmountDetected++; return 0; } } #endif #if defined AFK_DISABLED if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1) { svCheats_AFKTime[playerid] = 0; svCheats_ReportedAFK[playerid] = false; } #endif return 0; } #if defined VEHICLE_REPAIR hook OnVehicleSpawn(vehicleid) { svCheats_VehicleHealth[vehicleid] = 1000.0; return 1; } hook OnPlayerStateChange(playerid, newstate, oldstate) { if(newstate == PLAYER_STATE_DRIVER) { #if defined VEHICLE_REPAIR new vehicleid = GetPlayerVehicleID(playerid); GetVehicleHealth(vehicleid, svCheats_VehicleHealth[vehicleid]); #endif #if defined NINJAJACK_OFF #if defined USE_FOREACH foreach(new i: Player) { if(svCheats_PossibleNinjaJack[i] == playerid) { svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID; break; } } #else for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(svCheats_PossibleNinjaJack[i] == playerid) { svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID; break; } } } #endif #endif } return 1; } #endif #if defined CHEAT_TABBED hook OnPlayerUpdate(playerid) { svCheats_TabbedUpdates[playerid] = 0; svCheats_ReportedTabbed[playerid] = false; return 1; } hook OnPlayerSpawn(playerid) { svCheats_TabbedDisabled[playerid] = false; return 1; } #endif hook OnPlayerDeath(playerid, killerid, reason) { svCheats_TabbedDisabled[playerid] = true; if(killerid == INVALID_PLAYER_ID) { if(svCheats_PossibleNinjaJack[playerid] != INVALID_PLAYER_ID) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", svCheats_PossibleNinjaJack[playerid], CHEAT_NINJAJACK); svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID; } } return 1; } hook OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { #if defined DRVBY_RESTRICT if(svCheats_SecurityLevel[playerid] < DRVBY_RESTRICT || DRVBY_RESTRICT == -1) { if(ispassenger) { new w = GetPlayerWeapon(playerid); if(w > 0) { new allowedWeapons[10], bool: allowed; sscanf(DRIVEBY_WEAPONS, "a[10]", allowedWeapons); for(new i = 0; i < sizeof(allowedWeapons); i++) { if(w == allowedWeapons[i]) { allowed = true; break; } } if(allowed == false) { SetPlayerArmedWeapon(playerid, 0); CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DRIVEBY); svCheats_AmountDetected++; } } } } #endif #if defined DDRIVEBY_OFF if(svCheats_SecurityLevel[playerid] < DDRIVEBY_OFF || DDRIVEBY_OFF == -1) { if(!ispassenger) { new w = GetPlayerWeapon(playerid); if(w > 0) { SetPlayerArmedWeapon(playerid, 0); CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DDRIVEBY); svCheats_AmountDetected++; } } } #endif #if defined NINJAJACK_CHEAT if(svCheats_SecurityLevel[playerid] < NINJAJACK_CHEAT || NINJAJACK_CHEAT == -1) { if(!ispassenger) { #if defined USE_FOREACH foreach(new i: Player) { if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER) { svCheats_PossibleNinjaJack[i] = playerid; break; } } #else for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER) { svCheats_PossibleNinjaJack[i] = playerid; break; } } } #endif } } #endif return 1; } #if defined USE_ZCMD #if defined HH_USED COMMAND:hh(playerid, params[]) { if(svCheats_SecurityLevel[playerid] < HH_USED) { return SendClientMessage(playerid, -1, "You are not authorized to use this command."); } new svCheats_giveplayerid; if(sscanf(params, "u", svCheats_giveplayerid)) { return SendClientMessage(playerid, -1, "USAGE: /hh [player]"); } if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true) { return SendClientMessage(playerid, -1, "You may not health hack check tabbed players."); } if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID) { return SendClientMessage(playerid, -1, "That player is already being checked for health hacks."); } new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3]; GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName)); format(string, sizeof(string), "Checking %s for health hacks...", playersName); SendClientMessage(playerid, -1, string); GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]); SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]); SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5); for(new i = 0; i < 3; i++) { svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i]; } GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]); svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid); svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid); if(IsPlayerInAnyVehicle(svCheats_giveplayerid)) { svCheats_HH[svCheats_giveplayerid][svInVehicle] = true; svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid); svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid); } else { svCheats_HH[svCheats_giveplayerid][svInVehicle] = false; } GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]); GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]); svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid; SetPlayerInterior(svCheats_giveplayerid, 0); SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0); SetPlayerHealth(svCheats_giveplayerid, 100.0); SetPlayerArmour(svCheats_giveplayerid, 0.0); SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid); return 1; } #endif #if defined ACSTATS_USED COMMAND:acstats(playerid, params[]) { new string[50]; format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected); SendClientMessage(playerid, -1, string); return 1; } #endif #else hook OnPlayerCommandText(playerid, cmdtext[]) { #if defined HH_USED new svCheats_cmd[5]; sscanf(cmdtext, "s[5]", svCheats_cmd); if(strcmp(svCheats_cmd, "/hh", true) == 0) { if(svCheats_SecurityLevel[playerid] < HH_USED) { return SendClientMessage(playerid, -1, "You are not authorized to use this command."); } new svCheats_giveplayerid; if(sscanf(cmdtext, "{s[5]}u", svCheats_giveplayeid)) { return SendClientMessage(playerid, -1, "USAGE: /hh [player]"); } if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true) { return SendClientMessage(playerid, -1, "You may not health hack check tabbed players."); } if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID) { return SendClientMessage(playerid, -1, "That player is already being checked for health hacks."); } new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3]; GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName)); format(string, sizeof(string), "Checking %s for health hacks...", playersName); SendClientMessage(playerid, -1, string); GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]); SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]); SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5); for(new i = 0; i < 3; i++) { svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i]; } GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]); svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid); svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid); if(IsPlayerInAnyVehicle(svCheats_giveplayerid)) { svCheats_HH[svCheats_giveplayerid][svInVehicle] = true; svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid); svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid); } else { svCheats_HH[svCheats_giveplayerid][svInVehicle] = false; } GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]); GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]); svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid; SetPlayerInterior(svCheats_giveplayerid, 0); SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0); SetPlayerHealth(svCheats_giveplayerid, 100.0); SetPlayerArmour(svCheats_giveplayerid, 0.0); SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid); return 1; } #endif #if defined ACSTATS_USED if(strcmp(cmdtext, "/acstats", true) == 0) { new string[50]; format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected); SendClientMessage(playerid, -1, string); return 1; } #endif return 0; } #endif #if defined HH_USED hook OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) { if(issuerid == INVALID_PLAYER_ID) { if(svCheats_HH[playerid][svCheckedBy] != INVALID_PLAYER_ID) { new string[128], playersName[MAX_PLAYER_NAME], giveplayerid = svCheats_HH[playerid][svCheckedBy]; GetPlayerName(playerid, playersName, sizeof(playersName)); format(string, sizeof(string), "The health hack check on %s has been finished and the result is {F81414}negative{FFFFFF}.", playersName); SendClientMessage(giveplayerid, -1, string); svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID; SetPlayerVirtualWorld(playerid, svCheats_HH[playerid][svVirtualWorld]); SetPlayerInterior(playerid, svCheats_HH[playerid][svInterior]); SetPlayerPos(playerid, svCheats_HH[playerid][svOldPlayerPos][0], svCheats_HH[playerid][svOldPlayerPos][1], svCheats_HH[playerid][svOldPlayerPos][2]); SetPlayerFacingAngle(playerid, svCheats_HH[playerid][svOldPlayerPos][3]); if(svCheats_HH[playerid][svInVehicle] == true) { PutPlayerInVehicle(playerid, svCheats_HH[playerid][svVehicleID], svCheats_HH[playerid][svVehicleSeat]); } SetPlayerHealth(playerid, svCheats_HH[playerid][svHealth]); SetPlayerArmour(playerid, svCheats_HH[playerid][svArmor]); SetCameraBehindPlayer(playerid); } } return CallRemoteFunction("svCheats_OnPlayerTakeDamage", "ddfd", playerid, issuerid, amount, weaponid); } #endif #else #if defined GAMEMODE forward svCheats_OnGameModeInit(); public OnGameModeInit() { new File: svCheats_Stats; if(!fexist("svCheats_Stats.txt")) { svCheats_Stats = fopen("svCheats_Stats.txt", io_append); fwrite(svCheats_Stats, "0"); } else { new amountDetected[5]; svCheats_Stats = fopen("svCheats_Stats.txt", io_read); fread(svCheats_Stats, amountDetected); svCheats_AmountDetected = strval(amountDetected); } fclose(svCheats_Stats); SetTimer("svCheats_Detector", TIMER_TIME, 1); return 1; } #if defined _ALS_OnGameModeInit #undef OnGameModeInit #else #define _ALS_OnGameModeInit #endif #define OnGameModeInit svCheats_OnGameModeInit forward svCheats_OnGameModeExit(); public OnGameModeExit() { new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write); format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected); fwrite(svCheats_Stats, amountDetected); fclose(svCheats_Stats); return 1; } #if defined _ALS_OnGameModeExit #undef OnGameModeExit #else #define _ALS_OnGameModeExit #endif #define OnGameModeExit svCheats_OnGameModeExit #else forward svCheats_OnFilterScriptInit(); public OnFilterScriptInit() { new File: svCheats_Stats; if(!fexist("svCheats_Stats.txt")) { svCheats_Stats = fopen("svCheats_Stats.txt", io_append); fwrite(svCheats_Stats, "0"); } else { new amountDetected[5]; svCheats_Stats = fopen("svCheats_Stats.txt", io_read); fread(svCheats_Stats, amountDetected); svCheats_AmountDetected = strval(amountDetected); } fclose(svCheats_Stats); SetTimer("svCheats_Detector", TIMER_TIME, 1); return 1; } #if defined _ALS_OnFilterScriptInit #undef OnFilterScriptInit #else #define _ALS_OnFilterScriptInit #endif #define OnFilterScriptInit svCheats_OnFilterScriptInit forward svCheats_OnFilterScriptExit(); public OnFilterScriptExit() { new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write); format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected); fwrite(svCheats_Stats, amountDetected); fclose(svCheats_Stats); return 1; } #if defined _ALS_OnFilterScriptExit #undef OnFilterScriptExit #else #define _ALS_OnFilterScriptExit #endif #define OnFilterScriptExit svCheats_OnFilterScriptExit #endif forward svCheats_OnPlayerDeath(playerid, killerid, reason); public OnPlayerDeath(playerid, killerid, reason) { svCheats_TabbedDisabled[playerid] = true; if(killerid == INVALID_PLAYER_ID) { if(svCheats_PossibleNinjaJack[playerid] != INVALID_PLAYER_ID) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", svCheats_PossibleNinjaJack[playerid], CHEAT_NINJAJACK); svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID; } } return CallRemoteFunction("svCheats_OnPlayerDeat", "ddd", playerid, killerid, reason);; } #if defined _ALS_OnPlayerDeath #undef OnPlayerDeath #else #define _ALS_OnPlayerDeath #endif #define OnPlayerDeath svCheats_OnPlayerDeath forward svCheats_OnPlayerConnect(); public OnPlayerConnect(playerid) { svCheats_SecurityLevel[playerid] = 0; #if defined JETPACK_HACK svCheats_GrantedJetpack[playerid] = false; #endif #if defined BUNNYHOP_OFF svCheats_JumpCounters[playerid] = 0; svCheats_JumpCounterTimer[playerid] = -1; #endif #if defined CHATSPAM_OFF svCheats_SpamCounters[playerid] = 0; #endif #if defined WEAPON_SPAWN for(new i = 0; i < 13; i++) { svCheats_PlayerWeapons[playerid][i] = 0; } #endif #if defined AFK_DISABLED svCheats_AFKTime[playerid] = 0; svCheats_LastAFKUpdate[playerid] = GetTickCount(); svCheats_ReportedAFK[playerid] = false; #endif #if defined TABBED_DISABLED svCheats_TabbedUpdates[playerid] = 0; svCheats_ReportedTabbed[playerid] = false; svCheats_TabbedDisabled[playerid] = true; #endif #if defined HH_USED svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID; #endif #if defined NINJAJACK_CHEAT svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID; #endif return CallRemoteFunction("svCheats_OnPlayerConnect", "d", playerid); } #if defined _ALS_OnPlayerConnect #undef OnPlayerConnect #else #define _ALS_OnPlayerConnect #endif #define OnPlayerConnect svCheats_OnPlayerConnect forward svCheats_OnPlayerKeyStateChange(playerid, newkeys, oldkeys); public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { #if defined BUNNYHOP_OFF if(newkeys & KEY_JUMP) { if(svCheats_SecurityLevel[playerid] < BUNNYHOP_OFF || BUNNYHOP_OFF == -1) { new ai = GetPlayerAnimationIndex(playerid); if(ai != 1061 && ai != 1062 && ai != 1064 && ai != 1066 && ai != 1195 && ai != 1997) { svCheats_JumpCounters[playerid]++; if(svCheats_JumpCounterTimer[playerid] > -1) { KillTimer(svCheats_JumpCounterTimer[playerid]); svCheats_JumpCounerTimer[playerid] = -1; } if(svCheats_JumpCounters[playerid] == BUNNYHOP_AMOUNT) { svCheats_JumpCounters[playerid] = 0; CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_BUNNYHOP); svCheats_AmountDetected++; } else { svCheats_JumpCounterTimer[playerid] = SetTimerEx("svCheats_JumpCountersDown", 3000, 0, "i", playerid); } } } } #endif #if defined WEAPON_SPAWN if(newkeys & KEY_FIRE) { if(svCheats_SecurityLevel[playerid] < WEAPON_SPAWN || WEAPON_SPAWN == -1) { new w = GetPlayerWeapon(playerid); if(w > 0) { if(svCheats_PlayerWeapons[playerid][svCheats_GetWeaponSlot(w)] != w) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_WEAPON_SPAWN); svCheats_AmountDetected++; } } } } #endif return CallRemoteFunction("svCheats_OnPlayerKeyStateChange", "ddd", playerid, newkeys, oldkeys); } #if defined _ALS_OnPlayerKeyStateChange #undef OnPlayerKeyStateChange #else #define _ALS_OnPlayerKeyStateChange #endif #define OnPlayerKeyStateChange svCheats_OnPlayerKeyStateChange forward svCheats_OnPlayerText(playerid, text[]); public OnPlayerText(playerid, text[]) { #if defined SWEARING_OFF if(svCheats_SecurityLevel[playerid] < SWEARING_OFF || SWEARING_OFF == -1) { for(new c = 0; c < sizeof(CurseWords); c++) { if(strfind(string, CurseWords[c], true) > -1) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SWEARING); svCheats_AmountDetected++; return 0; } } } #endif #if defined CHATSPAM_OFF if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1) { svCheats_SpamCounters[playerid]++; if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES) { svCheats_SpamCounters[playerid] = 0; CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_CHATSPAM); svCheats_AmountDetected++; return 0; } } #endif #if defined AFK_DISABLED if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1) { svCheats_AFKTime[playerid] = 0; svCheats_ReportedAFK[playerid] = false; } #endif return CallRemoteFunction("svCheats_OnPlayerText", "ds", playerid, text); } #if defined _ALS_OnPlayerText #undef OnPlayerText #else #define _ALS_OnPlayerText #endif #define OnPlayerText svCheats_OnPlayerText #if defined VEHICLE_REPAIR forward svCheats_OnVehicleSpawn(vehicleid); public OnVehicleSpawn(vehicleid) { svCheats_VehicleHealth[vehicleid] = 1000.0; return CallRemoteFunction("svCheats_OnVehicleSpawn", "d", vehicleid); } #if defined _ALS_OnVehicleSpawn #undef OnVehicleSpawn #else #define _ALS_OnVehicleSpawn #endif #define OnVehicleSpawn svCheats_OnVehicleSpawn forward svCheats_OnPlayerStateChange(playerid, newstate, oldstate); public OnPlayerStateChange(playerid, newstate, oldstate) { if(newstate == PLAYER_STATE_DRIVER) { #if defined VEHICLE_REPAIR new vehicleid = GetPlayerVehicleID(playerid); GetVehicleHealth(vehicleid, svCheats_VehicleHealth[vehicleid]); #endif #if defined NINJAJACK_OFF #if defined USE_FOREACH foreach(new i: Player) { if(svCheats_PossibleNinjaJack[i] == playerid) { svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID; break; } } #else for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(svCheats_PossibleNinjaJack[i] == playerid) { svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID; break; } } } #endif #endif } return CallRemoteFunction("svCheats_OnPlayerStateChange", "ddd", playerid, newstate, oldstate); } #if defined _ALS_OnPlayerStateChange #undef OnPlayerStateChange #else #define _ALS_OnPlayerStateChange #endif #define OnPlayerStateChange svCheats_OnPlayerStateChange #endif #if defined CHEAT_TABBED forward svCheats_OnPlayerUpdate(playerid); public OnPlayerUpdate(playerid) { svCheats_TabbedUpdates[playerid] = 0; svCheats_ReportedTabbed[playerid] = false; return CallRemoteFunction("svCheats_OnPlayerUpdate", "d", playerid); } #if defined _ALS_OnPlayerUpdate #undef OnPlayerUpdate #else #define _ALS_OnPlayerUpdate #endif #define OnPlayerUpdate svCheats_OnPlayerUpdate forward svCheats_OnPlayerSpawn(playerid); public OnPlayerSpawn(playerid) { svCheats_TabbedDisabled[playerid] = false; return CallRemoteFunction("svCheats_OnPlayerSpawn", "d", playerid);; } #if defined _ALS_OnPlayerSpawn #undef OnPlayerSpawn #else #define _ALS_OnPlayerSpawn #endif #define OnPlayerSpawn svCheats_OnPlayerSpawn forward svCheats_OnPlayerEnterVehicle(playerid, vehicleid, ispassenger); public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { #if defined DRVBY_RESTRICT if(svCheats_SecurityLevel[playerid] < DRVBY_RESTRICT || DRVBY_RESTRICT == -1) { if(ispassenger) { new w = GetPlayerWeapon(playerid); if(w > 0) { new allowedWeapons[10], bool: allowed; sscanf(DRIVEBY_WEAPONS, "a[10]", allowedWeapons); for(new i = 0; i < sizeof(allowedWeapons); i++) { if(w == allowedWeapons[i]) { allowed = true; break; } } if(allowed == false) { SetPlayerArmedWeapon(playerid, 0); CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DRIVEBY); svCheats_AmountDetected++; } } } } #endif #if defined DDRIVEBY_OFF if(svCheats_SecurityLevel[playerid] < DDRIVEBY_OFF || DDRIVEBY_OFF == -1) { if(!ispassenger) { new w = GetPlayerWeapon(playerid); if(w > 0) { SetPlayerArmedWeapon(playerid, 0); CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DDRIVEBY); svCheats_AmountDetected++; } } } #endif #if defined NINJAJACK_CHEAT if(svCheats_SecurityLevel[playerid] < NINJAJACK_CHEAT || NINJAJACK_CHEAT == -1) { if(!ispassenger) { #if defined USE_FOREACH foreach(new i: Player) { if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER) { svCheats_PossibleNinjaJack[i] = playerid; break; } } #else for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER) { svCheats_PossibleNinjaJack[i] = playerid; break; } } } #endif } } #endif return CallRemoteFunction("svCheats_OnPlayerEnterVehicle", "ddd", playerid, vehicleid, ispassenger); } #if defined _ALS_OnPlayerEnterVehicle #undef OnPlayerEnterVehicle #else #define _ALS_OnPlayerEnterVehicle #endif #define OnPlayerEnterVehicle svCheats_OnPlayerEnterVehicle #if defined USE_ZCMD #if defined HH_USED COMMAND:hh(playerid, params[]) { if(svCheats_SecurityLevel[playerid] < HH_USED) { return SendClientMessage(playerid, -1, "You are not authorized to use this command."); } new svCheats_giveplayerid; if(sscanf(params, "u", svCheats_giveplayerid)) { return SendClientMessage(playerid, -1, "USAGE: /hh [player]"); } if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true) { return SendClientMessage(playerid, -1, "You may not health hack check tabbed players."); } if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID) { return SendClientMessage(playerid, -1, "That player is already being checked for health hacks."); } new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3]; GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName)); format(string, sizeof(string), "Checking %s for health hacks...", playersName); SendClientMessage(playerid, -1, string); GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]); SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]); SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5); for(new i = 0; i < 3; i++) { svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i]; } GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]); svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid); svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid); if(IsPlayerInAnyVehicle(svCheats_giveplayerid)) { svCheats_HH[svCheats_giveplayerid][svInVehicle] = true; svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid); svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid); } else { svCheats_HH[svCheats_giveplayerid][svInVehicle] = false; } GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]); GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]); svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid; SetPlayerInterior(svCheats_giveplayerid, 0); SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0); SetPlayerHealth(svCheats_giveplayerid, 100.0); SetPlayerArmour(svCheats_giveplayerid, 0.0); SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid); return 1; } #endif #if defined ACSTATS_USED COMMAND:acstats(playerid, params[]) { new string[50]; format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected); SendClientMessage(playerid, -1, string); return 1; } #endif #else forward svCheats_OnPlayerCommandText(playerid, cmdtext[]); public OnPlayerCommandText(playerid, cmdtext[]) { #if defined HH_USED new svCheats_cmd[5]; sscanf(cmdtext, "s[5]", svCheats_cmd); if(strcmp(svCheats_cmd, "/hh", true) == 0) { if(svCheats_SecurityLevel[playerid] < HH_USED) { return SendClientMessage(playerid, -1, "You are not authorized to use this command."); } new svCheats_giveplayerid; if(sscanf(cmdtext, "{s[5]}u", svCheats_giveplayeid)) { return SendClientMessage(playerid, -1, "USAGE: /hh [player]"); } if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true) { return SendClientMessage(playerid, -1, "You may not health hack check tabbed players."); } if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID) { return SendClientMessage(playerid, -1, "That player is already being checked for health hacks."); } new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3]; GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName)); format(string, sizeof(string), "Checking %s for health hacks...", playersName); SendClientMessage(playerid, -1, string); GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]); SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]); SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5); for(new i = 0; i < 3; i++) { svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i]; } GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]); svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid); svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid); if(IsPlayerInAnyVehicle(svCheats_giveplayerid)) { svCheats_HH[svCheats_giveplayerid][svInVehicle] = true; svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid); svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid); } else { svCheats_HH[svCheats_giveplayerid][svInVehicle] = false; } GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]); GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]); svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid; SetPlayerInterior(svCheats_giveplayerid, 0); SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0); SetPlayerHealth(svCheats_giveplayerid, 100.0); SetPlayerArmour(svCheats_giveplayerid, 0.0); SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid); return 1; } #endif #if defined ACSTATS_USED if(strcmp(cmdtext, "/acstats", true) == 0) { new string[50]; format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected); SendClientMessage(playerid, -1, string); return 1; } #endif return CallRemoteFunction("svCheats_OnPlayerCommandText", "ds", playerid, cmdtext); } #if defined _ALS_OnPlayerCommandText #undef OnPlayerCommandText #else #define _ALS_OnPlayerCommandText #endif #define OnPlayerCommandText svCheats_OnPlayerCommandText #endif #if defined HH_USED forward svCheats_OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid); public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) { if(issuerid == INVALID_PLAYER_ID) { if(svCheats_HH[playerid][svCheckedBy] != INVALID_PLAYER_ID) { new string[128], playersName[MAX_PLAYER_NAME], playerid = svCheats_HH[playerid][svCheckedBy]; GetPlayerName(playerid, playersName, sizeof(playersName)); format(string, sizeof(string), "The health hack check on %s has been finished and the result is {F81414}negative{FFFFFF}.", playersName); SendClientMessage(giveplayerid, -1, string); svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID; SetPlayerVirtualWorld(playerid, svCheats_HH[playerid][svVirtualWorld]); SetPlayerInterior(playerid, svCheats_HH[playerid][svInterior]); SetPlayerPos(playerid, svCheats_HH[playerid][svOldPlayerPos][0], svCheats_HH[playerid][svOldPlayerPos][1], svCheats_HH[playerid][svOldPlayerPos][2]); SetPlayerFacingAngle(playerid, svCheats_HH[playerid][svOldPlayerPos][3]); if(svCheats_HH[playerid][svInVehicle] == true) { PutPlayerInVehicle(playerid, svCheats_HH[playerid][svVehicleID], svCheats_HH[playerid][svVehicleSeat]); } SetPlayerHealth(playerid, svCheats_HH[playerid][svHealth]); SetPlayerArmour(playerid, svCheats_HH[playerid][svArmor]); SetCameraBehindPlayer(playerid); } } return CallRemoteFunction("svCheats_OnPlayerTakeDamage", "ddfd", playerid, issuerid, amount, weaponid); } #if defined _ALS_OnPlayerTakeDamage #undef OnPlayerTakeDamage #else #define _ALS_OnPlayerTakeDamage #endif #define OnPlayerTakeDamage svCheats_OnPlayerTakeDamage #endif #endif #endif forward svCheats_HealthHackCheck(giveplayerid); public svCheats_HealthHackCheck(giveplayerid) { if(svCheats_HH[giveplayerid][svCheckedBy] != INVALID_PLAYER_ID) { new string[128], playersName[MAX_PLAYER_NAME], playerid = svCheats_HH[giveplayerid][svCheckedBy]; GetPlayerName(giveplayerid, playersName, sizeof(playersName)); format(string, sizeof(string), "The health hack check on %s has been finished and the result is {6EF83C}positive{FFFFFF}.", playersName); SendClientMessage(playerid, -1, string); svCheats_HH[giveplayerid][svCheckedBy] = INVALID_PLAYER_ID; SetPlayerVirtualWorld(giveplayerid, svCheats_HH[giveplayerid][svVirtualWorld]); SetPlayerInterior(giveplayerid, svCheats_HH[giveplayerid][svInterior]); SetPlayerPos(giveplayerid, svCheats_HH[giveplayerid][svOldPlayerPos][0], svCheats_HH[giveplayerid][svOldPlayerPos][1], svCheats_HH[giveplayerid][svOldPlayerPos][2]); SetPlayerFacingAngle(giveplayerid, svCheats_HH[giveplayerid][svOldPlayerPos][3]); if(svCheats_HH[giveplayerid][svInVehicle] == true) { PutPlayerInVehicle(giveplayerid, svCheats_HH[giveplayerid][svVehicleID], svCheats_HH[giveplayerid][svVehicleSeat]); } SetPlayerHealth(giveplayerid, svCheats_HH[giveplayerid][svHealth]); SetPlayerArmour(giveplayerid, svCheats_HH[giveplayerid][svArmor]); SetCameraBehindPlayer(giveplayerid); CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", giveplayerid, CHEAT_GODMODE); svCheats_AmountDetected++; } return 1; } forward svCheats_JumpCountersDown(playerid); public svCheats_JumpCountersDown(playerid) { svCheats_JumpCounters[playerid]--; svCheats_JumpCounterTimer[playerid] = -1; return 1; } svCheats_GetWeaponSlot(weaponid) { switch(weaponid) { case 0, 1: { return 0; } case 2, 3, 4, 5, 6, 7, 8, 9: { return 1; } case 22, 23, 24: { return 2; } case 25, 26, 27: { return 3; } case 28, 29, 32: { return 4; } case 30, 31: { return 5; } case 33, 34: { return 6; } case 35, 36, 37, 38: { return 7; } case 16, 17, 18, 39, 40: { return 8; } case 41, 42, 43: { return 9; } case 10, 11, 12, 13, 14, 15: { return 10; } case 44, 45, 46: { return 11; } } return 0; } svCheats_IsPlayerAtRepairPoint(playerid) { if(GetPlayerCameraMode(playerid) == 15) return 1; if(IsPlayerInRangeOfPoint(playerid, 25.0, 2067.00, -1831.65, 13.55)) return 1; if(IsPlayerInRangeOfPoint(playerid, 25.0, 1024.97, -1023.88, 32.10)) return 1; if(IsPlayerInRangeOfPoint(playerid, 25.0, 1041.19, -1022.50, 32.11)) return 1; if(IsPlayerInRangeOfPoint(playerid, 25.0, 720.25, -457.17, 16.34)) return 1; if(IsPlayerInRangeOfPoint(playerid, 25.0, 2386.66, 1045.68, 10.82)) return 1; if(IsPlayerInRangeOfPoint(playerid, 25.0, 1972.50, 2163.03, 11.07)) return 1; if(IsPlayerInRangeOfPoint(playerid, 25.0, -1420.58, 2586.17, 55.84)) return 1; if(IsPlayerInRangeOfPoint(playerid, 25.0, -1904.90, 283.96, 41.05)) return 1; if(IsPlayerInRangeOfPoint(playerid, 25.0, -2719.46, 217.77, 4.48)) return 1; return 0; } svCheats_GetVehicleSpeed(vehicleid) { new Float: vVel[3]; GetVehicleVelocity(vehicleid, vVel[0], vVel[1], vVel[2]); return floatround(floatsqroot((vVel[0]*vVel[1]+vVel[2]*vVel[2]))*100.0*1.6); } public svCheats_Detector() { #if defined USE_FOREACH foreach(new playerid: Player) { #if defined HIGH_PING if(svCheats_SecurityLevel[playerid] < HIGH_PING || HIGH_PING == -1) { if(GetPlayerPing(playerid) > MAX_PING) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HIGH_PING); svCheats_AmountDetected++; } } #endif #if defined SPEED_HACK if(svCheats_SecurityLevel[playerid] < SPEED_HACK || SPEED_HACK == -1) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid); if(svCheats_GetVehicleSpeed(vehicleid) > MAX_SPEED) { if(GetVehicleModel(vehicleid) != 520) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SPEED_HACK); svCheats_AmountDetected++; } } } } #endif #if defined JETPACK_HACK if(svCheats_SecurityLevel[playerid] < JETPACK_HACK || JETPACK_HACK == -1) { if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK) { if(svCheats_GrantedJetpack[playerid] == false) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_JETPACK_HACK); svCheats_AmountDetected++; } } } #endif #if defined AIRBREAK_HACK if(svCheats_SecurityLevel[playerid] < AIRBREAK_HACK || AIRBREAK_HACK == -1) { new ai = GetPlayerAnimationIndex(playerid); if(ai == 1231 || ai == 1266) { new Float: playersPos[3]; GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]); if(playersPos[2] >= 4.0) { if(!IsPlayerInRangeOfPoint(playerid, 200.0, 602.74, 871.44, -20.65) && !IsPlayerInRangeOfPoint(playerid, 300.0, 1678.38, -2291.18, -1.00)) { if(GetPointZPos(playersPos[0], playersPos[1]) < playersPos[2] - 15.0) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AIRBREAK_HACK); svCheats_AmountDetected++; } } } } } #endif #if defined FLY_HACK if(svCheats_SecurityLevel[playerid] < FLY_HACK || FLY_HACK == -1) { if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { new ai = GetPlayerAnimationIndex(playerid); if(ai == 1538 || ai == 1538 || ai == 1543) { new Float: playersPos[3]; GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]); if(playersPos[2] >= 4.0) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_FLY_HACK); svCheats_AmountDetected++; } } } } #endif #if defined TELEPORT_HACK if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1) { if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { new interior = GetPlayerInterior(playerid); if(interior > 0) { new allowedInteriors[10], bool: allowed; sscanf(USED_INTERIORS, "a[10]", allowedInteriors); for(new i = 0; i < sizeof(allowedInteriors); i++) { if(allowedInteriors[i] == interior) { allowed = true; break; } } if(allowed == false) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TELEPORT_HACK); svCheats_AmountDetected++; } } } } #endif #if defined VEHICLE_REPAIR if(svCheats_SecurityLevel[playerid] < VEHICLE_REPAIR || VEHICLE_REPAIR == -1) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid), Float: vHealth; GetVehicleHealth(vehicleid, vHealth); if(vHealth > svCheats_VehicleHealth[vehicleid]) { if(!svCheats_IsPlayerAtRepairPoint(playerid)) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_VEHICLE_REPAIR); svCheats_AmountDetected++; } } svCheats_VehicleHealth[vehicleid] = vHealth; } } #endif #if defined CHATSPAM_OFF if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1) { svCheats_SpamCounters[playerid]--; if(svCheats_SpamCounters[playerid] < 0) { svCheats_SpamCounters[playerid] = 0; } } #endif #if defined AFK_DISABLED if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1) { if(svCheats_ReportedAFK[playerid] == false) { svCheats_AFKTime[playerid] += GetTickCount() - svCheats_LastAFKUpdate[playerid]; svCheats_LastAFKUpdate[playerid] = GetTickCount(); if(svCheats_ReportedAFK[playerid] == false) { new AFKMinutes = svCheats_AFKTime[playerid] / 60000; if(AFKMinutes >= AFK_MINUTES) { svCheats_ReportedAFK[playerid] = true; CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AFK); svCheats_AmountDetected++; } } } } #endif #if defined TABBED_DISABLED if(svCheats_SecurityLevel[playerid] < TABBED_DISABLED || TABBED_DISABLED == -1) { if(svCheats_ReportedTabbed[playerid] == false && svCheats_TabbedDisabled[playerid] == false) { if(GetPlayerCameraMode(playerid) != 55) { svCheats_TabbedUpdates[playerid]++; if(svCheats_TabbedUpdates[playerid] > 1) { svCheats_TabbedUpdates[playerid] = 0; svCheats_ReportedTabbed[playerid] = true; CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TABBED); svCheats_AmountDetected++; } } } } #endif } #else for(new playerid = 0; playerid < MAX_PLAYERS; playerid++) { if(IsPlayerConnected(playerid)) { #if defined HIGH_PING if(svCheats_SecurityLevel[playerid] < HIGH_PING || HIGH_PING == -1) { if(GetPlayerPing(playerid) > MAX_PING) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HIGH_PING); svCheats_AmountDetected++; } } #endif #if defined SPEED_HACK if(svCheats_SecurityLevel[playerid] < SPEED_HACK || SPEED_HACK == -1) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid); if(svCheats_GetVehicleSpeed(vehicleid) > MAX_SPEED) { if(GetVehicleModel(vehicleid) != 520) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SPEED_HACK); svCheats_AmountDetected++; } } } } #endif #if defined JETPACK_HACK if(svCheats_SecurityLevel[playerid] < JETPACK_HACK || JETPACK_HACK == -1) { if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK) { if(svCheats_GrantedJetpack[playerid] == false) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_JETPACK_HACK); svCheats_AmountDetected++; } } } #endif #if defined AIRBREAK_HACK if(svCheats_SecurityLevel[playerid] < AIRBREAK_HACK || AIRBREAK_HACK == -1) { new ai = GetPlayerAnimationIndex(playerid); if(ai == 1231 || ai == 1266) { new Float: playersPos[3]; GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]); if(playersPos[2] >= 4.0) { if(!IsPlayerInRangeOfPoint(playerid, 200.0, 602.74, 871.44, -20.65) && !IsPlayerInRangeOfPoint(playerid, 300.0, 1678.38, -2291.18, -1.00)) { if(GetPointZPos(playersPos[0], playersPos[1]) < playersPos[2] - 15.0) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AIRBREAK_HACK); svCheats_AmountDetected++; } } } } } #endif #if defined FLY_HACK if(svCheats_SecurityLevel[playerid] < FLY_HACK || FLY_HACK == -1) { if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { new ai = GetPlayerAnimationIndex(playerid); if(ai == 1538 || ai == 1538 || ai == 1543) { new Float: playersPos[3]; GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]); if(playersPos[2] >= 4.0) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_FLY_HACK); svCheats_AmountDetected++; } } } } #endif #if defined TELEPORT_HACK if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1) { if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { new interior = GetPlayerInterior(playerid); if(interior > 0) { new allowedInteriors[10], bool: allowed; sscanf(USED_INTERIORS, "a[10]", allowedInteriors); for(new i = 0; i < sizeof(allowedInteriors); i++) { if(allowedInteriors[i] == interior) { allowed = true; break; } } if(allowed == false) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TELEPORT_HACK); svCheats_AmountDetected++; } } } } #endif #if defined VEHICLE_REPAIR if(svCheats_SecurityLevel[playerid] < VEHICLE_REPAIR || VEHICLE_REPAIR == -1) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid), Float: vHealth; GetVehicleHealth(vehicleid, vHealth); if(vHealth > svCheats_VehicleHealth[vehicleid]) { if(!svCheats_IsPlayerAtRepairPoint(playerid)) { CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_VEHICLE_REPAIR); svCheats_AmountDetected++; } } svCheats_VehicleHealth[vehicleid] = vHealth; } } #endif #if defined CHATSPAM_OFF if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1) { svCheats_SpamCounters[playerid]--; if(svCheats_SpamCounters[playerid] < 0) { svCheats_SpamCounters[playerid] = 0; } } #endif #if defined AFK_DISABLED if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1) { if(svCheats_ReportedAFK[playerid] == false) { svCheats_AFKTime[playerid] += GetTickCount() - svCheats_LastAFKUpdate[playerid]; svCheats_LastAFKUpdate[playerid] = GetTickCount(); if(svCheats_ReportedAFK[playerid] == false) { new AFKMinutes = svCheats_AFKTime[playerid] / 60000; if(AFKMinutes >= AFK_MINUTES) { svCheats_ReportedAFK[playerid] = true; CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AFK); svCheats_AmountDetected++; } } } } #endif #if defined TABBED_DISABLED if(svCheats_SecurityLevel[playerid] < TABBED_DISABLED || TABBED_DISABLED == -1) { if(svCheats_ReportedTabbed[playerid] == false) { if(GetPlayerCameraMode(playerid) != 55) { svCheats_TabbedUpdates[playerid]++; if(svCheats_TabbedUpdates[playerid] > 1) { svCheats_TabbedUpdates[playerid] = 0; svCheats_ReportedTabbed[playerid] = true; CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TABBED); svCheats_AmountDetected++; } } } } #endif } } #endif return 1; } stock svCheats_Debug(bool: togDebug) { if(togDebug == true) { print("(svCheats) Debugging has been turned on"); } else if(togDebug == false) { print("(svCheats) Debugging has been turned off"); } return svCheats_Debugging = togDebug; } stock svCheats_SetPlayerSecurityLevel(playerid, secLevel) { if(svCheats_Debugging == true) { printf("(svCheats) SetPlayerSecurityLevel(playerid = %d, secLevel = %d)", playerid, secLevel); } return svCheats_SecurityLevel[playerid] = secLevel; } stock svCheats_GetPlayerSecurityLevel(playerid) { if(svCheats_Debugging == true) { printf("(svCheats) GetPlayerSecurityLevel(playerid = %d)", playerid); } return svCheats_SecurityLevel[playerid]; } stock svCheats_SetVehicleHealth(vehicleid, Float: vHealth) { if(svCheats_Debugging == true) { printf("(svCheats) SetVehicleHealth(vehicleid = %d, vHealth = %f)", vehicleid, vHealth); } return svCheats_VehicleHealth[vehicleid] = vHealth, SetVehicleHealth(vehicleid, vHealth); } stock svCheats_GivePlayerWeapon(playerid, weaponid, ammo) { if(svCheats_Debugging == true) { printf("(svCheats) GivePlayerWeapon(playerid = %d, weaponid = %d, ammo = %d)", playerid, weaponid, ammo); } return svCheats_PlayerWeapons[playerid][GetWeaponSlot(weaponid)] = weaponid, GivePlayerWeapon(playerid, weaponid, ammo); } stock svCheats_ToggleJetpack(playerid, bool: toggleJetpack) { if(svCheats_Debugging == true) { printf("(svCheats) ToggleJetpack(playerid = %d, toggleJetpack = %d)", playerid, toggleJetpack); } return svCheats_GrantedJetpack[playerid] = toggleJetpack; }