17.04.2013, 17:05
Здравствуйте) Вот решил сделать на своем сервере норм античит на оружие) Но столкнулся с проблемой. Иногда античит срабатывает не правильно. Например после смерти или во время того как садишься в автомобиль. Бывает просто кикает когда покупаешь оружие.
Вот и сам античит:
Все оружие на сервере выдаеться через Givegun
Оружие везде убираем с помощью ResetPlayerWeaponss
Ну и сама проверка)
Вот и сам античит:
PHP Code:
new GetWeapon;
new GetAmmo;
new Ammo[MAX_PLAYERS][14];
PHP Code:
stock Givegun(playerid,weaponid,ammo)
{
if(IsColdWeapon(weaponid))
{
ammo = 1;
Ammo[playerid][GetWeaponSlot(weaponid)]=ammo;
}
else
{
Ammo[playerid][GetWeaponSlot(weaponid)]+=ammo;
}
GivePlayerWeapon(playerid,weaponid,ammo);
return true;
}
PHP Code:
stock IsColdWeapon(weaponid)
{
if(weaponid > 0 && weaponid < 16) {return 1;}
if(weaponid == 46) {return 1;}
return 0;
}
PHP Code:
stock ResetPlayerWeaponss(playerid)
{
ResetPlayerWeapons(playerid);
for(new i=0;i<12;i++)
{
Ammo[playerid][i] = 0;
}
return true;
}
PHP Code:
for(new i=0;i<12;i++)
{
GetPlayerWeaponData(playerid,i,GetWeapon,GetAmmo);
if(GetAmmo != 0 && IsColdWeapon(GetWeapon)) {GetAmmo = 1;}
if(GetAmmo>Ammo[playerid][i])
{
if(GetWeapon != 0&&GetAmmo != 0&&GetWeapon != 40)
{
ResetPlayerWeaponss(playerid);
SendClientMessage(playerid, COLOR_LIGHTRED,"Текст" );
Kick(playerid);
}
}
else
{
Ammo[playerid][i] = GetAmmo;
}
}