llDialog

From Second Life Wiki
Revision as of 17:29, 27 July 2007 by Siann Beck (talk | contribs) (Copy editing)
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: 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 than 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 than 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 );