Not strictly a new product, but a demo is now available. This is a simple menu driven rezzer for rezzing one object at a time out of a prim’s inventory.
XStreetSL: https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1102539
XStreetSL (demo): https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1452105
SLurl: http://slurl.com/secondlife/Sunweaver%20Air/207/34/141
Instructions
A sample rezzer and two scripts are included; the scripts are the important part here. The “Rezzer” script goes in the root prim of the object that will be the rezzer. The “Die” script goes in the objects to be rezzed, and enables the rezzer to delete them when they are no longer required. ALL scripts are shipped not running; once you have dropped them into the object, you need to select “Set Scripts to Running in Selection” from the “Tools” menu, with the object selected, in order to start them. This is done as a safety measure.
IMPORTANT: You MUST have copy permissions on objects to be rezzed (otherwise they would be moved from the prim’s inventory, and couldn’t be rezzed multiple times).
The rezzer will list all objects in the prim inventory as menu options, when clicked. Access is by default restricted to only the owner of the rezzer, but can be configured in a notecard, as can the offset (from the rezzer) of objects being rezzed.
Configuration
The rezzer script attempts to read a notecard called “Configuration” on startup, which it expects to look something like this:
access=owner
offset=<0.0, 0.0, 0.3>
rotation=<0.0, 0.0, 0.0>
clear_on_inactive=true
inactivity_delay=60.0
scan_range=20.0
IMPORTANT: The notecard must be full perms or the script won’t be able to identify it as a notecard, and so won’t load it.
The example configuration lines above mean that:
- “access=owner” means only the owner can access the rezzer. This can alsobe set to “group”, meaning that anyone with the same ACTIVE group as the rezzer’s prim can acccess it, or “everyone” which allows everyone to access the rezzer. The default is everyone.
- “offset=<0.0, 0.0, 0.3>” means that objects are rezzed 0.3metres above the rezzer (no x or y offset, only z).
- “rotation=<0.0, 0.0, 0.0>” means that objects are not rotated relative to the base object when rezzed.
- “clear_on_inactive=true” means that when the rezzer goes inactive (when it detects no avatars present), it auto-derezzes any object that is out.
- “inactivity_delay=60.0″ means that the rezzer scans for avatars every 60 seconds while active.
- “scan_range=20.0″ means the rezzer scans for avatars within 20 metres while active.
Any line beginning with the # character is ignored as a comment. Offsets are relative to the root prims of the rezzer, and the object being rezzed (NOT to the center of them, unless you place the root prim at the center).
Rotations (and these can be left out if you don’t need them, as can all configuration options) are relative to the base prim, and are expressed as a Euler angles (same as the rotations you can see in the build tool). Earlier versions of this script used quaterions (which LSL uses internally), but for storage Euler angles are enough and considerably simpler to understand. Please note that rotations are relative to the base, so if the base is rotated 90 degrees, the rezzed object will be rotated 90 degrees FURTHER than the configuration default.
Operation
Once set up, click the rezzer. This will show the dialog menu, and put the rezzer into the “active” state. In the active state it listens for commands from dialog choices, and scans for avatars close to it (see configuration to change range and/or time). Clicking an object listed in the dialog menu will cause it to rezz. Once an object is out, you can click “Clear” to remove it. When the rezzer no longer detects
any avatars close to it, it automatically goes inactive (stops listening and scanning). It can optionally derezz any object that is out, when it goes inactive (this is the default).
Included Examples
There are three included very simple examples. The rezzed objects have a very thin, nearly transparent prim as their root prim, to enable their rez position to be set reliably. All positions in the configuration notecard are relative to the root prim of the object being rezzed. The different samples are for different access permissions (see the included Configuration notecards).
“Where Am I?”
As a tool for determining offsets from a base prim, I’ve included two new scripts (plus matching example), “Where am I – Base” and “Where am I – Edge”. For an example, drop “Sample where am I?” in-world, and click the base prim. It’ll scan for the matching “edge” prim, find it, and report its relative location and rotation from the base prim. For your own prims, drop “Where am I – Base” into the base prim, “Where am I – Edge” into the prim to find the location of, SET BOTH SCRIPTS RUNNING (“Set Scripts to Running in Selection” from the “Tools” menu) and then click on the base prim.
Resale
These scripts are intended to be resold, but NOT with both copy and transfer permissions. Copy/mod or transfer/mod only please.