What you want is to have variables that hold
all of the destination data, and the current position data.
ie;
Dim dest(5,2)
`dest(#,1) is destination on the x-axis
`dest(#,2) is destination on the z-axis
For x = 1 To 5
dest(x,1) = Rnd(x*100)
dest(x,2) = Rnd(x*100)
Next x
objx = Object Position X(id)
objz = Object Position Z(id)
You then need to specify which destination to use, something like;
`i just used (1,0) because it's not being used, and there's no point in wasting a good araay position.
dest(1,0) = 1
Then, you check to see if the destination and the position are about the same, if not, move the object.
ie;
If objx < dest(dest(1,0),1) + 5 And objx > dest(dest(1,0),1) - 5 And objz < dest(dest(1,0),2) + 5 And objz > dest(dest(1,0),2) - 5
`reset the destination values here
dest(1,0) = dest(1,0) + 1
`Check to make sure it isn't past the last way-point
If dest(1,0) > 5 Then dest(1,0) = 1
Else
Point Object id,dest(dest(1,0),1),Object Size Y(id)/2,dest(dest(1,0),2)
Move Object 5
EndIf
All together, that becomes;
`**** Before loop ****
Dim dest(5,2)
`dest(#,1) is destination on the x-axis
`dest(#,2) is destination on the z-axis
For x = 1 To 5
dest(x,1) = Rnd(x*100)
dest(x,2) = Rnd(x*100)
Next x
objx = Object Position X(id)
objz = Object Position Z(id)
dest(1,0) = 1
Do
`***** In loop *****
If objx < dest(dest(1,0),1) + 5 And objx > dest(dest(1,0),1) - 5 And objz < dest(dest(1,0),2) + 5 And objz > dest(dest(1,0),2) - 5
`reset the destination values here
dest(1,0) = dest(1,0) + 1
`Check to make sure it isn't past the last way-point
If dest(1,0) > 5 Then dest(1,0) = 1
Else
Point Object id,dest(dest(1,0),1),Object Size Y(id)/2,dest(dest(1,0),2)
Move Object 5
EndIf
Loop
In that fashion, you are directing the object at it's destination, checking if it is in the general vicinity ( ie, either exactly at the loaction, or just near it ) then if it is, you change it's way point, if it isn't, you move it untill it is.
Hope I Helped...

Team EOD :: Programmer/Logical Engineer/All-Round Nice Guy