Skip to content
LeonaMorro edited this page Apr 5, 2015 · 14 revisions

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

Basics

  1. Your build must at least contain the following scripts:
  • nPose Core
  • nPose Dialog
  • nPose menu
  • nPose Slave
  • nPose RLV+ Core
  1. Add a NC called BTN:-RLV- with the following content:
    LINKMSG|-8000|showMenu,%AVKEY%
  2. If you want your user to be able to add additional restrictions to a victim via menu, then also drop the nPose RLV+ RestrictionsMenu script into your build.

DONE.

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)

To be continued ...