Difference between revisions of "Rainbow palette"

From Second Life Wiki
Jump to navigation Jump to search
Line 1: Line 1:
<lsl>
<lsl>
// Rainbow Palette by Rui Clary
// Rainbow Palette by Rui Clary
// This script will only run in Mono enabled, Second Life  Viewer 1.21 or above  
// This script will only run in Mono enabled, Second Life  Viewer 1.21 or above.
//
//
// Interactive Rainbow Palette
// Interactive Rainbow Palette

Revision as of 16:59, 26 September 2008

<lsl> // Rainbow Palette by Rui Clary // This script will only run in Mono enabled, Second Life Viewer 1.21 or above. // // Interactive Rainbow Palette // // Add this script to a cube prim and add "Listen Palete" script to another Object. // You can resize and stretch the cube, the way you want, to make it look like a color palette. // Touch face 1 of "Rainbow Palette" to change "Listen Object" color. // // Available under the Creative Commons Attribution-ShareAlike 3.0 license // http://creativecommons.org/licenses/by-sa/3.0/

default {

   state_entry()
   {
       llSetObjectName("pal");
       llSetTexture ("5748decc-f629-461c-9a36-a35a221fe21f",ALL_SIDES);
       llSetTexture("5543eaa7-4283-8383-eef9-945c0b3f25c7",1);
   }
   touch(integer num_detected) 
   {
       float x;
       float r;
       float g;
       float b;
        vector touchedpos = llDetectedTouchST(0);  
        if (llDetectedTouchFace(0)==1)
        {  
            x=360*touchedpos.x;
           
           if (x>=0&&x<=60)
               {r=255;}
           if (x>=300&&x<=360)
               {r=255;}
           if (x>=120&&x<=240)
               {r=0;}
           if (x>60&&x<=120)
               {r=255-(x-60)*255/60;}
           if (x>240&&x<300)
               {r=(x-240)*255/60;}        
           if (x>=0&&x<60)
               {g=x*255/60;}    
           if (x>=60&&x<=180)
               {g=255;}        
           if (x>180&&x<240)
               {g=255-(x-180)*255/60;}        
           if (x>=240&&x<=360)
               {g=0;}                
           if (x>=0&&x<=120)
               {b=0;}    
           if (x>120&&x<180)
               {b=(x-120)*255/60;}    
           if (x>=180&&x<=300)
               {b=255;}        
           if (x>300&&x<=360)
               {b=255-(x-300)*255/60;}  
               llSay(4,"<"+(string)(r/255)+","+(string)(g/255)+","+(string)(b/255)+">");
       }
   }
  

}

</lsl>

<lsl> // Rainbow Palette Listen Script by Rui Clary // // Second component of Rainbow Palette // // Add this script to "Listen Object".


default {

   state_entry()
   {
       llListen( 4, "pal", NULL_KEY, "" ); 
   }
  listen( integer channel, string name, key id, string message )
   {
       llSetColor((vector)message,0);
   }

} </lsl>