well,
actually i have also a rotator… i get the forward vector and:
bool true–> i break the vector and i make from it a new vector with z=0, then i multiply it by the third float.
bool false: i multiply the vector, without change it, for the third float.
then, in both cases, i add the resulting vector to two other vector (made up with the right vector and the up vector from the rotator, multiplied by the first and second float) and i return the result