recursiveDialog

From Second Life Wiki
Revision as of 15: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
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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);
    }
}