Skip to content

Home old

LeonaMorro edited this page Jun 14, 2017 · 1 revision

Prologue

Why a new RLV plugin?

The RLV plugin shipped with the Gecko Release of nPose has a few drawbacks that makes it a little hard to use. Most of the drawbacks are by design and a few of them are annoying little bugs. In one of my build I decided to implement a Timer (Trap) function, but the existing timer plugin wasn't much flexible. As I looked through the code of the RLV plugin and the RLV timer plugin I noticed that this was by design. The timer can't work as I would like it to work, if it isn't integrated to the RLV plugin itself. As I was doing so I soon realized the the code design would not allow me to seamless integrate the new function. So I finally decided to rewrite constitutive parts of the plugin from the scratch. The goal I had in mind was:
A code design that is clean, covers (almost) any situation and that is easy to use for builders and users.

Backward compatibility?

No. You can't simply replace the RLV plugins in existing builds.
As I designed the new logic I came to a point that was worth to implement but would break the backward compatibility. I talked with Howard (the maintainer of nPose) about it and he said that he would be willing to ship both, the old RLV plugin and the new nPose RLV+ plugin. So I decided to get rid of outdated customs and practices completly. But do not scare, you will see that it will very easy to implement the new nPose RLV+ plugin into your build.

nPose RLV+ in your builds

Basic

  1. Your build must at least contain the following scripts:
  • nPose Core
  • nPose Dialog
  • nPose menu
  • nPose NC Reader
  • nPose Slave
  • nPose RLV+ Core
  • nPose RLV+ Menu (if you want to use a the menu)
  1. Add a NC called BTN:-RLV- with the following content:
    LINKMSG|-8000|showMenu,%AVKEY%,%CARDNAME%

DONE.

What can you expect?

  • You can grab your victims (via menu). RLV restrictions are applied to them, so they are not able to unsit in any way (without safewording).
  • You can apply a timer to your victim (via menu).
  • You can add additional restrictions to your victim (via menu).
  • You can undress your victim (via menu).
  • Of course you can free your victims.
  • If someone sits down voluntary on any seat, RLV restrictions are applied to him, so he is not able to unsit in any way (without safewording).
  • A recapture after logout/login, if possible and if the RLV Relay supports it (this should almost be the case)

So how could this could work almost out of the box?
I implemented default settings into the script that should cover the needs of a huge amount of RLV enabled furnitures. You can of course change theses settings if they don't match your build. In detail the most important settings are:

RLV_enabledSeats=* (this means that every seat in your build is RLV enabled, please see Global options)
rlvBaseRestrictions: @unsit=n/@sittp=n/@tploc=n/@tplure=n/@tplm=n/@acceptpermission=add/@editobj:%MYKEY%=add (please see Link messages)

It is very common that you don't want to RLV enable all seats for example if your build consist of a "Sub" and a "Dom" seat. Please change the option RLV_enabledSeats to match your build. It is recommend that the RLV_enabledSeats are the first seats in the seat (slot) list. Example for a build with three "Sub" seat (seat number 1,2,3) and one or more "Dom" seats: RLV_enabledSeats=1/2/3

Adding a Trap Timer

If someone sits down on a RLV enabledSeat he will become trapped. If there is nobody around him to release him he will be trapped ... forever ;). To avoid that, you can activate a Trap Timer. Simply use the option RLV_trapTimer. For example:

DEFAULT NC:
LINKMSG|-240|RLV_trapTimer=300

This means that after he sits down on your build a timer (5 minutes = 300 seconds) will be started and after the timer triggers, your victim will be released.

Making your build an "active" Trap - sensor based

With this setup you will be trapped automaticly if you come to close to your build. Simply add a trapRange to your build. For example:

DEFAULT NC:
LINKMSG|-240|RLV_trapRange=1.5

Making your build an "active" Trap - collision based

With this setup you will be trapped automaticly if you run against your build. Simply activate the collision detection in your build. For example:

DEFAULT NC:
LINKMSG|-240|RLV_collisionTrap=1

Adding a Grab Timer

Sometimes it may be useful to also start a timer if your victim is grabbed via the capture menu. To do so you can add a Grab Timer. Example:

DEFAULT NC:
LINKMSG|-240|RLV_grabTimer=300

To be continued ...