OsSetRegionWaterHeight
From OpenSimulator
(Difference between revisions)
Line 81: | Line 81: | ||
} | } | ||
+ | </source> | ||
+ | |||
+ | </source> | ||
+ | // Gezeiten Tide V1.0.1 | ||
+ | |||
+ | integer waterstatus = TRUE; | ||
+ | float zaehler = 20.00; | ||
+ | float tspeed = 0.1; | ||
+ | |||
+ | float gap = 2.0; | ||
+ | float counter = 0.0; | ||
+ | |||
+ | flooding() | ||
+ | { | ||
+ | while ( zaehler >= 20.00 ) | ||
+ | { | ||
+ | llSleep(tspeed); | ||
+ | osSetRegionWaterHeight(zaehler); | ||
+ | zaehler = zaehler - 0.01; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | drying() | ||
+ | { | ||
+ | while ( zaehler <= 20.15 ) | ||
+ | { | ||
+ | llSleep(tspeed); | ||
+ | osSetRegionWaterHeight(zaehler); | ||
+ | zaehler = zaehler + 0.01; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | default | ||
+ | { | ||
+ | state_entry() { | ||
+ | osSetRegionWaterHeight(20.0); | ||
+ | llSetTimerEvent(gap); | ||
+ | } | ||
+ | |||
+ | timer() | ||
+ | { | ||
+ | counter = counter + gap; | ||
+ | if ( waterstatus ) | ||
+ | { | ||
+ | waterstatus = FALSE; | ||
+ | flooding(); | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | waterstatus = TRUE; | ||
+ | drying(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
</source> | </source> | ||
|description=Sets the water height for the current region. | |description=Sets the water height for the current region. | ||
| | | | ||
}} | }} |
Revision as of 08:19, 26 August 2023
osSetRegionWaterHeight(float height)
| |
Sets the water height for the current region. | |
Threat Level | High |
Permissions | ESTATE_MANAGER,ESTATE_OWNER |
Extra Delay | 0 seconds |
Example(s) | |
// Region Water Height utility // I know, it's probably horribly inefficient and confusing, but it works. // Arkaniad Exonar, '10 float g_WaterHeight; // <---- Storage Var integer g_ListenChan = 0; list g_ltmp; // <--------Temporary buffer default { state_entry() { llListen(g_ListenChan, "", llGetOwner(), ""); //Prepare listener llSay(0, "Ready for commands"); } listen(integer channel, string name, key id, string message) { g_ltmp = llParseString2List(message, [" "], []); // Split the message into chunks if(llList2String(g_ltmp, 0) == "/waterheight") // Self explanatory { osSetRegionWaterHeight(llList2Float(g_ltmp, 1)); // Set the region water height to the specified value llSay(0, "Setting region water height to "+llList2String(g_ltmp, 1)+"m (In case anyone was wondering)"); g_ltmp = []; // Flush buffers } } } // Hochwasser - flooding integer waterstatus = TRUE; float zaehler = 20.00; float tspeed = 0.25; flooding() { while ( zaehler >= 20.00 ) { llSleep(tspeed); osSetRegionWaterHeight(zaehler); zaehler = zaehler - 0.01; } } drying() { while ( zaehler <= 20.49 ) { llSleep(tspeed); osSetRegionWaterHeight(zaehler); zaehler = zaehler + 0.01; } } default { state_entry() { osSetRegionWaterHeight(20.0); } touch_start(integer total_number) { if ( waterstatus ) { waterstatus = FALSE; flooding(); } else { waterstatus = TRUE; drying(); } llSay(0, " Wasserstand Fertig!"); } } </source> // Gezeiten Tide V1.0.1 integer waterstatus = TRUE; float zaehler = 20.00; float tspeed = 0.1; float gap = 2.0; float counter = 0.0; flooding() { while ( zaehler >= 20.00 ) { llSleep(tspeed); osSetRegionWaterHeight(zaehler); zaehler = zaehler - 0.01; } } drying() { while ( zaehler <= 20.15 ) { llSleep(tspeed); osSetRegionWaterHeight(zaehler); zaehler = zaehler + 0.01; } } default { state_entry() { osSetRegionWaterHeight(20.0); llSetTimerEvent(gap); } timer() { counter = counter + gap; if ( waterstatus ) { waterstatus = FALSE; flooding(); } else { waterstatus = TRUE; drying(); } } } </source> |