Difference between revisions of "RLVa / RLV Differences"

From Catznip
Jump to navigation Jump to search
(RLVa Command Differences)
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{RLVa / RLV differences Header}}
 
{{RLVa / RLV differences Header}}
  
RLVa shares no code with Marine Kelly's RLV implementation and while we're committed to the maintaining functional compatibility to the spirit of her specification we are under no obligation to implement every change or addition. In the same way she is not expected to mirror everything that appears in the [[RLVa|RLVa Specification]]. That said RLVa and RLV have historically followed a very close common path with additions to one ending up in the other and vice versa.
+
RLVa shares no code with Marine Kelly's RLV implementation and while we're committed to the maintaining functional compatibility to the spirit of her specification we are under no obligation to implement every change or addition. In the same way she is not expected to mirror everything that appears in the [[RLVa|RLVa Specification]]. That said RLVa and RLV have historically followed a very close common path with additions to one ending up in the other and vice versa. (sometimes via [[RLV Synonyms|Synonyms]]).
 +
 
 +
 
 +
==End User Differences==
 +
 
 +
 
 +
===Shared Wear===
 +
[[SharedWear]] significantly simplifies organising the contents of your [[♯RLV Folder|#RLV Folder]] by removing the need to create or rename attachments with their attachment point names. This is an update to the previous [[RLVa]] specific behavour that would create the required folder names for you automatically.
 +
 
 +
 
 +
==RLVa Developer Differences==
 +
 
 +
===Debugging Tools===
 +
[[RLVa]] features the [[RLVa Active Commands|Active Commands]] floater and a number of [[RLVa Debugging Tools|Debugging Tools]] that make it much easier to see what your scripts are doing and what commands are being executed. Assertion failures can optionally be enabled highlighting potential SL service bugs.
 +
 
 +
 
 +
===Give to #RLV Folder Depth & #RLV Folder Creation===
 +
As of Catznip R9 and Firestorm 4.6 the [[♯RLV Folder|#RLV Folder]] is automatically created when an inventory offer uses 
 +
[[Give_to_♯RLV|Give to #RLV]]. Previous versions of RLVa and all versions of RLV require the folder to created manually before use.
 +
 
 +
Also, [[♯RLV Folder|#RLV Folder]] inventory offers can be up to 3 sub folders deep (#RLV/~Level1/Level2/Level3) with all parent folders created if required. See [[Give_to_♯RLV|Give to #RLV]] for details.
  
==So, what are the actual differences ?==
 
  
 
<span id="channel_number">
 
<span id="channel_number">
Line 10: Line 29:
 
Many commands require a channel number to be specified in order to relay information from the viewer to script. RLVa requires this to be a  positive integer due to differences in LSL message size. Negative channels can only contain strings 256 bytes in length, positive channels can contain up to 1024 bytes.
 
Many commands require a channel number to be specified in order to relay information from the viewer to script. RLVa requires this to be a  positive integer due to differences in LSL message size. Negative channels can only contain strings 256 bytes in length, positive channels can contain up to 1024 bytes.
  
This is done to prevent scripters encountering RLVa commands outputting truncated data for non obvious reasons.
+
This is done to prevent RLVa commands appearing to output truncated data for a non obvious reason.
 +
 
 +
 
 +
 
 +
=RLV Synonyms=
 +
A select number of commands from RLV are implemented in RLVa via synonyms, this is to cover differences in naming schemes and sometimes differences in command behaviour / implementation. Synonyms are provided as a courtesy to offer a minimal level of cross API compatibility. It is strongly advised to use the commands as detailed in the [[RLVa]] specification as implementation differences could easily translate to non obvious unwanted behaviour.
 +
 
 +
==={{RLVaCommandHeader|camunlock||{{RLVaCommandType|ny}}}}===
 +
Maps to {{RLVaCommand|setcam_unlock||{{RLVaCommandType|ny}}}}. Changed to fit with rest of {{RLVaCommand|setcam||}} controls.
 +
 
 +
=RLVa Command Differences=
 +
Some commands have the same naming but operate in notably different ways or have optional extra parameters.
 +
 
 +
==={{RLVaCommand|detach|{{RLVaOptional|:{{RLVaParameter|attachment_point}}{{!}}{{RLVaParameter|attachment}}}}|{{RLVaCommandType|ny}}{{!}}{{RLVaCommandType|force}}}}===
 +
Optionally lock or remove attachment by UUID
 +
----
 +
==={{RLVaCommand|detachthis|{{RLVaOptional|:{{RLVaParameter|attachment_point}}{{!}}{{RLVaParameter|clothing_layer}}{{!}}{{RLVaParameter|attachment}}}}|{{RLVaCommandType|force}}}}===
 +
Optionally remove attachment by UUID
 +
----
 +
==={{RLVaCommand|fartouch|{{RLVaOptional|:{{RLVaParameter|distance}}}}|{{RLVaCommandType|ny}}}}===
 +
Optional distance can be specified, falling back to a default of 1.5m if omitted.
 +
----
 +
==={{RLVaCommand|remattach|{{RLVaOptional|:{{RLVaParameter|attachment_point}}{{!}}{{RLVaParameter|attachment}}}}|{{RLVaCommandType|force}}}}===
 +
Optionally remove attachment by UUID
 +
----
 +
==={{RLVaCommand|shownames|{{RLVaOptional|:{{RLVaParameter|agent}}}}|{{RLVaCommandType|ny}}}}===
 +
Optional agent UUID to be specified providing an exception.
 +
----
 +
==={{RLVaCommand|shownametags|{{RLVaOptional|:{{RLVaParameter|agent}}}}|{{RLVaCommandType|ny}}}}===
 +
Optional agent UUID to be specified providing an exception.
 +
----
 +
==={{RLVaCommand|sittp|{{RLVaOptional|:{{RLVaParameter|distance}}}}|{{RLVaCommandType|ny}}}}===
 +
Optional distance can be specified, falling back to a default of 1.5m if omitted.
 +
----
 +
==={{RLVaCommand|tpto|{{RLVaOptional|:{{RLVaParameter|region}}/}}{{RLVaParameter|position}}{{RLVaOptional|;{{RLVaParameter|lookat}}}}|{{RLVaCommandType|force}}}}===
 +
Destination can be specified by region name and local coordinates without the need for script based round trip to fetch global coordinates. Lookat vector optionally sets direction avatar faces on arrival.
 +
 
 +
 
 +
 
 +
[[Category:RLVa]]
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
  
 
[[Category:Support]]
 
[[Category:Support]]
 
[[Category:RLVa]]
 
[[Category:RLVa]]

Latest revision as of 16:34, 21 June 2016

RLVa Logo

RLVa is an alternative implementation and extension to the RLV API by Marine Kelly. RLVa interprets some things a little differently (usually in a less intrusive way) and has a number of extensions above and beyond Marine's specification. This wiki details the RLVa specification as it applies to Catznip, Firestorm and other RLVa Viewers. RLVa has been in majority use since 2009 and is what most users experience as or equate to being RLV even though that refers to a different specification and implementation.

RLVa shares no code with Marine Kelly's RLV implementation and while we're committed to the maintaining functional compatibility to the spirit of her specification we are under no obligation to implement every change or addition. In the same way she is not expected to mirror everything that appears in the RLVa Specification. That said RLVa and RLV have historically followed a very close common path with additions to one ending up in the other and vice versa. (sometimes via Synonyms).


End User Differences

Shared Wear

SharedWear significantly simplifies organising the contents of your #RLV Folder by removing the need to create or rename attachments with their attachment point names. This is an update to the previous RLVa specific behavour that would create the required folder names for you automatically.


RLVa Developer Differences

Debugging Tools

RLVa features the Active Commands floater and a number of Debugging Tools that make it much easier to see what your scripts are doing and what commands are being executed. Assertion failures can optionally be enabled highlighting potential SL service bugs.


Give to #RLV Folder Depth & #RLV Folder Creation

As of Catznip R9 and Firestorm 4.6 the #RLV Folder is automatically created when an inventory offer uses Give to #RLV. Previous versions of RLVa and all versions of RLV require the folder to created manually before use.

Also, #RLV Folder inventory offers can be up to 3 sub folders deep (#RLV/~Level1/Level2/Level3) with all parent folders created if required. See Give to #RLV for details.


Positive Channel Numbers

Many commands require a channel number to be specified in order to relay information from the viewer to script. RLVa requires this to be a positive integer due to differences in LSL message size. Negative channels can only contain strings 256 bytes in length, positive channels can contain up to 1024 bytes.

This is done to prevent RLVa commands appearing to output truncated data for a non obvious reason.


RLV Synonyms

A select number of commands from RLV are implemented in RLVa via synonyms, this is to cover differences in naming schemes and sometimes differences in command behaviour / implementation. Synonyms are provided as a courtesy to offer a minimal level of cross API compatibility. It is strongly advised to use the commands as detailed in the RLVa specification as implementation differences could easily translate to non obvious unwanted behaviour.

@camunlock=<n|y>

Maps to @setcam_unlock=<n|y>. Changed to fit with rest of @setcam controls.

RLVa Command Differences

Some commands have the same naming but operate in notably different ways or have optional extra parameters.

@detach[:<attachment_point>|<attachment>]=<n|y>|force

Optionally lock or remove attachment by UUID


@detachthis[:<attachment_point>|<clothing_layer>|<attachment>]=force

Optionally remove attachment by UUID


@fartouch[:<distance>]=<n|y>

Optional distance can be specified, falling back to a default of 1.5m if omitted.


@remattach[:<attachment_point>|<attachment>]=force

Optionally remove attachment by UUID


@shownames[:<agent>]=<n|y>

Optional agent UUID to be specified providing an exception.


@shownametags[:<agent>]=<n|y>

Optional agent UUID to be specified providing an exception.


@sittp[:<distance>]=<n|y>

Optional distance can be specified, falling back to a default of 1.5m if omitted.


@tpto[:<region>/]<position>[;<lookat>]=force

Destination can be specified by region name and local coordinates without the need for script based round trip to fetch global coordinates. Lookat vector optionally sets direction avatar faces on arrival.