Difference between revisions of "LlGroundRepel"

From Second Life Wiki
Jump to navigation Jump to search
 
(14 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|inject-2={{LSL_Function/physical}}
{{LSL_Function/damping|tau}}
|func=llGroundRepel
|func=llGroundRepel
|sort=GroundRepel
|func_id=230|func_sleep=0.0|func_energy=10.0
|func_id=230
|func_sleep=0.0
|func_energy=10.0
|func=llGroundRepel
|p1_type=float|p1_name=height|p1_desc=Distance above the ground
|p1_type=float|p1_name=height|p1_desc=Distance above the ground
|p2_type=integer|p2_name=water|p2_desc=boolean, if [[TRUE]] then hover above water too.
|p2_type=integer|p2_name=water|p2_desc=boolean, if [[TRUE]] then hover above water too.
|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 '''height''' if within '''height'''*0.5 of level
|func_desc=Critically damps to {{LSLP|height}} if within <code>{{LSLPT|height}} * 0.5</code> of ground or water level (which ever is higher).
|return_text
|return_text
|spec
|spec=Does not pull the object down if it is stuck higher than that, unlike the similar [[llSetHoverHeight]].
|caveats
 
To stop llGroundRepel, this seems to work: <code>llGroundRepel(0.0, FALSE, 0.0)</code>
|caveats=
* This is not a prim property; stopping or resetting the script stops llGroundRepel; same with the similar [[llSetHoverHeight]]
* Crossing a sim border will cancel llGroundRepel, unlike [[llSetHoverHeight]]
* A negative height value allows you to hover underwater, same as [[llSetHoverHeight]]
* A previous version of this page suggested that [[llStopHover]] will stop llGroundRepel, but it does not
|constants
|constants
|examples
|examples=<source lang="lsl2">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!!</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 also pulls down}}
{{LSL DefineRow||[[llStopHover]]|To stop hovering}}
|also_tests
|also_tests
|also_events
|also_events
Line 28: Line 42:
|cat4
|cat4
}}
}}
{{LSL_Function/damping|tau}}

Latest revision as of 20:44, 17 February 2024

Summary

Function: llGroundRepel( float height, integer water, float tau );
0.0 Forced Delay
10.0 Energy

Critically damps to height if within height * 0.5 of ground or water level (which ever is higher).

• 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.

Specification

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)

Caveats

  • Only works in physics-enabled objects.
  • This is not a prim property; stopping or resetting the script stops llGroundRepel; same with the similar llSetHoverHeight
  • Crossing a sim border will cancel llGroundRepel, unlike llSetHoverHeight
  • A negative height value allows you to hover underwater, same as llSetHoverHeight
  • A previous version of this page suggested that llStopHover will stop llGroundRepel, but it does not

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 also pulls down

Deep Notes

Signature

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