seshu
Новичок
Ребят, можете подсказать, как сделать самый правильный вариант проверки на то, что админов бы не кикало от античита, просто я не особо прошаренный - куда именно поставить? И желательно бы, чтобы проверка была 1 на весь античит, если конечно, такое возможно...
PHP:
stock Anticheat_Server(playerid)
{
new string[128];
new ip[20];
new plname[MAX_PLAYER_NAME];
new animlib[32];
new animname[32];
GetAnimationName(GetPlayerAnimationIndex(playerid), animlib, sizeof(animlib), animname, sizeof(animname));
//---------------------------------------------------------- Античит на Броню -------------------------------------------
CheckArmour(playerid);
//----------------------------------- Античит на выход из тюрьмы ------------------------------
if(PINFO[playerid][pJailed] != 0)
{
if(!Turyma(playerid)) { Spawn_Player(playerid); }
}
//---------------------------------------------------------- Античит на Танки, Гидры -------------------------------------------
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 432 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 520 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 425)//Гидра)//Гидра)//Танк
{
if(PINFO[playerid][pLVL] < 2 && PINFO[playerid][pMember] == F_NONE) { NewKick(playerid); }
}
//---------------------------------------------------------- Античит на оружие -------------------------------------------
if(GunCheckTime[playerid] == 0 && gPlayerLogged[playerid] == true)
{
new weap = GetPlayerWeapon(playerid);
if(weap != 0 && !Weapons[playerid][weap] && weap != 40)
{
GetPlayerIp(playerid,ip,sizeof(ip));
GetPlayerName(playerid, plname, sizeof(plname));
format(string,sizeof(string),"[Античит]: %s[%i] был(а) кикнут(а) 'Чит на оружие'",plname,playerid);
AdminMessege(CORANGE,string,1);
format(string,sizeof(string),"- Warns: %i из 3 | LVL: %i | IP: %s",PINFO[playerid][pWarns],PINFO[playerid][pLVL],ip);
AdminMessege(CGRADD,string,1);
SendClientMessage(playerid,CORANGE,"Вы были кикнуты по подозрению в читерстве. #9007");
ResetPlayerWeaponsAC(playerid);
NewKick(playerid);
}
}
//---------------------------------------------------------- Античит на Джет пак -------------------------------------------
if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
{
format(string,sizeof(string),"[Античит] %s[%i] заблокирован за 'Jet Pack'",GN(playerid),playerid);//имя мы бьем через format
AdminMessege(CORANGE,string,1);
SendClientMessage(playerid,CORANGE,"Вы были заблокированы за использование чит программ");
AddBan(playerid, "Античит", 3, "Jet Pack");
return true;
}
//---------------------------------------------------------- Античит на спидхак -------------------------------------------
if(SpeedVehicle(playerid) >= 150 && GetVehicleModel(GetPlayerVehicleID(playerid)) != 538)
{
new Float:posx, Float:posy, Float:posz;
GetPlayerPos(playerid, posx, posy, posz);
if(posz < 20)
{
format(string, 256, "[Античит] %s[%i] кикнут 'СпидХак'",GN(playerid),playerid);
AdminMessege(CORANGE,string,1);
SendClientMessage(playerid,CORANGE,"Вы были кикнуты по подозрению в читерстве. #9001");
NewKick(playerid);
return true;
}
}
//---------------------------------------------------------- Античит на CJ RUN -------------------------------------------
if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT) return true;
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER && GetPlayerState(playerid) != PLAYER_STATE_PASSENGER)
{
if(strcmp(animlib, "PED", true) == 0 && strcmp(animname, "RUN_PLAYER", true) == 0)// cj run
{
if(IsPlayerApplyAnimation(playerid, "SPANKINGW")) return true;
if(PINFO[playerid][pLVL] < 2)
{
SendClientMessage(playerid,CORANGE,"Вы были кикнуты по подозрению в читерстве. #9000");
NewKick(playerid);
return true;
}
}
}
//---------------------------------------------------------- Античит на Fly Hack -------------------------------------------
if(IsPlayerInAnyVehicle(playerid)) return true;
new Float:posx, Float:posy, Float:posz;//переменные
GetPlayerPos(playerid, posx, posy, posz);//проверка на координаты
if(strcmp(animlib, "SWIM", true) == 0 && strcmp(animname, "SWIM_crawl", true) == 0)//проверяем на анимацию, если все верно то....
{
if(posz >= 15 && GetPlayerSpeed(playerid) > 60 && GetPlayerInterior(playerid) == 0)
{
if(IsPlayerApplyAnimation(playerid, "SPANKINGW")) return true;
format(string, 256, "[Античит] %s[%i] кикнут 'Fly Hack'",GN(playerid),playerid);
AdminMessege(CORANGE,string,1);
ResetPlayerWeaponsAC(playerid);
SendClientMessage(playerid,CORANGE,"Вы были кикнуты по подозрению в читерстве. #9008");
NewKick(playerid);//кикаем игрока
}
}
return true;
Последнее редактирование:
