code by Exolent (?)
PHP Code:
stock entity_set_aim(ent, const Float:origin2[3], bone=0)
{
if(!pev_valid(ent))
return 0;
static Float:origin[3];
origin[0] = origin2[0];
origin[1] = origin2[1];
origin[2] = origin2[2];
static Float:ent_origin[3], Float:angles[3];
if(bone)
engfunc(EngFunc_GetBonePosition, ent, bone, ent_origin, angles);
else
pev(ent, pev_origin, ent_origin);
origin[0] -= ent_origin[0];
origin[1] -= ent_origin[1];
origin[2] -= ent_origin[2];
static Float:v_length;
v_length = vector_length(origin);
static Float:aim_vector[3];
aim_vector[0] = origin[0] / v_length;
aim_vector[1] = origin[1] / v_length;
aim_vector[2] = origin[2] / v_length;
static Float:new_angles[3];
vector_to_angle(aim_vector, new_angles);
new_angles[0] *= -1;
if(new_angles[1] > 180.0) new_angles[1] -= 360;
if(new_angles[1] < -180.0) new_angles[1] += 360;
if(new_angles[1] == 180.0 || new_angles[1] == -180.0) new_angles[1] = -179.999999;
set_pev(ent, pev_angles, new_angles);
set_pev(ent, pev_fixangle, 1);
return 1;
}
__________________