// Roz's Single Prim Autoframe Image Swapper Script
float change = 20.0; //Number of seconds before image changes.
// Create a box. Put the photos and textures you'd like to display
// with your frame inside the box's inventory. Once all photos are
// in the box's inventory, create a new script, cut and paste this
// information to the script and put it in the box's inventory.
// Once the script is running, the prim can be resized and edited
// CAUTION: THIS SCRIPT WILL AUTOMATICALLY CHANGE THE SHAPE, SIZE AND
// TEXTURE OF THE PRIM YOU PLACE IT IN.
list frames = ["a25bebc8-4739-453d-d44e-fc522cf95488","c58be669-fd49-8a07-7836-4c97a4a4058c","a0ce8c4d-74d1-a38c-53c0-0819c24b32b4","8ab138f4-248a-3884-a1de-e4124032c18c"];
string image;
integer toggle;
integer next;
integer photos;
default
{
state_entry()
{
llSetTimerEvent(change);
photos = llGetInventoryNumber(INVENTORY_TEXTURE);
next = photos - 1;
//Q: Roz, where did that hideously ugly frame come from?
//A: From right here...
llSetPrimitiveParams([PRIM_TYPE,PRIM_TYPE_BOX,PRIM_HOLE_SQUARE,<0.0,1.0,0.0>,0.0,ZERO_VECTOR,<0.8,0.8,0.0>,ZERO_VECTOR,PRIM_SIZE,<0.5,0.5,0.015>,PRIM_TEXTURE,ALL_SIDES,llList2Key(frames,(integer)llFrand(4)),<1.0,1.0,0.0>,ZERO_VECTOR,0.0,PRIM_TEXTURE,5,"5748decc-f629-461c-9a36-a35a221fe21f",<1.0,1.0,0.0>,ZERO_VECTOR,0.0,PRIM_TEXTURE,0,llGetInventoryName(INVENTORY_TEXTURE, next),<1.0,1.0,0.0>,ZERO_VECTOR,0.0]);
//So yes, sure the frame is pretty ugly, but you can always
//link your image swapping prim to a much nicer frame later
//on, right?
}
timer()
{
next++;
if (next >= photos) next = 0;
llSetTexture(llGetInventoryName(INVENTORY_TEXTURE, next), 0);
}
//Q: Roz, what if I'd like to just display an image without it
// changing every 20 seconds or so?
//A: Touch the prim to stop the images from cycling, touch it
// again to restart the cycle.
touch_start(integer total_photos)
{
toggle = !toggle;
if (toggle == TRUE) llSetTimerEvent(0.0);
else llSetTimerEvent(change);
}
//Q: But Roz, what if I want to add more pictures to my frame
// later on?
//A: Here you go...
changed(integer change)
{
if (change & CHANGED_INVENTORY) photos = llGetInventoryNumber(INVENTORY_TEXTURE);
}
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