Code:
new Float:vecVictim[ 3 ], Float:vecAttack[ 3 ];
pev( victim , pev_v_angle, vecVictim );
pev( attacker, pev_v_angle, vecAttack );
engfunc( EngFunc_MakeVectors, vecVictim );
global_get( glb_v_forward, vecVictim );
engfunc( EngFunc_MakeVectors, vecAttack );
global_get( glb_v_forward, vecAttack );
new Float:degrees = xs_vec_angle( vecVictim, vecAttack );
if( degrees <= 40.0 )
{
// Attacked from behind
}
EDIT: Or if you must...
Code:
new Float:vecVictim[ 3 ], Float:vecAttack[ 3 ];
pev( victim , pev_v_angle, vecVictim );
pev( attacker, pev_v_angle, vecAttack );
new Float:flAngles[ 2 ];
flAngles[ 0 ] = vecVictim[ 1 ];
flAngles[ 1 ] = vecAttack[ 1 ];
new iHigher = ( flAngles[ 0 ] < flAngles[ 1 ] ) ? 1 : 0;
new iLower = 1 - iHigher;
if( ( flAngles[ iHigher ] - flAngles[ iLower ] ) <= 40.0
|| ( 360.0 - flAngles[ iHigher ] + flAngles[ iLower ] ) <= 40.0 )
{
// Attacked from behind
}
__________________