Difference between revisions of "MoveTo"
Jump to navigation
Jump to search
→Notes: Added code example to workaround a problem with collision meshes when moving statics.
imported>QQuix (Added a note) |
imported>Syscrusher (→Notes: Added code example to workaround a problem with collision meshes when moving statics.) |
||
Line 32: | Line 32: | ||
set xp to myObject.getPos x | set xp to myObject.getPos x | ||
myObject.setPos x xp</pre> | myObject.setPos x xp</pre> | ||
* Moving a static object may update its visible position but not its collision mesh location. To work around this, disable and move the object on one frame, then enable it on the next frame. This must be done in the GameMode block: | |||
<pre>if myObject.getDisabled | |||
myObject.enable | |||
endif | |||
; This must be last so the above code is activated *next* frame... | |||
if [some_condition_to_trigger_movement] | |||
myObject.moveTo [location] | |||
myObject.disable | |||
endif</pre> | |||
* In the above example, the condition to trigger movement could be setting a quest variable to 1 in a dialog result or quest stage result, in which case you would then set that variable back to zero as you move the object. | |||
* Note however, that if the moved object is moved to a new cell, it may snap back to its original cell after quit/reload (while keeping the new x,y,z coordinates). This seems to not happen as much when moving between Tamriel subspaces, but definitly happens when moving to and between Shivering Isles and Oblivion worldspaces. If the object being moved is only supposed to be a marker, consider using a marker actor instead. (See [[Teleport Recall]].) (Actors do not suffer from worldspace snapback, and should react correctly to closing of an Oblivion gate.) | * Note however, that if the moved object is moved to a new cell, it may snap back to its original cell after quit/reload (while keeping the new x,y,z coordinates). This seems to not happen as much when moving between Tamriel subspaces, but definitly happens when moving to and between Shivering Isles and Oblivion worldspaces. If the object being moved is only supposed to be a marker, consider using a marker actor instead. (See [[Teleport Recall]].) (Actors do not suffer from worldspace snapback, and should react correctly to closing of an Oblivion gate.) | ||
* To adjust the object relative to the players heading (i.e. place it in front of the player), you'll need to offset it's position. See [[Summon Object]] for full code sample. | * To adjust the object relative to the players heading (i.e. place it in front of the player), you'll need to offset it's position. See [[Summon Object]] for full code sample. |