Difference between revisions of "LSL Protocol/Restrained Love Relay/Other Implementations/DEM Relay HUD"

From Second Life Wiki
Jump to navigation Jump to search
Line 39: Line 39:
===!who===
===!who===


(add description of the who command)
;Description
:!who is implemented as a meta command to pass the UUID of '''WHO''' is trying to operate your relay, not just '''WHAT''' device and the '''OWNER''' of the device (more often than not, '''WHO's''' the operator and '''WHO's''' the owner are '''NOT''' the same avatar).
;Background
:Since the Restrained Life viewer was introduced to the grid, almost from day one we have people coming to our store wanting a way to know '''WHO''' is trying to control their relay, it's almost become a mantra "I don't care '''WHAT''' it is, I want to know '''WHO''' it is!". This gives the ''tkPBA'' the ability to give some useful information on the actions of someone that is attempting to 'use' your relay to help you make informed decisions when your relay is in ASK mode.
;Syntax
::!who/(key)
::: where (key) is the UUID of the AV that you wish to present to the relay.
;Implementation
:THINK KINK is implementing this in our devices with the following few caveats -
::- !who must be the FIRST entry of a RL Command string that will RESTRICT or DIRECTLY EFFECT someone. So, anything that will (for example) 'lock', 'force', 'deafen', 'mute', etc somone will get a !who
::- !who would not be required for things like !release, or anything that UNRESTRICTS someone.
::- !who is not additive, only the last !who is tracked for any given SPU (object).
::- !who/NULL_KEY is moot, if you don't know !who, don't sent it.
::- If no !who is sent, normal object verification rules apply


