//Anti-Weapon-Hax Test
#include <a_samp>
#define FILTERSCRIPT
new bool:Banable[MAX_PLAYERS];
forward BanHacker();
forward SearchForWeaponHackers();
public OnFilterScriptInit()
{
SetTimer("SearchForWeaponHackers",2000,true);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
Banable[playerid] = false;
return 1;
}
public SearchForWeaponHackers()
{
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (GetPlayerWeapon(i) == 9 || GetPlayerWeapon(i) == 16 || GetPlayerWeapon(i) == 18 || GetPlayerWeapon(i) == 35 || GetPlayerWeapon(i) == 36 || GetPlayerWeapon(i) == 37 || GetPlayerWeapon(i) == 38)
{
new pName[24];
new string[128];
GetPlayerName(i, pName, sizeof(pName));
format(string, sizeof(string), ">> %s [%d] Has Been Banned From The Server! Reason: Weapon Hacks", pName,i);
SendClientMessageToAll(0xFF0000AA,string);
SetTimer("BanWeaponHacker",200,false);
Banable[i] = true;
}
else
{
Banable[i] = false;
}
}
}
public BanHacker()
{
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(Banable[i] == true)
{
BanEx(i,"Weapon Hacks");
}
}
}
new anticheattimer;
anticheattimer = SetTimer("AntiCheat", 1000, 1)
forward AntiCheat( );
public AntiCheat()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(GetPlayerWeapon(i) == 38)
{
SendClientMessage(i, COLOR_RED, "(Server) Looks like you've used some cheats.");
PVar[i][pBan] = 1;
BanEx(i,"Weapon Cheat.");
}
if(GetPlayerWeapon(i) == 35)
{
SendClientMessage(i, COLOR_RED, "(Server) Looks like you've used some cheats.");
PVar[i][pBan] = 1;
BanEx(i,"Weapon Cheat.");
}
if(GetPlayerWeapon(i) == 36)
{
SendClientMessage(i, COLOR_RED, "(Server) Looks like you've used some cheats.");
PVar[i][pBan] = 1;
BanEx(i,"Weapon Cheat.");
}
if(GetPlayerWeapon(i) == 37)
{
SendClientMessage(i, COLOR_RED, "(Server) Looks like you've used some cheats.");
PVar[i][pBan] = 1;
BanEx(i,"Weapon Cheat.");
}
if(GetPlayerWeapon(i) == 39)
{
SendClientMessage(i, COLOR_RED, "(Server) Looks like you've used some cheats.");
PVar[i][pBan] = 1;
BanEx(i,"Weapon Cheat.");
}
if(GetPlayerWeapon(i) == 40)
{
SendClientMessage(i, COLOR_RED, "(Server) Looks like you've used some cheats.");
PVar[i][pBan] = 1;
BanEx(i,"Weapon Cheat.");
}
if(GetPlayerWeapon(i) == 18)
{
SendClientMessage(i, COLOR_RED, "(Server) Looks like you've used some cheats.");
PVar[i][pBan] = 1;
BanEx(i,"Weapon Cheat.");
}
if(GetPlayerWeapon(i) == 44)
{
SendClientMessage(i, COLOR_RED, "(Server) Looks like you've used some cheats.");
PVar[i][pBan] = 1;
BanEx(i,"Weapon Cheat.");
}
if(GetPlayerWeapon(i) == 45)
{
SendClientMessage(i, COLOR_RED, "(Server) Looks like you've used some cheats.");
PVar[i][pBan] = 1;
BanEx(i,"Weapon Cheat.");
}
if (GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK)
{
SendClientMessage(i, COLOR_RED, "(Server) Looks like you've used some cheats.");
PVar[i][pBan] = 1;
BanEx(i,"Jetpack Cheat.");
}
}
}
return 1;
}
Okay, here is what i am using.
Edit, don't forget to kill timer. |
public OnGameModeInit()
{
SetTimer("SearchForWeaponHackers",2000,true);
return 1;
}
forward SearchForWeaponHackers();
public SearchForWeaponHackers()
{
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerAdmin(i) && IsPlayerConnected(i)) //"!IsPlayerAdmin" It allows admins to use those Banned weapons
{
if (GetPlayerWeapon(i) == 9 || GetPlayerWeapon(i) == 16 || GetPlayerWeapon(i) == 18 || GetPlayerWeapon(i) == 35 || GetPlayerWeapon(i) == 36 || GetPlayerWeapon(i) == 37 || GetPlayerWeapon(i) == 38)
{
new pName[24], string[128];
GetPlayerName(i, pName, sizeof(pName));
format(string, sizeof(string), ">> %s [%d] Has Been Banned From The Server! Reason: Weapon Hacks", pName,i);
SendClientMessageToAll(0xFF0000AA,string);
BanEx(i, "Anti-Cheat: Weapon Hacker");
return 1;
}
}
}
}
public OnGameModeExit()
{
KillTimer(anticheattimer);
return 1;
}