Quote: "This is 3D that is why the vectors are3."
Not entirely true hence why you have vectors 2-4 and sometimes beyond! Vector3 is only necessary because it's has 3 component we need to fill.
Taking a look at your code you rotate the the XYZ component at the same angle when you only want to rotate one! Also, your method of moving forward isn't entirely correct. This is were the math gets alittle difficult and isn't exactly to do with vectors. To find the direction vectors of our object based of it's angle you either have to use a matrix or trig (if we're using a math method) there are a number of cheat ways, for example:
To get the look/forward vector the cheat way you can do this:
// < rotate object first >
posX# = object position x(1)
posY# = object position y(1)
posZ# = object position z(1)
move object 1,1
lookX# = object position x(1)-posX#
lookY# = object position y(1)-posY#
lookZ# = object position z(1)-posZ#
move object 1,-1
Or...
// < rotate object first >
posX# = object position x(1)
posY# = object position y(1)
posZ# = object position z(1)
offset limb 1,0,0,0,1
lookX# = limb position x(1,0)-posX#
lookY# = limb position y(1,0)-posY#
lookZ# = limb position z(1,0)-posZ#
offset limb 1,0,0,0,0
position object 1,posX#,posY#,posZ# // position back
Using trig:
x# = object angle x()
y# = object angle y()
z# = object angle z()
lookX# = sin(z#) * sin(x#) + cos(z#) * sin(y#) * cos(x#)
lookY# = -cos(z#) * sin(x#) + sin(z#) * sin(y#) * cos(x#)
lookZ# = cos(y#) * cos(x#)
The matrix method is alittle complex so won't get into that yet (but it's the quickest and easiest if you understand how a matrix works)
Using the vector to actually move our object:
// scale our vector
newLookX# = lookX# * speed#
newLookY# = lookY# * speed#
newLookZ# = lookZ# * speed#
// add to our position
inc posX#, newLookX#
inc posY#, newLookY#
inc posZ#, newLookZ#
position object 1,posX#,posY#,posZ#
Now this is only for forward movement, for up movement you need to scale the up vector, for right movement you need to scale the right vector. If you google direction vectors and trig for them and etc... you can find all the answers you need. For the cheaty methods, just change the just add up or right to the ends of the move object commands for the up and right vectors, and if limbs just put a 1 in the X, Y or Z component for each vector(X=right,Y=up,Z=look)
"Get in the Van!" - Van B