The upshot is that if you move entities, then where _we_ thought they would be instantly moved, if you're using tweening this isn't the case, and the movement is spread across frames. (Mark? Can you fix that?)
Thus you must kill collisions for the duration of the movement or else your entity will collide with something, even if only the hill over there.
As far as I remember HideEntity is described in the manual as being instituting a 'collision-less' state, but in effect this is not true if you use tweening, until your entity eventually gets to the target point.
And, yes, this did give me days of hair-tearing until I realised that it wasn't my code that was at fault.
So:
EntityType ent,0
PositionEntity ent,x,y,z
EntityType ent,TYPE_HUMAN (or whatever)
- job done.
While we're on this, another thing I noticed recemtly is that if use:
PositionEntity ent,x,y,z (or Move or TranslateEntity)
newx = EntityX#(ent)
- you _don't_ get the correct position returned unless you put UpdateWorld() between PositionEntity ent,x,y,z and the EntityX() command. There's a logic in there, I guess.
That one only cost me half a day of searching through what I thought was bugged code to finally realise it.
Thus you must kill collisions for the duration of the movement or else your entity will collide with something, even if only the hill over there.
As far as I remember HideEntity is described in the manual as being instituting a 'collision-less' state, but in effect this is not true if you use tweening, until your entity eventually gets to the target point.
And, yes, this did give me days of hair-tearing until I realised that it wasn't my code that was at fault.
So:
EntityType ent,0
PositionEntity ent,x,y,z
EntityType ent,TYPE_HUMAN (or whatever)
- job done.
While we're on this, another thing I noticed recemtly is that if use:
PositionEntity ent,x,y,z (or Move or TranslateEntity)
newx = EntityX#(ent)
- you _don't_ get the correct position returned unless you put UpdateWorld() between PositionEntity ent,x,y,z and the EntityX() command. There's a logic in there, I guess.
That one only cost me half a day of searching through what I thought was bugged code to finally realise it.