Difference between revisions of "RecursiveDialog"
Jump to navigation
Jump to search
(Created page with '{{LSL_Function |func=recursiveDialog |mode=user |p1_type=key|p1_name=agent|p1_desc=key of the agent |p2_type=string|p2_name=message|p2_desc=message to be displayed |p3_type=list|...') |
m (<lsl> tag to <source>) |
||
Line 8: | Line 8: | ||
|func_desc=Allows for a list longer than 12 elements to be displayed. | |func_desc=Allows for a list longer than 12 elements to be displayed. | ||
|func_footnote=The elements are reversed when put into the dialog. | |func_footnote=The elements are reversed when put into the dialog. | ||
|spec=< | |spec=<source lang="lsl2"> | ||
//Created by Spoof Kelberry | //Created by Spoof Kelberry | ||
recursiveDialog(key avatar, string message, list buttons, integer channel){ | recursiveDialog(key avatar, string message, list buttons, integer channel){ | ||
Line 17: | Line 17: | ||
} if(a) llDialog(avatar,message,llList2List(buttons,j,j+a),channel); | } if(a) llDialog(avatar,message,llList2List(buttons,j,j+a),channel); | ||
} | } | ||
</ | </source> | ||
|examples=< | |examples=<source lang="lsl2"> | ||
//Created by Spoof Kelberry | //Created by Spoof Kelberry | ||
recursiveDialog(key avatar, string message, list buttons, integer channel){ | recursiveDialog(key avatar, string message, list buttons, integer channel){ | ||
Line 35: | Line 35: | ||
} | } | ||
</ | </source> | ||
|helpers | |helpers | ||
|notes | |notes |
Latest revision as of 14:33, 22 January 2015
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
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);
}
}