Release: RLVa-1.1.0
*waves*
Emerald just released so that means the test phase for RLVa-1.1.0 is finished as well
.
—
The lists below aren’t exhaustive but highlight additions/changes/fixes that “most people” might care about (see the release notes for the full change log).
New additions:
1) Auto-create folder for “no modify” attachments under #RLV when worn
If you “Wear” (or “Attach To”) a “no modify” item somewhere under the shared #RLV folder the viewer will automatically create the appropriate “.(attachpt)” folder and move the item into it (if it doesn’t already exist).
This should hopefully make creating shared folders easier since – as long as you have “Enable Wear” – all you have to do is move the items to a folder under #RLV and then pick “Add to Outfit” and you’re done
.
(If for any reason you *don’t* want items under the #RLV to be auto-renamed – or auto-moved – you can uncheck “Advanced / RLVa / Debug / Rename Shared Items on Wear”)
2) “Unable to open [TYPE] due to RLV restrictions”
When you double-click a notecard/texture/script when @viewnote/viewtexture/viewscript restricted (or when trying to edit a script inside of a non-detachable attachment) it can be frustrating when it doesn’t open up and it might take a minute before you realize that it’s due to a currently enforced restriction.
So to complement greying out “Open” on the context menu you’ll now see an “Unable to open texture due to RLV restrictions” if you double-click a texture when @viewtexture restricted.
(Depending on the like/don’t like I’ll add similar ones for other “silently blocked” things like teleporting)
3) “Force wear” will activate/deactivate gestures
Nothing earth-shattering but some people might find this one useful.
4) Hardcoded strings now live in rlva_strings.xml
This isn’t really something most people will care about but it does have some side-effects that might appeal to a few people:
- If anyone wants to help and translate the strings into one of the languages the viewer supports that would definitely be appreciated
- You could change the text that gets sent out when someone IMs while you’re @recvim blocked for instance
- The list of “anonyms” that @shownames uses is customizable (you can replace existing ones or extend the list by adding your own custom ones)
5) Avatar-to-avatar “Give to #RLV”
A few people suggested this one: if they @showinv=n restrict someone they wanted the ability to “force wear” something on that person without first unlocking that person’s inventory and then asking them to move the folder they just received to their #RLV.
6) UI tweaks
- “Teleport Home” is now visually disabled when @tplm=n restricted to make it more obvious that it’s blocked
- “Sit” and “Stand Up” weren’t visually disabled on the pie-menu when @sit=n/sittp=n/fartouch=n and @unsit=n restricted
- The cursor no longer changes to indicate a “special action” if it’s something that’s blocked anyway (ie if you hover the mouse over a touchable object that’s >1.5m away under @fartouch=n the mouse cursor won’t change away from the default pointer)
7) Showing a custom notification when X restricted
This is actually a scaled down version of something else I wanted to put in that didn’t quite work out in the end but since it’s only a handful of lines I thought I might add it in anyway and see if it’s of any use to anyone (so please do let me know if you’re using it or it might go *poof* at some point).
Practical example: if you want to know when you’re @recvim restricted you could add a notification with the text “Unable to still receive IMs” and “Able to receive IMs again” and you’d see the first notification on the *first* (but not subsequent) @recvim=n restriction and the second notification on the very *last* @recvim=y restriction.
Take a peek at rlva_strings.xml if you want to play with it (there’s a commented out example for @defaultwear there)
8 ) Better command handling feedback when RestrainedLifeDebug is TRUE
First of all “unset” behaviours (ie @detach=y without a preceding @detach=n) and “duplicate” behaviours (ie @detach=n followed by another @detach=n) no longer show as “failed”.
Instead you’ll see: “Object executes: @detach=y (unset), detach=n, detach=n (duplicate)”
All commands perform validation as well which clears up several personal pet-peeve bugs and hopefully makes it easier for script creators to catch errors as well.
Examples:
- Object failed: @detachme=n (invalid param)
-> only @detachme=force has any meaning
-> note that if you issue @getstatus on the object it *will* still report /detachme so it doesn’t break being able to set nonsensical behaviours - Object failed: @detachme:spine=force (invalid option)
-> “spine” isn’t a valid option to supply to “detachme” - Object failed: @detach:test=force (invalid option)
-> in this specific case “invalid option” means “no such folder exists” (I might make that clearer if anyone cares about it strongly) - Object failed: @attach:test=force (missing #RLV)
-> command failed because the user has no shared #RLV folder - Object failed: @foo=bar (syntax error)
-> should be fairly obvious - Object failed: @setenv=n (command disabled)
-> user set RestrainedLifeNoSetEnv to TRUE - Object failed: @showminmap=n (unknown command)
-> helps finds typos
9) “Composite folders”
This really deserves its own blog post. I just added it here so people can poke me to explain what it does :p.
—
Fixes:
1) @version and @versionum execute at regular intervals throughout the log-on
The old behaviour was that all commands were retained until about the time the log-on screen disappears but it seems there are a few scripted items out there with a very short time-out (and some people who take a long time logging on) so hopefully responding to @version and @versionnum at regular intervals will fix things.
2) @setrot:<angle>=force rotates clockwise while regular RLV rotates counter-clockwise
(This one was actually fixed “early” in Emerald and Imprudence but I’m not sure if either released since it was fixed)
3) “folded” folders should inherit “nostrip” from their parent folder(s)
(ie #RLV/Test (nostrip)/.(spine) should be “nostrip” since it folds in under “Test (nostrip)”)
—
“Enable Shared Wear” (the ability to do away with having to specify attachment point names for shared inventory folders for non-D/s use) unfortunately had to be removed due to SVC-5383 :(.
The “experimental” commands are present in the code but are *not* available unless you #define RLV_EXPERIMENTAL_CMDS (see rlvdefines.h). (I’ll update the preview viewer soon to reflect RLVa-1.1.0 and Snowglobe 1.3 RC1)
—
For people already using the patch: I moved the #include’s for rlv*.h from llagent.h to each individual *.cpp file so that might result in quite a lot of rejects. It’s not something I did very lightly but it drastically reduced the amount of time it took me to do a rebuild of the viewer.
I also don’t think there are still any viewers using SL-1.22.11? If I’m wrong please just ask for a patch and I’ll make one
.
I also have a patch for Snowglobe-1.2.4 if anyone’s specifically interested in that one, but it seemed that with an imment Snowglobe-1.3 it might not be needed/desired.
If there are any problems with any of the patches please do let me know and I’ll try my best to help
.
Code downloads:
RLVa-1.1.0o_20100218_SL-1.23.5-full.patch – SL-1.23.5
RLVa-1.1.0o_20100218_Snowglobe-1.3.1-full.patch – Snowglobe-1.3.1
RLVa-1.1.0o_20100218_SL-1.23.5-diff.patch – From 1.0.5e to 1.1.0o (SL-1.23.5)
Release notes:
release_notes_RLVa-1.1.0.txt
Wouldn’t it be better if the mouse cursor did change, but changed to the “NO” symbol ( https://secure.wikimedia.org/wikipedia/en/wiki/No_symbol , ⃠ )?
I’m not sure if that wouldn’t be more confusing to the average person? My thought was that things that are clearly too far away are obvious enough (say >10m away), but problems crop up when trying to touch something that’s nearby.
I.e. a prim that’s partially within range and partially out of range
1) If you show the touch cursor as soon as the mouse hovers over it then you have to slide it up and down and click like crazy and hope that you’ll hit the “sweet spot”
2) If you show the touch cursor only on the spots where left-clicking will actually work then that’s hopefully more helpful and intuitive feedback (that was the idea anyway
). Worst case people won’t get it and will fall back to the 1) behaviour.
3) If you show a “prohibited” cursor on places where it can’t be touched then that might lead people to think the entire thing can’t be touched and they wouldn’t try sliding the mouse around?
Hi Kitty
Emerald Viewer 1.23.5 (1585) Feb 18 2010 02:15:28 (Emerald Viewer)
I tried to give an item to someone under NoInventory-Restriction, but I never got asked If I wanted it being placed in the #RLV. How does it exactly work?
Nati
*waves*
Guess I should have been clearer about that, sowwies
.
First of all it’s not something that works on the sender’s viewer but rather on the recipient’s viewer (eg the person you’re giving something to). So if you’re using the latest Emerald/RLVa but they’re not then it won’t ever work (if they’re on the latest Emerald/RLVa but you’re not then that will work fine though).
Second the folder needs to be named the same way it would have to be named for a script as well. Ie if you wanted to give someone a folder called “Gown” then you’d need to rename the folder to “#RLV/~Gown” before dropping it on them (they’ll get a popup the first time a script/avie gives them that kind of folder and whether to enable or disable it).
Finally: whether or not it will actually end up in their #RLV folder is still dependant on whether or not they will allow things to be placed under their #RLV (Advanced / RLVa / Give to #RLV checked or unchecked or with RLV in general the RestrainedLifeGiveToRLV debug setting) and of course they need to have an #RLV folder in the first place.
—
A side comment is that if the folder contains any prim attachments then those need to be named properly too or they won’t attach (ie “Prim skirt” wouldn’t attach but “Prim skirt (pelvis) would be fine).
—
I hope that made any kind of sense
. If not, please let me know
.
If you’re not familiar with llGiveInventoryList and the #RLV/~XXX naming then I guess it would look horribly complicated and I should have been more clear about that…
I was hoping that this version fixed the enable wear (now named enable defualt wear) issue. Currently RLV locked items can simply be replaced as if they weren’t locked by checking this item. Is there a RLV fix planned for this issue?
*waves*
“Enable Wear” was renamed to “Enable Default Wear” because there was a “Shared Wear” at some point during 1.1’s lifecycle
. (It also fits the name of the restriction better)
I’m not entirely sure what specific issue you’re referring to though? If an attachment is locked and something is worn with “Enable Wear” that ends up going on the same attachment point (and replacing the locked attachment) then – as long as the locked attachment is scripted properly – the locked attachment will just end up being reattached (eventually).
For scripted attachments that happens as soon as the viewer receives notice that the asset has been update (usually less than a second to a few seconds) and for non-scripted attachments it happens after 30 seconds.
It’s possible that there is a reattach-on-detach bug, but in most cases of an item not reattaching it’s a flaw in the script where it’ll issue @clear when detached (and hence marking itself as “unlocked”) and in those cases a simple llAttachToAvatar will detach the attachment as well.
If the issue is the fact that the item gets replaced/detached for any short amount of time then simply unchecking “Enable Default Wear” will fix the issue (or being careful when attaching since with a lot of items it will be predictable where it might go and whether or not that might conflict), or just issue a @defaultwear=n if someone shows that they can’t use it responsibly.
I’ll IM you as well in case I missed what you were referring to
.
so yea, what is Composite folders? possible to shorten it so we at least can get a vague idea?
I found a problem by sending the @remattach:attachpoint=n
How to reproduce:
1. Lock an object you wear (in this case a collar) (@detach=n)
2. From the same object send the command @remattach:attachpoint=n
3. Then send @remattach:attachpoint=y
The object is now detachable. On the original viewer it is not.
Forgot to say i’m running Emerald with RLVa 1.1.0
Is there a way, or could there be a way, to control the group and group title using RLV?