Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <dini>
- #define MaxSpeed 230
- #define RED 0xFB0000FF
- new AGWeap[MAX_PLAYERS]; // Admin Given Weap
- new SpeedHacker[MAX_PLAYERS];
- forward Weapon();
- forward Speed();
- forward JetPack();
- forward ACLog(string[]);
- forward SendClientMessageToAdmins(color,string[],alevel);
- public ACLog(string[])
- {
- new entry[128];
- format(entry, sizeof(entry), "%s\r\n",string);
- new File:hFile;
- hFile = fopen("Anti-Cheat.log", io_append);
- if (hFile)
- {
- fwrite(hFile, entry);
- fclose(hFile);
- }
- }
- public Speed()
- {
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i) == 1) // Are they connected
- {
- if(GetPlayerSpeed(i) >= MaxSpeed) // Max Speed
- {
- if(!IsPlayerNPC(i)) // Are they an NPC?
- {
- if(!IsPlayerAdmin(i)) // Are they admin?
- {
- new playerState = GetPlayerState(i);
- if(playerState == PLAYER_STATE_DRIVER) // Are they Driving?
- {
- new G = GetVehicleModel(GetPlayerVehicleID(i)); // Are they not iin a plane
- if(G == 592 || G == 577 || G == 511 || G == 512 || G == 593 || G == 520 || G == 553 || G == 476 || G == 519 || G == 460 || G == 513 || G == 425)
- {
- return 1;
- }
- else
- {
- SpeedHacker[i] += 1;
- new pname[MAX_PLAYER_NAME], string[128];
- GetPlayerName(i, pname, sizeof(pname));
- format(string, sizeof(string), "ReportBot: %s[%d] is a possible speed hacker! /spec %d to find out!", pname, i, i);
- SendClientMessageToAdmins(RED, string, 1);
- }
- if(SpeedHacker[i] >= 3)
- {
- AntiCheatReport(i, "Speed Hack");
- }
- }
- }
- }
- }
- }
- }
- return 1;
- }
- public Weapon()
- {
- for(new p = 0; p < MAX_PLAYERS; p++)
- {
- if(IsPlayerConnected(p))
- {
- if(!IsPlayerAdmin(p))
- {
- if(AGWeap[p] == 0)
- {
- new weapons[13][2];
- for (new i = 0; i < 13; i++)
- {
- GetPlayerWeaponData(p, i, weapons[i][0], weapons[i][1]);
- switch(weapons[i][0])
- {
- case 35..38,44,45: AntiCheatReport(p, "Weapon Hacks");
- }
- }
- }
- }
- }
- }
- return 1;
- }
- public JetPack()
- {
- for(new i;i<MAX_PLAYERS;i++)
- {
- if(IsPlayerConnected(i))
- {
- if(!IsPlayerAdmin(i))
- {
- if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK)
- {
- AntiCheatReport(i, "Jetpack");
- }
- }
- }
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SpeedHacker[playerid] = 0;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- AGWeap[playerid] = 0;
- return 1;
- }
- public OnFilterScriptInit()
- {
- SetTimer("Weapon",5000,1);
- SetTimer("Speed",5000,1);
- SetTimer("JetPack",5000,1);
- print("HellBeast's Anti-Cheat System v0.1");
- return 1;
- }
- stock GetPlayerSpeed(playerid)
- {
- new Float:ST[4];
- if(IsPlayerInAnyVehicle(playerid))
- GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
- else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
- ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 179.28625;
- return floatround(ST[3]);
- }
- stock AntiCheatReport(playerid, reason[])
- {
- new pname[MAX_PLAYER_NAME], string[128];
- format(string, sizeof(string), "I have been caught hacking! [Reason: %s]",reason);
- SendPlayerMessageToAll(playerid, string);
- GetPlayerName(playerid, pname, sizeof(pname));
- printf("%s has been banned for %s",pname,reason);
- format(string, sizeof(string), "%s has been banned for %s\n\r",pname,reason);
- ACLog(string);
- BanEx(playerid, reason);
- return 1;
- }
- public SendClientMessageToAdmins(color,string[],alevel)
- {
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- // if (PlayerInfo[i][Admin] >= alevel)
- // {
- SendClientMessage(i, color, string);
- printf("%s", string);
- // }
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement