будут ли обнаружения правдивыми и будут ли они вообще ?
Code
#define MAXPLAYERS 32
#define RECOIL 1
new g_nCurWeapon[MAXPLAYERS+1][2]
new Float:recoil_LastAng[MAXPLAYERS+1][3]
new userDetections[MAXPLAYERS+1][5]
new g_MaxPlayers
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
set_task(1.0,"ClearRecoil",128,_,_,"b")
}
public No_Recoil(id)
{
new Float:aim[3]
new weaponID = read_data( 2 )
new wAmmo = read_data( 3 )
entity_get_vector(id,EV_VEC_angles,aim)
if( g_nCurWeapon[id-1][0] != weaponID ) // меняет оружие
{
g_nCurWeapon[id-1][0] = weaponID
g_nCurWeapon[id-1][1] = wAmmo
return PLUGIN_CONTINUE
}
if( g_nCurWeapon[id-1][1] < wAmmo ) // перезаряжается
{
g_nCurWeapon[id-1][1] = wAmmo
return PLUGIN_CONTINUE
}
if( g_nCurWeapon[id-1][1] == wAmmo ) // не стреляет
return PLUGIN_CONTINUE
g_nCurWeapon[id-1][1] = wAmmo
g_nCurWeapon[id-1][0] = weaponID
if (weaponID == CSW_HEGRENADE
|| weaponID == CSW_SMOKEGRENADE
|| weaponID == CSW_FLASHBANG
|| weaponID == CSW_KNIFE
|| weaponID == CSW_C4
|| weaponID == CSW_GLOCK18) {
return PLUGIN_HANDLED
}else{
if((aim[0]==recoil_LastAng[id][0] && recoil_LastAng[id][0]!=0))
{
userDetections[id][RECOIL]++
}else{
userDetections[id][RECOIL]--
}
recoil_LastAng[id][0]=aim[0]
//if (userDetections[id][RECOIL] > 6)
if (userDetections[id][RECOIL] > 10)
server_cmd("kick #%d [Anti-Cheats] No Recoil", get_user_userid(id))
}
return PLUGIN_CONTINUE
}
public client_connect(id)
{
userDetections[id][RECOIL] = 0
}
public ClearRecoil()
{
for(new i=0;i<=g_MaxPlayers;i++)
{
userDetections[i][RECOIL] = userDetections[i][RECOIL] - 10
if (userDetections[i][RECOIL] < 0)
userDetections[i][RECOIL] = 0
}
}