Difference between revisions of "RestrainedLove Viewer Support for LSL-Plus"

From Second Life Wiki
Jump to navigation Jump to search
 
(7 intermediate revisions by 2 users not shown)
Line 3: Line 3:
The Restraint Life Viewer is a custom Second Life Viewer by Marine Kelley that has some additional features to make the user more or less helpless.
The Restraint Life Viewer is a custom Second Life Viewer by Marine Kelley that has some additional features to make the user more or less helpless.


This page documents an implementation of the [[LSL_Protocol/RestrainedLifeAPI|Restrained Life API]] as an Agent Event Handler Module in LSL Plus. So you can use it to test your RLV enabled scripts.
This page documents an implementation of the [[LSL Protocol/RestrainedLoveAPI|Restrained Love API]] as an Agent Event Handler Module in LSL Plus. So you can use it to test your RLV enabled scripts.


'''Download''' the current Alpha version at: '''http://sourceforge.net/tracker2/?func=detail&aid=2464575&group_id=219595&atid=1046875'''
'''Download''' the current Alpha version at: '''http://sourceforge.net/tracker2/?func=detail&aid=2466464&group_id=219595&atid=1046875'''


== How to use? ==
== How to use? ==
Line 11: Line 11:
Extract the zip file into your workspace and keep the directory structure. You will find a the scripts within modules/sim/rlv. There are two subpackages there: "iface" and "impl". The modules in the "iface" package are intended for use by other scripts or the simulator itself. The modules in the impl subpackage contain the code doing the actual work. And functions defined there may change in the next version.
Extract the zip file into your workspace and keep the directory structure. You will find a the scripts within modules/sim/rlv. There are two subpackages there: "iface" and "impl". The modules in the "iface" package are intended for use by other scripts or the simulator itself. The modules in the impl subpackage contain the code doing the actual work. And functions defined there may change in the next version.


There are two simulators in the folder rlvworld. "playground" is the one I use for quick&dirty tests during development. "test" is the one which contains automated regression tests that verify that future changes don't introduce new bugs.


=== Adding RLV to an Avatar ===
=== Adding RLV to an Avatar ===
Line 26: Line 27:
== State of implemented features ==
== State of implemented features ==


This implementation is work in progress. Not all features are implemented. And I don't even have an idea how to implement some, yet. But at the same time it is already useable.
This implementation is work in progress. Not all features are implemented. And I don't even have an idea how to implement some, yet. The clothing and inventory handling is something that normal LSL scripts cannot do and therefore there is obviously no support in LSL Plus for that, yet.
 
Ignoring the clothing issue, the implementation is already useable:


<div style="background-color:#AFA; padding: 1em; border: 2px solid #0A0; font-size: 1.2em; color: #000; text-align: center">  
<div style="background-color:#AFA; padding: 1em; border: 2px solid #0A0; font-size: 1.2em; color: #000; text-align: center">  
Line 40: Line 43:
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#FF0" |  
| style="background-color:#0F0" | done
|
|
|-
|-
Line 46: Line 49:
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#FF0" |  
| style="background-color:#0F0" | done
|
|
|-
|-
Line 52: Line 55:
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#FF0" |  
| style="background-color:#0F0" | done
|
|
|}
|}
Line 64: Line 67:
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#FF0" |  
| style="background-color:#0F0" | done
|
|
|-
|-
Line 82: Line 85:
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#FF0" |  
| style="background-color:#0F0" | done
|
|
|-
|-
Line 88: Line 91:
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#FF0" |  
| style="background-color:#0F0" | done
|
|
|-
|-
Line 111: Line 114:
| getsitid
| getsitid
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | partly
| style="background-color:#FF0" |
| style="background-color:#FF0" |
|
| there is a delay between a force-sit and the update of this in the real RLV.
|-
|-
| getenv_
| getenv_
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#FF0" |
| style="background-color:#FF0" |
| style="background-color:#FF0" |
|
| need to get a list of values depending on the named settings
|}
|}


=== Force ===
=== Force ===


