OsTeleportObject
From OpenSimulator
integer osTeleportObject(key objectUUID, vector targetPos, rotation rot, int flags)
| |
...
Arguments:
Flags:
| |
Threat Level | Severe |
Permissions | ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER |
Extra Delay | 0 seconds |
Example(s) | |
// Example of osTeleportObject default { state_entry() { llSay(0, "Script running"); } touch_start(integer num) { // target position in region local coords vector target =<873.911926, 879.844910, 21.332354>; rotation rot =<0,0,0.707,.707>; osObjectTeleport(llGetKey(),target,rot,1); } } | |
Notes | |
returns a integer error code:
This can do region crossings if the target position is on another region. Since target position is in start region local coords, some simple math is needed - on the target region, use llgetregioncorner to get its global coords - add to that vector the target position you want on that region local coords - on the start region use llgetregioncorner to get its global coords - subtract that vector from the previus one. - result is the needed value for target position you may notice that this may work also on regions that are far apart. but since it uses normal regions crossing code the operation is not pretty to see on viewer of sitting avatars, so do avoid it make sure there is enough clear space on target position for the object to rez Restrictions:
|