Here is how I would approach it(its all math)
unitx#=(object position x(object)-object position x(hero))/distance#(object,hero)
unity#=(object position y(object)-object position y(hero))/distance#(object,hero)
unitz#=(object position z(object)-object position z(hero))/distance#(object,hero)
position object object,object position x(object)+movespeed#*unitx#,object position y(object)+movespeed#*unity#,object position z(object)+movespeed#*unitz#
end
function distance#(object,hero)
xd#=(object position x(object)-object position x(hero))^2
yd#=(object position y(object)-object position y(hero))^2
zd#=(object position y(object)-object position z(hero))^2
d#=sqrt(xd#+yd#+zd#)
endfunction d#
Where object is the object number of the thing you want to follow the player and hero is the object number of the player.
Basically it finds the unit vector (don't worry if you don't know it, it is vector calculus stuff, but you can use it simply) between the object and the hero, then moves the object its movement speed multiplied by the unit vector.
What is the unit vector:
First off, a vector is a line with a magnitude (length) and direction (angle). It has components in all 2 or 3 axis. If you use components to define a vector, you don't need the angle. So a vector can be given in Radius,Angle format or Xcomponent,Ycomponent format.
A unit vector is the name for the components of a vector that is 1 unit long in a specific direction. The math isn't really important, but it is the differences in the positions (x,y,z) divided by the total length of the vector between the two points.
I don't necessarily expect most of this to make sense, so you could just go with it if you want, or if you are curious, just ask and I will try to clarify a little more thoroughly.
Great Quote:
"Time...LINE??? Time isn't made out of lines...it is made out of circles. That is why clocks are round!" -Caboose