Difference between revisions of "RestrainedLove Viewer Support for LSL-Plus"
Maike Short (talk | contribs) (→State of implemented features: Layout) |
m (moved Restrained Life Viewer Support for LSL-Plus to RestrainedLove Viewer Support for LSL-Plus: RestrainedLove) |
||
(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 [[ | 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= | '''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. | 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:# | | 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:# | | 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:# | | 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:# | | 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:# | | 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:# | | 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" | | | 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" | | ||
| | | | ||
|} | |} | ||
=== 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 == | ||
* 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.