Difference between revisions of "Simple Texture Changer (input list)(all prims & all sides).lsl"
Jump to navigation
Jump to search
m (added backlink) |
Lady Sumoku (talk | contribs) m (Replaced old <LSL> block with <source lang="lsl2">) |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
Part of [[Bobbyb's texture changer]] collection | Part of [[Bobbyb's texture changer]] collection | ||
< | <source lang="lsl2"> | ||
//*********************************************************************************************************** | //*********************************************************************************************************** | ||
// * | // * | ||
// --Simple Texture Changer (input list)( | // --Simple Texture Changer (input list)(all prims & all sides)-- * | ||
// * | // * | ||
//*********************************************************************************************************** | //*********************************************************************************************************** | ||
Line 11: | Line 10: | ||
//Attribution: None required, but it is appreciated. | //Attribution: None required, but it is appreciated. | ||
//Created: April 28, 2009 | //Created: April 28, 2009 | ||
//Last Modified: November | //Last Modified: November 28, 2009 | ||
//Released: Saturday, November 28, 2009 | //Released: Saturday, November 28, 2009 | ||
//License: Public Domain | //License: Public Domain | ||
//Status: Fully Working/Production Ready | //Status: Fully Working/Production Ready | ||
//Version: 1.0. | //Version: 1.0.6 | ||
//Name: Simple Texture Changer (input list)(certain prims & all sides).lsl | //Name: Simple Texture Changer (input list)(certain prims & all sides).lsl | ||
Line 38: | Line 37: | ||
//texture list...this list should have 2 or more textures | //texture list...this list should have 2 or more textures | ||
list textures = [ | list textures = [ | ||
"00000000-0000-0000-0000-0000f0000000", | "00000000-0000-0000-0000-0000f0000000", | ||
"00000000-0000-0000-0000-0000d0000000", | "00000000-0000-0000-0000-0000d0000000", | ||
"00000000-0000-0000-0000-0000e0000000"];//put your texture UUIDs/keys in here | "00000000-0000-0000-0000-0000e0000000"];//put your texture UUIDs/keys in here | ||
//Please note there is a .2 second delay between prims. | //Please note there is a .2 second delay between prims. | ||
Line 48: | Line 47: | ||
integer random = TRUE;//whether to show the textures randomly, or in order | integer random = TRUE;//whether to show the textures randomly, or in order | ||
integer duplicatecheck = TRUE;//if random is true, this will check to make sure the random selection is a new texture | integer duplicatecheck = TRUE;//if random is true, this will check to make sure the random selection is a new texture | ||
integer atonce = FALSE;//whether to change all the prims at once, or one at a time | |||
///////////////////////////////////////////////////////////// | ///////////////////////////////////////////////////////////// | ||
Line 58: | Line 57: | ||
changetexture()//user fucntion to change texture; | changetexture()//user fucntion to change texture; | ||
{ | { | ||
string texture = llList2String(textures,currenttexture); | |||
if(atonce) | |||
llSetLinkTexture(LINK_SET,texture,ALL_SIDES); | |||
else | |||
{ | |||
integer counter = 1; | |||
do | |||
{ | |||
llSetLinkTexture(counter,texture,ALL_SIDES); | |||
}while(++counter < (numberofprims + 1)); | |||
} | |||
} | } | ||
default | default | ||
{ | { | ||
on_rez(integer start_param)//on rez reset...probably not needed. | |||
{ | |||
llResetScript(); | |||
} | |||
state_entry() | |||
{ | |||
llOwnerSay("Simple Texture Changer (input list)(certain prims & all sides).lsl' (Public Domain 2009)"); | |||
llOwnerSay("Because knowledge should be free."); | |||
numberoftextures = llGetListLength(textures);//speed hack here | |||
numberofprims = llGetNumberOfPrims(); | |||
//assume correct | |||
llOwnerSay("There are " + (string)numberoftextures + " pictures which I will change every " | |||
+ (string)frequency + " seconds on all the sides of all the sides."); | |||
llOwnerSay("My current free memory is : " + (string)llGetFreeMemory() | |||
+ " bytes. If it is below 2500 bytes, I may not work properly."); | |||
llSetTimerEvent(frequency); | |||
} | |||
timer() | |||
{ | |||
if(random)//show pics randomly | |||
{ | |||
integer randomtexture; | |||
if(duplicatecheck)//whether to make sure random doesn't repeat itself | |||
{ | |||
do | |||
{ | |||
randomtexture= llRound(llFrand(numberoftextures - 1)); | |||
//llOwnerSay("r" + (string)randomtexture);//debug | |||
}while(randomtexture == currenttexture);//make sure the random one isn't the same as the current one | |||
} | |||
else//no duplicate check | |||
randomtexture = llRound(llFrand(numberoftextures - 1));//generate random texture number | |||
currenttexture = randomtexture;//set the current one to the random one selected | |||
changetexture();//change the texture | |||
//llOwnerSay("c" + (string)currenttexture);//debug | |||
} | |||
else//not random, go in order | |||
{ | |||
++currenttexture; | |||
if(currenttexture == numberoftextures)//if current texture = number of textures, reset counter | |||
currenttexture = 0; | |||
changetexture();//change the texture | |||
//llOwnerSay("c" + (string)currenttexture);//debug | |||
} | |||
} | |||
} | } | ||
</ | </source> |
Latest revision as of 21:05, 24 January 2015
Part of Bobbyb's texture changer collection
//***********************************************************************************************************
// *
// --Simple Texture Changer (input list)(all prims & all sides)-- *
// *
//***********************************************************************************************************
// www.lsleditor.org by Alphons van der Heijden (SL: Alphons Jano)
//Creator: Bobbyb30 Swashbuckler
//Attribution: None required, but it is appreciated.
//Created: April 28, 2009
//Last Modified: November 28, 2009
//Released: Saturday, November 28, 2009
//License: Public Domain
//Status: Fully Working/Production Ready
//Version: 1.0.6
//Name: Simple Texture Changer (input list)(certain prims & all sides).lsl
//Purpose: To change the texture on all linked prims on all sides based on the textures in the input list.
//Technical Overview: The script finds how many textures there are in the input list, and uses a timer to change the
// texture on a side based on randomness or order. It changes all sides of the certain prim to the
// specified texture
//Description: A simple texture changer script that changes the texture on all the sides of all linked prims in a linked
// set to those in the input list. It allows for a random order, or a logical "next up" order.
//Directions: Create a prim. Place the script in prim inventory. Modify the script parameters to suit your needs and
// save. Reset script if you add/remove linked prims.
//Compatible: Mono & LSL compatible
//Other items required: None.
//Notes: Uses a timer event. Should be low lag. Commented for easier following. This will change all of the sides
// of certain linked prims to the *same* texture based on the input texture list.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Adjustable global variables...you may change these
//texture list...this list should have 2 or more textures
list textures = [
"00000000-0000-0000-0000-0000f0000000",
"00000000-0000-0000-0000-0000d0000000",
"00000000-0000-0000-0000-0000e0000000"];//put your texture UUIDs/keys in here
//Please note there is a .2 second delay between prims.
float frequency = 2.0;//how often to change the texture in seconds. Shouldn't be below 2.0
//please note that the last and first texture will be shown less frequently than those in between
integer random = TRUE;//whether to show the textures randomly, or in order
integer duplicatecheck = TRUE;//if random is true, this will check to make sure the random selection is a new texture
integer atonce = FALSE;//whether to change all the prims at once, or one at a time
/////////////////////////////////////////////////////////////
//global variables...do not change
integer numberoftextures;//number of textures in inventory
integer currenttexture;//inventory number of current texture
integer numberofprims;//number of prims
changetexture()//user fucntion to change texture;
{
string texture = llList2String(textures,currenttexture);
if(atonce)
llSetLinkTexture(LINK_SET,texture,ALL_SIDES);
else
{
integer counter = 1;
do
{
llSetLinkTexture(counter,texture,ALL_SIDES);
}while(++counter < (numberofprims + 1));
}
}
default
{
on_rez(integer start_param)//on rez reset...probably not needed.
{
llResetScript();
}
state_entry()
{
llOwnerSay("Simple Texture Changer (input list)(certain prims & all sides).lsl' (Public Domain 2009)");
llOwnerSay("Because knowledge should be free.");
numberoftextures = llGetListLength(textures);//speed hack here
numberofprims = llGetNumberOfPrims();
//assume correct
llOwnerSay("There are " + (string)numberoftextures + " pictures which I will change every "
+ (string)frequency + " seconds on all the sides of all the sides.");
llOwnerSay("My current free memory is : " + (string)llGetFreeMemory()
+ " bytes. If it is below 2500 bytes, I may not work properly.");
llSetTimerEvent(frequency);
}
timer()
{
if(random)//show pics randomly
{
integer randomtexture;
if(duplicatecheck)//whether to make sure random doesn't repeat itself
{
do
{
randomtexture= llRound(llFrand(numberoftextures - 1));
//llOwnerSay("r" + (string)randomtexture);//debug
}while(randomtexture == currenttexture);//make sure the random one isn't the same as the current one
}
else//no duplicate check
randomtexture = llRound(llFrand(numberoftextures - 1));//generate random texture number
currenttexture = randomtexture;//set the current one to the random one selected
changetexture();//change the texture
//llOwnerSay("c" + (string)currenttexture);//debug
}
else//not random, go in order
{
++currenttexture;
if(currenttexture == numberoftextures)//if current texture = number of textures, reset counter
currenttexture = 0;
changetexture();//change the texture
//llOwnerSay("c" + (string)currenttexture);//debug
}
}
}