Window Control

From Second Life Wiki
Jump to: navigation, search

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 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.