/* * oc_self_lock.lsl * Erlaubt dem Wearer immer das Halsband selbst zu locken & unlocken */ string g_sSubMenu = "Self Lock"; string g_sParentMenu = "Apps"; integer CMD_WEARER = 503; integer NOTIFY = 1002; integer RLV_CMD = 6000; integer MENUNAME_REQUEST = 3000; integer MENUNAME_RESPONSE = 3001; integer DIALOG = -9000; integer DIALOG_RESPONSE = -9001; string UPMENU = "BACK"; key g_kWearer; ShowMenu(key kAv) { string p = "\nπŸ”’ Self Lock\n\n"; p += "Hier kannst du das Halsband immer selbst sperren oder entsperren.\n"; llMessageLinked(LINK_SET, DIALOG, (string)kAv + "|" + p + "|0|Lock Collar`Unlock Collar`Unlock All`" + UPMENU + "| |" + (string)CMD_WEARER, "SelfLockMenu"); } default { state_entry() { g_kWearer = llGetOwner(); llOwnerSay("Self Lock Addon geladen."); } link_message(integer sender, integer num, string str, key id) { // MenΓΌ unter Apps registrieren if (num == MENUNAME_REQUEST && str == g_sParentMenu) { llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, ""); } else if (num == DIALOG_RESPONSE) { list l = llParseString2List(str, ["|"], []); string btn = llList2String(l, 1); key av = llList2Key(l, 0); if (av != g_kWearer) return; if (btn == g_sSubMenu) { ShowMenu(av); } else if (btn == "Lock Collar") { llMessageLinked(LINK_SET, RLV_CMD, "detach=n", "selflock"); llMessageLinked(LINK_SET, NOTIFY, "0πŸ”’ Collar locked by wearer.", av); } else if (btn == "Unlock Collar") { llMessageLinked(LINK_SET, RLV_CMD, "detach=y", "selflock"); llMessageLinked(LINK_SET, NOTIFY, "0πŸ”“ Collar unlocked by wearer.", av); } else if (btn == "Unlock All") { llMessageLinked(LINK_SET, RLV_CMD, "clear", "selflock"); llMessageLinked(LINK_SET, NOTIFY, "0πŸ”“ All restrictions cleared by wearer.", av); } else if (btn == UPMENU) { llMessageLinked(LINK_SET, CMD_WEARER, "menu Apps", av); } } } }