From 6351a61974f06f831157ebe67344b3274be610d1 Mon Sep 17 00:00:00 2001 From: NikkiLacrima <111503035+NikkiLacrima@users.noreply.github.com> Date: Tue, 19 May 2026 18:47:56 +0200 Subject: [PATCH 1/2] Update oc_relay.lsl Add a relay ping for sources after tp. --- src/collar/oc_relay.lsl | 57 ++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/src/collar/oc_relay.lsl b/src/collar/oc_relay.lsl index c43df0b5..210eba75 100644 --- a/src/collar/oc_relay.lsl +++ b/src/collar/oc_relay.lsl @@ -38,6 +38,8 @@ Nikki Lacrima *Oct 2025 - init() function for rez state, factory clean on CHANGE_OWNER reducing memory use to handle large relay messages only default state, remove RLV function (just a wrapper to linkmessage RLV_CMD) + *May 2026 - Add relay ping after teleport + et al. @@ -495,6 +497,29 @@ CheckSitTarget() { LSDWrite("sittarget", (string)g_kSitTarget); } +DoRelayPing() { + // read list of previous sources to ping for reapply + g_lPendingReapply = []; + integer i; + list sources = llLinksetDataFindKeys(LSDPrefix+"_source_.*", 0, 20); + for (i=0; i< llGetListLength(sources); i++) { + list data = llParseString2List(llList2String(sources,i),["_"],[""]); + key kID = llList2Key(data, 2); + g_lPendingReapply += [kID]; + } + + if (g_iMode) { + for (i=0;i0) { integer i = 0; for (i=0; i Date: Fri, 26 Jun 2026 10:37:33 +0200 Subject: [PATCH 2/2] Make PromptForSource display object owner correctly Updated PromptForSource function to display object owner correctly. Removed global variable g_kObjectOwner --- src/collar/oc_relay.lsl | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/collar/oc_relay.lsl b/src/collar/oc_relay.lsl index 210eba75..6af7cb28 100644 --- a/src/collar/oc_relay.lsl +++ b/src/collar/oc_relay.lsl @@ -39,7 +39,8 @@ Nikki Lacrima reducing memory use to handle large relay messages only default state, remove RLV function (just a wrapper to linkmessage RLV_CMD) *May 2026 - Add relay ping after teleport - + *Jul 2026 - Display correct object owner in PromptForSource(key kID), removed global g_kObjectOwner. + Proposed solution by SheryBanana in world. et al. @@ -127,7 +128,6 @@ list g_lPendingReapply; // sourceId to wait for pong reply key g_kForceSitSource; // LSD relay_sitter = UUID key g_kSitTarget; // LSD relay_sittarget=UUID -key g_kObjectOwner; key g_kWearer; integer g_iHasOwners=FALSE; @@ -449,15 +449,25 @@ CheckAskSource(){ if (llGetListLength(g_lPendingSourceList) == 0) return; key kSource = llList2Key(g_lPendingSourceList,0); if (g_iTrustOwners || g_iTrustTrusted) { - g_kObjectOwner = llList2Key(llGetObjectDetails(kSource, [OBJECT_OWNER]),0); - llMessageLinked(LINK_SET, AUTH_REQUEST, "relay", g_kObjectOwner); + key kOwner = llList2Key(llGetObjectDetails(kSource, [OBJECT_OWNER]),0); + llMessageLinked(LINK_SET, AUTH_REQUEST, "relay", kOwner); } else { PromptForSource(kSource); } } -PromptForSource(key kID){ - Dialog(llGetOwner(), "[Relay]\n\nObject Name: "+llKey2Name(kID)+"\nObject ID: "+(string)kID+"\nObject Owner: secondlife:///app/agent/"+(string)g_kObjectOwner+"/about\n\nIs requesting to use your RLV Relay, do you want to allow it?", ["Yes", "No"], [], 0, CMD_WEARER, "AskPrompt"); +PromptForSource(key kID) +{ + key kOwner = llList2Key(llGetObjectDetails(kID, [OBJECT_OWNER]), 0); + + Dialog( + llGetOwner(), + "[Relay]\n\nObject Name: " + llKey2Name(kID) + + "\nObject ID: " + (string)kID + + "\nObject Owner: secondlife:///app/agent/" + (string)kOwner + "/about" + + "\n\nIs requesting to use your RLV Relay, do you want to allow it?", + ["Yes", "No"], [], 0, CMD_WEARER, "AskPrompt" + ); llSetTimerEvent(60); }