Difference between revisions of "LlWater"
Jump to navigation
Jump to search
m (lsl code tagging) |
|||
Line 11: | Line 11: | ||
|caveats | |caveats | ||
|constants | |constants | ||
|examples=< | |examples= | ||
<lsl> | |||
// by Konigmann Lippmann & Strife Onizuka | // by Konigmann Lippmann & Strife Onizuka | ||
FindGroundOrWater() | FindGroundOrWater() | ||
Line 36: | Line 37: | ||
} | } | ||
} | } | ||
</ | </lsl> | ||
|helpers | |helpers | ||
|also_functions={{LSL DefineRow||[[llGround]]|Gets the ground height}} | |also_functions={{LSL DefineRow||[[llGround]]|Gets the ground height}} |
Revision as of 23:31, 2 April 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 |
The requested position needs to be in the same sim.
Water height is constant across each entire sim and is typically 20 meters but not always.
Caveats
Examples
<lsl> // 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>