#define ANTICHEATER 0xFF912296 forward AntiCheater(); #include A_Samp public OnFilterScriptInit() { SetTimer("AntiCheater",1000,1); return 1; } public AntiCheater() { new FastCars[16] = {402,409,411,415,424,429,434,451,480,506,533,534,536,541,555,602}; new Plane[12] = {460,464,476,511,512,513,519,520,553,577,592,593}; new VehiclesNoPermissiveNames[][] = {"Hydra","Rhino","Hunter"}; new WeaponsNoPermissive[9] = {35,36,37,38,39,40,43,44,45}; new Heli[10] = {417,425,447,465,469,487,488,497,548,563}; new Boat[10] = {430,446,452,453,454,472,473,484,493,595}; new Float:SpeedHackLastCords[MAX_PLAYERS][2]; new VehiclesNoPermissive[3] = {520,432,425}; new SpeedHackWarnings[MAX_PLAYERS][2]; new Float:XX,Float:YY,Float:ZZ; new Float:Speed[MAX_PLAYERS]; new Float:X,Float:Y,Float:Z; new WeaponNoPermissive[128]; new Float:GodMode; new Float:GodCar; new Float:TMPdis; for(new I; I < MAX_PLAYERS; I++) { for(new J; J < sizeof WeaponsNoPermissive; J++) { if(GetPlayerWeapon(I) == WeaponsNoPermissive[J]) { new PlayerName[30]; new String[256]; GetPlayerName(I,PlayerName,sizeof PlayerName); GetWeaponName(WeaponsNoPermissive[J],WeaponNoPermissive,sizeof WeaponNoPermissive); format(String,sizeof String,"[Kill-Kill ANTI CHEATER]: %s Foi Kickado Por Usar Cheater De %s!",PlayerName,WeaponNoPermissive); SendClientMessageToAll(ANTICHEATER,String); Kick(I); return; } } if(GetPlayerState(I) == PLAYER_STATE_DRIVER) { for(new J; J < sizeof VehiclesNoPermissive; J++) { if(GetVehicleModel(GetPlayerVehicleID(I)) == VehiclesNoPermissive[J]) { new PlayerName[30]; new String[256]; GetPlayerName(I,PlayerName,sizeof PlayerName); format(String,sizeof String,"[Kill-Kill ANTI CHEATER]: %s Foi Kickado Por Usar Cheater De %s!",PlayerName,VehiclesNoPermissiveNames); SendClientMessageToAll(ANTICHEATER,String); Kick(I); return; } } GetPlayerHealth(I,GodMode); if(GodMode > 100.0) { new PlayerName[30]; new String[256]; GetPlayerName(I,PlayerName,sizeof PlayerName); format(String,sizeof String,"[Kill-Kill ANTI CHEATER]: %s Foi Kickado Por Usar Cheater De GodMode!",PlayerName); SendClientMessageToAll(ANTICHEATER,String); Kick(I); return; } } GetVehicleHealth(I,GodCar); if(GetVehicleHealth(I,GodCar) > 1000.0) { new PlayerName[30]; new String[256]; GetPlayerName(I,PlayerName,sizeof PlayerName); format(String,sizeof String,"[Kill-Kill ANTI CHEATER]: %s Foi Kickado Por Usar Cheater De GodCar!",PlayerName); SendClientMessageToAll(ANTICHEATER,String); Kick(I); return; } } //////////////////////////////////////////////////////////////////////////////// //Daqui Pra Baixo Que Tá o Defeito... (Eu Acho) *-*// //////////////////////////////////////////////////////////////////////////////// if(IsPlayerConnected(I)) { SpeedHackWarnings[I][1]++; Speed[I] = GetPlayerDistanceToPoint(I,SpeedHackLastCords[I][0],SpeedHackLastCords[I][1]); GetPlayerPos(I,X,Y,Z); SpeedHackLastCords[I][0] = X; SpeedHackLastCords[I][1] = Y; if((Speed[I] > 40 && !CanVehicleFly(GetVehicleModel(GetPlayerVehicleID(I)))) || (!IsVehicleBoat(GetVehicleModel(GetPlayerVehicleID(I))) && Speed[I] > 45) || (Speed[I] > 52)) SpeedHackWarnings[I][0]++; if(SpeedHackWarnings[I][1] > 3) { if(SpeedHackWarnings[I][0] > 3) { new PlayerName[30]; new String[256]; GetPlayerName(I,PlayerName,sizeof PlayerName); format(String,sizeof String,"[Kill-Kill ANTI CHEATER]: %s Foi Kickado Por Usar Cheater De SpeedCar!",PlayerName); SendClientMessageToAll(ANTICHEATER,String); Kick(I); } SpeedHackWarnings[I][1] = 0; SpeedHackWarnings[I][0] = 0; } } } } IsVehicleBoat(Model) { for(new I = 0; I < 10; I++) if(Model == Boat[I]) return 1; for(new I = 0; I < 12; I++) if(Model == FastCars[I]) return 1; return 0; } CanVehicleFly(Model) { for(new I = 0; I < 10; I++) if(Model == Heli[I]) return 1; for(new I = 0; I < 12; I++) if(Model == Plane[I]) return 1; return 0; } stock GetPlayerDistanceToPoint(I,Float:X,Float:Y) { GetPlayerPos(I,XX,YY,ZZ); TMPdis = floatsqroot(floatpower(floatabs(floatsub(X,XX)),2)+floatpower(floatabs(floatsub(Y,YY)),2)); return floatround(TMPdis); }