rendered paste body/*
AntiCheat System v1.0b by Homer & Dexter
All Rights Reserved
©2008
*/
#include <a_samp>
#define FILTERSCRIPT
#define COLOR_ORANGE 0xFF8C00AA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_HOMER 0xFF0000AA
new sprava[MAX_PLAYERS];
new mute[MAX_PLAYERS];
new AcG;
new Menu:AcGmenu;
new DostanePrachy[MAX_PLAYERS];
new StarePrachy[MAX_PLAYERS];
forward sprava2(playerid);
//Anti SPAM
forward spam(playerid);
forward unmute(playerid);
//Weapon CHEAT
forward AntiWeaponCheat();
//GOD mod
forward AntiGODmod();
//AntiCheat - Unviersal
forward AntiCheat();
//MoneyHack
forward MoneyHack();
//PingKicker
forward PingKicker();
public OnFilterScriptInit()
{
print("\n---------------------------------------------------------------");
print("------------.....LOADING FilterScript.....------------");
print("---------.::.Homer & Dexter production presents.::.---------");
print("---------------.::.AntiCheat System v1.0b.::.---------------");
print("---------------.::.!All Rights Reserved!.::.---------------");
//Weapon Cheat
SetTimer("AntiWeaponCheat", 1000, 1);
//AntiCheat
SetTimer("AntiCheat", 300000, 1);
//PingKicker
SetTimer("PingKicker", 3000, 1);
//MoneyHack
SetTimer("MoneyHack", 1000, 1);
AcGmenu = CreateMenu("~r~AntiCheat:",1,50,220,200,200);
AddMenuItem(AcGmenu,0,"AcG ON");
AddMenuItem(AcGmenu,0,"AcG OFF");
AcG = 0;
print("------------FilterScript has successfully loaded------------");
print("---------------------------------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
print("\n---------------------------------------------------------");
print("------------.....UNLOADING FilterScript.....------------");
AcG = 0;
print("------------FilterScript has successfully unloaded------------");
print("---------------------------------------------------------\n");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
mute[playerid] = 0;
sprava[playerid] = 0;
return 1;
}
public OnPlayerSpawn(playerid)
{
if(AcG == 1 && IsPlayerAdmin(playerid))
{
SendClientMessage(playerid,COLOR_RED,"[!] AntiCheat is ON!");
}
else if(AcG == 0 && IsPlayerAdmin(playerid))
{
SendClientMessage(playerid,COLOR_RED,"[!] AntiCheat is OFF!");
}
sprava[playerid] = 0;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
new hracovestate = GetPlayerState(killerid); //Drive-by
if(IsPlayerInAnyVehicle(killerid) && hracovestate == PLAYER_STATE_DRIVER && !IsPlayerAdmin(killerid))
{
Kick(killerid);
}
new meno[MAX_PLAYER_NAME];
new string[256];
GetPlayerName(playerid, meno, sizeof(meno));
if(GetPlayerWeapon(killerid) == 35 && AcG == 1 && IsPlayerConnected(killerid) && !IsPlayerAdmin(killerid))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: WeaponCheat (RocketLauncher)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(killerid);
}
if(GetPlayerWeapon(killerid) == 36 && AcG == 1 && IsPlayerConnected(killerid) && !IsPlayerAdmin(killerid))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: WeaponCheat (RPG)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(killerid);
}
if(GetPlayerWeapon(killerid) == 38 && AcG == 1 && IsPlayerConnected(killerid) && !IsPlayerAdmin(killerid))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: WeaponCheat (Minigun)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(killerid);
}
if(GetPlayerWeapon(killerid) == 40 && AcG == 1 && IsPlayerConnected(killerid) && !IsPlayerAdmin(killerid))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: WeaponCheat (Detonator)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(killerid);
}
return 1;
}
//=============================|ANTIWEAPONCHEAT|||==============================
public AntiWeaponCheat()
{
for(new i=0; i < MAX_PLAYERS; i++)
{
new meno[MAX_PLAYER_NAME];
new string[256];
GetPlayerName(i, meno, sizeof(meno));
if(GetPlayerWeapon(i) == 35 && AcG == 1 && IsPlayerConnected(i) && !IsPlayerAdmin(i))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: WeaponCheat (RocketLauncher)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(i);
}
GetPlayerName(i, meno, sizeof(meno));
if(GetPlayerWeapon(i) == 36 && AcG == 1 && IsPlayerConnected(i) && !IsPlayerAdmin(i))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: WeaponCheat (RPG)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(i);
}
if(GetPlayerWeapon(i) == 38 && AcG == 1 && IsPlayerConnected(i) && !IsPlayerAdmin(i))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: WeaponCheat (Minigun)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(i);
}
if(GetPlayerWeapon(i) == 40 && AcG == 1 && IsPlayerConnected(i) && !IsPlayerAdmin(i))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: WeaponCheat (Detonator)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(i);
}
}
return 1;
}
//============================||PINGKICKER||====================================
public PingKicker()
{
for(new i=0; i < MAX_PLAYERS; i++)
{
new meno[MAX_PLAYER_NAME];
new string[256];
GetPlayerName(i, meno, sizeof(meno));
if(GetPlayerPing(i) >= 600 && AcG == 1 && IsPlayerConnected(i) && !IsPlayerAdmin(i))
{
format(string, sizeof(string),"[ACGuard] Player %s has been kicked from server. Reason: High ping (600+!)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Kick(i);
}
}
return 1;
}
//=============================||MONEYHACK||====================================
public MoneyHack()
{
for(new i=0; i < MAX_PLAYERS; i++)
{
new meno[MAX_PLAYER_NAME];
new string[256];
GetPlayerName(i, meno, sizeof(meno));
if(GetPlayerMoney(i) > StarePrachy[i] && !DostanePrachy[i] && AcG == 1 && IsPlayerConnected(i) && !IsPlayerAdmin(i))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: MoneyHack", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(i);
}
}
return 1;
}
//================================||ANTICHEAT||=================================
public AntiCheat()
{
for(new i=0; i < MAX_PLAYERS; i++)
{
new meno[MAX_PLAYER_NAME];
new string[256];
GetPlayerName(i, meno, sizeof(meno));
if(AcG == 1 && IsPlayerConnected(i))
{
SendClientMessage(i, COLOR_HOMER,"[ACGuard] Scanning....");
{
if(GetPlayerSpecialAction(i) == 2 && AcG == 1 && IsPlayerConnected(i) && !IsPlayerAdmin(i))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: JetPack", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(i);
}
if(GetPlayerWeapon(i) == 35 && AcG == 1 && IsPlayerConnected(i) && !IsPlayerAdmin(i))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: WeaponCheat (RocketLauncher)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(i);
}
if(GetPlayerWeapon(i) == 38 && AcG == 1 && IsPlayerConnected(i) && !IsPlayerAdmin(i))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: WeaponCheat (Minigun)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(i);
}
if(GetPlayerWeapon(i) == 40 && AcG == 1 && IsPlayerConnected(i) && !IsPlayerAdmin(i))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: WeaponCheat (Detonator)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(i);
}
if(GetPlayerPing(i) >= 300 && AcG == 1 && IsPlayerConnected(i) && !IsPlayerAdmin(i))
{
format(string, sizeof(string),"[ACGuard] Player %s has been kicked from server. Reason: High Ping (300+!)", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Kick(i);
}
if(GetPlayerMoney(i) > StarePrachy[i] && !DostanePrachy[i] && AcG == 1 && IsPlayerConnected(i) && !IsPlayerAdmin(i))
{
format(string, sizeof(string),"[ACGuard] Player %s has been banned from server. Cheat: MoneyHack", meno);
SendClientMessageToAll(COLOR_GREEN,string);
Ban(i);
}
SendClientMessage(i, COLOR_HOMER,"[ACGuard] Scanning finished!");
}
}
}
return 1;
}
//=================================|ANTISPAM|||=================================
public OnPlayerText(playerid, text[])
{
new spammer[100];
GetPlayerName(playerid, spammer, 24);
format(spammer, 100, "[ACGuard] Player %s is spammer!", spammer);
if(sprava[playerid] >= 5 && AcG == 1 && !IsPlayerAdmin(playerid))
{
SendClientMessageToAll(COLOR_ORANGE,spammer);
SendClientMessage(playerid,COLOR_RED,"[ACGuard] You have been muted, wait for 5 minutes!");
mute[playerid]++;
SetTimerEx("unmute",300000,0,"i",playerid);
return 0;
}
else
{
sprava[playerid]++;
SetTimerEx("sprava2",5000,0,"i",playerid);
}
new gadzo[100]; //xD xD
GetPlayerName(playerid, gadzo, 24);
format(gadzo, 100, "[ACGuard] Player %s has been kicked from server. Reason: Offensive laguage!", gadzo);
new reklama[100]; //xD xD
GetPlayerName(playerid, reklama, 24);
format(reklama, 100, "[ACGuard] Player %s has been banned from server. Reason: Advertisement!", reklama);
//Shit
if(text[0] == 's' && text[1] == 'h' && text[2] == 'i' && text[3] == 't' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,gadzo);
Kick(playerid);
return 0;
}
//Shithead
if(text[0] == 's' && text[1] == 'h' && text[2] == 'i' && text[3] == 't' && text[4] == 'h' && text[5] == 'e' && text[6] == 'a' && text[7] == 'd' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,gadzo);
Kick(playerid);
return 0;
}
//Fuck
if(text[0] == 'f' && text[1] == 'u' && text[2] == 'c' && text[3] == 'k' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,gadzo);
Kick(playerid);
return 0;
}
//Dick
if(text[0] == 'd' && text[1] == 'i' && text[2] == 'c' && text[3] == 'k' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,gadzo);
Kick(playerid);
return 0;
}
//Kok*t
if(text[0] == 'k' && text[1] == 'o' && text[2] == 'k' && text[3] == 'o' && text[4] == 't' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,gadzo);
Kick(playerid);
return 0;
}
//Pič*
if(text[0] == 'p' && text[1] == 'i' && text[2] == 'c' && text[3] == 'a' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,gadzo);
Kick(playerid);
return 0;
}
//Ku*va
if(text[0] == 'k' && text[1] == 'u' && text[2] == 'r' && text[3] == 'v' && text[4] == 'a' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,gadzo);
Kick(playerid);
return 0;
}
//Kua
if(text[0] == 'k' && text[1] == 'u' && text[2] == 'a' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,gadzo);
Kick(playerid);
return 0;
}
//MF
if(text[0] == 'm' && text[1] == 'f' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,gadzo);
Kick(playerid);
return 0;
}
//Kkt
if(text[0] == 'k' && text[1] == 'k' && text[2] == 't' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,gadzo);
Kick(playerid);
return 0;
}
//Kunda
if(text[0] == 'k' && text[1] == 'u' && text[2] == 'n' && text[3] == 'd' && text[4] == 'a' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,gadzo);
Kick(playerid);
return 0;
}
//Kundo
if(text[0] == 'k' && text[1] == 'u' && text[2] == 'n' && text[3] == 'd' && text[4] == 'o' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,gadzo);
Kick(playerid);
return 0;
}
//Reklama
if(text[0] == 'w' && text[1] == 'w' && text[2] == 'w' && AcG == 1){
SendClientMessageToAll(COLOR_ORANGE,reklama);
Ban(playerid);
return 0;
}
if(mute[playerid] == 1 && AcG == 1)
{
SendClientMessage(playerid,COLOR_HOMER,"[ACGuard] You have been muted for 5 minutes.");
}
return 1;
}
public sprava2(playerid)
{
sprava[playerid] = 0;
return 1;
}
public unmute(playerid)
{
mute[playerid] = 0;
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
new Menu:Current = GetPlayerMenu(playerid);
if (Current == AcGmenu)
{
switch(row)
{
case 0:
{
SendClientMessage(playerid,COLOR_HOMER,"[ACGuard] Aktivovali ste AntiCheat!");
AcG = 1;
}
case 1:
{
SendClientMessage(playerid,COLOR_HOMER,"[ACGuard] Deaktivovali ste AntiCheat!");
AcG = 0;
}
}
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256], idx;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd,"/ac", true) == 0)
{
if(IsPlayerAdmin(playerid))
{
ShowMenuForPlayer(AcGmenu,playerid);
}
return 1;
}
if(strcmp(cmd,"/achelp", true) == 0)
{
SendClientMessage(playerid,COLOR_YELLOW,"[!] AntiCheatGuard v1.2 by Homer & Dexter. All rights reserved!!");
SendClientMessage(playerid,COLOR_YELLOW,"Defence: WeaponCheat, MoneyHack, AntiSPAM, Ping Kicker, Anti Drive-by");
SendClientMessage(playerid,COLOR_YELLOW,"Anti Advertisment and offensive laguage!");
if(AcG == 1)
{
SendClientMessage(playerid,COLOR_HOMER,"[!] AntiCheatGuard is now: ON");
}else{
SendClientMessage(playerid,COLOR_HOMER,"[!] AntiCheatGuard is now: OFF");
}
return 1;
}
if(strcmp(cmd,"/acadmins", true) == 0)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new adminmeno[100];
GetPlayerName(i, adminmeno, sizeof(adminmeno));
format(adminmeno, 256, "[ACGuard] %s (ID:%d) -Admin", adminmeno,i);
SendClientMessageToAll(COLOR_HOMER,adminmeno);
}
}
return 1;
}
return false;
}
public OnPlayerConnect(playerid)
{
mute[playerid] = 0;
sprava[playerid] = 0;
return 1;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
stock GivePlayerMoneyEx(playerid, money)
{
GivePlayerMoney(playerid, money);
DostanePrachy[playerid] = true;
}