AntiFlyHack
в OnPlayerUpdate
Код
new AnimLib[30], AnimName[30];
GetAnimationName(GetPlayerAnimationIndex(playerid), AnimLib, sizeof(AnimLib), AnimName, sizeof(AnimName));
if(GetPlayerSpeed(playerid) > 60 && strcmp(AnimLib, "PARACHUTE", true) == 0 && strcmp(AnimName, "FALL_SKYDIVE_ACCEL", true) == 0)
{
SendClientMessage(playerid, -1, "Вы были кинуты по подозрению в читерстве");
Kick(playerid);
}
Для определения скорости.
Код
stock GetPlayerSpeed(playerid)
{
new Float:Coord[4];
GetPlayerVelocity(playerid, Coord[0], Coord[1], Coord[2]);
Coord[3] = floatsqroot(floatpower(floatabs(Coord[0]), 2.0) + floatpower(floatabs(Coord[1]), 2.0) + floatpower(floatabs(Coord[2]), 2.0)) * 213.3;
return floatround(Coord[3]);
}
AirBreak.
Код
public OnPlayerAirbreak(playerid)
{
new playername[24], string[128];
GetPlayerName(playerid, playername, sizeof(playername));
if (IsPlayerInAnyVehicle(playerid))
{
format(string,sizeof(string),"<< Античит >> %s[%d] кикнут за Аир Брейк [Vehicle] [Ping:%d]",playername,playerid,GetPlayerPing(playerid));
ABroadCast(COLOR_GREY,string,1);
}
else
{
format(string,sizeof(string),"<< Античит >> %s[%d] кикнут за Аир Брейк [Ping:%d]",playername,playerid,GetPlayerPing(playerid));
ABroadCast(COLOR_GREY,string,1);
}
SendClientMessage(playerid, COLOR_LIGHTRED, "Вы кикнуты по подозрению в читерстве!");
return Kick(playerid);
}