Window Control
Revision as of 17:50, 10 April 2022 by Gwyneth Llewelyn (talk | contribs) (Replaced <source> with <syntaxhighlight>)
What it does
Window Control is basically just to change the opacity of windows and such, helpful for buildings.
Window
Put this in the windows;
// script that changes opacity of object based on external messages
integer gChannel = 5; // communication channel on which we listen for opacity change commands
integer gLastListen; // id of last listen command
default
{
state_entry()
{
gLastListen = llListen(gChannel, "", "", "0");
}
listen(integer channel, string name, key id, string msg)
{
llListenRemove(gLastListen);
integer nextOpacityLvl = (integer)msg;
nextOpacityLvl += 1;
if (nextOpacityLvl > 3) nextOpacityLvl = 0;
gLastListen = llListen(gChannel, "", "", (string)nextOpacityLvl);
float opacityLvl = (float)msg;
opacityLvl = 1.1 - ((opacityLvl / 3) * 0.9);
llSetAlpha(opacityLvl, ALL_SIDES);
}
}
Window Switch
Put this in a switch;
// script for a switch that controls window opacity
integer gOpacityLevel = 0; // current opacity level of windows
integer gChannel = 5; // channel that controls which windows respond to this switch
default
{
state_entry()
{
}
touch_start(integer num_touchers)
{
gOpacityLevel += 1;
if (gOpacityLevel > 3)
{
gOpacityLevel = 0;
}
string opacityCmd = "";
opacityCmd = opacityCmd + (string)gOpacityLevel;
llSay(gChannel, opacityCmd);
}
}
How to work with it
When you've put all the window opacity scripts in and done the switch, just click the switch to cycle through transparent and opaque.