llDialog

From Second Life Wiki
Revision as of 15:58, 8 March 2007 by Kelly Linden (talk | contribs)
Jump to navigation Jump to search

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
8   9   10 11
4 5 6 7
0 1 2 3
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 );