Window Opacity

Written by Kitsune

This script changes the opacity of windows. It includes the script for the window and the controller script.

Window Opacity Script:

// script that changes opacity of object based on external messages

integer gChannel = 50; // 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 - ((opacityLvl / 3) * 0.9);
        llSetAlpha(opacityLvl, ALL_SIDES);
    } 
} 

 

Controller Script:

// script for a switch that controls window opacity
integer gOpacityLevel = 0; // current opacity level of windows
integer gChannel = 50; // 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);
    }
}