Difference between revisions of "LlWater"
Jump to navigation
Jump to search
m (Synching with llGround) |
m (Explaining what this script does) |
||
Line 12: | Line 12: | ||
|constants | |constants | ||
|examples= | |examples= | ||
<lsl> | <lsl>// Gets the object to land on ground or on water | ||
// by Konigmann Lippmann & Strife Onizuka | // by Konigmann Lippmann & Strife Onizuka | ||
FindGroundOrWater() | FindGroundOrWater() |
Revision as of 02:42, 30 August 2008
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: float llWater( vector offset );153 | Function ID |
0.0 | Forced Delay |
10.0 | Energy |
Returns a float that is the water height below the object position + offset
• vector | offset |
Only the X and Y coordinates of the offset are important.
Water height is constant across each entire sim and is typically 20 meters but not always.
Caveats
Examples
<lsl>// Gets the object to land on ground or on 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>