RecursiveDialog

From Second Life Wiki
Revision as of 11:02, 6 November 2010 by Spoof Kelberry (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, 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

<lsl> //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);

} </lsl>

Examples

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

}

</lsl>