Difference between revisions of "Window Control"

From Second Life Wiki
Jump to navigation Jump to search
(New page: == 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 opaci...)
(No difference)

Revision as of 08:40, 21 September 2008

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

<lsl>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);
    } 
}</lsl>

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
<lsl>default
{
    state_entry()
    {
       
    }
    
    touch_start(integer num_touchers)
    {
        gOpacityLevel += 1;
        if (gOpacityLevel > 3)
        {
            gOpacityLevel = 0;
        }
        string opacityCmd = "";
        opacityCmd = opacityCmd + (string)gOpacityLevel;
        llSay(gChannel, opacityCmd);
    }
}</lsl>

How to work 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.