Don't click here unless you want to be banned.

LSL Wiki : LibraryDanceBall

HomePage :: PageIndex :: RecentChanges :: RecentlyCommented :: UserSettings :: You are crawl338.us.archive.org
// Just add this script into a prim with up to 11 dances and touch the prim to start

string dances;
list dance_buttons;
integer chat_channel = -468;
integer dance_number;

stopAllDances()
{
    integer total_dances = llGetInventoryNumber(INVENTORY_ANIMATION);
    integer i = 0;
    while(i < total_dances)
    {
        llStopAnimation(llGetInventoryName(INVENTORY_ANIMATION, i++));
    }
}

default
{
    state_entry()
    {
        integer total_dances = llGetInventoryNumber(INVENTORY_ANIMATION);
        if(total_dances > 11) total_dances = 11;
        integer i = 0;
        while(i < total_dances)
        {
            dances = (dances = "") + dances + (string)(++i) + " " + llGetInventoryName(INVENTORY_ANIMATION, i) + "\n";
            dance_buttons = (dance_buttons = []) + dance_buttons + (string)i;
        }
        dance_buttons = (dance_buttons = []) + dance_buttons + "STOP";
        llListen(chat_channel, "", NULL_KEY, "");
    }

    touch_start(integer total_number)
    {
        llDialog(llDetectedKey(0), dances, dance_buttons, chat_channel);
    }
    
    listen(integer channel, string name, key id, string message)
    {
        if(message == "STOP")
            dance_number = -1;
        else
            dance_number = (integer)message - 1;
        llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION);
    }
    
    changed(integer change)
    {
        if(change & CHANGED_INVENTORY)
            llResetScript();
    }
    
    run_time_permissions(integer perms)
    {
        if(perms & PERMISSION_TRIGGER_ANIMATION)
        {
            stopAllDances();
            if(dance_number > -1)
            {
                llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION, dance_number));
            }
        }
    }
}
There is one comment on this page. [Display comments/form]