RestrainedLove Viewer Support for LSL-Plus

From Second Life Wiki
Jump to navigation Jump to search

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.