AS Alpha Animation
Jump to navigation
Jump to search
<lsl> /*
Show one piece of a linkset at a time, in the order specified.
- /
// The names of the linkset pieces in the (looping) order you want them shown. list ORDER = [ "A", "B", "C" ]; // linkset ID numbers in order list frames; // current position in the frames list integer current_frame = 0;
list ListLinked(list Needles) {
integer Prims = llGetNumberOfPrims()+1; while(--Prims) { integer Ptr = llListFindList(Needles,[llGetLinkName(Prims)]); if(~Ptr) Needles = llListReplaceList(Needles,[Prims],Ptr,Ptr); } return Needles;
}
SetFrame( integer frame ) {
llSetLinkAlpha( LINK_SET, 0.0, ALL_SIDES); llSetLinkAlpha( frame, 1.0, ALL_SIDES);
}
default {
state_entry() { frames = ListLinked( ORDER ); llSetTimerEvent ( 1.0 ); } timer() { if (current_frame >= llGetListLength(frames)) current_frame = 0; SetFrame(llList2Integer(frames, current_frame)); ++current_frame; }
} </lsl>