Difference between revisions of "LlGroundRepel"

From Second Life Wiki
Jump to navigation Jump to search
m (<lsl> tag to <source>)
(This function was poorly documented. I added some notes I found while testing it)
Line 8: Line 8:
|p3_type=float|p3_name=tau
|p3_type=float|p3_name=tau
|func_footnote=Do not use with vehicles.
|func_footnote=Do not use with vehicles.
|func_desc=Critically damps to {{LSLP|height}} if within <code>{{LSLPT|height}} * 0.5</code> of ground or water level (which ever is higher)
|func_desc=Critically damps to {{LSLP|height}} if within <code>{{LSLPT|height}} * 0.5</code> of ground or water level (which ever is higher). Does not pull the object down if it is stuck higher than that, unlike the similar [[llSetHoverHeight]].
 
To stop llGroundRepel, this seems to work: <code>llGroundRepel(0.0, FALSE, 0.0)</code>
|return_text
|return_text
|spec
|spec
|caveats
|caveats=
* This is not a prim property; stopping or resetting the script stops llGroundRepel
* Crossing a sim border will cancel llGroundRepel
* A previous version of this page suggested that [[llStopHover]] will stop llGroundRepel, but it does not
|constants
|constants
|examples=<source lang="lsl2">default
|examples=<source lang="lsl2">default
Line 26: Line 31:
}// This is actually a remarkably fast way to go straight up!!</source>
}// This is actually a remarkably fast way to go straight up!!</source>
|helpers
|helpers
|also_functions={{LSL DefineRow||[[llSetHoverHeight]]| Same as llGroundRepel but without the height condition}}
|also_functions={{LSL DefineRow||[[llSetHoverHeight]]| Similar to llGroundRepel, but is not terrain-dependent}}
{{LSL DefineRow||[[llStopHover]]|To stop hovering}}
|also_tests
|also_tests
|also_events
|also_events

Revision as of 21:17, 17 February 2024

Summary

Function: llGroundRepel( float height, integer water, float tau );

Critically damps to height if within height * 0.5 of ground or water level (which ever is higher). Does not pull the object down if it is stuck higher than that, unlike the similar llSetHoverHeight.

To stop llGroundRepel, this seems to work: llGroundRepel(0.0, FALSE, 0.0)

• float height Distance above the ground
• integer water boolean, if TRUE then hover above water too.
• float tau seconds to critically damp in

Do not use with vehicles.

Caveats

  • Only works in physics-enabled objects.
  • This is not a prim property; stopping or resetting the script stops llGroundRepel
  • Crossing a sim border will cancel llGroundRepel
  • A previous version of this page suggested that llStopHover will stop llGroundRepel, but it does not
All Issues ~ Search JIRA for related Bugs

Examples

default
{
    state_entry()
    {
        llSetStatus(STATUS_PHYSICS, TRUE);
        llGroundRepel(0.5, TRUE, 0.2); // In a 1/2 meter cube this is roughly the minimum height for any noticeable effect.
        // to
        llGroundRepel(4096.0, TRUE, 0.2); // There is no restrictive maximum.
        // However as the prim reaches 4096 meters (bear in mind the prim height will be (float height + ground height))
        // it will be too high to be allowed to exist.
    }
}// This is actually a remarkably fast way to go straight up!!

See Also

Functions

•  llSetHoverHeight Similar to llGroundRepel, but is not terrain-dependent

Deep Notes

Search JIRA for related Issues

Signature

function void llGroundRepel( float height, integer water, float tau );