User:Kephra Nurmi/lsDisplay

From Second Life Wiki
< User:Kephra Nurmi
Revision as of 23:45, 24 January 2015 by ObviousAltIsObvious Resident (talk | contribs) (<lsl> tag to <source>)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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