Andrey008
Дебютант
PHP:
public AntiCheat()
{
new string[144], Keys, ud, lr;
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
new Float: health, Float: arm;
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
foreach(new i : Player)
{
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
if(!GetPVarInt(i, "IsAuthed")) return 1;
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
new vehicle = GetPlayerVehicleID(i);
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
// money hack
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
if(GetPlayerMoney(i) > PlayerInfo[i][pCash]) ResetPlayerMoney(i), GivePlayerMoney(i, PlayerInfo[i][pCash]);
else PlayerInfo[i][pCash] = GetPlayerMoney(i);
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
// health hack
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
GetPlayerHealth(i, health);
if(PlayerHealth[i] < health) SetPlayerHealth(i, PlayerHealth[i]);
else PlayerHealth[i] = health;
if(arm > 100) GivePlayerHealthServer(i, 100);
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
// armor hack
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
GetPlayerArmour(i, arm);
if(arm < Armour[i]) Armour[i] = arm;
if(arm > Armour[i]) Armour[i] = 0, SetPlayerArmour(i, 0), RemovePlayerAttachedObject(i, 3);
if(arm > 100) GivePlayerArmorServer(i, 100);
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
// AirBreak, teleport, fly, jail, rest in peace, jet pack
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
if(!IsPlayerInAnyVehicle(i))
{
if(TeleportTime[i] > 0) TeleportTime[i]--;
GetPlayerPos(i, TelePos[i][3], TelePos[i][4], TelePos[i][5]);
if(TelePos[i][5] > 550.0)
{
TelePos[i][0] = 0.0;
TelePos[i][1] = 0.0;
}
if(TelePos[i][0] != 0.0)
{
new Float:xdist = TelePos[i][3]-TelePos[i][0];
new Float:ydist = TelePos[i][4]-TelePos[i][1];
new Float:sqxdist = xdist*xdist;
new Float:sqydist = ydist*ydist;
new Float:distance = (sqxdist+sqydist)/31;
if(distance < 2000 && distance > 200 && TeleportTime[i] == 0 && realafk[i] == 0 && GetPlayerState(i) != PLAYER_STATE_SPECTATING)
{
format(string, 256, ""color_yellow"[***ANTI-CHEAT]: "color_white"%s[%d] использует fly (AirBreak)/SWIM без машины (%.0f mp/h)", getpl(i), i, distance);
ABroadCast(-1 ,string, 1);
}
if(distance > 2000 && TeleportTime[i] == 0 && realafk[i] == 0 && GetPlayerState(i) != PLAYER_STATE_SPECTATING)
{
format(string, 256, ""color_yellow"[***ANTI-CHEAT]: "color_white"%s[%d] использует teleport без машины (%.0f mp/h)", getpl(i), i, distance);
ABroadCast(-1, string, 1);
}
if(PlayerInfo[i][pJailed] == 1)
{
if(!IsPlayerInJail(i)) {
format(string, sizeof(string), ""color_yellow"[***ANTI-CHEAT]: "color_white"%s[%d] подозрение на побег из тюрьмы. (оставшийся срок: %d секунд)-(%.0f mp/h).", getpl(i), i, PlayerInfo[i][pJailTime], distance);
ABroadCast(-1, string, 1);
}
}
if (GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK)
{
format(string, 256, ""color_yellow"[***ANTI-CHEAT]: "color_white"%s[%d] использует JetPack cheat (%.0f mp/h)", getpl(i), i, distance);
ABroadCast(-1, string, 1);
}
}
if(TelePos[i][5] < 550.0 && TelePos[i][3] != 0.0)
{
TelePos[i][0] = TelePos[i][3];
TelePos[i][1] = TelePos[i][4];
}
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
// speed-hack, tp in vehicle
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
if(GetPlayerState(i) == 2)
{
GetVehiclePos(vehicle, TelePos[i][3], TelePos[i][4], TelePos[i][5]);
if(TelePos[i][5] > 550.0)
{
TelePos[i][0] = 0.0;
TelePos[i][1] = 0.0;
}
if(TelePos[i][0] != 0.0)
{
new Float:xdist = TelePos[i][3]-TelePos[i][0];
new Float:ydist = TelePos[i][4]-TelePos[i][1];
new Float:sqxdist = xdist*xdist;
new Float:sqydist = ydist*ydist;
new Float:distance = (sqxdist+sqydist)/31;
GetPlayerKeys(i, Keys, ud, lr);
if(Keys & 4)
{
if(!IsAPlane(vehicle))
{
if(distance > 175.0)
{
format(string, 256, ""color_yellow"[***ANTI-CHEAT]: "color_white"%s[%d] возможно использует speedhack (%.0f mp/h)", getpl(i), i, distance);
ABroadCast(-1, string, 1);
}
}
}
if(distance > 8000 && Teleport[i] == 0)
{
if(!IsAPlane(vehicle))
{
format(string, 256, ""color_yellow"[***ANTI-CHEAT]: "color_white"%s[%d] использует teleport в машине (%.0f mp/h)", getpl(i), i, distance);
ABroadCast(-1, string, 1);
}
}
}
if(TelePos[i][5] < 550.0 && TelePos[i][3] != 0.0)
{
TelePos[i][0] = TelePos[i][3];
TelePos[i][1] = TelePos[i][4];
}
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
// weapon hack
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
new weap = GetPlayerWeapon(i);
if(weap != 0 && !Weapons[i][weap] && weap != 40)
{
if(!GetPVarInt(i, "AC_NoFloodMessage"))
{
format(string, 256, ""color_yellow"[***ANTI-CHEAT]: "color_white"%s[%d] — %s[%d], использует чит на оружые (Weapon cheat).", getpl(i), i, WeaponNames[weap], weap);
ABroadCast(-1, string, 1);
SetPVarInt(i, "AC_NoFloodMessage", 1);
}
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
}
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
printf("Component Added: %d", componentid);
if(GetPlayerInterior(playerid) == 0)
{
new string[144];
format(string, sizeof(string), ""color_yellow"[***ANTI-CHEAT]: "color_white"%s[%d] подозрение на Tuning cheat.", getpl(playerid), playerid);
ABroadCast(-1, string, 1), RemoveVehicleComponent(vehicleid, componentid);
}
return 1;
}
stock SpeedVehicle(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)) * 213.3;
return floatround(ST[3]);
}
Последнее редактирование модератором:
