No push zone orbit

From Second Life Wiki
Jump to navigation Jump to search

Sending avatars and objects off world in no push areas is done with the use of unstable physical objects. The following line of lsl will produce the common "blitzer" object used in such weapons as !ownage, Psitech, and Pop.

llSetPrimitiveParams([PRIM_SIZE, <1, 1, 1>, PRIM_TEMP_ON_REZ,TRUE, PRIM_TYPE,PRIM_TYPE_SPHERE, 0, <0.0, 1.0, 0.0>, 0.95, <1.0, 0.0, 0.0>, <0.0, 1.0, 0.0>]);

Physics can be either applied via llSetStatus(STATUS_PHYSICS, TRUE) or by using the build tools.

Typically, these objects are "fired" using llRezObject() from a trap which encases the avatar to prevent escape. When the unstable object intersects the avatar, the havoc physics engine is overwhelmed by floating point calculations, (please check this fact), and both the "blitzer" and the avatar, are unable to be rendered within 3d space.

The 4000 meter height limit for objects causes the "blitzer" to be returned to the owners lost and found directory, and the avatar's position is sent to the viewer as an out of bounds negative float.

It is useful to set llSetStatus(STATUS_DIE_AT_EDGE, TRUE) to avoid lagging the sim. N.B. Rezzing large numbers of unstable physical objects has *major* effect on sim performance, and during my tests, my home sim was crashed many times *seconds* after firing. I found that adding a collision event, an llSleep(0.25), and an llDie() to the "blitzer" to alleviate sim performance problems. Do not attempt to simply llRezObject via an undamped loop or you will crash the sim.


This is my understanding of the facts, please feel free to add comment, and correct.