{| {{Prettytable}}
! Force || idea how to || implemented || test impl. || comments
|-
| remoutfit
| style="background-color:#FF0" |
| style="background-color:#FF0" | partly
| style="background-color:#FF0" |
| restrictions obeyed, but LSL Plus does not support avatar inventory / attachments, yet
|-
| detach
| style="background-color:#FF0" |
| style="background-color:#FF0" | partly
| style="background-color:#FF0" |
| restrictions obeyed, but LSL Plus does not support avatar inventory / attachments, yet
|-
| sit
| style="background-color:#0F0" | done
| style="background-color:#0F0" | partly
| style="background-color:#FF0" |
| [http://sourceforge.net/tracker2/?func=detail&aid=2463567&group_id=219595&atid=1046873 cannot check 1.5 meter limit if sittp is restricted because llGetPos does not work. cannot change position because llSetPos do not work]
|-
| unsit
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#FF0" |
|
|-
| attach
| style="background-color:#FF0" |
| style="background-color:#FF0" |
| style="background-color:#FF0" |
| LSL Plus does not support avatar inventory / attachments, yet
|-
| attachall
| style="background-color:#FF0" |
| style="background-color:#FF0" |
| style="background-color:#FF0" |
| LSL Plus does not support avatar inventory / attachments, yet
|-
| detachall
| style="background-color:#FF0" |
| style="background-color:#FF0" |
| style="background-color:#FF0" |
| LSL Plus does not support avatar inventory / attachments, yet
|-
| tpto
| style="background-color:#0F0" | done
| style="background-color:#0F0" | partly
| style="background-color:#FF0" |
| [http://sourceforge.net/tracker2/?func=detail&aid=2463567&group_id=219595&atid=1046873 LSL Plus does not update avatar position]
|-
| setenv_
| style="background-color:#0F0" | done
| style="background-color:#0F0" | done
| style="background-color:#FF0" |
|
|}
=== Event Processing ===
=== Event Processing ===


Line 130: Line 190:
== Known issues ==
== Known issues ==


TODO
* I had to move functions from the module restrictions.lslm to force.lslm because I was unable to include the module  restrictions.lslm in force.lslm.

Latest revision as of 04:36, 28 July 2012

LSL Plus by Rob Greayer is a nice IDE for editing and testing LSL scripts out of world. It enables you to do testing in a simulated world within the IDE with break point and debugging support.

The Restraint Life Viewer is a custom Second Life Viewer by Marine Kelley that has some additional features to make the user more or less helpless.

This page documents an implementation of the Restrained Love API as an Agent Event Handler Module in LSL Plus. So you can use it to test your RLV enabled scripts.

Download the current Alpha version at: http://sourceforge.net/tracker2/?func=detail&aid=2466464&group_id=219595&atid=1046875

How to use?

Extract the zip file into your workspace and keep the directory structure. You will find a the scripts within modules/sim/rlv. There are two subpackages there: "iface" and "impl". The modules in the "iface" package are intended for use by other scripts or the simulator itself. The modules in the impl subpackage contain the code doing the actual work. And functions defined there may change in the next version.

There are two simulators in the folder rlvworld. "playground" is the one I use for quick&dirty tests during development. "test" is the one which contains automated regression tests that verify that future changes don't introduce new bugs.

Adding RLV to an Avatar

If you are not doing any additional event processing for that agent, you can simply select

modules.sim.rlv.iface.simple avatar handler.lslm

as Event Handler.

Adding RLV support to a scripted Avatar

If you already have an event handler for an avatar, you cannot use the "simple avatar handler.lslm" because there can only be one handler per avatar. Please import the module

modules.sim.rlv.iface.rlv_support.lslm

into your own avatar event handler. You can have a look at the "simple avatar handler.lslm" to learn how to use it.

State of implemented features

This implementation is work in progress. Not all features are implemented. And I don't even have an idea how to implement some, yet. The clothing and inventory handling is something that normal LSL scripts cannot do and therefore there is obviously no support in LSL Plus for that, yet.

Ignoring the clothing issue, the implementation is already useable:

Any kind of help is very welcome.

Restrictions

Command idea how to implemented test impl. comments
adding restrictions done done done
removing restrictions done done done
clearing restrictions done done done

Queries

Query idea how to implemented test impl. comments
version done done done
getoutfit LSL Plus does not support avatar inventory / attachments, yet
getattach LSL Plus does not support avatar inventory / attachments, yet
getstatus done done done
getstatusall done done done
getinv LSL Plus does not support avatar inventory / attachments, yet
getinvworn LSL Plus does not support avatar inventory / attachments, yet
findfolder LSL Plus does not support avatar inventory / attachments, yet
getsitid done partly there is a delay between a force-sit and the update of this in the real RLV.
getenv_ done done

Force

Force idea how to implemented test impl. comments
remoutfit partly restrictions obeyed, but LSL Plus does not support avatar inventory / attachments, yet
detach partly restrictions obeyed, but LSL Plus does not support avatar inventory / attachments, yet
sit done partly cannot check 1.5 meter limit if sittp is restricted because llGetPos does not work. cannot change position because llSetPos do not work
unsit done done
attach LSL Plus does not support avatar inventory / attachments, yet
attachall LSL Plus does not support avatar inventory / attachments, yet
detachall LSL Plus does not support avatar inventory / attachments, yet
tpto done partly LSL Plus does not update avatar position
setenv_ done done

Event Processing

TODO

Known issues

  • I had to move functions from the module restrictions.lslm to force.lslm because I was unable to include the module restrictions.lslm in force.lslm.