User:Kephra Nurmi/lsDisplay
< User:Kephra Nurmi
Jump to navigation
Jump to search
Revision as of 22:45, 24 January 2015 by ObviousAltIsObvious Resident (talk | contribs) (<lsl> tag to <source>)
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
The simple lsDisplay is a random picture cycler with a preloader on the inside of the prim. Just drop the script into a prim, resize X, and drop your pictures into the prims content.
Script .lsDisplay simple 10321
// .lsDisplay simple 10321 (c) Kephra Nurmi 2007
// published under Creative Commons Attribution-Share Alike 3.0 License
string name = "";
integer pos = 0;
integer random = FALSE;
tick() {
if (name != "") {
llSetTexture(name, 1);
llSetTexture(name, 3);
}
integer choice;
integer number = llGetInventoryNumber(INVENTORY_TEXTURE);
if (!number) return;
if (random) {
choice = (integer)llFrand(number);
} else {
choice = pos;
pos++;
if (pos >= number) pos = 0;
}
name = llGetInventoryName(INVENTORY_TEXTURE, choice);
if (name != "") llSetTexture(name, 5);
}
reshape() {
vector size = llGetScale();
llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_BOX, PRIM_HOLE_SQUARE, <0.0, 1.0, 0.0>, 0.95, <0.0, 0.0, 0.0>, <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>]);
llSetScale(<size.x, 0.01, size.x*2/3>);
llSetTexture(TEXTURE_BLANK, ALL_SIDES);
}
default {
state_entry() {
reshape();
llSetText("", <0,1,0>,1);
tick();
tick();
llSetTimerEvent(60.0);
}
timer() {
tick();
}
touch_start(integer n) {
tick();
}
changed(integer change) {
if (change & CHANGED_SCALE) reshape();
if (change & CHANGED_INVENTORY) tick();
}
}
Ready to use lsDisplay Poster Cycler
You can pick a ready to use lsDisplay Poster Cycler in my home at [Apoda].