Quote:
Originally Posted by stupok
Code:
new Float:fOrigin1[3]
new Float:fOrigin2[3]
new Float:fVector[3]
new Float:fAngle[3]
xs_vec_sub(fOrigin2, fOrigin1, fVector)
vector_to_angle(fVector, fAngle)
xs_vec_angle is for vectors, not origins
|
Thanks stupok & exolent. +karma to both
I put it into a function to return 89 when aiming straight up, 0 when aiming perfectly straight, and -89 aiming straight down (when the aiming players origin is passed as first origin param). For anyone else that needs this:
PHP Code:
Float: GetAngleOrigins(Float:fOrigin1[3], Float:fOrigin2[3] )
{
new Float:fVector[3];
new Float:fAngle[3];
new Float:fLineAngle;
xs_vec_sub(fOrigin2, fOrigin1, fVector);
vector_to_angle(fVector, fAngle);
if( fAngle[0] > 90.0 )
fLineAngle = -(360.0 - fAngle[0]);
else
fLineAngle = fAngle[0];
return fLineAngle;
}
To see it in action:
PHP Code:
new Float:fOrigin1[3];
new Float:fOrigin2[3];
pev( id , pev_origin, fOrigin1 );
fm_get_aim_origin(id, fOrigin2 );
client_print(id,print_chat,"Angle of line from you to where aiming: %f" , GetAngleOrigins(fOrigin1,fOrigin2) );
__________________