public OnPlayerUpdate(playerid)
{
new Float:hp;
hp = GetPlayerHealth(playerid, hp);
if(hp > 150 )
{
new string[128];
format(string,sizeof(string), "[Urban Gaming] %s has been kicked for the following Hack. (Healh Hacks)");
SendClientMessageToAll(COLOR_BRIGHTRED, string);
Kick(playerid);
}
new Float:arm;
hp = GetPlayerArmour(playerid, arm);
if(arm > 150 )
{
new string[128];
format(string,sizeof(string), "[Urban Gaming] %s has been kicked for the following Hack. (Armour Hacks)");
SendClientMessageToAll(COLOR_BRIGHTRED, string);
Kick(playerid);
}
return 1;
}
new AntiCheatTimer;
enum _ACInfo
{
Float:Health, Float:Armour, Money,
}
new ACInfo[MAX_PLAYERS][_ACInfo];
#define GivePlayerMoney GivePlayerMoneyEx
#define SetPlayerHealth SetPlayerHealthEx
#define SetPlayerArmour SetPlayerArmourEx
public OnGameModeInit()
{
AntiCheatTimer = SetTimer("AntiCheat",1000,true);
}
public OnGameModeExit()
{
KillTimer(AntiCheatTimer);
}
forward AntiCheat();
public AntiCheat()
{
new Float:HP,Float:AP,_Money=GetPlayerMoney(playerid);
GetPlayerHealth(playerid,HP);
GetPlayerArmour(playerid,AP);
if(HP > ACInfo[playerid][Health])
{
//Gained health, he used cheats
}
else
{
ACInfo[playerid][Health] = HP; //If he lost health, set anti-cheat info health to current health
}
if(AP > ACInfo[playerid][Armour])
{
//Gained armour, he used cheats
}
else
{
ACInfo[playerid][Health] = HP; //If he lost armour, set anti-cheat info armour to current armour
}
if(_Money > ACInfo[playerid][Money])
{
//Gained health, he used hacks
}
else
{
ACInfo[playerid][Money] = _Money; //If he lost money, set anti-cheat info money to current money
}
return 1;
}
stock SetPlayerHealthEx(playerid, Float:HP)
{
SetPlayerHealth(playerid, HP);
ACInfo[playerid][Health] = HP;
return 1;
}
stock SetPlayerArmourEx(playerid, Float:AP)
{
SetPlayerArmour(playerid, AP);
ACInfo[playerid][Armour] = AP;
return 1;
}
stock GivePlayerMoneyEx(playerid, money)
{
GivePlayerMoney(playerid, money);
ACInfo[playerid][Money] += money;
return 1;
}
public OnPlayerUpdate(playerid)
{
new Float:hp;
hp = GetPlayerHealth(playerid, hp);
if(hp > 150 )
{
new string[128];
format(string,sizeof(string), "[Urban Gaming] %s has been kicked for the following Hack. (Healh Hacks)");
SendClientMessageToAll(COLOR_BRIGHTRED, string);
Kick(playerid);
}
new Float:arm;
arm = GetPlayerArmour(playerid, arm);
if(arm > 150 )
{
new string[128];
format(string,sizeof(string), "[Urban Gaming] %s has been kicked for the following Hack. (Armour Hacks)");
SendClientMessageToAll(COLOR_BRIGHTRED, string);
Kick(playerid);
}
return 1;
}
|
OnPlayerUpdate calls everything that happens.
Try using something like this Credits to Coole210 Code:
new AntiCheatTimer;
enum _ACInfo
{
Float:Health, Float:Armour, Money,
}
new ACInfo[MAX_PLAYERS][_ACInfo];
#define GivePlayerMoney GivePlayerMoneyEx
#define SetPlayerHealth SetPlayerHealthEx
#define SetPlayerArmour SetPlayerArmourEx
public OnGameModeInit()
{
AntiCheatTimer = SetTimer("AntiCheat",1000,true);
}
public OnGameModeExit()
{
KillTimer(AntiCheatTimer);
}
forward AntiCheat();
public AntiCheat()
{
new Float:HP,Float:AP,_Money=GetPlayerMoney(playerid);
GetPlayerHealth(playerid,HP);
GetPlayerArmour(playerid,AP);
if(HP > ACInfo[playerid][Health])
{
//Gained health, he used cheats
}
else
{
ACInfo[playerid][Health] = HP; //If he lost health, set anti-cheat info health to current health
}
if(AP > ACInfo[playerid][Armour])
{
//Gained armour, he used cheats
}
else
{
ACInfo[playerid][Health] = HP; //If he lost armour, set anti-cheat info armour to current armour
}
if(_Money > ACInfo[playerid][Money])
{
//Gained health, he used hacks
}
else
{
ACInfo[playerid][Money] = _Money; //If he lost money, set anti-cheat info money to current money
}
return 1;
}
stock SetPlayerHealthEx(playerid, Float:HP)
{
SetPlayerHealth(playerid, HP);
ACInfo[playerid][Health] = HP;
return 1;
}
stock SetPlayerArmourEx(playerid, Float:AP)
{
SetPlayerArmour(playerid, AP);
ACInfo[playerid][Armour] = AP;
return 1;
}
stock GivePlayerMoneyEx(playerid, money)
{
GivePlayerMoney(playerid, money);
ACInfo[playerid][Money] += money;
return 1;
}
|
hp = GetPlayerHealth(playerid, hp);
GetPlayerHealth(playerid, hp);