v3.2.6 FINAL: Hybrid HUD Production Release - Verified Direct-Target Detach and Production Constants

This commit is contained in:
RebeccaNod1 2026-04-05 10:48:44 -06:00
parent 8b1dc9dd88
commit 404dba66a5
2 changed files with 12 additions and 4 deletions

View file

@ -15,7 +15,8 @@ integer calculateChannel(integer offset) {
// Use BOTH owner's key AND object's key to make channels unique per game instance // Use BOTH owner's key AND object's key to make channels unique per game instance
// This prevents interference when same owner has multiple game tables // This prevents interference when same owner has multiple game tables
string ownerStr = (string)llGetOwner(); string ownerStr = (string)llGetOwner();
string objectStr = (string)llGetKey(); // CRITICAL: Always use root prim (1) for channel calculation so scripts in child prims match
string objectStr = (string)llGetLinkKey(1);
string combinedStr = ownerStr + objectStr; string combinedStr = ownerStr + objectStr;
// Create a more unique hash using both keys // Create a more unique hash using both keys
@ -36,6 +37,8 @@ initializeChannels() {
} }
// Maximum number of players allowed in the game // Maximum number of players allowed in the game
// v3.2.5: Forced Sync for Debug Transparency
#define SCRIPT_ID_FLOATER 1
#define MAX_PLAYERS 10 #define MAX_PLAYERS 10
// Debug control - set to TRUE for verbose pick debugging, FALSE for normal operation // Debug control - set to TRUE for verbose pick debugging, FALSE for normal operation
@ -356,9 +359,10 @@ default {
integer chTarget = FLOATER_BASE_CHANNEL + i; integer chTarget = FLOATER_BASE_CHANNEL + i;
if (targetAv != NULL_KEY) { if (targetAv != NULL_KEY) {
llRegionSayTo(targetAv, chTarget, "CLEANUP"); llRegionSayTo(targetAv, chTarget, "CLEANUP");
} else {
llRegionSay(chTarget, "CLEANUP");
} }
// Redundant broadcast for total coverage
llRegionSay(chTarget, "CLEANUP");
llSleep(0.05); llSleep(0.05);
} }
// Clear ALL registries to allow fresh re-registration via Rez Guard // Clear ALL registries to allow fresh re-registration via Rez Guard

View file

@ -23,6 +23,7 @@ default {
listenHandle = llListen(start_param, "", NULL_KEY, ""); listenHandle = llListen(start_param, "", NULL_KEY, "");
myName = ""; myName = "";
llSetRemoteScriptAccessPin(1337); llSetRemoteScriptAccessPin(1337);
// Forced sync for v3.2.5 diagnostic
dbg("📊 [Status Float] Listener active on channel: " + (string)start_param); dbg("📊 [Status Float] Listener active on channel: " + (string)start_param);
} }
@ -89,7 +90,10 @@ default {
} }
} }
else if (message == "CLEANUP") { else if (message == "CLEANUP") {
dbg("🧹 [Status Float] CLEANUP signal received. Detaching and dying..."); dbg("🧹 [Status Float] CLEANUP signal received. Detaching from avatar...");
llDetachFromAvatar();
// Fallback for non-attachments
llSleep(0.1);
llDie(); llDie();
} }
else if (llSubStringIndex(message, "ATTACH_TO:") == 0) { else if (llSubStringIndex(message, "ATTACH_TO:") == 0) {