// StarWolffs MultiMenu w-AutoPop SubMenus // Script by StarWolff2000 // THIS: // (llListFindList(Menu_ADM_AUTH_Users,[Obj_Toucher_Key])) // SHOULD CHANGE TO: // (llListFindList(Menu_ADM_AUTH_Users,[Obj_Toucher_Key]) >= 0) // ALL Locations // Obj_Toucher_Group is NOT currently working correctly - I need to use "get currently active group~v1" to get the Group UUID & then send it via a message to this script // in GET_CAT_LinkNumbers(), // this needs to be changed: if(llGetSubString(PrimName,0,3) == "CAT1") // Instead, it should compare it to the name defined in the notecard // in Menu_State, state_entry, THIS: llDetectedGroup(0) - may be used incorrectly - it says it returns TRUE or FALSE // ---- I THINK THE PROBLEM is Item_INV_Marker //is not set-correctly / used-correctly // --- I DON'T NEED SEPARATE menu_channel and options_channel - merge them into just 'channel' //2ADD: at the very start, it should scan all Item_Names, and report any that are over-length (over 24 char's) (textures & notecards & objects, NOT scripts // Some Inventory-reading & Autopopulating menu scripting by Fred McCellan // Additional Credit to: // Dr. Harleen けム尺し乇Ɣ Quinzel // River (riverborn Resident) // Thales Militus // Just put any Items you want to use in the prim. // From the Source script: // v1.2 // Added logging function (set logging_on to TRUE to turn logging on) // Added timer to remove listens when menu gets "abandoned" // Put user settable parameters at the top. // USER SETTABLE PARAMETERS float MENU_TIMEOUT = 25; // Time in seconds before menu times out & listener is removed // === Scripting Settings: === // // [DO NOT EDIT unless you know what you're doing] // Obj_ID = Object ID code/Object Identifier string Obj_ID = "00"; // Obj_Ch = Object Channel integer Obj_Ch = 420; integer Menu_Chan = 421; string Scr_ReadNC = "00~StarWolffs MultiMenu+~ReadNC~vC2"; string NC_Selected = "00~StarWolffs MultiMenu+~CFG"; // === DEBUG MODE === // integer Scr_State = 0; //0=Init(Start), 10=Init(End), 20=Run, 90=Init[DEBUG](Start), 91=Init[DEBUG](End), 92=Run[DEBUG](Run), 99=DEBUG_Mode <-99 to go into DEBUG mode // === StarWolffs Stuff === // // * You may NOT edit this // * The button calling this info MUST appear in your final menu // * The related button code below MUST remain in your final menu // Obj_Pn = Object Product Name string Obj_Pn = "StarWolffs MultiMenu w-AutoPop SubMenus"; // Obj_Pb = Object Product by/Author string Obj_Pb = "\nby secondlife:///app/agent/b3c21e55-a326-455e-b302-ffeeb95e4027/about"; // Obj_Vs = Object Version string Obj_Vs = "vC1.9"; // Scr_Vs = Script Version // Scr_Vs = "vC1.9"; string Menu_IA_SWSF_Capt = "StarWolffs SatisFactory I make stuff! * Prim-Tosser * Script-Fiddler * Texture-Paster Store (MP): https://marketplace.secondlife.com/stores/--- Store (SL): http://maps.secondlife.com/secondlife/Solaris%20Station/124/128/2601 Group : secondlife:///app/group/cfd3280b-01f9-70c1-21fa-d65f66f4d465/about"; integer Menu_SWSF_EGG = 0; // Brand INFO // READ THESE FROM NOTECARD: list Menu_IA_BrandxProduct_INFO; string Menu_IA_Brand_Name = "StarWolffs SatisFactory"; // <---TEMPORARY VALUES, REPLACED by data in CFG string Menu_IA_Brand_By = "StarWolff2000"; // <---TEMPORARY VALUES, REPLACED by data in CFG string Menu_IA_Brand_Capt = "StarWolffs SatisFactory !"; // <---TEMPORARY VALUES, REPLACED by data in CFG // Product INFO string Menu_IA_Product_Name = "StarWolffs MultiMenu+"; // <---TEMPORARY VALUES, REPLACED by data in CFG string Menu_IA_Product_Vers = "v2.0"; // <---TEMPORARY VALUES, REPLACED by data in CFG string Menu_IA_Product_Capt = "by StarWolff2000 & StarWolffs SatisFactory"; // <---TEMPORARY VALUES, REPLACED by data in CFG // === Menu parameters === string Menu_Capt; list Menu_Butt; // -if- Menu_SUB_ID = 0 ----- integer menu_channel; // THIS IS OBSELETE & NEEDS to be WEEDED OUT integer options_channel; // THIS IS OBSELETE & NEEDS to be WEEDED OUT integer menu_handler; // THIS IS OBSELETE & NEEDS to be WEEDED OUT integer options_handler; // THIS IS OBSELETE & NEEDS to be WEEDED OUT integer Menu_00_AUTH_Level = 0; string Menu_00_Capt = "\nMain Menu - Select a Category: "; list Menu_00a = ["INFO/About","Admin","Close Menu"]; list Menu_00b = ["INFO/About","Main Menu","Close Menu"]; list Menu_00_NAV = ["Modes","● Themes","undefined"]; list Menu_00_MenuName_List = ["Main Menu","Admin Menu","Categories Menu","Themes Menu","Modes Menu","INFO/About Menu"]; list Menu_ADM_AUTH_Users = []; // Owner,User1,User2,User3,User4,User5,User6,Group string Menu_ADM_AUTH_ERR_Capt1 = "\n\nYou are not Authorized to use the:\n"; string Menu_ADM_AUTH_ERR_Capt2 = "\n\Contact the owner:\n"; // integer Menu_CAT_IDX = 0; list Menu_CAT_AUTH_Levels = []; // [default] // auth levels for each 'CAT#' list Menu_CAT_Object_Names_Prefix = ["CAT1","CAT2","CAT3","CAT4","CAT5","CAT6"]; // [default] // prim names for each 'CAT#' list Menu_CAT_Object_PrimLinks = ["0","0","0","0","0","0"]; // prim link numbers for each PrimName 'CAT#' list Menu_CAT_Button_Labels = ["CAT1","CAT2","CAT3","CAT4","CAT5","CAT6"]; // [default] // button names for each PrimName 'CAT#' list Menu_CAT_Button_Labels_456123 = ["CAT4","CAT5","CAT6","CAT1","CAT2","CAT3"]; // [default] // button names for each PrimName 'CAT#' in Menu order list Menu_CAT_Action_Types = []; // Action types for each 'CAT#' list Menu_CAT_Action_Faces = []; // Action faces for each 'CAT#' list Menu_CAT_Action_Coords = []; // [default] // Action coords for each 'CAT#' integer Menu_SUB_ID = 0; // -if- Menu_SUB_ID = 1-6 (= >0, or anything other than 0 ) ----- string Menu_SUB_Capt = " Menu - Select an Item: "; //list Menu_SUB_NAV = ["INFO/About","Main Menu","Finished","<===","● Themes","===>"]; list Menu_SUB_NAV = ["<===","● Themes","===>"]; integer Menu_SUB_THM_AUTH_Level = 0; //string Menu_SUB_THM_Capt = "\nThemes Menu - Select a Theme:\nA Theme will change everything"; //list Menu_SUB_THM_Butt = ["Theme 7","Theme 8","Theme 9","Theme 4","Theme 5","Theme 6","Theme 1","Theme 2","Theme 3"]; //list Menu_SUB_THM_Descs = ["Theme 1","Theme 2","Theme 3","Theme 4","Theme 5","Theme 6","Theme 7","Theme 8","Theme 9"]; ////////Menu_SUB_THM_Modes - NOT YET IMPLEMENTED - change shapes according to chosen Theme //list Menu_SUB_THM_Modes = []; // Modes for each Theme //list Menu_SUB_THM1_Objects = []; // Modes for each Theme //list Menu_SUB_THM2_Objects = []; // Modes for each Theme //list Menu_SUB_THM3_Objects = []; // Modes for each Theme //list Menu_SUB_THM4_Objects = []; // Modes for each Theme //list Menu_SUB_THM5_Objects = []; // Modes for each Theme //list Menu_SUB_THM6_Objects = []; // Modes for each Theme //list Menu_SUB_THM7_Objects = []; // Modes for each Theme //list Menu_SUB_THM8_Objects = []; // Modes for each Theme //list Menu_SUB_THM9_Objects = []; // Modes for each Theme ////list Menu_SUB_THM_Desc = []; // NOTE: THIS IS TEMPORARILY dummy-defined in the Init routine - the Init routine should read it from the NC instead ////string Menu_SUB_THM_Themes; //obselete - replaced by THM_Descs integer Menu_SUB_ADM_AUTH_Level = 1; // set default to 1-Owner-Only string Menu_SUB_ADM_Capt = "\nAdmin Options Menu - Select an Item: "; list Menu_SUB_ADM_Butt = ["Public","undefined 1","undefined 2","Owner","Group","List (NC)"]; list Menu_SUB_ADM_List = ["Owner","Group","List (NC)","Public","undefined 1","undefined 2"]; // AUTH_Levels: 0=Public 1=Owner-Only 2=Owner+Group 3=Owner+List string Menu_SUB_ADM_Choices = "\nOwner: Owner-Only\nGroup: Group Access Only\nList (NC): Assigned List (in CFG Notecard)\nPublic: Public access (to all but Admin menu)\nundefined 1: [Feature not yet available]\nundefined 2: [Feature not yet available]"; integer Menu_SUB_MODE_AUTH_Level = 0; //string Menu_SUB_MODE_Capt = "\nMode Options Menu - Select a Mode: "; //list Menu_SUB_MODE_Butt = ["Mode 7","Mode 8","Mode 9","Mode 4","Mode 5","Mode 6","Mode 1","Mode 2","Mode 3"]; //list Menu_SUB_MODE_Descs = ["Mode 1","Mode 2","Mode 3","Mode 4","Mode 5","Mode 6","Mode 7","Mode 8","Mode 9"]; // NOTE: THIS IS TEMPORARILY dummy-defined in the Init routine - the Init routine should read it from the NC instead //list Menu_SUB_MODE_Object_Names = []; // names for each Mode //list Menu_SUB_MODE_Object_Acts = []; // actions for each Mode string Menu_SUB_IA_Capt = "\nINFO/About Menu:\n"; list Menu_CAT1_List = []; integer Menu_CAT1_Total = 0; //integer Menu_CAT1_IDX = 0; list Menu_CAT2_List = []; integer Menu_CAT2_Total = 0; //integer Menu_CAT2_IDX = 0; list Menu_CAT3_List = []; integer Menu_CAT3_Total = 0; //integer Menu_CAT3_IDX = 0; list Menu_CAT4_List = []; integer Menu_CAT4_Total = 0; //integer Menu_CAT4_IDX = 0; list Menu_CAT5_List = []; integer Menu_CAT5_Total = 0; //integer Menu_CAT5_IDX = 0; list Menu_CAT6_List = []; integer Menu_CAT6_Total = 0; //integer Menu_CAT6_IDX = 0; list Menu_CAT_SUB_Set = []; // TEMP VARIABLES list Menu_CAT_SUB_TEMP = []; // CAT Sub list set of 6(or 9 if <9 total) [TEMPorary] integer Menu_CAT_SUB_Total = 0; // CAT Sub list total of 6(or 9 if <9 total) [TEMPorary] list Menu_CAT_States = [1,1,1,1,1,1]; // Rezz-DeRezz & Show-Hide state for each PrimName 'CAT#' //Misc parameters string Obj_OwnerToucher_NKG; // Owner's Key & Toucher's Name|Key|Group string Obj_Owner_Key; // Owner's Avatar UUID string Obj_Toucher_Name; // Toucher's Avatar Name string Obj_Toucher_Key; // Toucher's Avatar UUID string Obj_Toucher_Group; // Toucher's currently-active group //integer Obj_Toucher_Group; // Toucher's currently-active group [use to determine if the Toucher's currently-active group is the same as the Object's group] integer Item_Pointer = 0; integer Item_Counter = 0; integer Item_IDX = 0; integer Scr_Mem_Usage_Current; string SELECTED_item; // TEMP variable to reference 'any'/'whatever' currently-selected item integer SELECTED_link; // TEMP variable to reference 'any'/'whatever' currently-selected link number integer SELECTED_face; // TEMP variable to reference 'any'/'whatever' currently-selected prim face integer SELECTED_status; // TEMP variable to reference 'any'/'whatever' currently-selected prim face //string TESTER = "THIS IS A TEST"; //TEST_1() //{ // TESTER = "THIS IS A TEST"; // llSay(0,TESTER); // return; //} remove_listens() { llSetTimerEvent(0.0); llListenRemove(menu_handler); llListenRemove(options_handler); } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // used for processing incoming commands from other scripts //SendingPrimLinkNum is the LINK NUMBER of the prim that sent the message //Scr_CMD_ID is used for sending an ID code to identify each message //Str_ID_VarName_str is used for sending the Variable Name of the data value in Message //GET_Incoming_DATA(integer SendingPrimLinkNum, integer Scr_CMD_ID, string message, key Str_ID_VarName_str) GET_Incoming_CMDs(integer Scr_CMD_ID, string message, key Str_ID_VarName_str) { if((Scr_CMD_ID == 100) || (Str_ID_VarName_str == "dummy_stand-in_message")) { list dummylist = llParseString2List(message, ["|"], []); // Parse the string back to a list llSay(0,">>>>> MESSAGE RECEIVED!!! <<<<"); } // return; } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // Get the Data from the notecard //SendingPrimLinkNum is the LINK NUMBER of the prim that sent the message //Scr_CMD_ID is used for sending an ID code to identify each message //Str_ID_VarName_str is used for sending the Variable Name of the data value in Message //GET_Incoming_DATA(integer SendingPrimLinkNum, integer Scr_CMD_ID, string message, key Str_ID_VarName_str) GET_Incoming_DATA(integer Scr_CMD_ID, string message, key Str_ID_VarName_str) { // integer SendingPrimLinkNum; // TEST // integer Scr_CMD_ID; // string Str_ID_VarName_str; //SendingPrimLinkNum is the LINK NUMBER of the prim that sent the message //Scr_CMD_ID is used for sending an ID code to identify each message //Str_ID_VarName_str is used for sending the Variable Name of the data value in Message // Sort, Parse, & Relist all incoming data // if((Scr_CMD_ID == 950) || (message == "ERR: Missing Notecard") || (Str_ID_VarName_str == "ERR: Missing Notecard")) if((message == "ERR: Missing Notecard") || (Str_ID_VarName_str == "ERR: Missing Notecard")) { llOwnerSay("\n"); llOwnerSay("! Missing Configuration Notecard: " + NC_Selected); } // if((Scr_CMD_ID == 12) || (message == "BEG: Start Of Data") || (Str_ID_VarName_str == "SOD")) if((message == "BEG: Start Of Data") || (Str_ID_VarName_str == "SOD")) { // llOwnerSay("\n"); llOwnerSay("> Receiving Data... [Main Script]"); Scr_State = (Scr_State + 1); } // if((Scr_CMD_ID == 999) || (message == "END: End Of Data") || (Str_ID_VarName_str == "EOD")) if((message == "END: End Of Data") || (Str_ID_VarName_str == "EOD")) { // if(Scr_State < 10) // { Scr_State = 10; } // if(Scr_State >= 90) // { Scr_State = (Scr_State + 1); } Scr_State = (Scr_State + 1); Init_Data(); } // else if(Scr_CMD_ID >= 100) else {//else if((Str_ID_VarName_str == "Menu_IA_BrandxProduct_INFO") || (Scr_CMD_ID == 100)) { Menu_IA_BrandxProduct_INFO = llParseString2List(message, ["|"], []); // Parse the string back to a list Menu_IA_Brand_Name = llList2String(Menu_IA_BrandxProduct_INFO,0); Menu_IA_Brand_By = llList2String(Menu_IA_BrandxProduct_INFO,1); Menu_IA_Brand_Capt = llList2String(Menu_IA_BrandxProduct_INFO,2); Menu_IA_Product_Name = llList2String(Menu_IA_BrandxProduct_INFO,3); Menu_IA_Product_Capt = llList2String(Menu_IA_BrandxProduct_INFO,4); } if((Str_ID_VarName_str == "Menu_SUB_ADM_AUTH_Level") || (Scr_CMD_ID == 111)) { Menu_SUB_ADM_AUTH_Level = (integer)message; // Parse the string back to a integer } if((Str_ID_VarName_str == "Menu_ADM_AUTH_Users") || (Scr_CMD_ID == 112)) { Menu_ADM_AUTH_Users = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_CAT_AUTH_Levels") || (Scr_CMD_ID == 121)) { Menu_CAT_AUTH_Levels = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_CAT_Object_Names_Prefix") || (Scr_CMD_ID == 122)) { Menu_CAT_Object_Names_Prefix = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_CAT_Object_PrimLinks") || (Scr_CMD_ID == 123)) { Menu_CAT_Object_PrimLinks = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_CAT_Button_Labels") || (Scr_CMD_ID == 124)) { Menu_CAT_Button_Labels = llParseString2List(message, ["|"], []); // Parse the string back to a list Menu_CAT_Button_Labels_456123 = [llList2String(Menu_CAT_Button_Labels,3),llList2String(Menu_CAT_Button_Labels,4),llList2String(Menu_CAT_Button_Labels,5),llList2String(Menu_CAT_Button_Labels,0),llList2String(Menu_CAT_Button_Labels,1),llList2String(Menu_CAT_Button_Labels,2)]; } if((Str_ID_VarName_str == "Menu_CAT_Action_Types") || (Scr_CMD_ID == 125)) { Menu_CAT_Action_Types = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_CAT_Action_Faces") || (Scr_CMD_ID == 126)) { Menu_CAT_Action_Faces = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_CAT_Action_Coords") || (Scr_CMD_ID == 127)) { Menu_CAT_Action_Coords = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_SUB_THM_AUTH_Level") || (Scr_CMD_ID == 131)) { Menu_SUB_THM_AUTH_Level = (integer)message; // Parse the string back to a integer } // if((Str_ID_VarName_str == "Menu_SUB_THM_Descs") || (Scr_CMD_ID == 132)) // { // Menu_SUB_THM_Descs = llParseString2List(message, ["|"], []); // Parse the string back to a list // } // if((Str_ID_VarName_str == "Menu_SUB_THM_Modes") || (Scr_CMD_ID == 133)) // { // Menu_SUB_THM_Modes = llParseString2List(message, ["|"], []); // Parse the string back to a list // } // if((Str_ID_VarName_str == "Menu_SUB_THM1_Objects") || (Scr_CMD_ID == 141)) // { // Menu_SUB_THM1_Objects = llParseString2List(message, ["|"], []); // Parse the string back to a list // } // if((Str_ID_VarName_str == "Menu_SUB_THM2_Objects") || (Scr_CMD_ID == 142)) // { // Menu_SUB_THM2_Objects = llParseString2List(message, ["|"], []); // Parse the string back to a list // } // if((Str_ID_VarName_str == "Menu_SUB_THM3_Objects") || (Scr_CMD_ID == 143)) // { // Menu_SUB_THM3_Objects = llParseString2List(message, ["|"], []); // Parse the string back to a list // } // if((Str_ID_VarName_str == "Menu_SUB_THM4_Objects") || (Scr_CMD_ID == 144)) // { // Menu_SUB_THM4_Objects = llParseString2List(message, ["|"], []); // Parse the string back to a list // } // if((Str_ID_VarName_str == "Menu_SUB_THM5_Objects") || (Scr_CMD_ID == 145)) // { // Menu_SUB_THM5_Objects = llParseString2List(message, ["|"], []); // Parse the string back to a list // } // if((Str_ID_VarName_str == "Menu_SUB_THM6_Objects") || (Scr_CMD_ID == 146)) // { // Menu_SUB_THM6_Objects = llParseString2List(message, ["|"], []); // Parse the string back to a list // } // if((Str_ID_VarName_str == "Menu_SUB_THM7_Objects") || (Scr_CMD_ID == 147)) // { // Menu_SUB_THM7_Objects = llParseString2List(message, ["|"], []); // Parse the string back to a list // } // if((Str_ID_VarName_str == "Menu_SUB_THM8_Objects") || (Scr_CMD_ID == 148)) // { // Menu_SUB_THM8_Objects = llParseString2List(message, ["|"], []); // Parse the string back to a list // } // if((Str_ID_VarName_str == "Menu_SUB_THM9_Objects") || (Scr_CMD_ID == 149)) // { // Menu_SUB_THM9_Objects = llParseString2List(message, ["|"], []); // Parse the string back to a list // } if((Str_ID_VarName_str == "Menu_SUB_MODE_AUTH_Level") || (Scr_CMD_ID == 151)) { Menu_SUB_MODE_AUTH_Level = (integer)message; // Parse the string back to a integer } // if((Str_ID_VarName_str == "Menu_SUB_MODE_Descs") || (Scr_CMD_ID == 152)) // { // Menu_SUB_MODE_Descs = llParseString2List(message, ["|"], []); // Parse the string back to a list // } // if((Str_ID_VarName_str == "Menu_SUB_MODE_Object_Names") || (Scr_CMD_ID == 153)) // { // Menu_SUB_MODE_Object_Names = llParseString2List(message, ["|"], []); // Parse the string back to a list // } // if((Str_ID_VarName_str == "Menu_SUB_MODE_Object_Acts") || (Scr_CMD_ID == 154)) // { // Menu_SUB_MODE_Object_Acts = llParseString2List(message, ["|"], []); // Parse the string back to a list // } if((Str_ID_VarName_str == "Menu_CAT1_List") || (Scr_CMD_ID == 161)) { Menu_CAT1_List = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_CAT1_Total") || (Scr_CMD_ID == 162)) { Menu_CAT1_Total = (integer)message; } if((Str_ID_VarName_str == "Menu_CAT2_List") || (Scr_CMD_ID == 163)) { Menu_CAT2_List = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_CAT2_Total") || (Scr_CMD_ID == 164)) { Menu_CAT2_Total = (integer)message; } if((Str_ID_VarName_str == "Menu_CAT3_List") || (Scr_CMD_ID == 165)) { Menu_CAT3_List = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_CAT3_Total") || (Scr_CMD_ID == 166)) { Menu_CAT3_Total = (integer)message; } if((Str_ID_VarName_str == "Menu_CAT4_List") || (Scr_CMD_ID == 167)) { Menu_CAT4_List = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_CAT4_Total") || (Scr_CMD_ID == 168)) { Menu_CAT4_Total = (integer)message; } if((Str_ID_VarName_str == "Menu_CAT5_List") || (Scr_CMD_ID == 169)) { Menu_CAT5_List = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_CAT5_Total") || (Scr_CMD_ID == 170)) { Menu_CAT5_Total = (integer)message; } if((Str_ID_VarName_str == "Menu_CAT6_List") || (Scr_CMD_ID == 171)) { Menu_CAT6_List = llParseString2List(message, ["|"], []); // Parse the string back to a list } if((Str_ID_VarName_str == "Menu_CAT6_Total") || (Scr_CMD_ID == 172)) { Menu_CAT6_Total = (integer)message; } }//else } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //Scr_State = 0=Init(Start), 10=Init(End), 20=Run, 90=Init[DEBUG](Start), 91=Init[DEBUG](End), 92=Run[DEBUG](Run), 99=DEBUG_Mode <-99 to go into DEBUG mode Init_Data() { // llSay(0,"Scr_State: " + (string)Scr_State); // llOwnerSay("Check complete; Initialized & Ready!"); // GET_CAT_LinkNumbers(); // GET the LinkNumbers for all the CAT prims // GET_CAT_LinkNumbers(); // Scr_State = (Scr_State + 1); // GET the Items in Contents // GET_Menu_CAT_Lists(); // Scr_State = (Scr_State + 1); //---OK, we're all done, so if((Scr_State <= 10) || (Scr_State >= 90)) // if we're done with all 3 data-gathering steps { if(Scr_State <= 10) { Scr_State = 10; } llOwnerSay("Check complete; Initialized & Ready!"); state Menu_State; // llSetScriptState(Scr_ReadNC,FALSE); // Turn off the Notecard-reading script defined in Scr_ReadNC } } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // UNCOMMENT '//MOVED TO OTHER SCRIPT// ' to reactivate //MOVED TO OTHER SCRIPT// // CALL in: on_rez() -&- changed() //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //MOVED TO OTHER SCRIPT// GET_CAT_LinkNumbers() //GET_CAT_LinkNumbers_according_to_its_CAT_Name //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// //DEBUG//llSay(0,"CAT# linknumbers:"); //MOVED TO OTHER SCRIPT// integer PrimCheck; //MOVED TO OTHER SCRIPT// string PrimName; //MOVED TO OTHER SCRIPT// llOwnerSay("> Getting Prim Linknumbers..."); //MOVED TO OTHER SCRIPT// for(PrimCheck = 1; PrimCheck <= llGetNumberOfPrims(); PrimCheck++) //MOVED TO OTHER SCRIPT// {//for1 //MOVED TO OTHER SCRIPT// PrimName = llGetLinkName(PrimCheck); //MOVED TO OTHER SCRIPT// // if(llGetLinkName(PrimCheck) == "CAT1") //MOVED TO OTHER SCRIPT// // if the first 3 characters of PrimName matches the first 3 characters of Menu_CAT_Object_Names_Prefix at position 0 (1st CAT item)... //MOVED TO OTHER SCRIPT// if (llGetSubString(PrimName,0,3) == ((string)llGetSubString(llList2String(Menu_CAT_Object_Names_Prefix,0),0,3))) // in Menu_CAT_Object_Names_Prefix, 0(1st) item, first 3 chars //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// Menu_CAT_Object_PrimLinks = llListReplaceList(Menu_CAT_Object_PrimLinks,[(string)PrimCheck],0,0); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// // if(llGetLinkName(PrimCheck) == "CAT2") //MOVED TO OTHER SCRIPT// // if the first 3 characters of PrimName matches the first 3 characters of Menu_CAT_Object_Names_Prefix at position 1 (2nd CAT item)... //MOVED TO OTHER SCRIPT// if (llGetSubString(PrimName,0,3) == ((string)llGetSubString(llList2String(Menu_CAT_Object_Names_Prefix,1),0,3))) // in Menu_CAT_Object_Names_Prefix, 1(2nd) item, first 3 chars //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// Menu_CAT_Object_PrimLinks = llListReplaceList(Menu_CAT_Object_PrimLinks,[(string)PrimCheck],1,1); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// // if(llGetLinkName(PrimCheck) == "CAT3") //MOVED TO OTHER SCRIPT// // if the first 3 characters of PrimName matches the first 3 characters of Menu_CAT_Object_Names_Prefix at position 2 (3rd CAT item)... //MOVED TO OTHER SCRIPT// if (llGetSubString(PrimName,0,3) == ((string)llGetSubString(llList2String(Menu_CAT_Object_Names_Prefix,2),0,3))) // in Menu_CAT_Object_Names_Prefix, 2(3rd) item, first 3 chars //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// Menu_CAT_Object_PrimLinks = llListReplaceList(Menu_CAT_Object_PrimLinks,[PrimCheck],2,2); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// // if(llGetLinkName(PrimCheck) == "CAT4") //MOVED TO OTHER SCRIPT// // if the first 3 characters of PrimName matches the first 3 characters of Menu_CAT_Object_Names_Prefix at position 3 (4th CAT item)... //MOVED TO OTHER SCRIPT// if (llGetSubString(PrimName,0,3) == ((string)llGetSubString(llList2String(Menu_CAT_Object_Names_Prefix,3),0,3))) // in Menu_CAT_Object_Names_Prefix, 3(4th) item, first 3 chars //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// Menu_CAT_Object_PrimLinks = llListReplaceList(Menu_CAT_Object_PrimLinks,[PrimCheck],3,3); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// // if(llGetLinkName(PrimCheck) == "CAT5") //MOVED TO OTHER SCRIPT// // if the first 3 characters of PrimName matches the first 3 characters of Menu_CAT_Object_Names_Prefix at position 4 (5th CAT item)... //MOVED TO OTHER SCRIPT// if (llGetSubString(PrimName,0,3) == ((string)llGetSubString(llList2String(Menu_CAT_Object_Names_Prefix,4),0,3))) // in Menu_CAT_Object_Names_Prefix, 4(5th) item, first 3 chars //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// Menu_CAT_Object_PrimLinks = llListReplaceList(Menu_CAT_Object_PrimLinks,[PrimCheck],4,4); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// // if(llGetLinkName(PrimCheck) == "CAT6") //MOVED TO OTHER SCRIPT// // if the first 3 characters of PrimName matches the first 3 characters of Menu_CAT_Object_Names_Prefix at position 5 (6th CAT item)... //MOVED TO OTHER SCRIPT// if (llGetSubString(PrimName,0,3) == ((string)llGetSubString(llList2String(Menu_CAT_Object_Names_Prefix,5),0,3))) // in Menu_CAT_Object_Names_Prefix, 5(6th) item, first 3 chars //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// Menu_CAT_Object_PrimLinks = llListReplaceList(Menu_CAT_Object_PrimLinks,[PrimCheck],5,5); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// }//for1 //MOVED TO OTHER SCRIPT// //----- //MOVED TO OTHER SCRIPT// //if "0" is NOT found in the list (if they all have a value other than "0"... //MOVED TO OTHER SCRIPT// //if2 //MOVED TO OTHER SCRIPT// if(llListFindList(Menu_CAT_Object_PrimLinks,["0"]) == -1) //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// llOwnerSay("✔ Prim Linknumbers list: [Success]: " + (string)Menu_CAT_Object_PrimLinks); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// else //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// for(PrimCheck = 0; PrimCheck < 5; PrimCheck++) //MOVED TO OTHER SCRIPT// {//for2 //MOVED TO OTHER SCRIPT// //if, in the list Menu_CAT_Object_PrimLinks, is the value '0' is-at= position-in-the-list //MOVED TO OTHER SCRIPT// if(llListFindList(Menu_CAT_Object_PrimLinks,["0"]) == 0) //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// llOwnerSay("WARNING!: CAT1 prim not found"); //MOVED TO OTHER SCRIPT// llOwnerSay("The CAT1 prim name MUST start with '" + llList2String(Menu_CAT_Object_Names_Prefix,0) + "'"); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// if(llListFindList(Menu_CAT_Object_PrimLinks,["0"]) == 1) //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// llOwnerSay("WARNING!: CAT2 prim not found"); //MOVED TO OTHER SCRIPT// llOwnerSay("The CAT2 prim name MUST start with '" + llList2String(Menu_CAT_Object_Names_Prefix,1) + "'"); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// if(llListFindList(Menu_CAT_Object_PrimLinks,["0"]) == 2) //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// llOwnerSay("WARNING!: CAT3 prim not found"); //MOVED TO OTHER SCRIPT// llOwnerSay("The CAT3 prim name MUST start with '" + llList2String(Menu_CAT_Object_Names_Prefix,2) + "'"); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// if(llListFindList(Menu_CAT_Object_PrimLinks,["0"]) == 3) //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// llOwnerSay("WARNING!: CAT4 prim not found"); //MOVED TO OTHER SCRIPT// llOwnerSay("The CAT4 prim name MUST start with '" + llList2String(Menu_CAT_Object_Names_Prefix,3) + "'"); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// if(llListFindList(Menu_CAT_Object_PrimLinks,["0"]) == 4) //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// llOwnerSay("WARNING!: CAT5 prim not found"); //MOVED TO OTHER SCRIPT// llOwnerSay("The CAT5 prim name MUST start with '" + llList2String(Menu_CAT_Object_Names_Prefix,4) + "'"); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// if(llListFindList(Menu_CAT_Object_PrimLinks,["0"]) == 5) //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// llOwnerSay("WARNING!: CAT6 prim not found"); //MOVED TO OTHER SCRIPT// llOwnerSay("The CAT6 prim name MUST start with '" + llList2String(Menu_CAT_Object_Names_Prefix,5) + "'"); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// // else //MOVED TO OTHER SCRIPT// // { //MOVED TO OTHER SCRIPT// llOwnerSay("✖ Prim Linknumbers: [FAILED]: " + (string)Menu_CAT_Object_PrimLinks); //MOVED TO OTHER SCRIPT// llOwnerSay("- There should NOT be any '0'"); //MOVED TO OTHER SCRIPT// // } //MOVED TO OTHER SCRIPT// }//for2 //MOVED TO OTHER SCRIPT// }//if2 //MOVED TO OTHER SCRIPT// } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // UNCOMMENT '//MOVED TO OTHER SCRIPT// ' to reactivate //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //MOVED TO OTHER SCRIPT// GET_Menu_CAT_Lists() //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// integer Item_Total = llGetInventoryNumber(INVENTORY_TEXTURE); //MOVED TO OTHER SCRIPT// string Item_TEMP; //MOVED TO OTHER SCRIPT// // Menu_CAT1_Pointer = 0; //MOVED TO OTHER SCRIPT// Menu_CAT1_Total = 0; //MOVED TO OTHER SCRIPT// Menu_CAT1_List = []; //MOVED TO OTHER SCRIPT// // Menu_CAT2_Pointer = 0; //MOVED TO OTHER SCRIPT// Menu_CAT2_Total = 0; //MOVED TO OTHER SCRIPT// Menu_CAT2_List = []; //MOVED TO OTHER SCRIPT// // Menu_CAT3_Pointer = 0; //MOVED TO OTHER SCRIPT// Menu_CAT3_Total = 0; //MOVED TO OTHER SCRIPT// Menu_CAT3_List = []; //MOVED TO OTHER SCRIPT// // Menu_CAT4_Pointer = 0; //MOVED TO OTHER SCRIPT// Menu_CAT4_Total = 0; //MOVED TO OTHER SCRIPT// Menu_CAT4_List = []; //MOVED TO OTHER SCRIPT// // Menu_CAT5_Pointer = 0; //MOVED TO OTHER SCRIPT// Menu_CAT5_Total = 0; //MOVED TO OTHER SCRIPT// Menu_CAT5_List = []; //MOVED TO OTHER SCRIPT// // Menu_CAT6_Pointer = 0; //MOVED TO OTHER SCRIPT// Menu_CAT6_Total = 0; //MOVED TO OTHER SCRIPT// Menu_CAT6_List = []; //MOVED TO OTHER SCRIPT// llOwnerSay("> Getting list of CATegory items..."); //MOVED TO OTHER SCRIPT// for (Item_Pointer = 0; Item_Pointer < Item_Total; Item_Pointer++) //MOVED TO OTHER SCRIPT// {//for 1 //MOVED TO OTHER SCRIPT// Item_TEMP = llGetInventoryName(INVENTORY_TEXTURE,Item_Pointer); //MOVED TO OTHER SCRIPT// if ((string)llGetSubString(Item_TEMP,0,8) == "StarWolff") //MOVED TO OTHER SCRIPT// {//if 1 //MOVED TO OTHER SCRIPT// // if(Scr_State >= 90) //MOVED TO OTHER SCRIPT// // { //MOVED TO OTHER SCRIPT// // llOwnerSay("\n"); //MOVED TO OTHER SCRIPT// // llOwnerSay("Skipping:"); //MOVED TO OTHER SCRIPT// // llOwnerSay((string)Item_TEMP); //MOVED TO OTHER SCRIPT// // llOwnerSay("\n"); //MOVED TO OTHER SCRIPT// // } //MOVED TO OTHER SCRIPT// }//if 1 //MOVED TO OTHER SCRIPT// else if ((string)llGetSubString(Item_TEMP,0,3) == "SWSF") //MOVED TO OTHER SCRIPT// {//if 1 //MOVED TO OTHER SCRIPT// // if(Scr_State >= 90) //MOVED TO OTHER SCRIPT// // { //MOVED TO OTHER SCRIPT// // llOwnerSay("\n"); //MOVED TO OTHER SCRIPT// // llOwnerSay("Skipping:"); //MOVED TO OTHER SCRIPT// // llOwnerSay((string)Item_TEMP); //MOVED TO OTHER SCRIPT// // llOwnerSay("\n"); //MOVED TO OTHER SCRIPT// // } //MOVED TO OTHER SCRIPT// }//if 1 //MOVED TO OTHER SCRIPT// else if (llStringLength(Item_TEMP) > 24) //MOVED TO OTHER SCRIPT// {//if 1 //MOVED TO OTHER SCRIPT// llOwnerSay("\n"); //MOVED TO OTHER SCRIPT// llOwnerSay("WARNING: The Item Name:"); //MOVED TO OTHER SCRIPT// llOwnerSay(Item_TEMP); //MOVED TO OTHER SCRIPT// llOwnerSay("is too long. Item Names MUST be less than 24 characters. The Item will not be added."); //MOVED TO OTHER SCRIPT// llOwnerSay("\n"); //MOVED TO OTHER SCRIPT// }//if 1 //MOVED TO OTHER SCRIPT// else //MOVED TO OTHER SCRIPT// {//else 1 //MOVED TO OTHER SCRIPT// // if the first 3 characters of Item_TEMP matches the first 3 characters of Menu_CAT_Object_Names_Prefix at position 0 (1st CAT item)... //MOVED TO OTHER SCRIPT// if ((string)llGetSubString(Item_TEMP,0,3) == ((string)llGetSubString(llList2String(Menu_CAT_Object_Names_Prefix,0),0,3))) // in Menu_CAT_Object_Names_Prefix, 0(1st) item, first 3 chars //MOVED TO OTHER SCRIPT// {//if 1.1 //MOVED TO OTHER SCRIPT// //DEBUG//llOwnerSay("ADDED to: CAT1 (" + (string)Menu_CAT_Object_Names_Prefix(0) + ")"); //MOVED TO OTHER SCRIPT// Menu_CAT1_List += Item_TEMP; //MOVED TO OTHER SCRIPT// Menu_CAT1_Total = Menu_CAT1_Total + 1; //MOVED TO OTHER SCRIPT// }//if 1.1 //MOVED TO OTHER SCRIPT// // if the first 3 characters of Item_TEMP matches the first 3 characters of Menu_CAT_Object_Names_Prefix at position 1 (2nd CAT item)... //MOVED TO OTHER SCRIPT// else if ((string)llGetSubString(Item_TEMP,0,3) == ((string)llGetSubString(llList2String(Menu_CAT_Object_Names_Prefix,1),0,3))) // in Menu_CAT_Object_Names_Prefix, 1(2nd) item, first 3 chars //MOVED TO OTHER SCRIPT// {//if 1.2 //MOVED TO OTHER SCRIPT// //DEBUG//llOwnerSay("ADDED to: CAT2 (" + (string)Menu_CAT_Object_Names_Prefix(1) + ")"); //MOVED TO OTHER SCRIPT// Menu_CAT2_List += Item_TEMP; //MOVED TO OTHER SCRIPT// Menu_CAT2_Total = Menu_CAT2_Total + 1; //MOVED TO OTHER SCRIPT// }//if 1.2 //MOVED TO OTHER SCRIPT// // if the first 3 characters of Item_TEMP matches the first 3 characters of Menu_CAT_Object_Names_Prefix at position 2 (3rd CAT item)... //MOVED TO OTHER SCRIPT// else if ((string)llGetSubString(Item_TEMP,0,3) == ((string)llGetSubString(llList2String(Menu_CAT_Object_Names_Prefix,2),0,3))) // in Menu_CAT_Object_Names_Prefix, 2(3rd) item, first 3 chars //MOVED TO OTHER SCRIPT// {//if 1.3 //MOVED TO OTHER SCRIPT// //DEBUG//llOwnerSay("ADDED to: CAT3 (" + (string)Menu_CAT_Object_Names_Prefix(2) + ")"); //MOVED TO OTHER SCRIPT// Menu_CAT3_List += Item_TEMP; //MOVED TO OTHER SCRIPT// Menu_CAT3_Total = Menu_CAT3_Total + 1; //MOVED TO OTHER SCRIPT// }//if 1.3 //MOVED TO OTHER SCRIPT// // if the first 3 characters of Item_TEMP matches the first 3 characters of Menu_CAT_Object_Names_Prefix at position 3 (4th CAT item)... //MOVED TO OTHER SCRIPT// else if ((string)llGetSubString(Item_TEMP,0,3) == ((string)llGetSubString(llList2String(Menu_CAT_Object_Names_Prefix,3),0,3))) // in Menu_CAT_Object_Names_Prefix, 3(4th) item, first 3 chars //MOVED TO OTHER SCRIPT// {//if 1.4 //MOVED TO OTHER SCRIPT// //DEBUG//llOwnerSay("ADDED to: CAT4 (" + (string)Menu_CAT_Object_Names_Prefix(3) + ")"); //MOVED TO OTHER SCRIPT// Menu_CAT4_List += Item_TEMP; //MOVED TO OTHER SCRIPT// Menu_CAT4_Total = Menu_CAT4_Total + 1; //MOVED TO OTHER SCRIPT// }//if 1.4 //MOVED TO OTHER SCRIPT// // if the first 3 characters of Item_TEMP matches the first 3 characters of Menu_CAT_Object_Names_Prefix at position 4 (5th CAT item)... //MOVED TO OTHER SCRIPT// else if ((string)llGetSubString(Item_TEMP,0,3) == ((string)llGetSubString(llList2String(Menu_CAT_Object_Names_Prefix,4),0,3))) // in Menu_CAT_Object_Names_Prefix, 4(5th) item, first 3 chars //MOVED TO OTHER SCRIPT// {//if 1.5 //MOVED TO OTHER SCRIPT// //DEBUG//llOwnerSay("ADDED to: CAT5 (" + (string)Menu_CAT_Object_Names_Prefix(4) + ")"); //MOVED TO OTHER SCRIPT// Menu_CAT5_List += Item_TEMP; //MOVED TO OTHER SCRIPT// Menu_CAT5_Total = Menu_CAT5_Total + 1; //MOVED TO OTHER SCRIPT// }//if 1.5 //MOVED TO OTHER SCRIPT// // if the first 3 characters of Item_TEMP matches the first 3 characters of Menu_CAT_Object_Names_Prefix at position 5 (6th CAT item)... //MOVED TO OTHER SCRIPT// else if ((string)llGetSubString(Item_TEMP,0,3) == ((string)llGetSubString(llList2String(Menu_CAT_Object_Names_Prefix,5),0,3))) // in Menu_CAT_Object_Names_Prefix, 5(6th) item, first 3 chars //MOVED TO OTHER SCRIPT// {//if 1.6 //MOVED TO OTHER SCRIPT// //DEBUG//llOwnerSay("ADDED to: CAT6 (" + (string)Menu_CAT_Object_Names_Prefix(5) + ")"); //MOVED TO OTHER SCRIPT// Menu_CAT6_List += Item_TEMP; //MOVED TO OTHER SCRIPT// Menu_CAT6_Total = Menu_CAT6_Total + 1; //MOVED TO OTHER SCRIPT// }//if 1.6 //MOVED TO OTHER SCRIPT// else // if the Item_Name isn't in the list of Menu_CAT_Object_Names_Prefix... //MOVED TO OTHER SCRIPT// {//if 1.x //MOVED TO OTHER SCRIPT// llOwnerSay("\n"); //MOVED TO OTHER SCRIPT// llOwnerSay("WARNING: The Item Name:"); //MOVED TO OTHER SCRIPT// llOwnerSay(Item_TEMP); //MOVED TO OTHER SCRIPT// llOwnerSay("is undefined. Item Name's PREfix MUST be one of the defined Prefixes for the 6 Categories. The Item will not be added."); //MOVED TO OTHER SCRIPT// llOwnerSay("\n"); //MOVED TO OTHER SCRIPT// }//if 1.x //MOVED TO OTHER SCRIPT// }//else 1 //MOVED TO OTHER SCRIPT// }//for 1 //MOVED TO OTHER SCRIPT// if(Scr_State >= 90)//DEBUG// //MOVED TO OTHER SCRIPT// { //MOVED TO OTHER SCRIPT// //DEBUG// //llOwnerSay("\n"); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay("- Category Lists: "); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay("Menu_CAT1_List: " + llList2String(Menu_CAT_Object_Names_Prefix,0) + " = " + (string)Menu_CAT1_Total + " Items"); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay((string)Menu_CAT1_List); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay("Menu_CAT2_List: " + llList2String(Menu_CAT_Object_Names_Prefix,1) + " = " + (string)Menu_CAT2_Total + " Items"); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay((string)Menu_CAT2_List); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay("Menu_CAT3_List: " + llList2String(Menu_CAT_Object_Names_Prefix,2) + " = " + (string)Menu_CAT3_Total + " Items"); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay((string)Menu_CAT3_List); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay("Menu_CAT4_List: " + llList2String(Menu_CAT_Object_Names_Prefix,3) + " = " + (string)Menu_CAT4_Total + " Items"); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay((string)Menu_CAT4_List); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay("Menu_CAT5_List: " + llList2String(Menu_CAT_Object_Names_Prefix,4) + " = " + (string)Menu_CAT5_Total + " Items"); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay((string)Menu_CAT5_List); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay("Menu_CAT6_List: " + llList2String(Menu_CAT_Object_Names_Prefix,5) + " = " + (string)Menu_CAT6_Total + " Items"); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay((string)Menu_CAT6_List); //MOVED TO OTHER SCRIPT// //DEBUG// llOwnerSay("\n"); //MOVED TO OTHER SCRIPT// } //MOVED TO OTHER SCRIPT// Item_Pointer = 0; //MOVED TO OTHER SCRIPT// return; //MOVED TO OTHER SCRIPT// } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DO_Rezz() { } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DO_ShowHide() { // SELECTED_link; // TEMP variable to reference 'any'/'whatever' currently-selected link number // SELECTED_link; // TEMP variable to reference 'any'/'whatever' currently-selected item's state if((integer)llList2String(Menu_CAT_States,(Menu_CAT_IDX -1)) == 1) // if(llListFindList(Menu_CAT_States,["0"]) == (Menu_CAT_IDX -1)) { SELECTED_status = 0; Menu_CAT_States = llListReplaceList(Menu_CAT_States,[(integer)SELECTED_status],(Menu_CAT_IDX -1),(Menu_CAT_IDX -1)); // toggle the value in the list Menu_CAT_States, at pos (Menu_CAT_IDX -1) llSay(0,"\n"); llSay(0,"> Now Hiding: " + llList2String(Menu_CAT_Button_Labels,(Menu_CAT_IDX -1))); } // if((integer)llList2String(Menu_CAT_States,(Menu_CAT_IDX -1)) == 1) // if(llListFindList(Menu_CAT_States,["1"]) == (Menu_CAT_IDX -1)) else { SELECTED_status = 1; Menu_CAT_States = llListReplaceList(Menu_CAT_States,[(integer)SELECTED_status],(Menu_CAT_IDX -1),(Menu_CAT_IDX -1)); // toggle the value in the list Menu_CAT_States, at pos (Menu_CAT_IDX -1) llSay(0,"\n"); llSay(0,"> Now Showing: " + llList2String(Menu_CAT_Button_Labels,(Menu_CAT_IDX -1))); } // llSetLinkAlpha((integer)SELECTED_link,(float)SELECTED_status,ALL_SIDES); llSetLinkAlpha(SELECTED_link,SELECTED_status,ALL_SIDES); // llDialog(Obj_Toucher_Key, Menu_Capt, Menu_Butt, Menu_Chan); return; } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DO_Mode() { } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DO_Theme() { } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //DO_Texture(integer SELECTED_link,string SELECTED_item,integer SELECTED_face) DO_Texture() { // SELECTED_link; // TEMP variable to reference 'any'/'whatever' currently-selected link number // SELECTED_item; // TEMP variable to reference 'any'/'whatever' currently-selected item // SELECTED_face; // TEMP variable to reference 'any'/'whatever' currently-selected prim face llSay(0,"\n"); llSay(0,"> Now Setting: " + llList2String(Menu_CAT_Button_Labels,(Menu_CAT_IDX -1)) + ": " + SELECTED_item); llSetLinkTexture(SELECTED_link, SELECTED_item, SELECTED_face); llOwnerSay("xxxADDED this RETURN - it worked without the Show-Hide but not after using that Show-Hide"); return; } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // Get the Set-of-6(or 9) for the selected Category GET_Menu_CAT_SUB_Set() // This assumes the list Menu_CAT_SUB_List is the Currently-set list // BEFORE calling this routine: // - assign Menu_CAT_SUB_TEMP = to the current CAT# list [Menu_CAT_SUB_List] // - assign Menu_CAT_SUB_Total = to the current CAT# list's Total [Menu_CAT#_Total] { //DEBUG//llOwnerSay("> GET_Menu_CAT_SUB_Set:"); //DEBUG//llOwnerSay("(MCSS)(1): Item_Counter=" + (string)Item_Counter + " - Item_IDX=" + (string)Item_IDX); Menu_CAT_SUB_Set = []; Item_Counter = 0; if (Menu_CAT_SUB_Total <= 9) { Menu_CAT_SUB_Set = Menu_CAT_SUB_TEMP; } else { if (llList2String(Menu_CAT_SUB_TEMP,Item_IDX) == "") { Item_IDX = 0; } else { for (Item_Counter = Item_IDX; (Item_Counter <= (Item_IDX + 5)); Item_Counter++) {//~for1 if (llList2String(Menu_CAT_SUB_TEMP,Item_Counter) == "") { Menu_CAT_SUB_Set += [" "]; } else { Menu_CAT_SUB_Set += [llList2String(Menu_CAT_SUB_TEMP,Item_Counter)]; } }//~for1 } Menu_CAT_SUB_Set = Menu_SUB_NAV + Menu_CAT_SUB_Set; Item_IDX = Item_Counter; // ADDED !!!!!!! // THIS WORKS: // Menu_CAT_SUB_Set = Menu_SUB_NAV + [llList2String(Menu_CAT_SUB_TEMP,(Item_Pointer)),llList2String(Menu_CAT_SUB_TEMP,(Item_Pointer + 1)),llList2String(Menu_CAT_SUB_TEMP,(Item_Pointer + 2)),llList2String(Menu_CAT_SUB_TEMP,(Item_Pointer + 3)),llList2String(Menu_CAT_SUB_TEMP,(Item_Pointer + 4)),llList2String(Menu_CAT_SUB_TEMP,(Item_Pointer + 5))]; } //DEBUG//llOwnerSay("Menu_CAT_SUB_Set: "); //DEBUG//llOwnerSay((string)Menu_CAT_SUB_Set); //DEBUG//llOwnerSay("(MCSS)(2): Item_Counter=" + (string)Item_Counter + " - Item_IDX=" + (string)Item_IDX); return; } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // state default state ~ BEG //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> default // RENAME to 'default' (NO 'state') { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ state_entry() { Obj_Owner_Key = (string)llGetOwner(); // -> returns UUID of owner // Menu_ADM_AUTH_Owner = Obj_Owner_Key; // set, in Menu_ADM_AUTH_Owner, the Object Owner's key 'Obj_Owner_Key' Menu_ADM_AUTH_Users = llListReplaceList(Menu_ADM_AUTH_Users,[Obj_Owner_Key],0,0); // put the owner's UUID in the list of authorized users, at pos 0 if((Scr_State == 0) || (Scr_State >= 90)) { if(Scr_State == 99) { llOwnerSay(">>> DEBUG Mode <<<"); llMessageLinked(LINK_THIS, 99, "MODE: DEBUG MODE", "MODE: DEBUG MODE"); Scr_State = 90; } llOwnerSay("Please wait: Initializing & Checking Items..."); // llOwnerSay("\n"); // GET Notecard CFG data // llSetScriptState(Scr_ReadNC,TRUE); // Turn on the Notecard-reading script defined in Scr_ReadNC // Tell the NC script defined in Scr_ReadNC to start reading it's data // llMessageLinked(LINK_THIS, 4, NC_Selected, "CFG: NC_Selected"); llMessageLinked(LINK_THIS, 5, "BEG: Read_Data", "BEG: Read_Data"); // Gather data // InitScript(); // // Prepare for data // if(Scr_State >= 90) // { // llSay(0,"Scr_State: " + (string)Scr_State); // } // // GET data // GET_CAT_LinkNumbers(); // GET_Menu_CAT_Lists(); // Scr_State = (Scr_State + 1); //0=Init(Start), 10=Init(End), 20=Run, 90=Init[DEBUG](Start), 91=Init[DEBUG](End), 92=Run[DEBUG](Run), 99=DEBUG_Mode <-99 to go into DEBUG mode // finish getting data // InitScript(); // if(Scr_State >= 90) // { // llSay(0,"Scr_State: " + (string)Scr_State); // } // Scr_State = (Scr_State + 1); //0=Init(Start), 10=Init(End), 20=Run, 90=Init[DEBUG](Start), 91=Init[DEBUG](End), 92=Run[DEBUG](Run), 99=DEBUG_Mode <-99 to go into DEBUG mode } // if((Scr_State == 9) || (Scr_State >= 90)) // { // llOwnerSay("Check complete; Initialized & Ready!"); // Scr_State = (Scr_State + 1); // state Menu_State; // } // llOwnerSay("Check complete; Initialized & Ready!"); // state Menu_State; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ on_rez(integer a) { llResetScript(); if(Scr_State >= 90) { llMessageLinked(LINK_THIS, 99, "MODE: DEBUG MODE", "MODE: DEBUG MODE"); } // Gather data // InitScript(); // // Prepare for data // InitScript(); // if(Scr_State >= 90) // { // llSay(0,"Scr_State: " + (string)Scr_State); // } // // GET data // GET_CAT_LinkNumbers(); // GET_Menu_CAT_Lists(); // Scr_State = (Scr_State + 1); //0=Init(Start), 10=Init(End), 20=Run, 90=Init[DEBUG](Start), 91=Init[DEBUG](End), 92=Run[DEBUG](Run), 99=DEBUG_Mode <-99 to go into DEBUG mode // finish getting data // InitScript(); // if(Scr_State >= 90) // { // llSay(0,"Scr_State: " + (string)Scr_State); // } // Scr_State = (Scr_State + 1); //0=Init(Start), 10=Init(End), 20=Run, 90=Init[DEBUG](Start), 91=Init[DEBUG](End), 92=Run[DEBUG](Run), 99=DEBUG_Mode <-99 to go into DEBUG mode } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ changed(integer b) { llResetScript(); if(Scr_State >= 90) { llMessageLinked(LINK_THIS, 99, "MODE: DEBUG MODE", "MODE: DEBUG MODE"); } // Gather data // InitScript(); // // Prepare for data // InitScript(); // if(Scr_State >= 90) // { // llSay(0,"Scr_State: " + (string)Scr_State); // } // // GET data // GET_CAT_LinkNumbers(); // GET_Menu_CAT_Lists(); // Scr_State = (Scr_State + 1); //0=Init(Start), 10=Init(End), 20=Run, 90=Init[DEBUG](Start), 91=Init[DEBUG](End), 92=Run[DEBUG](Run), 99=DEBUG_Mode <-99 to go into DEBUG mode // finish getting data // InitScript(); // if(Scr_State >= 90) // { // llSay(0,"Scr_State: " + (string)Scr_State); // } // Scr_State = (Scr_State + 1); //0=Init(Start), 10=Init(End), 20=Run, 90=Init[DEBUG](Start), 91=Init[DEBUG](End), 92=Run[DEBUG](Run), 99=DEBUG_Mode <-99 to go into DEBUG mode } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //SendingPrimLinkNum is the LINK NUMBER of the prim that sent the message //Scr_CMD_ID is used for sending an ID code to identify each message //Str_ID_VarName_str is used for sending the Variable Name of the data value in Message link_message(integer SendingPrimLinkNum, integer Scr_CMD_ID, string message, key Str_ID_VarName_str) { //linkmessage if((Scr_CMD_ID == 999) || (message == "END: End Of Data") || (Str_ID_VarName_str == "EOD")) { // if(Scr_State < 10) // { Scr_State = 10; } // if(Scr_State >= 90) // { Scr_State = (Scr_State + 1); } Scr_State = (Scr_State + 1); Init_Data(); } else { // GET_Incoming_DATA(SendingPrimLinkNum, Scr_CMD_ID, message, Str_ID_VarName_str); GET_Incoming_DATA(Scr_CMD_ID, message, Str_ID_VarName_str); } // if((Scr_CMD_ID == 11) || (message == "BEG: Start Of Data") || (Str_ID_VarName_str == "SOD")) // { //llSay(0,"~~~Receiving Data~~~"); // Scr_State = (Scr_State + 1); // } // if((Scr_CMD_ID == 999) || (message == "END: End Of Data") || (Str_ID_VarName_str == "EOD")) // { // Scr_State = (Scr_State + 1); //llSay(0,"~~~~~~~screwy script state: " + (string)Scr_State); // Init_Data(); // } // else if(Scr_CMD_ID >= 100) // { // // GET_Incoming_DATA(SendingPrimLinkNum, Scr_CMD_ID, message, Str_ID_VarName_str); // GET_Incoming_DATA(Scr_CMD_ID, message, Str_ID_VarName_str); // } } //linkmessage //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // state default state ~ END //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // state Menu_State state ~ BEG //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state Menu_State { state_entry() { } on_rez(integer a) { llResetScript(); } changed(integer b) { llResetScript(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //SendingPrimLinkNum is the LINK NUMBER of the prim that sent the message //Scr_CMD_ID is used for sending an ID code to identify each message //Str_ID_VarName_str is used for sending the Variable Name of the data value in Message link_message(integer SendingPrimLinkNum, integer Scr_CMD_ID, string message, key Str_ID_VarName_str) { //linkmessage // GET_Incoming_DATA(SendingPrimLinkNum, Scr_CMD_ID, message, Str_ID_VarName_str); GET_Incoming_CMDs(Scr_CMD_ID, message, Str_ID_VarName_str); } //linkmessage timer() { llSetTimerEvent(0.0); remove_listens(); } touch_start(integer total_number) { Obj_Toucher_Name = llDetectedName(0); // put the toucher's Name in Obj_Toucher_Name Obj_Toucher_Key = (string)llDetectedKey(0); // put the toucher's UUID in Obj_Toucher_Key // Obj_Toucher_Group; // put the toucher's currently-active group in Obj_Toucher_Group // if(llDetectedGroup(0)) // { Obj_Toucher_Group = TRUE; } // see if the toucher's currently-active group is the same as the object's group // else // { Obj_Toucher_Group = FALSE; } Obj_OwnerToucher_NKG = Obj_Owner_Key + "|" + Obj_Toucher_Name + "|" + Obj_Toucher_Key + "|" + Obj_Toucher_Group; llMessageLinked(LINK_THIS, 2, Obj_OwnerToucher_NKG, "Obj_OwnerToucher_NKG"); Menu_SUB_ID = 0; Menu_Capt = "\n" + Menu_IA_Brand_Name + "\n" + Menu_IA_Product_Name + ", " + Menu_IA_Product_Vers + "\n" + Menu_00_Capt; // display the dialog Menu_Butt = Menu_00a + Menu_00_NAV + Menu_CAT_Button_Labels_456123; // llDialog(llDetectedKey(0), Menu_Capt, Menu_Butt, Menu_Chan); // WORKS llDialog(Obj_Toucher_Key, Menu_Capt, Menu_Butt, Menu_Chan); //DEBUG//llSay(0,"Main Menu 1:"); //DEBUG//llSay(0, "Menu_SUB_ID: " + (string)Menu_SUB_ID); //DEBUG//llSay(0,"\n"); llListen(Menu_Chan,"",NULL_KEY,""); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ listen(integer channel, string name, key id, string message) { //listen //DEBUG//llOwnerSay("> listen..."); //DEBUG//llOwnerSay("Menu_SUB_ID: " + (string)Menu_SUB_ID); //DEBUG//llOwnerSay("Item_Counter=" + (string)Item_Counter + " - Item_IDX=" + (string)Item_IDX); //llOwnerSay("Item_Pointer = " + (string)Item_Pointer + " - Item_IDX = " + (string)Item_IDX); llOwnerSay("at listn: message: " + message); //DEBUG//llOwnerSay("Menu_CAT_Object_Names_Prefix IDX #: " + (string)llListFindList(Menu_CAT_Button_Labels,[message]) + " (according to message position)"); //DEBUG//llOwnerSay("(^--- if this is -1, it means 'message' is not in the list of CATs - safe to ignore"); //DEBUG//llOwnerSay("Menu_CAT_Object_Names_Prefix IDX #: " + (string)Menu_SUB_ID + " (according to current CAT)"); //DEBUG//llOwnerSay("..."); //DEBUG// Scr_Mem_Usage_Current = llGetUsedMemory(); llOwnerSay("xDELx Current Memory usage: " + (string)Scr_Mem_Usage_Current + "bytes"); //------------------------------------------ //------------------------------------------ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if ( (Obj_Toucher_Key == Obj_Owner_Key) || (Menu_00_AUTH_Level == 0) || ((Menu_00_AUTH_Level == 2) && (Obj_Toucher_Group == llList2String(Menu_ADM_AUTH_Users,7))) || ((Menu_00_AUTH_Level == 3) && (llListFindList(Menu_ADM_AUTH_Users,[Obj_Toucher_Key]))) ) {//if Authorized to use the menu... //------------------------------------------ //------------------------------------------ if (message != "Close Menu") {//if not 'Close Menu'... //------------------------------------------ // if Themes... if (message == "● Themes") { //DEBUG// llOwnerSay("xDELx Theme Menu: AUTH_Level = " + (string)Menu_SUB_THM_AUTH_Level); if (Menu_SWSF_EGG == 1) { Menu_SWSF_EGG = 2; } if ( (Obj_Toucher_Key == Obj_Owner_Key) || (Menu_SUB_THM_AUTH_Level == 0) || ((Menu_SUB_THM_AUTH_Level == 2) && (Obj_Toucher_Group == llList2String(Menu_ADM_AUTH_Users,7))) || ((Menu_SUB_THM_AUTH_Level == 3) && (llListFindList(Menu_ADM_AUTH_Users,[Obj_Toucher_Key]))) ) { Menu_SUB_ID = 10; llMessageLinked(LINK_THIS, 10, "Menu_THM", "Menu_THM"); } else // CHANGE THIS TO ERROR PAGE { Menu_SUB_ID = 99; Menu_Capt = Menu_ADM_AUTH_ERR_Capt1 + llList2String(Menu_00_MenuName_List,4) + Menu_ADM_AUTH_ERR_Capt2; Menu_Butt = Menu_00a + Menu_00_NAV + Menu_CAT_Button_Labels_456123; } } //-------------- // if Modes... else if (message == "Modes") { llOwnerSay("xDELx Mode Menu: AUTH_Level = " + (string)Menu_SUB_MODE_AUTH_Level); if ( (Obj_Toucher_Key == Obj_Owner_Key) || (Menu_SUB_MODE_AUTH_Level == 0) || ((Menu_SUB_MODE_AUTH_Level == 2) && (Obj_Toucher_Group == llList2String(Menu_ADM_AUTH_Users,7))) || ((Menu_SUB_MODE_AUTH_Level == 3) && (llListFindList(Menu_ADM_AUTH_Users,[Obj_Toucher_Key]))) ) { Menu_SUB_ID = 20; llMessageLinked(LINK_THIS, 20, "Menu_MODE", "Menu_MODE"); } else // CHANGE THIS TO ERROR PAGE { Menu_SUB_ID = 0; Menu_Capt = Menu_ADM_AUTH_ERR_Capt1 + llList2String(Menu_00_MenuName_List,4) + Menu_ADM_AUTH_ERR_Capt2; Menu_Butt = Menu_00a + Menu_00_NAV + Menu_CAT_Button_Labels_456123; } } //-------------- else {//else everything else //-- -- -- -- -- -- -- -- -- -- -- if (Menu_SWSF_EGG == 4) { Menu_SWSF_EGG = 5; Menu_SUB_ID = 0; Menu_Capt = "\n\nCONGRATULATIONS!\n\nYou found StarWolffs Easter Egg!\n\nA Gift should be delivered to you shortly\n- if it does not arrive, contact:\nsecondlife:///app/agent/b3c21e55-a326-455e-b302-ffeeb95e4027/about"; //StarWolffs SatisFactory Free Gift! //object // llGiveInventoryList(aviname,"StarWolffs SatisFactory Free Gift!",llGetInventoryName(INVENTORY_OBJECT,"StarWolffs SatisFactory Free Gift!")); llGiveInventory(Obj_Toucher_Name,"StarWolffs SatisFactory Free Gift!"); Menu_Butt = Menu_00a + Menu_00_NAV + Menu_CAT_Button_Labels_456123; //DEBUG//llSay(0,"'Main Menu' button - then do the Main Menu llDialog again"); } //-------------- else if (message == "Main Menu") { Menu_SUB_ID = 0; Menu_CAT_IDX = 0; Menu_Capt = "\n" + Menu_IA_Brand_Name + "\n" + Menu_IA_Product_Name + ", " + Menu_IA_Product_Vers + "\n" + Menu_00_Capt; Menu_Butt = Menu_00a + Menu_00_NAV + Menu_CAT_Button_Labels_456123; //DEBUG//llSay(0,"'Main Menu' button - then do the Main Menu llDialog again"); } //-------------- else if (message == "Admin") { if (Menu_SWSF_EGG == 2) { Menu_SWSF_EGG = 3; } //DEBUG// llOwnerSay("xDELx Admin Menu: AUTH_Level = " + (string)Menu_SUB_ADM_AUTH_Level); if (Obj_Toucher_Key == Obj_Owner_Key) { Menu_SUB_ID = 80; Menu_Capt = Menu_SUB_ADM_Capt + "\n" + Menu_SUB_ADM_Choices; Menu_Butt = Menu_00b + Menu_SUB_ADM_Butt; } else // CHANGE THIS TO ERROR PAGE { Menu_SUB_ID = 0; Menu_Capt = Menu_ADM_AUTH_ERR_Capt1 + llList2String(Menu_00_MenuName_List,1) + Menu_ADM_AUTH_ERR_Capt2; Menu_Butt = Menu_00a + Menu_00_NAV + Menu_CAT_Button_Labels_456123; } } //-------------- else if (message == "INFO/About") { Menu_SUB_ID = 90; Menu_Capt = Menu_SUB_IA_Capt + "\nBrand: " + Menu_IA_Brand_Name + " by " + Menu_IA_Brand_By + "\nProduct: " + Menu_IA_Product_Name + ", " + Menu_IA_Product_Vers + "\nCoding: StarWolffs SatisFactory\n\nClick a button below for more details:"; Menu_Butt = Menu_00b + [Menu_IA_Product_Name,Menu_IA_Brand_Name,"StarWolff"]; //DEBUG//llSay(0,"menu buttons (Menu_Butt): " + (string)Menu_Butt); } //-------------- else if (message == Menu_IA_Product_Name) { Menu_Capt = Menu_SUB_IA_Capt + "\n" + Menu_IA_Brand_Name + " - " + Menu_IA_Product_Name + ", " + Menu_IA_Product_Vers + "\n" + Menu_IA_Product_Capt; Menu_Butt = Menu_00b + [Menu_IA_Product_Name,Menu_IA_Brand_Name,"StarWolff"]; //DEBUG//llSay(0,"You clicked the 'Product' button"); } //-------------- else if (message == Menu_IA_Brand_Name) { Menu_Capt = Menu_SUB_IA_Capt + "\n" + Menu_IA_Brand_Capt; Menu_Butt = Menu_00b + [Menu_IA_Product_Name,Menu_IA_Brand_Name,"StarWolff"]; //DEBUG//llSay(0,"You clicked the 'Brand' button"); } //-------------- else if (message == "StarWolff") { if (Menu_SWSF_EGG == 0) { Menu_SWSF_EGG = 1; } Menu_Capt = Menu_SUB_IA_Capt + "\n" + Obj_Pn + " - " + Obj_Vs + "\n\n" + Menu_IA_SWSF_Capt; Menu_Butt = Menu_00b + [Menu_IA_Product_Name,Menu_IA_Brand_Name,"StarWolff"]; } //-------------- //DISabled// else if (message == "Modes") //DISabled// { //DEBUG// //DISabled//llSay(0,"Mode Menu: AUTH_Level = " + (string)Menu_SUB_MODE_AUTH_Level); //DISabled// if ( (Obj_Toucher_Key == Obj_Owner_Key) || (Menu_SUB_MODE_AUTH_Level == 0) || ((Menu_SUB_MODE_AUTH_Level == 2) && (Obj_Toucher_Group == llList2String(Menu_ADM_AUTH_Users,7))) || ((Menu_SUB_MODE_AUTH_Level == 3) && (llListFindList(Menu_ADM_AUTH_Users,[Obj_Toucher_Key]))) ) //DISabled// { //DISabled// Menu_SUB_ID = 20; //DISabled// llMessageLinked(LINK_THIS, 20, "Menu_MODE", "Menu_MODE"); //// =======FROM HERE DOWN, NO LONGER NEEDED ============== <<<<<<<< //DISabled// Menu_Capt = Menu_SUB_MODE_Capt + "\nMode 1: " + llList2String(Menu_SUB_MODE_Descs,0) + "\nMode 2: " + llList2String(Menu_SUB_MODE_Descs,1) + "\nMode 3: " + llList2String(Menu_SUB_MODE_Descs,2) + "\nMode 4: " + llList2String(Menu_SUB_MODE_Descs,3) + "\nMode 5: " + llList2String(Menu_SUB_MODE_Descs,4) + "\nMode 6: " + llList2String(Menu_SUB_MODE_Descs,5) + "\nMode 7: " + llList2String(Menu_SUB_MODE_Descs,6) + "\nMode 8: " + llList2String(Menu_SUB_MODE_Descs,7) + "\nMode 9: " + llList2String(Menu_SUB_MODE_Descs,8); //DISabled// Menu_Butt = Menu_00b + Menu_SUB_MODE_Butt; //DISabled// } //DISabled// else // CHANGE THIS TO ERROR PAGE //DISabled// { //DISabled// Menu_SUB_ID = 0; //DISabled// Menu_Capt = Menu_ADM_AUTH_ERR_Capt1 + llList2String(Menu_00_MenuName_List,4) + Menu_ADM_AUTH_ERR_Capt2; //DISabled// Menu_Butt = Menu_00a + Menu_00_NAV + Menu_CAT_Button_Labels_456123; //DISabled// } //DISabled// } //-------------- //DISabled// else if (message == "● Themes") //DISabled// { //DISabled////DEBUG// //DISabled//llSay(0,"Theme Menu: AUTH_Level = " + (string)Menu_SUB_THM_AUTH_Level); //DISabled// if (Menu_SWSF_EGG == 1) //DISabled// { //DISabled// Menu_SWSF_EGG = 2; //DISabled// } //DISabled// if ( (Obj_Toucher_Key == Obj_Owner_Key) || (Menu_SUB_THM_AUTH_Level == 0) || ((Menu_SUB_THM_AUTH_Level == 2) && (Obj_Toucher_Group == llList2String(Menu_ADM_AUTH_Users,7))) || ((Menu_SUB_THM_AUTH_Level == 3) && (llListFindList(Menu_ADM_AUTH_Users,[Obj_Toucher_Key]))) ) //DISabled// { //DISabled// Menu_SUB_ID = 10; //DISabled// llMessageLinked(LINK_THIS, 10, "Menu_THM", "Menu_THM"); //// =======FROM HERE DOWN, NO LONGER NEEDED ============== <<<<<<<< //DISabled// Menu_Capt = Menu_SUB_THM_Capt + "\nTheme 1: " + llList2String(Menu_SUB_THM_Descs,0) + "\nTheme 2: " + llList2String(Menu_SUB_THM_Descs,1) + "\nTheme 3: " + llList2String(Menu_SUB_THM_Descs,2) + "\nTheme 4: " + llList2String(Menu_SUB_THM_Descs,3) + "\nTheme 5: " + llList2String(Menu_SUB_THM_Descs,4) + "\nTheme 6: " + llList2String(Menu_SUB_THM_Descs,5) + "\nTheme 7: " + llList2String(Menu_SUB_THM_Descs,6) + "\nTheme 8: " + llList2String(Menu_SUB_THM_Descs,7) + "\nTheme 9: " + llList2String(Menu_SUB_THM_Descs,8); //DISabled// Menu_Butt = Menu_00b + Menu_SUB_THM_Butt; //DISabled// } //DISabled// else // CHANGE THIS TO ERROR PAGE //DISabled// { //DISabled// Menu_SUB_ID = 99; //DISabled// Menu_Capt = Menu_ADM_AUTH_ERR_Capt1 + llList2String(Menu_00_MenuName_List,4) + Menu_ADM_AUTH_ERR_Capt2; //DISabled// Menu_Butt = Menu_00a + Menu_00_NAV + Menu_CAT_Button_Labels_456123; //DISabled// } //DISabled// } //-------------- // Admin SUB_Menu else if (Menu_SUB_ID >= 80 && Menu_SUB_ID < 90) { if (message == "Owner") { Menu_SUB_ID = 81; Menu_00_AUTH_Level = 1; message = "Owner-Only"; //DEBUG//llSay(0,"You chose Admin 1!"); //DEBUG//llSay(0,llList2String(Menu_SUB_ADM_List,0)); } else if (message == "Group") { Menu_SUB_ID = 82; Menu_00_AUTH_Level = 2; message = "Owner+Group"; //DEBUG//llSay(0,"You chose Admin 2!"); //DEBUG//llSay(0,llList2String(Menu_SUB_ADM_List,1)); } else if (message == "List (NC)") { Menu_SUB_ID = 83; Menu_00_AUTH_Level = 3; message = "Owner+List"; //DEBUG//llSay(0,"You chose Admin 3!"); //DEBUG//llSay(0,llList2String(Menu_SUB_ADM_List,2)); } else if (message == "Public") { Menu_SUB_ID = 84; Menu_00_AUTH_Level = 0; message = "Public"; // redundant, but... consistency //DEBUG//llSay(0,"You chose Admin 4!"); //DEBUG//llSay(0,llList2String(Menu_SUB_ADM_List,3)); } else if (message == "undefined 1") { Menu_SUB_ID = 85; Menu_00_AUTH_Level = 0; message = "Public"; // temporarily set this to public until this selection is defined - REMOVE this line when it's defined //DEBUG//llSay(0,"You chose Admin 5!"); //DEBUG//llSay(0,llList2String(Menu_SUB_ADM_List,4)); } else if (message == "undefined 2") { Menu_SUB_ID = 86; Menu_00_AUTH_Level = 0; message = "Public"; // temporarily set this to public until this selection is defined - REMOVE this line when it's defined //DEBUG//llSay(0,"You chose Admin 6!"); //DEBUG//llSay(0,llList2String(Menu_SUB_ADM_List,5)); } Menu_Capt = Menu_SUB_ADM_Capt + "\n" + Menu_SUB_ADM_Choices + "\n\nNow setting Menu access to: " + message; Menu_Butt = Menu_00b + Menu_SUB_ADM_Butt; //DEBUG//llSay(0,"'Admin' sub menu - Set it up!"); } //-------------- else if (message == "<===") { //DEBUG//llOwnerSay("> '<==='"); //DEBUG//llOwnerSay("(1) Item_Counter=" + (string)Item_Counter + " - Item_IDX=" + (string)Item_IDX); Item_IDX = (Item_IDX - 12); // set the pointer back 12 (back 1 page (6), minus the current page (6) - 6+6=12 if (Item_IDX < 0) { Item_IDX = 0; // Item_Pointer = (6 * (whole number of (out of the total number of items [Menu_CAT_SUB_Total], divided by 6)), + 1) //- for example: //- if Menu_CAT_SUB_Total = 8... //- 8/6=1.333 //- whole number of 1.333 = 1 //- 6*1=6 // so: // (6* (whole number of(Menu_CAT_SUB_Total / 6)) + 1) // Item_Pointer = (6* (llRound(Menu_CAT_SUB_Total / 6)) + 1); } GET_Menu_CAT_SUB_Set(); // returns Menu_CAT_SUB_Set (set of 6, and if >9 with Menu_SUB_NAV) //DEBUG//llOwnerSay("(2) Item_Counter=" + (string)Item_Counter + " - Item_IDX=" + (string)Item_IDX); Menu_Butt = Menu_00b + Menu_CAT_SUB_Set; } //-------------- else if (message == "===>") { if (Menu_SWSF_EGG == 3) { Menu_SWSF_EGG = 4; } //DEBUG//llOwnerSay("> '===>'"); //DEBUG//llOwnerSay("(1) Item_Counter=" + (string)Item_Counter + " - Item_IDX=" + (string)Item_IDX); Item_Pointer = (Item_Pointer + 6); // set the pointer forward 6 // if (Item_Pointer > Menu_CAT_SUB_Total) if (Item_IDX > Menu_CAT_SUB_Total) { Item_IDX = 0; } GET_Menu_CAT_SUB_Set(); // returns Menu_CAT_SUB_Set (set of 6, and if >9 with Menu_SUB_NAV) //DEBUG//llOwnerSay("(2) Item_Counter=" + (string)Item_Counter + " - Item_IDX=" + (string)Item_IDX); Menu_Butt = Menu_00b + Menu_CAT_SUB_Set; } //-------------- // Item SUB_Menu else if (Menu_CAT_IDX > 0) { // if the selected item is in the list of CAT1... // if ((string)llListFindList(Menu_CAT1_List,[message]) // if ((string)llListFindList(Menu_CAT1_List,[message]) != -1) if(Menu_CAT_IDX == 1) { //llSetLinkTexture(linknumber,message,face); // REPLACE THIS with 'apply texture to correct face on correct linknumber' // SELECTED_link; // TEMP variable to reference 'any'/'whatever' currently-selected link number // SELECTED_item; // TEMP variable to reference 'any'/'whatever' currently-selected item // SELECTED_face; // TEMP variable to reference 'any'/'whatever' currently-selected prim face SELECTED_link = (integer)llList2String(Menu_CAT_Object_PrimLinks,0); // Apply to this prim the linknumber listed in the 0th (1st) position in Menu_CAT_Object_PrimLinks SELECTED_item = message; SELECTED_face = (integer)llList2String(Menu_CAT_Action_Faces,0); // Apply to this face the facenumber listed in the 0th (1st) position in Menu_CAT_Action_Faces // DO_Texture(SELECTED_link,SELECTED_item,SELECTED_face); // DO_Texture(); //DEBUG//llSay(0,"You chose: " + message); } // if the selected item is in the list of CAT2... // else if ((string)llListFindList(Menu_CAT2_List,[message]) != -1) else if(Menu_CAT_IDX == 2) { //llSetLinkTexture(linknumber,message,face); // REPLACE THIS with 'apply texture to correct face on correct linknumber' // SELECTED_link; // TEMP variable to reference 'any'/'whatever' currently-selected link number // SELECTED_item; // TEMP variable to reference 'any'/'whatever' currently-selected item // SELECTED_face; // TEMP variable to reference 'any'/'whatever' currently-selected prim face SELECTED_link = (integer)llList2String(Menu_CAT_Object_PrimLinks,1); // Apply to this prim the linknumber listed in the 1st (2nd) position in Menu_CAT_Object_PrimLinks SELECTED_item = message; SELECTED_face = (integer)llList2String(Menu_CAT_Action_Faces,1); // Apply to this face the facenumber listed in the 1st (2nd) position in Menu_CAT_Action_Faces // DO_Texture(SELECTED_link,SELECTED_item,SELECTED_face); // DO_Texture(); //DEBUG//llSay(0,"You chose: " + message); } // if the selected item is in the list of CAT3... // else if ((string)llListFindList(Menu_CAT3_List,[message]) != -1) else if(Menu_CAT_IDX == 3) { //llSetLinkTexture(linknumber,message,face); // REPLACE THIS with 'apply texture to correct face on correct linknumber' // SELECTED_link; // TEMP variable to reference 'any'/'whatever' currently-selected link number // SELECTED_item; // TEMP variable to reference 'any'/'whatever' currently-selected item // SELECTED_face; // TEMP variable to reference 'any'/'whatever' currently-selected prim face SELECTED_link = (integer)llList2String(Menu_CAT_Object_PrimLinks,2); // Apply to this prim the linknumber listed in the 2nd (3rd) position in Menu_CAT_Object_PrimLinks SELECTED_item = message; SELECTED_face = (integer)llList2String(Menu_CAT_Action_Faces,2); // Apply to this face the facenumber listed in the 2nd (3rd) position in Menu_CAT_Action_Faces // DO_Texture(SELECTED_link,SELECTED_item,SELECTED_face); // DO_Texture(); //DEBUG//llSay(0,"You chose: " + message); } // if the selected item is in the list of CAT4... // else if ((string)llListFindList(Menu_CAT4_List,[message]) != -1) else if(Menu_CAT_IDX == 4) { //llSetLinkTexture(linknumber,message,face); // REPLACE THIS with 'apply texture to correct face on correct linknumber' // SELECTED_link; // TEMP variable to reference 'any'/'whatever' currently-selected link number // SELECTED_item; // TEMP variable to reference 'any'/'whatever' currently-selected item // SELECTED_face; // TEMP variable to reference 'any'/'whatever' currently-selected prim face SELECTED_link = (integer)llList2String(Menu_CAT_Object_PrimLinks,3); // Apply to this prim the linknumber listed in the 3rd (4th) position in Menu_CAT_Object_PrimLinks SELECTED_item = message; SELECTED_face = (integer)llList2String(Menu_CAT_Action_Faces,3); // Apply to this face the facenumber listed in the 3rd (4th) position in Menu_CAT_Action_Faces // DO_Texture(SELECTED_link,SELECTED_item,SELECTED_face); // DO_Texture(); //DEBUG//llSay(0,"You chose: " + message); } // if the selected item is in the list of CAT5... // else if ((string)llListFindList(Menu_CAT5_List,[message]) != -1) else if(Menu_CAT_IDX == 5) { //llSetLinkTexture(linknumber,message,face); // REPLACE THIS with 'apply texture to correct face on correct linknumber' // SELECTED_link; // TEMP variable to reference 'any'/'whatever' currently-selected link number // SELECTED_item; // TEMP variable to reference 'any'/'whatever' currently-selected item // SELECTED_face; // TEMP variable to reference 'any'/'whatever' currently-selected prim face SELECTED_link = (integer)llList2String(Menu_CAT_Object_PrimLinks,4); // Apply to this prim the linknumber listed in the 4th (5th) position in Menu_CAT_Object_PrimLinks SELECTED_item = message; SELECTED_face = (integer)llList2String(Menu_CAT_Action_Faces,4); // Apply to this face the facenumber listed in the 4th (5th) position in Menu_CAT_Action_Faces // DO_Texture(SELECTED_link,SELECTED_item,SELECTED_face); // DO_Texture(); //DEBUG//llSay(0,"You chose: " + message); } // if the selected item is in the list of CAT6... // else if ((string)llListFindList(Menu_CAT6_List,[message]) != -1) else if(Menu_CAT_IDX == 6) { //llSetLinkTexture(linknumber,message,face); // REPLACE THIS with 'apply texture to correct face on correct linknumber' // SELECTED_link; // TEMP variable to reference 'any'/'whatever' currently-selected link number // SELECTED_item; // TEMP variable to reference 'any'/'whatever' currently-selected item // SELECTED_face; // TEMP variable to reference 'any'/'whatever' currently-selected prim face SELECTED_link = (integer)llList2String(Menu_CAT_Object_PrimLinks,5); // Apply to this prim the linknumber listed in the 5th (6th) position in Menu_CAT_Object_PrimLinks SELECTED_item = message; SELECTED_face = (integer)llList2String(Menu_CAT_Action_Faces,5); // Apply to this face the facenumber listed in the 5th (6th) position in Menu_CAT_Action_Faces // DO_Texture(SELECTED_link,SELECTED_item,SELECTED_face); // DO_Texture(); //DEBUG//llSay(0,"You chose: " + message); } //llOwnerSay("\n"); //llOwnerSay("xDELx +++ INSERT HERE: if action=texture, then DO_Texture - if action=rezz, then DO_Rezz, etc"); if(llList2String(Menu_CAT_Action_Types,(Menu_CAT_IDX -1)) == "TEXTURE") { DO_Texture(); } if(llList2String(Menu_CAT_Action_Types,(Menu_CAT_IDX -1)) == "REZZ") { DO_Rezz(); } llOwnerSay("xthis is after DO_Texture & Do_Rezz"); Menu_Capt = Menu_SUB_Capt + "\n\nNow setting: " + llList2String(Menu_CAT_Button_Labels,(Menu_CAT_IDX -1)) + ": " + message; Menu_Butt = Menu_00b + Menu_CAT_SUB_Set; } //-------------- // if the message is in the list Menu_CAT_Button_Labels else if ((string)llListFindList(Menu_CAT_Button_Labels,[message])) { //DEBUG//llOwnerSay("> CAT:"); //DEBUG//llOwnerSay("(1) Item_Counter=" + (string)Item_Counter + " - Item_IDX=" + (string)Item_IDX); Menu_CAT_SUB_Set = []; Menu_SUB_Capt = " Menu - Select an Item: "; Item_IDX = 0; // set the Index pointer back to 0 // get it's position in the list Menu_CAT_Button_Labels... and assign the Menu_CAT_SUB_List = to the appropriate CAT list if (message == llList2String(Menu_CAT_Button_Labels,0)) // if the message is at index 0(aka CAT1) { //DEBUG//llOwnerSay("You chose: " + message + " - CAT = " + llList2String(Menu_CAT_Object_Names_Prefix,0)); Menu_SUB_ID = 1; Menu_CAT_IDX = 1; Menu_SUB_Capt = ("\n" + llList2String(Menu_CAT_Button_Labels,0) + Menu_SUB_Capt); Menu_CAT_SUB_TEMP = Menu_CAT1_List; Menu_CAT_SUB_Total = Menu_CAT1_Total; } else if (message == llList2String(Menu_CAT_Button_Labels,1)) // if the message is at index 1(aka CAT2) { //DEBUG//llOwnerSay("You chose: " + message + " - CAT = " + llList2String(Menu_CAT_Object_Names_Prefix,1)); Menu_SUB_ID = 2; Menu_CAT_IDX = 2; Menu_SUB_Capt = ("\n" + llList2String(Menu_CAT_Button_Labels,1) + Menu_SUB_Capt); Menu_CAT_SUB_TEMP = Menu_CAT2_List; Menu_CAT_SUB_Total = Menu_CAT2_Total; } else if (message == llList2String(Menu_CAT_Button_Labels,2)) // if the message is at index 2(aka CAT3) { //DEBUG//llOwnerSay("You chose: " + message + " - CAT = " + llList2String(Menu_CAT_Object_Names_Prefix,2)); Menu_SUB_ID = 3; Menu_CAT_IDX = 3; Menu_SUB_Capt = ("\n" + llList2String(Menu_CAT_Button_Labels,2) + Menu_SUB_Capt); Menu_CAT_SUB_TEMP = Menu_CAT3_List; Menu_CAT_SUB_Total = Menu_CAT3_Total; } else if (message == llList2String(Menu_CAT_Button_Labels,3)) // if the message is at index 3(aka CAT4) { //DEBUG//llOwnerSay("You chose: " + message + " - CAT = " + llList2String(Menu_CAT_Object_Names_Prefix,3)); Menu_SUB_ID = 4; Menu_CAT_IDX = 4; Menu_SUB_Capt = ("\n" + llList2String(Menu_CAT_Button_Labels,3) + Menu_SUB_Capt); Menu_CAT_SUB_TEMP = Menu_CAT4_List; Menu_CAT_SUB_Total = Menu_CAT4_Total; } else if (message == llList2String(Menu_CAT_Button_Labels,4)) // if the message is at index 4(aka CAT5) { //DEBUG//llOwnerSay("You chose: " + message + " - CAT = " + llList2String(Menu_CAT_Object_Names_Prefix,4)); Menu_SUB_ID = 5; Menu_CAT_IDX = 5; Menu_SUB_Capt = ("\n" + llList2String(Menu_CAT_Button_Labels,4) + Menu_SUB_Capt); Menu_CAT_SUB_TEMP = Menu_CAT5_List; Menu_CAT_SUB_Total = Menu_CAT5_Total; } else if (message == llList2String(Menu_CAT_Button_Labels,5)) // if the message is at index 5(aka CAT6) { //DEBUG//llOwnerSay("You chose: " + message + " - CAT = " + llList2String(Menu_CAT_Object_Names_Prefix,5)); Menu_SUB_ID = 6; Menu_CAT_IDX = 6; Menu_SUB_Capt = ("\n" + llList2String(Menu_CAT_Button_Labels,5) + Menu_SUB_Capt); Menu_CAT_SUB_TEMP = Menu_CAT6_List; Menu_CAT_SUB_Total = Menu_CAT6_Total; } // if(llListFindList(Menu_CAT_Action_Types,["SHOW-HIDE"]) == (Menu_CAT_IDX-1)) if(llList2String(Menu_CAT_Action_Types,(Menu_CAT_IDX -1)) == "SHOW-HIDE") { llOwnerSay("xSHOW-HIDE is set..."); //llOwnerSay((string)llList2String(Menu_CAT_Action_Types,(Menu_CAT_IDX -1))); SELECTED_link = (integer)llList2String(Menu_CAT_Object_PrimLinks,(Menu_CAT_IDX-1)); // Apply to this prim the linknumber listed in the Menu_CAT_IDX position in Menu_CAT_Object_PrimLinks DO_ShowHide(); llOwnerSay("xreturning from SHOW-HIDE"); llOwnerSay("xmessage = " + message); } llOwnerSay("xcontinuing to GET_Menu_CAT_SUB_Set"); GET_Menu_CAT_SUB_Set(); // returns Menu_CAT_SUB_Set (set of 6, and if >9 with Menu_SUB_NAV) llOwnerSay("xreturning from GET_Menu_CAT_SUB_Set"); //DEBUG//llOwnerSay("..back at CAT:"); //DEBUG//llOwnerSay("(2) Item_Counter=" + (string)Item_Counter + " - Item_IDX=" + (string)Item_IDX); //DEBUG//llOwnerSay("Menu_CAT_SUB_Set:"); //DEBUG//llOwnerSay((string)Menu_CAT_SUB_Set); Menu_Capt = Menu_SUB_Capt; Menu_Butt = Menu_00b + Menu_CAT_SUB_Set; } //------------------------------------------ // otherwise, do the Main Menu llDialog here llOwnerSay("xMain Menu 2"); llOwnerSay((string)Obj_Toucher_Key); //DEBUG//llSay(0,"menu buttons (Menu_Butt): " + (string)Menu_Butt); //DEBUG//llSay(0,"\n"); // llDialog(id, Menu_Capt, Menu_Butt, Menu_Chan); // WORKED llDialog(Obj_Toucher_Key, Menu_Capt, Menu_Butt, Menu_Chan); llOwnerSay("xMain Menu 2-after the llDialog"); // llListen(Menu_Chan,"",NULL_KEY,""); llOwnerSay("xMain Menu 2-temp-added another listen which didn't help"); // llDialog(Obj_Toucher_Key, Menu_Capt, Menu_Butt, Menu_Chan); // llDialog(llDetectedKey(0), Menu_Capt, Menu_Butt, Menu_Chan); //-- -- -- -- -- -- -- -- -- -- -- }//else everything else //-- -- -- -- -- -- -- -- -- -- -- <---%%%%%%% from here up }//if not 'Close Menu'... //-- -- -- -- -- -- -- -- -- -- -- //------------------------------------------ else { llOwnerSay("xTEMP-DISabled the close listen handler"); // remove_listens(); //DEBUG//llSay(0,"'Close Menu' button - close listens & handlers"); } }//if Authorized to use the menu... [if not, then:] else { Menu_SUB_ID = 0; Menu_Capt = Menu_ADM_AUTH_ERR_Capt1 + llList2String(Menu_00_MenuName_List,0) + Menu_ADM_AUTH_ERR_Capt2; Menu_Butt = Menu_00a + Menu_00_NAV + Menu_CAT_Button_Labels_456123; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //------------------------------------------ //------------------------------------------ } // listen end //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // state Menu_State state ~ END //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>