recursiveDialog

From Second Life Wiki
Revision as of 14:33, 22 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

Summary

Function: recursiveDialog( key agent, string message, list buttons, integer channel );

Allows for a list longer than 12 elements to be displayed.

• key agent key of the agent
• string message message to be displayed
• list buttons button labels
• integer channel channel the dialog's response will be handled on

The elements are reversed when put into the dialog.

Specification

//Created by Spoof Kelberry
recursiveDialog(key avatar, string message, list buttons, integer channel){ 
    integer a = llGetListLength(buttons)%12; integer i;
    integer c = llFloor(llGetListLength(buttons)/12)+1; integer q; integer j; 
    for(i = 0; i < c-1; i++){ list w; 
        w = llList2List(buttons,j,j+11); j += 12; llDialog(avatar,message,w,channel); 
    } if(a) llDialog(avatar,message,llList2List(buttons,j,j+a),channel);
}

Examples

//Created by Spoof Kelberry
recursiveDialog(key avatar, string message, list buttons, integer channel){ 
    integer a = llGetListLength(buttons)%12; integer i;
    integer c = llFloor(llGetListLength(buttons)/12)+1; integer q; integer j; 
    for(i = 0; i < c-1; i++){ list w; 
        w = llList2List(buttons,j,j+11); j += 12; llDialog(avatar,message,w,channel); 
    } if(a) llDialog(avatar,message,llList2List(buttons,j,j+a),channel);
}
default
{
    state_entry()
    {
        recursiveDialog(llGetOwner(),"Hello!",["This","list","is","greater","than","12","elements","but","it","will","create","another","dialog."],-1);
    }
}