I've run into a weird scripting issue that I need a hand with.
My primary script generates a dialog menu. A button is selected and another menu is generated. Another button is selected and a llMessageLinked function is kicked off.
The sub-script picks up the link message and processes it, leading to a function being executed (do_colorselect in the code below). This function, parallel in design to the previous two llDialog menu's fails to execute, spitting out a "llDialog - must supply a message" error.
here is the code I'm using on the sub-script. When I move this to a stand-along script, it works just fine. Any idea what might be happening?
CODE
// Dialog Menu Values
integer MENU_HANDLE;
integer MENU_CHANNEL;
// function type: A text string to help us keep track of what functions we are processing
string currentfunction;
// Color List for the Color Change function
list colorlistdesc = [ "Red", "Green", "Blue", "Yellow", "Orange", "Purple", "Pink", "Cyan", "L.Grey", "D.Grey", "Black", "White" ];
list colorlist = [ "<1, 0, 0>", "<0, 1, 0>", "<0, 0, 1>", "<1, 1, 0>", "<1, 0, 1>", "<0, 1, 1>", "<0.75, 0.75, 0.75>", "<0.5, 0.5, 0.5>", "<0, 0, 0>", "<1, 1, 1>" ];
// Color Selection Dialog
do_colorselect(key agent) {
// list buttons = colorlistdesc;
string title = "Select a Color from the List below:\n asdiuasdoiunadiundu";
MENU_CHANNEL = llFloor(llFrand(-99999.0 - 1));
MENU_HANDLE = llListen(MENU_CHANNEL,"",llDetectedKey(0) ,"");
llSay(DEBUG_CHANNEL, (string)llDumpList2String(colorlistdesc, " "));
llSay(DEBUG_CHANNEL, title);
llDialog(agent, title, colorlistdesc, MENU_CHANNEL);
// llDialog(agent, "hi", [ "button" ], 0);
llSetTimerEvent(10.0);
}
default
{
state_entry()
{
state standby;
}
// Restart the Jukebox on rez
on_rez (integer p) {
llResetScript();
}
// Restart the Jukebox when ownership has been handed off
changed (integer change) {
if (change && CHANGED_OWNER) {
llResetScript();
}
}
}
state standby {
// Restart the Jukebox whenever it is rez'd
on_rez (integer p) {
llResetScript();
}
// Restart the Jukebox when ownership has been handed off
changed (integer change) {
if (change & CHANGED_OWNER) {
llMessageLinked (LINK_SET, 50000, "", ""); // Call a Master Reset
}
}
//Kill the timer and close the menu handle
timer() {
llSetTimerEvent(0.0);
llListenRemove(MENU_HANDLE);
}
listen(integer channel, string name, key id, string message) {
if ( channel == MENU_CHANNEL ) { // Wrong Channel Filter
if ( currentfunction == "nowplayingcolor" ) {
integer userpick = llListFindList(colorlistdesc, (list)message);
string color = llList2String(colorlist, userpick);
llMessageLinked (LINK_SET, 1501, (string)color, "");
}
}
}
link_message(integer sender_num, integer number, string message, key messagealt) {
// Master Restart
if ( number == 50000 ) {
llResetScript() ;
}
// Color Change Request
if ( number == 1500 ) {
currentfunction = "nowplayingcolor";
do_colorselect(llDetectedKey(0));
}
}
}

Seagel Neville