Здравствуйте пользователи pro-pawn решил поделиться античитом
Серфинг - это чит который позволяет передвигаться с бешеной скорость принципе как AirBreak только сквозь стены не пробегает.
Сам код.
Ищем таймер с повторение в 1 секунду
PHP код:
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
if(GetPlayerSpeed(playerid) > 100//Проверяем скорость
&& !IsPlayerApplyAnimation(playerid, "FALL_FALL")//Проверка на анимацию
&& !IsPlayerApplyAnimation(playerid, "FALL_SKYDIVE_ACCEL")//Проверка на анимацию
&& !IsPlayerApplyAnimation(playerid, "PARA_OPEN")//Проверка на анимацию
&& !IsPlayerApplyAnimation(playerid, "FALL_SKYDIVE") && PlayerInfo[playerid][pAdmin] < 1)//Проверка на анимацию и Администратора
{
if(GetPVarInt(playerid, "FloodTime") > gettime()) return 1;
new string[90];
static const admins[] = "<<Warning>> Игрок %s[%d]: Возможно чит на серфинг";
format(string, sizeof(string), admins, PlayerInfo[playerid][pName], playerid);
SendAdminMessage(COLOR_ADMIN, string);
SetPVarInt(playerid, "FloodTime", gettime()+60);
}
}
в конец мода
PHP код:
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]);
}
stock IsPlayerApplyAnimation(playerid, animation[])//Функция с помощью которой мы получаем анимацию Игрока
{
if(!GetPlayerAnimationIndex(playerid)) return false;
else
{
new animlib[32], animname[32];
GetAnimationName(GetPlayerAnimationIndex(playerid), animlib, sizeof(animlib), animname, sizeof(animname));
if(!strcmp(animname, animation, true)) return 1;
}
return false;
}
Жду критики по поводу Анти чита или же если найдете ошибку ложное срабатывание пишите исправим вместе.