Difference between revisions of "LlGround"

From Second Life Wiki
Jump to navigation Jump to search
m
m
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|inject-2={{LSL Function/offset|offset|noZ=*}}
|inject-2={{LSL Function/offset|offset|noZ=*|sim=*}}
|func_id=42|func_sleep=0.0|func_energy=10.0
|func_id=42|func_sleep=0.0|func_energy=10.0
|sort=Ground
|sort=Ground
Line 8: Line 8:
|return_text=that is the ground height directly below the [[llGetPos|prim position]] + {{LSLP|offset}}
|return_text=that is the ground height directly below the [[llGetPos|prim position]] + {{LSLP|offset}}
|spec
|spec
|caveats=*The requested position needs to be in the same sim.
|caveats
|constants
|constants
|examples=
|examples=

Revision as of 09:50, 18 June 2012

Summary

Function: float llGround( vector offset );
0.0 Forced Delay
10.0 Energy

Returns a float that is the ground height directly below the prim position + offset

• vector offset offset relative to the prim's position and expressed in local coordinates

The requested position needs to be in the same region. Only the x and y coordinates in offset are important, the z component is ignored.

Examples

<lsl>// Get the object to land on the ground or on the water // by Konigmann Lippmann & Strife Onizuka FindGroundOrWater() {

   float fHeight = llGround( ZERO_VECTOR );
   float fWaterLevel = llWater( ZERO_VECTOR );
   if( fHeight < fWaterLevel )
       fHeight = fWaterLevel;
   vector vTarget = llGetPos();
   //llSetPos can only move 10m at a time.
   integer iCounter = 1 + llAbs((integer)(vTarget.z - fHeight) / 10);
   vTarget.z = fHeight;
   do
       llSetPos( vTarget );
   while( --iCounter );

}

default {

   touch_start(integer total_number)
   {
       FindGroundOrWater();
   }
}</lsl>

See Also

Functions

•  llGroundContour Gets the ground contour
•  llGroundNormal Gets the ground normal
•  llGroundSlope Gets the ground slope
•  llEdgeOfWorld Returns existence of neighboring sims

Deep Notes

Signature

function float llGround( vector offset );