Difference between revisions of "LlDialog"

From Second Life Wiki
Jump to navigation Jump to search
Line 14: Line 14:
! colspan="4" {{!}} Button Order
! colspan="4" {{!}} Button Order
{{!}}-
{{!}}-
{{!}}8  
{{!}}9  
{{!}}9  
{{!}}10
{{!}}10
{{!}}11
{{!}}11
{{!}}-
{{!}}-
{{!}}6
{{!}}7
{{!}}8  
{{!}}-
{{!}}3
{{!}}4
{{!}}4
{{!}}5
{{!}}5
{{!}}6
{{!}}7
{{!}}-
{{!}}-
{{!}}0
{{!}}0
{{!}}1
{{!}}1
{{!}}2
{{!}}2
{{!}}3
{{!}}}
{{!}}}
{{!}}
{{!}}

Revision as of 20:59, 30 March 2007

Summary

Function: llDialog( key avatar, string message, list buttons, integer chat_channel );

Shows a dialog box on the avatar screen with message and buttons.

• key avatar
• string message
• list buttons
• integer chat_channel

When a button is pressed, the avatar chats the button text on chat_channel.

Button Order
9   10 11
6 7 8  
3 4 5
0 1 2
Channel Constant Description
DEBUG_CHANNEL 0x7FFFFFFF Chat channel reserved for script debugging and error messages, broadcasts to all nearby users.
PUBLIC_CHANNEL 0x0 Chat channel that broadcasts to all nearby users. This channel is sometimes referred to as: open chat, local chat and public chat.

Caveats

  • This function causes the script to sleep for 1.0 seconds.
  • There is no way by script to kill a dialog box.
  • There is no way for the script to detect if the user clicked the small "ignore" button (no chat is generated as a result of pressing this button).
  • There is no way to distinguish the input from a dialog box and regular chat made by the same user.
    • It is important to expect that the response may not be one of the buttons.

message limits

  • If it exceeds 8 lines a scroll bar will appear.
  • message must be less than 512 bytes and not empty. Otherwise it will shout an error on DEBUG_CHANNEL.

buttons limits

  • If buttons is an empty list, it will default to as if it were ["OK"].
  • No more then 12 buttons can be requested and they must all be strings. Otherwise it will shout an error on DEBUG_CHANNEL.
  • Button text cannot be longer then 24 bytes per button. Otherwise it will shout an error on DEBUG_CHANNEL.
All Issues ~ Search JIRA for related Bugs

Examples

integer channel = 1000;
default
{
    state_entry()
    {
        llListen(channel,"", "","");
    }

    touch_start(integer total_number)
    {
        llDialog(llDetectedKey(0),"This is a test dialog.\n\nPlease choose one of the below options.",["Yes", "No", "0", "1"],channel);
    }
    
    listen(integer chan, string name, key id, string mes)
    {
        llSay(0,name + " (" + (string)llDetectedPos(0) + ") chose option " + mes);
    }
}

Deep Notes

Search JIRA for related Issues

Signature

function void llDialog( key avatar, string message, list buttons, integer chat_channel );