LSL Protocol/Restrained Love Open Relay Group/delay

From Second Life Wiki
Jump to navigation Jump to search

delay

STATUS: proposal

VERSION: 001

Version 001 implemented in Satomi's MultiRelay HUD 1.02

Possible uses

!x-delay/1800|@remoutfit=force: Will strip the victim in half an hour.

@sendchat=n|!x-delay/600|!release: The victim will be mute in chat for the ten coming minutes.

!x-delay/600|@sendchat=n|!x-delay/600|!release: In ten minutes, the victim will be mute in chat for the next ten minutes.

Syntax and semantics

  • !x-delay/TIME[/IDENT]: delays the remaining subcommands of the command by TIME seconds. Store the bunch of subcommands in the relay event queue, along with the general identifier of the relay command. Optionally, we can specify the string IDENT and it will be used instead.
  • !x-delayclear/PATTERN: clears all commands in the relay event queue which have an identifier with IDENT as a substring.


Timers should be restored on relog/reattach. Remaining delays should be postponed by the amount of time spent offline/detached.

Also, devices with running timers should not be pinged on relog but only when the last of their timers expires if any restriction still remains.

Note that !release should clear all timers related to the device. This is a case where @clear and !relase behave differently: @clear clears current RLV restrictions, but the absence of active restrictions does not mean the relay is released: indeed running timers (which are not RLV restrictions) may still exist and restrict the wearer later.

realdelay

STATUS:proposal

VERSION: 001

not implemented

!x-realdelay/!x-realdelayclear should behave exactly the same as !x-delay/!x-delayclear, except that timers are related to RL time. That is timers still run while the wearer is offline.

On relog, every expired timer should be executed, respecting the order (but not the delays, of course). Other timers continue running with no adjustment needed (since the offline time counts in the timer).