Difference between revisions of "LlWater"
From Second Life Wiki
m (Explaining what this script does) |
Lady Sumoku (Talk | contribs) m (Replaced old <LSL> block with <source lang="lsl2">) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{LSL_Function | {{LSL_Function | ||
+ | |inject-2={{LSL Function/offset|offset|noZ=*|sim=*}} | ||
|func=llWater | |func=llWater | ||
|func_id=153|func_sleep=0.0|func_energy=10.0 | |func_id=153|func_sleep=0.0|func_energy=10.0 | ||
− | |func_footnote= | + | |func_footnote= |
Water height is constant across each entire sim and is typically 20 meters but not always. | Water height is constant across each entire sim and is typically 20 meters but not always. | ||
|func_desc | |func_desc | ||
|p1_type=vector|p1_name=offset | |p1_type=vector|p1_name=offset | ||
|return_type=float | |return_type=float | ||
− | |return_text=that is the water height below the | + | |return_text=that is the water height below the prim's [[llGetPos|position]] + {{LSLP|offset}} |
|spec | |spec | ||
− | |caveats | + | |caveats |
|constants | |constants | ||
|examples= | |examples= | ||
− | < | + | <source lang="lsl2">// Makes the object land on ground or on water |
− | + | ||
FindGroundOrWater() | FindGroundOrWater() | ||
{ | { | ||
− | |||
− | |||
− | |||
− | |||
vector vTarget = llGetPos(); | vector vTarget = llGetPos(); | ||
− | + | vTarget.z = llGround( ZERO_VECTOR ); | |
− | + | float fWaterLevel = llWater( ZERO_VECTOR ); | |
− | + | if( vTarget.z < fWaterLevel ) | |
− | + | vTarget.z = fWaterLevel; | |
− | + | llSetRegionPos(vTarget); | |
− | + | ||
− | + | ||
} | } | ||
Line 37: | Line 32: | ||
} | } | ||
} | } | ||
− | </ | + | </source> |
|helpers | |helpers | ||
|also_functions={{LSL DefineRow||[[llGround]]|Gets the ground height}} | |also_functions={{LSL DefineRow||[[llGround]]|Gets the ground height}} |
Latest revision as of 10:54, 22 January 2015
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 prim's 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. Water height is constant across each entire sim and is typically 20 meters but not always.
Caveats
Examples
// Makes the object land on ground or on water FindGroundOrWater() { vector vTarget = llGetPos(); vTarget.z = llGround( ZERO_VECTOR ); float fWaterLevel = llWater( ZERO_VECTOR ); if( vTarget.z < fWaterLevel ) vTarget.z = fWaterLevel; llSetRegionPos(vTarget); } default { touch_start(integer total_number) { FindGroundOrWater(); } }