UtilsMenu(key kAv) { list lAppend = ["Reboot", "main.."]; integer iAdmin=0; string sTag = llList2String(llGetObjectDetails(kAv,[OBJECT_GROUP_TAG]),0); if(llListFindList(g_lSupport, [(string)kAv])!=-1 || llListFindList(g_lAdminTag, [sTag])!=-1){ if(g_kLeasedTo!=NULL)lAppend += ["PermaLease"]; iAdmin=1; lAppend += ["Import", "Export", "MemStick"]; } if(g_kLeasedTo == NULL) { }else if(g_kLeasedTo == kAv || iAdmin || g_kOwner == kAv) { lAppend += [Checkbox(bool(g_iMask & MASK_LOGO), "Logo"), Checkbox(bool(g_iMask & MASK_CUSTOM_TEXT_COLOR), "CustomTxt"), "SetTxtC", Checkbox(bool(g_iMask & MASK_WHITEFRAME), "White Frame"), "*RESET*"]; } string sAppend = "\nUtility Menu"; Menu(g_kAuthorized, MAIN_MENU_TEXT+sAppend, lAppend, "menu~utils"); } MainMenu(key kAv) { list lAppend = ["Utils.."]; // Check against ZNI Support roster integer iAdmin=0; string sAppend; string sTag = llList2String(llGetObjectDetails(kAv,[OBJECT_GROUP_TAG]),0); if(llListFindList(g_lSupport, [(string)kAv])!=-1 || llListFindList(g_lAdminTag, [sTag])!=-1){ iAdmin=1; } if(llListFindList(g_lManagerTag, [sTag])!=-1)iAdmin=1; if(g_kLeasedTo == NULL){ lAppend += ["Lease"]; }else if(g_kLeasedTo == kAv || iAdmin || g_kOwner == kAv){ lAppend += ["End Lease", sSetor((g_iFlags&4), " ", "Renew"), "Set Picture", "Set Owner", sSetor ((g_iFlags & 2),"TransferLease", " "), "Set Name"]; sAppend += "\n* CustomTxt, and SetTxtC relate to custom text colors."; } if(g_kLeasedTo != NULL){ lAppend += ["TimeRemain", "WhoLeased"]; } if(g_kOwner!=NULL)sAppend+="\nOwner is : secondlife:///app/agent/"+(string)g_kOwner+"/about"; Menu(g_kAuthorized, MAIN_MENU_TEXT+sAppend, MAIN_MENU_BUTTONS+lAppend, "menu~main"); } Menu(key kAv, string sText, list lButtons, string sIdent) { llMessageLinked(LINK_THIS, LINK_MENU_DISPLAY, llDumpList2String([sIdent, "TRUE", sText, llDumpList2String(lButtons, "~")], "|"), kAv); } GetArbitraryData(key kAv, string sText, string sIdent){ llMessageLinked(LINK_THIS, LINK_MENU_DISPLAY, llDumpList2String([sIdent, "FALSE", sText, ""], "|"), kAv); } string StripResident(string a) { list lParam = llParseString2List(a,[" ", "."],[]); if(llGetListLength(lParam)==0 || llGetListLength(lParam)==1)return a; if(llToLower(llList2String(lParam,1)) == "resident"){ lParam = llDeleteSubList(lParam,1,1); }else return a; return llDumpList2String(lParam, " "); } Text(){ string sColor = GetColorStr(bool(g_iMask & MASK_WHITEFRAME)); g_sName = StripResident(g_sName); if(g_sPreferredName == ""){ if(g_sDisplayName != g_sName) llMessageLinked(LINK_SET, 0,""+ llGetSubString(g_sDisplayName+" ("+g_sName+")",0,23), "fw_data"); else llMessageLinked(LINK_SET,0,""+llGetSubString(g_sName,0,23),"fw_data"); } else llMessageLinked(LINK_SET,0,""+g_sPreferredName, "fw_data"); } CleanInventory() { list lDefaults = ["Board [AC]", "Board Menu [AC]", "Dialog Module [AC]", "Text", "Stall Board Flash Drive [AC]", "Board Notifier [AC]", "Service Daemon [AC]"]; integer i=0; integer end = llGetInventoryNumber(INVENTORY_ALL); for(i=0;iVacant - Available","fw_data"); #else llMessageLinked(LINK_SET,0,(string)llGetFreeMemory()+" bytes free", "fw_data"); #endif return; } g_kTexture = llLinksetDataRead("texture"); g_iExpireAt = (integer)llLinksetDataRead("expire"); g_kOwner = llLinksetDataRead("owner"); g_iMask = (integer)llLinksetDataRead("mask"); g_iNotification = (integer)llLinksetDataRead("notif"); g_sPreferredName = llLinksetDataRead("name"); g_kTransferID = llLinksetDataRead("transfer"); g_iTransferTimeout = (integer)llLinksetDataRead("transfer_expire"); g_vCustomColorText = (vector)llLinksetDataRead("customtxtcolor"); integer iChange=0; if(!g_iHaveKVP) g_iState = mask(SET, g_iState, STATE_REBOOT_PENDING); g_iHaveKVP=1; if(g_kLeasedTo == NULL_KEY){ DeletePayload(); llSleep(10); llResetScript(); return; } if(g_kTexture == ""){ g_kTexture = NULL_KEY; iChange++; } if(g_kTransferID == ""){ g_kTransferID=NULL_KEY; g_iTransferTimeout=0; iChange++; } if(llStringLength(g_kOwner) != 36){ if(g_kOwner == ""){ g_kOwner = NULL_KEY; iChange++; } } if(iChange){ SavePayload(); } llMessageLinked(LINK_SET, 0, "Restored Information", "fw_data"); llSleep(10); llSetTimerEvent(5); //state rebootfast; } PartialRestoreKVP() { g_kLeasedTo = llLinksetDataRead("lease"); if(g_kLeasedTo==""){ g_kLeasedTo=NULL; return; } g_kTexture = llLinksetDataRead("texture"); g_iExpireAt = (integer)llLinksetDataRead("expire"); g_kOwner = llLinksetDataRead("owner"); g_iMask = (integer)llLinksetDataRead("mask"); g_iNotification = (integer)llLinksetDataRead("notif"); g_sPreferredName = llLinksetDataRead("name"); g_kTransferID = llLinksetDataRead("transfer"); g_iTransferTimeout = (integer)llLinksetDataRead("transfer_expire"); g_vCustomColorText = (vector)llLinksetDataRead("customtxtcolor"); //state rebootfast; } RESET() { llLinksetDataReset(); }