Код:
public Player_TakeDamage(iVictim, iInflictor, iAttacker, Float: flDamage, const bitsDamageType)
{
new Float: vecSrc[3];
new Float: vecAngles[3];
new Float: vecForward[3];
new Float: vecAttackDir[3];
GetCenter(iVictim, vecSrc);
GetCenter(iInflictor, vecAttackDir);
xs_vec_sub(vecAttackDir, vecSrc, vecAttackDir);
xs_vec_normalize(vecAttackDir, vecAttackDir);
pev(iVictim, pev_angles, vecAngles);
engfunc(EngFunc_MakeVectors, vecAngles);
global_get(glb_v_forward, vecForward);
xs_vec_mul_scalar(vecAttackDir, -1.0, vecAttackDir);
if (!is_user_alive(iAttacker))
return
if (get_user_weapon(iAttacker) == CSW_KNIFE && xs_vec_dot(vecForward, vecAttackDir) > 0.3)
{
SetHamParamFloat(4, 0.0);
}
}
===>
Код:
public Player_TakeDamage(iVictim, iInflictor, iAttacker, Float: flDamage, const bitsDamageType)
{
if(is_user_connected(iVictim) && is_user_connected(iAttacker) && iVictim != iAttacker)
{
new Float: vecSrc[3];
new Float: vecAngles[3];
new Float: vecForward[3];
new Float: vecAttackDir[3];
GetCenter(iVictim, vecSrc);
GetCenter(iInflictor, vecAttackDir);
xs_vec_sub(vecAttackDir, vecSrc, vecAttackDir);
xs_vec_normalize(vecAttackDir, vecAttackDir);
pev(iVictim, pev_angles, vecAngles);
engfunc(EngFunc_MakeVectors, vecAngles);
global_get(glb_v_forward, vecForward);
xs_vec_mul_scalar(vecAttackDir, -1.0, vecAttackDir);
if(get_user_weapon(iAttacker) == CSW_KNIFE && xs_vec_dot(vecForward, vecAttackDir) > 0.3)
SetHamParamFloat(4, 0.0);
}
}
Отредактировал: Stimul1, - 30.6.2015, 19:52