Anyway, the computation of the offset vector should not be performed each frame. Otherway it will continuously lose a little length caused by the accuracy limits of the variables.
Code:
vec_diff(my.skill1, my.x, entParent.x); // save the offset vector into three skills
while(1) {
vec_set(my.x, my.skill1);
vec_rotate(my.x, entParent.pan);
vec_add(my.x, entParent.x);
vec_set(my.pan, entParent.pan);
wait(1);
}