This gives the ''tkPBA'' the ability to give some useful information on the actions of someone that is attempting to 'use' your relay to help you make informed decisions when your relay is in ASK mode.
::- NOTE for builders.
:::On a 'self activated' device (such as an area effect device that, let's say, restricts chat or tp or flying), the !who would be the UUID of the VICTIM!. This makes possible the ASK text such as "You have activated Crafty Avatar's Area of Doom and it is attempting to control your relay, ALLOW/DENY?".


((verify the message text))
;Further Points of Implementation
::"Devious Device owned by Random Avatar at RegionBlarf <100,40,50> wants to control your relay, do you accept?" (standard message, no !who passed)
:The ASK message should change if a !who command comes in, so instead of "Dastardly Device owned by Random Avatar wants to control your relay, ALLOW/DENY?"  
::"Crafty Avatar is using the Devious Device owned by Random Avatar at RegionBlrf <120,42,53> want's to control your relay, do you accept?" (basic !who, someone using someone else's device)
::- the message becomes "Crafty Avatar wants to control your relay using Random Avatar's Dastardly Device, ALLOW/DENY?"  
::"Crafty Avatar is using their Devious Device at RegionBlif <120,31,130> to control your relay, do you accept?" (they are using their own device on you)
::- if the owner and the operator are the same, then a more succinct message could be "Crafty Avatar wants to control your relay using their Dasterdly Device, ALLOW/DENY?"  
::"Crafty Avatar is using your Devious Device at RegionBillow <42,42,42> to control your relay, do you accept?" (hmmm, using your own stuff against you eh?)
::- if a !who is present, then should the victim DENY the request, an IM can go back to the 'clicker' "Sitting Duck has denied your attempt to control their relay".
::"You have activated Crafty Avatar's AreaRestriction Device at RegionWakkaWakka <233,32,125> to control your relay, do you accept?" (triggering an area effect device, so you are the !who)
 
((should we add the 'comming attractions' of owner, allowed, verify, banned lists? and/or the configuration orb??))


===!vision===
===!vision===

Revision as of 12:34, 27 February 2009

((work in progress))

Think Kink Restrained Life PBA (Personal Bondage Assistant) Multi-Object Relay

©left 2009 Think Kink (Think Kink is Ilana Debevec & Lyssa Daehlie)

the Think Kink Restained Life PBA Relay (tkPBA for short) is released under a modified "CopyLeft" license. The short form without legalese.

This code is provided AS-IS, OPEN-SOURCE and holds NO WARRANTY of accuracy, completeness or performance. It may be distributed in its full source code with this header and disclaimer and is not to be sold without permission. Optionally it may be distributed in a 'no mod' form within Second Life™ PROVIDED that either a link to the full source IS provided (ie. this page or a .zip or .rar) within the object the code is contained AND/OR a off-world contact point (ie. email) that the source code may be requested from. This somewhat unusual (no-mod) distribution is allowed to maintain the integrity and reliability of the creator reference of in-world objects (scripts). Changes and improvement to this code must be shared with the community so that we ALL benefit.

Based on Maike Short's 1030b relay, with thanks to Tahni Taratal, RL Ansome, Nihal Quah and all of the staff of THINK KINK who helped with the shakedown and development of this device. Recursive thanks to everyone that has gone before on the development of the Restraint Life Relay, including (but not limited to) Maike Short, Felis Darwin, Chorazin Allen, Azoth Amat, Gregor Mougin, Nano Siemens, Cerdita Piek, Satomi Ahn, Marissa Mistwallow and she who started it all ... Marine Kelley. An extra special personal thanks to Chloe1982 Constantine who was able to help me put ideas into bits when I was buried whisker deep in both SL and RL issues.

In-world (no mod) copies of this relay may be picked up for free at THINK KINK🖈 or email to Ilana.Debevec@gmail.com for full source.

Logo's & Signage

Think Kink has developed logos to brand our products showing them as having the !who and !vision compatibility as well as overall Restrained Life compatibility that eliminates the SL "Eye in Hand" that has some restrictive usage rights. With the publication of these scripts, we are opening them for use by the community as long as attribution is given to Think Kink. Email Ilana.Debevec@gmail.com for a TGA pack of the logos.

Design Philosophy

We went into the design of the tkPBA to be as flexible in it's handling of multiple objects as possible. Originally we looked at the single script concept but quickly discarded this as being rather unwieldy and subject to the whims of LSL to it's use of memory. With the all in one design, you can't reliably check on memory utilization, excessive garbage collection with list management and other quirks of LSL. Therefore, we split the relay into three parts -

- the DPU (Dominate Processing Unit) handling all the 'global' tasks of the relay (listens, dialogs, mode (off/ask/auto/hardcore), SAFEWORD and implementation of the !who and !vision commands.
- the SPU (Slave Processing Unit) handling 'object specific' tasks (what object and it's restrictions are in place).
- the GPU (Graphics Processing Unit)) the 'bare metal' interface for the !vision command.

Further, we took the actual architecture of the relay down to the 'prim' level. Since we have made this a HUD ONLY device (a. can't drop scripts in 'no mod' items that may already have their own touch events, b. not enough body attachment points as it is, c. keep it and it's status and control where you can get it at easily), we could divide the scripts among different prims to let them do part of the work.

- the DPU goes in the root, the SPU's go in separate prims (one per # of devices you want to control), the GPU lurks on the back of the root prim and gets prim modification to affect the vision of the user.
- the SPU keeps the UUID of the object currently controlling it and the UUID of the last AV that used it (if available) in it's description field. The DPU, instead of having to pass link messages back and forth, or keep updating an internal list, can find the current state of the object simply by reaching over with ((find proper call, mind blank)) and get the UUID's of the object/operator or if NULL_KEY see that the SPU is free to use.

((more design stuff))

!who

Description
!who is implemented as a meta command to pass the UUID of WHO is trying to operate your relay, not just WHAT device and the OWNER of the device (more often than not, WHO's the operator and WHO's the owner are NOT the same avatar).
Background
Since the Restrained Life viewer was introduced to the grid, almost from day one we have people coming to our store wanting a way to know WHO is trying to control their relay, it's almost become a mantra "I don't care WHAT it is, I want to know WHO it is!". This gives the tkPBA the ability to give some useful information on the actions of someone that is attempting to 'use' your relay to help you make informed decisions when your relay is in ASK mode.
Syntax
!who/(key)
where (key) is the UUID of the AV that you wish to present to the relay.
Implementation
THINK KINK is implementing this in our devices with the following few caveats -
- !who must be the FIRST entry of a RL Command string that will RESTRICT or DIRECTLY EFFECT someone. So, anything that will (for example) 'lock', 'force', 'deafen', 'mute', etc somone will get a !who
- !who would not be required for things like !release, or anything that UNRESTRICTS someone.
- !who is not additive, only the last !who is tracked for any given SPU (object).
- !who/NULL_KEY is moot, if you don't know !who, don't sent it.
- If no !who is sent, normal object verification rules apply
- NOTE for builders.
On a 'self activated' device (such as an area effect device that, let's say, restricts chat or tp or flying), the !who would be the UUID of the VICTIM!. This makes possible the ASK text such as "You have activated Crafty Avatar's Area of Doom and it is attempting to control your relay, ALLOW/DENY?".
Further Points of Implementation
The ASK message should change if a !who command comes in, so instead of "Dastardly Device owned by Random Avatar wants to control your relay, ALLOW/DENY?"
- the message becomes "Crafty Avatar wants to control your relay using Random Avatar's Dastardly Device, ALLOW/DENY?"
- if the owner and the operator are the same, then a more succinct message could be "Crafty Avatar wants to control your relay using their Dasterdly Device, ALLOW/DENY?"
- if a !who is present, then should the victim DENY the request, an IM can go back to the 'clicker' "Sitting Duck has denied your attempt to control their relay".

!vision

((add all info))

The DPU

((insert script))

The SPU

((insert script))

The GPU

((insert script))