Back when I last used to wear them 24/7 I never made use of the outfit manager of my viewer of choice. Back when I first started wearing them all the time (and had them locked on) there wasn't even an outfit manager. After they were last unlocked I started experimenting with the outfit manager and have got very used to using it. Recently, of course, I've started having items locked on me with RLV again and I've found, to my delight, that this actually does mix well with outfit management.
With one small wrinkle though...
The HUD that the RR cuffs rezzes and attaches doesn't seem to lock itself on with RLV. This means that any outfit that doesn't contain a link to the HUD (which is all of them) will throw the HUD off. And, of course, the HUD doesn't like this. It moans and blabs and says I'm doing bad things. Which is a little annoying because I'm not.
I did a little bit of searching through the docs and couldn't find an obvious solution (if I have missed one, please do say so) so I fixed it the one way I know how: with scripting. I wrote a little script that I've dropped into a prim that I've attached as a HUD (in my case a 0.02x0.02x0.02 sphere). Touch toggles it on and off. When toggled on it locks itself and the attachment point that's used by the RR HUD. Because of this outfit changes now happen without knocking the RR HUD off.
On the off chance that it's useful to anyone else... here it is:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
////////////////////////////////////////////////////////////////////// | |
// RR HUD Locker | |
// By Antony Fairport. | |
// | |
// I wear the Real Restraint Elegance Cuffs pretty much all the time. | |
// They're locked on and they stay locked on. The probem, I've found | |
// is that the HUD they rez and attach doesn't lock itself in place. | |
// This means that every time I change my outfit, with the outfit | |
// manager in Firestorm, if the HUD isn't in the outfit (which it | |
// generally isn't because many of these outfits were created before | |
// I had the cuffs locked on), it gets knocked off. When it gets | |
// knocked off another one ends up being rezzed and attached and | |
// it moans and whines at me and, it seems, at my Mistress. | |
// | |
// So I created this script that I drop in a small prim that I | |
// also attach as a HUD. When touched *after* a RR HUD is in place | |
// it'll lock itself and the RR HUD. This means the RR HUD won't | |
// get knocked off during outfit changes. | |
// | |
// That's the idea anyway. Suggestions of smarter solutions are | |
// very much welcome. | |
////////////////////////////////////////////////////////////////////// | |
// Colours to use when in different states. | |
vector UNLOCKED_COLOUR = < 0.0, 1.0, 0.0 >; | |
vector LOCKED_COLOUR = < 1.0, 0.0, 0.0 >; | |
////////////////////////////////////////////////////////////////////// | |
// Lock with RLV. | |
RLVLock() | |
{ | |
llOwnerSay( "@detach=n,detach:bottom=n" ); | |
} | |
////////////////////////////////////////////////////////////////////// | |
// Unlock with RLV. | |
RLVUnlock() | |
{ | |
llOwnerSay( "@clear" ); | |
} | |
////////////////////////////////////////////////////////////////////// | |
// Default state. | |
default | |
{ | |
////////////////////////////////////////////////////////////////// | |
// State entry. | |
state_entry() | |
{ | |
// Simply jump to the unlocked state. | |
state Unlocked; | |
} | |
} | |
////////////////////////////////////////////////////////////////////// | |
// Unlocked state. | |
state Unlocked | |
{ | |
////////////////////////////////////////////////////////////////// | |
// State entry. | |
state_entry() | |
{ | |
// Set the colour. | |
llSetColor( UNLOCKED_COLOUR, ALL_SIDES ); | |
// Ensure that all RLV restrictions are cleared. | |
RLVUnlock(); | |
} | |
////////////////////////////////////////////////////////////////// | |
// Handle a touch. | |
touch_end( integer num_detected ) | |
{ | |
// Jump to the locked state. | |
state Locked; | |
} | |
} | |
////////////////////////////////////////////////////////////////////// | |
// Locked state. | |
state Locked | |
{ | |
////////////////////////////////////////////////////////////////// | |
// State entry. | |
state_entry() | |
{ | |
// Set the colour. | |
llSetColor( LOCKED_COLOUR, ALL_SIDES ); | |
// Deny detaching this HUD and the RR HUD (which normally goes | |
// on "Bottom"). | |
RLVLock(); | |
} | |
////////////////////////////////////////////////////////////////// | |
// Handle a touch. | |
on_rez( integer start_param ) | |
{ | |
// We're being rezzed, which likely means the avatar is logging | |
// in. We should do the lock here. However, because I probably | |
// can't be sure what order attachments rez on login, and | |
// because I want to lock the RR HUD *after* it exists (dur!) | |
// we'll set off a timer and do the lock when that fires. It's | |
// not pretty but it works. | |
llSetTimerEvent( 5.0 ); | |
} | |
////////////////////////////////////////////////////////////////// | |
// Handle a timer event. | |
timer() | |
{ | |
// Kill the timer. | |
llSetTimerEvent( 0.0 ); | |
// Apply the lock. | |
RLVLock(); | |
} | |
////////////////////////////////////////////////////////////////// | |
// Handle a touch. | |
touch_end( integer num_detected ) | |
{ | |
// Jump to the unlocked state. | |
state Unlocked; | |
} | |
} |