![]() |
|
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" SAYSomeone: I must obeySomeone Else: I must obey*Mr.Wizard: I must obeyEveryone 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.
To my mind, this is a needless
panic. Allscray and zombie mode are always voluntary
on the part of the "victim"
It is true that if some
free-for-allscray variations are installed, and a palace god
goes into those rooms, that other users just might take over the
server. The version above is "wiz-safe"
It does point up an important
lesson, though
(I get the same complaints about the BotBot, too.)