![]() |
![]() |
What is this mysterious "allscray"?
It's essentially nothing more than a simple version of the
INCHAT
portion of zombie
mode, installed as a room script; it accepts some spoken text,
converts it to commands via STRTOATOM,
and executes the
commands. In other words, it's a way for one or more users to get
some other user(s) to execute scripts.
When it's a room script instead of a
cyborg add-in, everyone who hears it obeys
including
the speaker.
Here's a version used by the UnPalace and elsewhere:
; in the INCHAT handler.... { "$1" GREPSUB STRTOATOM EXEC } WHOCHAT WHONAME "^[*]" GREPSTR CHATSTR "^;*allscray (.*)" GREPSTR AND IF |
No fancy protections here, it just grabs whatever the speaker typed after the "allscray" (or ";allscray") and executes it. It may or many not be prefaced with ";" (so that there's no text balloon).
Importantly, the speaker's name must begin with an asterisk ("*")
*Mr.Wizard: ;allscray "I must obey" SAY
Someone: I must obey
Someone Else: I must obey
*Mr.Wizard: I must obey
Everyone Else: I must obey
At UnPalace, as an example,
allscray has been both enhanced and opened a version called
";ao" adds the condition
WHOCHAT WHOME == NOT
so
that you don't allscray yourself (this has recently spread elsewhere,
including Communities.com's Mansion). For example, if you type the
following two lines:
I wanna hear you say ow!!!!
;ao "Ow!!!" SAY
Everyone in the room, except you, will say "Ow!!!"
That wizards-only restriction was removed in many UnPalace rooms in all the
lockable bed rooms, game rooms, and the local "Nrutas." So
people with zombie-master code (from the BotBot or
this page) can just set
twinPW
to ";ao" and use
it on anyone in any of those rooms, without having to adjust or
exchange any passwords.
(Any wizard can also
use the BotBot zombie
commands as adjuncts to ";allscray" by simply setting the twinPW
to ";ao"
especially-useful scripts include: "dz" for dressing other people up;
"come_here" or "mv" to force them to your mouse position;
and "cw" for sending messages to their status line. The BotBot
also contains some allscray-savvy cmmands (like "shove") in the
"Wizard" group).
The version of ;ao
below can be used by anyone, but won't affect wizards
making it
safe to install in any room without giving random passerby the
opportunity to use it as a means to usurp the local wiz's
authority (and shoot them off to who knows where with a well-placed
NETGOTO
, or even use allscray tyo force Gods to change
the wizard passwords or shut down the server....):
{ "$1" GREPSUB STRTOATOM EXEC } ISWIZARD NOT WHOCHAT WHOME == NOT AND CHATSTR "^;*ao (.*)" GREPSTR AND IF |
Even guests can use
allscray, so as a side effect, it provides guests with a
(convoluted) way to get some scripting features without a full palace
membership (Still, if you get to that level of script
hacking, you really, really ought to be a member....).
;allscray { { 22 468 RANDOM + 22 340 RANDOM + SETPOS i SETCOLOR "Uh!" SAY } i 45 * ALARMEXEC i ++ } { i 16 < } WHILE ;allscray "Some call me " WHOME ITOA & SAY ;allscray NBRROOMUSERS n = { { i ROOMUSER WHOPOS y += x += } WHOME i ROOMUSER == NOT IF i ++ } { i n < } WHILE n -- x n / y n / SETPOS ;allscray NBRROOMUSERS n = { { 256 i 2 + 44 * SETPOS } WHOME i ROOMUSER == IF i ++ } { i n < } WHILE ;allscray NBRROOMUSERS n = { { i ROOMUSER WHOPOS POSX POSY LINE } { 1 j = } WHOME i ROOMUSER == j NOT AND IFELSE i ++ } { i n < } WHILE ;ao "palace://finchnest.com" NETGOTO ;ao "That " WHOCHAT WHONAME & " is a stinker" & SAY ;ao { i ITOA " MACRO" & STRTOATOM i 60 * ALARMEXEC i ++ } { i 10 < } WHILE ;allscray "I use a " { "Mac" } { "PC" } DATETIME 0 < IFELSE & SAY / "\x3Bao \"My clock differs by \" DATETIME " DATETIME ITOA & " - d = { 65536 d += } d 0 < IF d 60 / ITOA & \" minutes\" & SAY" & SAY / NBRROOMUSERS n = { i ROOMUSER r = { "\x3Bao \"" [ "boom" "chaka" "laka" ] { 2 } { i } i 2 > IFELSE GET & "\" SAY" & r PRIVATEMSG } WHOME r == NOT IF i ++ } { i n < } WHILE |
(I call the Mac/PC one "jihad-o-matic")
ON SIGNON { xDoIt GLOBAL nDoIt GLOBAL { { "$1" GREPSUB STRTOATOM EXEC } CHATSTR "^;as (.*)" GREPSTR ISWIZARD NOT AND IF { "$1" GREPSUB STRTOATOM EXEC } CHATSTR "^;ao (.*)" GREPSTR WHOCHAT WHOME == NOT AND ISWIZARD NOT AND IF { "$1" GREPSUB STRTOATOM EXEC } CHATSTR "^;*allscray (.*)" GREPSTR ISWIZARD NOT AND IF } xDoIt DEF { xDoIt GLOBAL { xDoIt EXEC } WHOCHAT WHONAME "^[*]" GREPSTR IF } nDoIt DEF } |
then, in each room that you want to use allscray (including the gate), include this in any one spot script:
ON INCHAT { nDoIt GLOBAL nDoIt EXEC }
or, if you want ANYONE (not just a *wiz) to be able to use
allscray and ao in that room:
ON INCHAT { xDoIt GLOBAL xDoIt EXEC }
This last example is known as "free-for-allscray"
ON INCHAT { { "Allscray command suppressed" LOGMSG "" CHATSTR = } CHATSTR "^;*a" GREPSTR IF } |
For the palace owner, this can be problematic. How can you ensure that
users will obey allscray commands?
Simple: use a different
command. Not just ";as" but a different command entirely, like "DO" or
"zz" or ">>"
whatever strikes your fancy.