llPushObject

From Second Life Wiki
Revision as of 00:51, 7 December 2008 by Darwin Recreant (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Summary

Function: llPushObject( key target, vector impulse, vector ang_impulse, integer local );

Applies impulse and ang_impulse to object id

• key target Avatar or object UUID in the sim
• vector impulse Direction and force of push. Direction is affected by local.
• vector ang_impulse Rotational force.
• integer local boolean, if TRUE uses the local axis of target, if FALSE uses the region axis.

Caveats

  • Only works on land where Push is not restricted or where the script is owned by the land owner.
    • If the land is owned by a group, the scripted object must be deeded to the same group.
  • The effectiveness of Push is modulated by the amount of script energy available.
    • There is a simplified code snippet describing how Push is implemented in the Havok4 project and reveals some of the details of how the energy budget affects the final Push magnitude.
  • In no-push areas an object can only push its owner.
  • ang_impulse is ignored when applying to agents.
  • Energy use is calculated as magnitude of impulse divided by 20,000.
  • The push impact is diminished with distance by a factor of distance cubed.
All Issues ~ Search JIRA for related Bugs

Examples

<lsl>// Pushes the collided object or avatar. default {

   collision_start(integer num_detected)
   {
       llPushObject(llDetectedKey(0),<0,0,100>, <0,0,100>, TRUE);
   }
}</lsl>

Deep Notes

Search JIRA for related Issues

Signature

function void llPushObject( key target, vector impulse, vector ang_impulse, integer local );