Difference between revisions of "LlGround"
Jump to navigation
Jump to search
Line 13: | Line 13: | ||
FindGroundOrWater() | FindGroundOrWater() | ||
{ | { | ||
float fGroundHeight = llGround( <0,0,0> ); | float fGroundHeight = llGround( <0,0,0> ); | ||
float fWaterLevel = llWater( <0,0,0> ); | float fWaterLevel = llWater( <0,0,0> ); | ||
Line 22: | Line 21: | ||
vector vNewPosition = vOldPosition; | vector vNewPosition = vOldPosition; | ||
vNewPosition.z = fGroundHeight; | vNewPosition.z = fGroundHeight; | ||
while( (llAbs((integer)(vOldPosition.z - vNewPosition.z)) > 2.0 ) && (fGroundHeight>iRepeats) ) | while( (llAbs((integer)(vOldPosition.z - vNewPosition.z)) > 2.0 ) && (fGroundHeight>iRepeats) ) | ||
{ | { | ||
llSetPos( vNewPosition ); | llSetPos( vNewPosition ); | ||
vOldPosition = llGetPos(); | vOldPosition = llGetPos(); | ||
iRepeats++; //iRepeats is used as a safety valve to make sure that this routine doesn't run forever. | |||
iRepeats++; //iRepeats is used as a safety valve to make sure that this routine doesn't | |||
} | } | ||
} | } |
Revision as of 14:54, 2 September 2007
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: float llGround( vector offset );42 | Function ID |
0.0 | Forced Delay |
10.0 | Energy |
Returns a float that is the ground height below the object position + offset
• vector | offset |
The requested position needs to be in the same sim, only the X & Y of the offset are important.
Caveats
Examples
// by Konigmann Lippmann FindGroundOrWater() { float fGroundHeight = llGround( <0,0,0> ); float fWaterLevel = llWater( <0,0,0> ); integer iRepeats = 0; if( fGroundHeight < fWaterLevel ) fGroundHeight = fWaterLevel; vector vOldPosition = llGetPos(); vector vNewPosition = vOldPosition; vNewPosition.z = fGroundHeight; while( (llAbs((integer)(vOldPosition.z - vNewPosition.z)) > 2.0 ) && (fGroundHeight>iRepeats) ) { llSetPos( vNewPosition ); vOldPosition = llGetPos(); iRepeats++; //iRepeats is used as a safety valve to make sure that this routine doesn't run forever. } } default { touch_start(integer total_number) FindGroundOrWater(); }
See Also
Functions
• | llGroundContour | – | Gets the ground contour | |
• | llGroundNormal | – | Gets the ground normal | |
• | llGroundSlope | – | Gets the ground slope |