yeah...there is something as ent_reatelocal....

to add to a vertex and rotate it by a second vertex is also really easy:

Code:
vec_for_vertex(temp,player,1234);
vec_set(weapon.x,temp);
vec_for_vertex(target,player,1235);
vec_sub(target,temp);//Get the direction
vec_to_angle(weapon.pan,target);