It's not your lack of bone knowledge, it's your lack of understanding vector, angle and pointers.

As for writing code, well it's just easier then 3-4 days of posting back in fourth.

I could have said

// find the player in ang space
vec_to_angle(.....);
//check if player is more then 90* +- me
if(abs(vec_bend.x>90)
... turn my pan to face player
// Else - bend my body to face player
ent_bonerest(...)
...fill limit1, limit2 limit3 from vec_bend.xyz
ent_bonerotate(.....vector(limit1,limit2,limit3)...);


However then I would have days of questions. It's just a observation.
Good luck have fun.
Mal