All pastes #959641 Raw Edit

Unnamed

public text v1 · immutable
#959641 ·published 2008-03-27 16:08 UTC
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;
}