See
Copyright and Usage Notice
Guide to the Palace FAQ
Q: How do I become a registered user of The Palace?
A: It costs only $25 in U.S. dollars (prices may have changed
since I wrote this chapter) to register your copy of The Palace.
When you register your Palace software, you will be given a personal
serial number which will give you access to all the advanced features.
There are no connect-time charges to access any Palace site (except
the regular charges from your Internet service provider and/or
telephone company).
As a guest in these sites, you'll be able to enter many of the
rooms, and chat with other Palace residents and visitors. However,
as a registered member, there are a number of benefits you will
enjoy, such as:
How To Register
Registering your copy of The Palace is easy! Just call the toll-free
Palace registration line at 1-800/PALACE2. Or for international
callers: +1 619-537-2465
The registration fee is $25. Please have a valid credit card ready.
When you register your copy of The Palace, you will receive a
personal serial number. This serial number may be sent to you
via e-mail, or you may receive it over the phone. This number
is your key to the members-only features of The Palace software.
Donít give this number away! Palace servers will only allow
one account per unique serial number; if you give your serial
number away, ultimately you will lock yourself out of The Palace.
If your serial number is stolen, call the toll-free technical
support number for assistance at 1-800/565-8944.
If you are having trouble with these telephone numbers, visit
The Palace Web site at http://www.thepalace.com,
for the latest details on how to become a registered user.
Unlocking The Palace
Once you receive your unique serial number, you only have to let
your software know you've graduated to member status to unlock
the advanced features of the client. Here's how to do it:
Q: How do I find other Internet Palace sites and reach them directly?
A: To sign on to an Internet Palace server, you need to know the
IP address or the Palace name of that server. There are a number
of ways to do this:
1. Returning to a recently visited Palace
The client software keeps a list in memory of the last four Palace
sites you visited, so if you are simply returning to one of those
sites, you can select its address from the drop-down box. Select
File È Connect to bring up this dialogue box.
2. Browsing The Palace directory
Looking for other Palace servers? You can enter any currently active Palace via Netscape, simply by clicking on links to currently active servers. The Palace Inc. maintains a list of such servers just for this purpose on a page called the "Palace Directory." This page can be found on the Web site at
http://mansion.thepalace.com/cgi-bin/directory.pl>http://mansion.thepalace.com/cgi-bin/directory.pl.
3. Links between Palaces
One functionality allowed by the Palace server is the creation
of hotspots which serve as links to other Palace sites. Many Palaces
incorporate these magical doorwaysóyou just have to look
for them. The Palace Mansion possesses a number of rooms which
are devoted to providing links to other Palace sites and Palace-related
Web pages. This is a great place to start your palatial travels.
The Palace Mansion is located at palace://mansion.thepalace.com,
port 9998.
4. Manual Addressing
If you know the IP Address or Palace name of the server you want to visit, but it isn't in your sign-on list, you can always connect to it manually. You'll need to have a Winsock or MacTCP connection open to do this:
Q: How do I sign onto the Palace via AppleTalk?
A: To connect via AppleTalk, simply double-click on the
Palace icon on your desktop. Select, Connect via AppleTalkÖfrom
the File menu, and the program displays a dialogue box showing
a list of machines on your AppleTalk network that are currently
running the Palace server (your own machine will be listed here
as well, even if it isn't running the server). Select the machine
you want to connect to, then select The Palace, and click OK.
In the dialogue box that follows, select Guest access unless you
have an AppleShare account on that person's machine. Note:
This is unrelated to being a guest or a member in the Palace.
The next thing you should see is the front gate of The Palace.
You're in!
Palace Community Standards
I am reproducing the Palace Community Standards, courtesy of the
good folks at The Palace. Itís a great guide to how to
behave and still have fun in The Palace (and in life).
After the interface explanations and IptScrae examples are over,
after you've become confident in your use of the client software,
and after all the tricks have been taught, there are still several
important topics which cannot be brushed aside, all of which come
down to the way people treat each other in The Palace.
As a new breed of endeavor somewhere between concrete art and
abstract science, it is certain that the school of Virtual Environment
Design still has a long way to go before it reaches anything approaching
maturity. Unfortunately, the same can be said for a lot of people,
even out here on the electronic frontier. It takes all kinds,
right? Anyway, in your travels through the various worlds of The
Palace, it is not unreasonable to assume that you'll run into
a few troublemakers. These people enjoy pushing others for a reaction,
and their antics tend toward garden-variety spoofing and gutter-variety
profanity. Alone or in small groups, these cyberbrats often hop
from room to room, looking for new people to offend.
If you find yourself in such a situation, there are a number of
things you can do to stop it (and/or prevent it from happening
again), as you will see. But because you do have real recourse
to real solutions, you need to ask yourself whether this represents
truly offensive behavior (i.e., such as most people would find
offensive), or whether this person is simply making momentary
use of a Palace feature in a unusually ìcreativeî
way. Sometimes that line can be hard to draw; even harder when
your own emotions get into the equation.
It is important not to react in kind when confronted with rude
or obnoxious behavior; nothing encourages it more. Rather, you
should seek at first to distance yourself from the offending person.
There's a lot of room out there, and plenty of nicer people to
hang out with. You can always sign off and come back later; disconnection
is the better part of virtual valor. If the person persists in
bothering you, open
your log (under File menu)óit may help
later on to have a record of their exact words.
Of course, you can always call for divine intervention...At The
Palace Mansion, and in most Palace sites, the wizards and gods
are creative and dedicated people; they create virtual worlds
in order to share enjoyable experiences with others like yourself,
not to sink to the lowest levels of human behavior. And since
they all want their sites to be popular, it's in their interest
to make sure that people feel comfortable during their visit.
Within their own sites, Wizards and Gods are all-powerful; able
to create and destroy rooms, distribute and revoke passwords,
and temporarily kill or indefinitely ban specific individuals
(or entire domains). If you feel that a certain individual is
acting in such a way as to ruin the experience for others, let
the local deities know about it. That might be all you need to
do.
The Palace is not the first graphic multi-user domain ever created,
but it is probably the least strict. Many powers possessed by
the average Palace memberópainting, spoofing, nickname-changing,
etc.ówould be reserved
for wizards and gods. The way we decide to handle these powers
determines to a great degree what kind of community we are. These
powers have been given to all of us as a design decision on the
part of The Palace Inc., but it is important to remember that
it's all software; should certain powers prove unmanageable or
harmful, they may be curtailed
or removed entirely from subsequent versions.
In a way, The Palace can be seen as a massive, progressive social
experiment in which we are all participating. For this reason,
I invite you to participate in the Community Standards Discussion
Group at http://www.thepalace.com/discussion-groups.html.
Please post your experiences, insights, and suggestions for the
benefit of all Palace users.
IptScrae 101: Use the Palace Script Language to Automate Yourself
Again, I would like to thank The Palace team and users for allowing
me to reprint this great tutorial on
using IptScrae. Remember you can only use
IptScrae if you are a registered user (not just a guest) of The
Palace!
The Full IptScrae Language Reference is available at
http://newbie.thepalace.com/documentation/server-doc.html.
As if you didn't already have enough to keep you happily palacing
for a long time, there are many more options available to you
once you begin to master the intricacies of IptScrae, the Palace
programming language. Your first introduction to IptScrae will
most likely be in the form of your own personal cyborg.ipt file
(your cyborg script), which contains the routines used to automate
aspects of your avatar's behavior online. This section provides
a cursory overview of the contents of the cyborg.ipt file, and
explains the operation of this file in its default state.
Modifications to the cyborg.ipt file require a degree of familiarity
with IptScrae which is beyond the scope of this book. Since the
same commands and syntax are used to create both Palace server
scripts and cyborg scripts, would-be IptScrae authors will want
to read the language reference section of, ìThe Palace
Server Software Manual.î which
can be found at the Palace home page at: http://www.thepalace.com
Your cyborg.ipt file
The cyborg.ipt file is a script, written in IptScrae. Scripts
are comprised of handlers, which respond to events. These handlers
are comprised of short programs called atomlists. An atomlist
could also be called a subroutine. To get a clearer understanding
of what this means, let's take a look at the cyborg.ipt file you're
"born" with.
ON INCHAT {
; expressive prop changes - in response to what others say
{ "pitchfork" DONPROP { DOFFPROP } 120 ALARMEXEC } CHATSTR
"you devil"
== IF
{ "Halo" DONPROP { DOFFPROP } 120 ALARMEXEC } CHATSTR
"you angel"== IF
{ "Lightbulb" DONPROP { DOFFPROP } 120 ALARMEXEC } CHATSTR
"you genius" ==
IF
{ "Fez" DONPROP { DOFFPROP } 120 ALARMEXEC } CHATSTR
"you shriner" ==
IF
{ "Beanie" DONPROP { DOFFPROP } 120 ALARMEXEC } CHATSTR
"you geek" == IF
You're looking at the beginning of your INCHAT Handler (as indicated
by the words ON INCHAT and the open curly bracket ë{ë
in the first line). INCHAT is where you store the atomlists which
respond to words you hear others say; atomlists in this handler
are triggered by any CHAT event. You'll notice lots of curly
brackets throughout the script. These curly
brackets indicate additional atomlists. Subject to syntax
requirements, atomlists may contain other atomlists, but each
must be opened and closed with the corresponding curly
bracket. You can tell when a script has reached its end
by counting and pairing the open curly brackets
with the closed ones. You'll notice that the first open curly
bracket above has no partner; more about that soon.
The second line above is a comment. Everything after the semicolon
is ignored by the software. Commenting your code is good programming
practice, and it will save you a lot of time when you come back
to this file several months after editing it.
The functional stuff is contained in the five IF statements which
follow the comment. These are actually five separate atomlists,
each of which is followed by its own conditional IF, and they
have been grouped together mainly because they're identical in
structure. Each of these statements causes your avatar to don
a specified prop for 120 Ticks of the clock-and
then remove it, provided someone says the trigger phrase which
appears in quotes near the end of each statement.
This sample lends itself to fairly easy editing. Without altering
the structure of the statements or atomlists involved, it is a
simple matter to change the names of the props called for in quotes
at the beginning of each statement, as well as the trigger phrase
itself (be sure your new prop names refer to actual props in your
satchel, or your script will do nothing). You might want to change
the number of ticks between donning and doffing the prop. Finally,
since the structure of all five IF statements is identical, you
can easily see how you might make a new one to add to the group.
Now we will continue our look at the cyborg.ipt
file. We know the INCHAT Handler isn't done yet, because
the first open-curly bracket (from
line one in the previous example) hasn't been matched with a closed
curly bracket yet. The next section,
therefore, is also executed in response to INCHAT.
{
; this is your FINGER information - replace the stuff in quotes
; with information about yourself.
"
"
WHOCHAT PRIVATEMSG
} CHATSTR "finger" == CHATSTR ";finger" ==
OR
WHOCHAT WHOME == NOT AND IF
}
As the comment tells us, this routine allows you to provide others
with some information about you when they select you for Whisper
mode and say "finger." To edit it, simply replace "
If you pair up the curly brackets here,
you will find that the last one is an extra; you now know that
you have reached the end of the INCHAT Handler. Let's move on.
ON OUTCHAT {
; more expressive prop changes (in response to what YOU say)
{ { "Halo" DONPROP { DOFFPROP } 120 ALARMEXEC } 30 ALARMEXEC
} CHATSTR "who me.$" GREPSTR IF
{ { "Lightbulb" DONPROP { DOFFPROP } 120 ALARMEXEC }
30 ALARMEXEC
} CHATSTR "a.* idea" SUBSTR IF
This is the beginning of the OUTCHAT Handler, which (as the comment
indicates), contains atomlists which are executed whenever you
say something. The two IF statements in the example above are
very similar to the ones encountered in the INCHAT Handler in
the first example; they evaluate each
outgoing message to see if it matches their
target conditions, and execute a don/doff routine if it
does. The target conditions (tests applying to inputs like text
strings), however, are considerably more complex.
The first ("who me.$") is looking for the words, "who
me" followed by any single character (such as a question
mark, for instance). If your outgoing statement matches this condition,
the halo will be donned and doffed.
The second ("a.* idea") is looking for the letter A,
followed by anything, and then followed
by the word "idea," anywhere in the outgoing message
(SUBSTR instead of GREPSTR). Phrases like, "a good idea"
and "I have an insane idea, man," will trigger the light
bulb routine.
Zap Someone!
; Zap somebody by positioning the mouse and then say "zap"
{ "!)no Zap!" MOUSEPOS SAYAT
255 0 0 PENCOLOR 2 PENSIZE
POSX POSY MOUSEPOS LINE
PAINTUNDO
"" CHATSTR =
} CHATSTR "zap" == IF
This is the infamous Zap Routine in its natal state. It listens
for you to say ìzap,î whereupon it quickly performs
a series of related actions:
There have been so many variations on this script that it would
take a good-sized document to list them all. Suffice it to say
that the Zap script is probably the single most edited atomlist
in the IptScrae annals. For starters, you might want to experiment
with changing the target message and the audio file, or the color
and size of the pen.
; clean the room by saying "clean"
{
CLEARLOOSEPROPS
PAINTCLEAR
} CHATSTR "clean" == IF
The atomlist above waits for you to say ìclean,î
then removes all loose props from the current room ( CLEARLOOSEPROPS
), and deletes all painted lines on the screen ( PAINTCLEAR ).
It comes in quite handy when the room gets too cluttered to see
what's going on.
; spoof somebody by positioning the mouse on their mouth
; and then typing "msay blah blah"
{ "$1" GREPSUB chatter =
chatter MOUSEPOS SAYAT
"" CHATSTR =
} CHATSTR "^msay (.*)$" GREPSTR IF
If you're into spoofing people (putting words in their mouths),
this atomlist makes it a lot easier than using the @X,Y function.
It waits for you to say anything that starts with the word "msay."
When you do, everything after the word "msay" is sent
to a cartoon balloon which appears at your mouse pointer's position.
It then sets the CHAT string to (nothing) so that no one sees
your original utterance. This is such a useful routine that you
should probably keep it just the way it is.
; give Joe Beer
{ "$1" GREPSUB who = "$2" GREPSUB prop =
prop who WHOPOS ADDLOOSEPROP
} CHATSTR "^give (.*) (.*)$" GREPSTR IF
}
This is the last atomlist in your OUTCHAT handler; you can tell
because of the extra closed curlybracket
at the end of the sample (which matches the one you encountered
on the first line of this handler). The routine waits for you
to say anything that matches the structure of "give (person)
(prop)." The first word after "give" is called
$1, and passed to a symbol called "who," while the final
word is called $2, and is passed to a symbol called "prop."
A copy of "prop" is then added to the screen at the
position of "who." This cannot be used to place a prop
on a person, but rather puts it right next to them. If the specified
user is not present in the room, or the prop named is not in your
palace.prp file, this routine will not work.
Finally, we come to the last handler in your cyborg.ipt file.
SIGNON Handler
ON SIGNON {
"@64,64 !It's " USERNAME + SAY
1 MACRO
}
This is your SIGNON handler, which consists of only one atomlist.
When you first enter any Palace site, this routine does two things.
First, it causes you to say, "It's
You'll notice that the syntax and special characters used to indicate
the location and style of the announcement are the same as those
used in the input box to create special talking effects. By experimenting
with these text-based functions (and the others available via
the input box), you can edit this script to trigger complex strings
of text, sound, and macro action whenever you enter The Palace.
IptScrae 202: Special Tricks and Sample Scripts
The full IptScrae Language Reference is available at http://newbie.thepalace.com/documentation/server-doc.html.
In the few short months since The Palace was released upon a (mostly)
unsuspecting public, a respectable number of IptScrae experts
have popped up out of nowhere. Here, culled from the archives
of The Palace discussion groups, are
some plug and play examples of their best work. Any of the following
scripts may be pasted into the proper handler in your cyborg.ipt
file.
Bolt (version 1.0b1)
by Bruce Abernethy
brucea@elk-grove.k12.il.us
Bored with uninspired Zap or Blast scripts? Want to reap havoc
from above? Here is a little script that causes three totally
random bolts of lightning to rain down upon unsuspecting guests.
The first bolt is thicker, and goes relatively
straight down. The two others are on either side of the
first bolt (they have a 75 percent chance of doing so, which means
they should do this most of the time, but they are still random).
Improvements to this script include removing all of the new variables.
Creative stack manipulation would render these six variables unnecessary.
They are left in here for clarity. Also, some thoughtful recursion
could make some great effects, such
as letting the bolt branch off at certain
places (suggested by the creators
of IptScrae, but not implemented yet).
Bolt is not as much of a screen/lag hog as the scanner, but you
should use the same caution with this script. Use it sparingly.
This script will only work in paint-enabled rooms.
;This goes in your OUTCHAT Handler
{
POSX x = POSY 15 + y =
POSX 15 + x2 = POSY y2 =
POSX 20 - x3 = POSY y3 =
255 255 100 PENCOLOR
{ i ++
7 i - 3 * PENSIZE
y 40 + ynew =
x 50 - 100 RANDOM + xnew =
x y xnew ynew LINE
xnew x = ynew y =
7 i - PENSIZE
y2 30 + y2new =
x2 25 - 100 RANDOM + x2new =
x2 y2 x2new y2new LINE
x2new x2 = y2new y2 =
7 i - PENSIZE
y3 30 + y3new =
x3 25 + 100 RANDOM - x3new =
x3 y3 x3new y3new LINE
x3new x3 = y3new y3 =
} { i 7 < } WHILE
"boom" SOUND
{ j ++ PAINTUNDO } { j 21 < } WHILE
} CHATSTR "bolt" == IF
Zoop
by R. Alan Bean (Myotis Dragonius)
alan.bean@odco.com
Upon suggestion from Turtle Boy, I am finally here. Here
is my multicolor rainbow scanner... In OUTCHAT, of course...
; Zap MULTICOLOR
{
255 0 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS LINE
200 0 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 1 - 1 - LINE
150 0 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 2 - 2 - LINE
100 0 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 3 - 3 - LINE
050 0 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 4 - 4 - LINE
200 200 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 1 + 1 + LINE
150 150 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 2 + 2 + LINE
100 100 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 3 + 3 + LINE
050 50 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 4 + 4 + LINE
0 200 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 5 - 5 - LINE
0 150 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 6 - 6 - LINE
0 100 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 7 - 7 - LINE
0 050 0 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 8 - 8 - LINE
200 0 200 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 5 + 5 + LINE
150 0 150 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 6 + 6 + LINE
100 0 100 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 7 + 7 + LINE
050 0 50 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 8 + 8 + LINE
0 0 200 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 9 - 9 - LINE
0 0 150 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 10 - 10 - LINE
0 0 100 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 11 - 11 - LINE
0 0 050 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 12 - 12 - LINE
0 200 200 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 9 + 9 + LINE
0 150 150 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 10 + 10 + LINE
0 100 100 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 11 + 11 + LINE
0 050 050 PENCOLOR 1 PENSIZE
POSX POSY MOUSEPOS 12 + 12 + LINE
PAINTUNDO PAINTUNDO PAINTUNDO PAINTUNDO
PAINTUNDO PAINTUNDO PAINTUNDO PAINTUNDO
PAINTUNDO PAINTUNDO PAINTUNDO PAINTUNDO
PAINTUNDO PAINTUNDO PAINTUNDO PAINTUNDO
PAINTUNDO PAINTUNDO PAINTUNDO PAINTUNDO
PAINTUNDO PAINTUNDO PAINTUNDO PAINTUNDO
PAINTUNDO
"" CHATSTR =
} CHATSTR "zoop" == IF
Plant Props
by Jim Bumgardner
jbum@thepalace.com
This script allows you to scatter a dozen copies of the specified
prop in random places all over the screen. You can execute it
by saying, "plant propname" + "s." For example,
to plant copies of the Daisy prop, you would say, "plant
Daisys" (notice the deliberate misspelling).
; This goes in your OUTCHAT Handler
{
"$1" GREPSUB propstr =
{ x ++ propstr x 32 * 32
RANDOM + 276 64
RANDOM + ADDLOOSEPROP }
{ x 12 < } WHILE
} CHATSTR "plant (.*)s$" GREPSTR IF
SetFace: A Macro Function for Oversized Props
by Mitch "hwy" Crane
mcrane@mindspring.com
This script emulates the functionality of a macro, allowing you
to instantly don oversized props. Unlike macros, however, SetFace
allows you to give your faces descriptive names, and to possess
more than 10 of them. The syntax is as follows:
sf face or sf propname, where face equals the name of a single
prop or the name of an array of props. If the script does not
find an array by the name given, it will try to find a prop by
that name in your satchel.
; ON OUTCHAT
; setface by hwy
[ "" ] generic =
; Prop Array definitions (see below) would go right here
{
"$1" GREPSUB propstr =
propstr " prop =" & STRTOATOM EXEC
{ prop SETPROPS }
{ propstr generic 0 PUT generic SETPROPS } prop
LENGTH IFELSE
"" CHATSTR =
} CHATSTR "^sf (.*)$" GREPSTR IF
For oversized props, you must define arrays containing the names
of the individual props which make up the image; for example:
[ "rex1" "rex2" "rex3" quot;rex4"
"rex5" "rex6"] rex =
That's it. Now to put on my t-rex face, I simply say, sf rexand
it's done. For faces made from a single prop, just use the name
of the prop; no array definition is necessary for single prop
faces.
Animation Loops for Avatars
by Tod Foley
asif@well.com
The following three IF statements work together to allow you to
animate yourself by running a six-frame (i.e., six-prop) loop.
The first two go into your OUTCHAT Handler; these listen for the
words "start" and "stop" respectively. The
third one goes in your ALARM Handler, and executes the prop change
in a regular pattern. Since the loop would run out after applying
nine props, I use a macro to cap off the sequence (Macro 1). This
macro is comprised of just one propóthe one called Prop6.
The resulting animation runs over and over until you say "stop".
; Set doing to "propcycle"
; This goes in your OUTCHAT Handler
{ doing GLOBAL
"propcycle" doing =
"" CHATSTR =
10 ME SETALARM
} CHATSTR "start" == IF
; Turn animation off
; This goes in your OUTCHAT Handler
{ doing GLOBAL
"stopping" doing =
"" CHATSTR =
} CHATSTR "stop" == IF
; do propcycle
; This goes in your ALARM Handler
doing GLOBAL
{
"Prop1" DONPROP 10 ALARMEXEC
"Prop2" DONPROP 20 ALARMEXEC
"Prop3" DONPROP 30 ALARMEXEC
"Prop4" DONPROP 40 ALARMEXEC
"Prop5" DONPROP 50 ALARMEXEC
{ 1 MACRO
10 ME SETALARM } 55 ALARMEXEC
} doing "propcycle" == IF
Zip
by Clay Johnston (Turtle Boy)
Zip is a script which changes rooms in a more dramatic way, sort
of like a teleporter. You must know the room ID number (not the
room name). To find the ID of the room you are currently in, simply
type /ROOMID ITOA SAY. To activate zip, type
:zip roomID
Oh...and the following
goes in your OUTCHAT Handler by the way... HAVE FUN!
; Zip Script
; By Clay Johnson (Turtle Boy)
{
"$1" GREPSUB ATOI roomstr =
USERNAME " IS LEAVING VIA ZIP" + ROOMMSG
0 150 220 PENCOLOR PENFRONT 3 PENSIZE POSX 22 - x = POSY
22 - y =
{ x y x y 44 + LINE 4 x += } { x POSX 22 + < } WHILE
0 i =
{ i ++ PAINTUNDO } { i 11 < } WHILE
PAINTCLEAR
")choir" SAY
"" CHATSTR =
roomstr GOTOROOM
}CHATSTR "zip (.*)$" GREPSTR IF
Mute User v1.01
by Justin Streufert
cdolphin@access.digex.net
I have written
a script that I think will be moderately useful to use against
annoying guests and that type of people in general:
Mute! All you have to do is load this script, and then if someone
is really annoying you, just type: mute userName, where userName
is the person's name. Currently, you MUST, MUST use the correct
CaPITaliZati0N of the person's name, or it will not work. If you
enter the name of someone who doesn't exist, it will sit in the
background until it finds someone with that name, or you deactivate
the command.
After you mute the user, the next time they talk, it will lock
them into the mute script so that you will not get any further
messages from that person.
An interesting thing is that if you look in your log, you will
see that person's messages anyway. If the person says something,
a message will appear noting that their message has been suppressed.
When you are done, type: unmute (no username is necessary). The
script will turn off, and you will hear the person's further messages.
There are several advantages to using this script as opposed to
the gag function. First, anyone can use it, even a plain old normal
user. Second, the script only mutes the target's messages to you.
Other people still see their messages. Third, the muted person
still thinks you can hear him. =). The disadvantages are that
you can only mute one person at a time (I will fix this later),
and capitalization must be correct (this also will be fixed).
Here it is:
[ NOTE: There are actually two handlers here; the first goes in
ON INCHAT, and the second goes in ON OUTCHAT. ]
ON INCHAT
; Mute script v1.01, by Monitron (INCHAT Event set)
; (c) 1996 Justin Streufert
; To use or distribute this script, you are required by law
; to KEEP THIS MESSAGE IN THERE!!
whopersgag GLOBAL
persgaginit GLOBAL
gagstatus GLOBAL
{
"M0NPak Mute: Supressed a message from " whopersgag
WHONAME + LOCALMSG
"" CHATSTR =
} WHOCHAT whopersgag == gagstatus 1 == AND IF
{
WHOCHAT whopersgag =
1 gagstatus =
"M0NPak Mute: Initialized; found message from and locked
on to user "
whopersgag WHONAME + LOCALMSG
"" CHATSTR =
} WHOCHAT WHONAME persgaginit == gagstatus 2 == AND IF
ON OUTCHAT
; Mute script v1.01, by Monitron (OUTCHAT Event set)
; (c) 1996 Justin Streufert
; To use or distribute this script, you are required by law
; to KEEP THIS MESSAGE IN THERE!!
gagstatus GLOBAL
persgaginit GLOBAL
{
"$1" GREPSUB muteuser =
muteuser persgaginit =
2 gagstatus =
"M0NPak Mute: Mute on " muteuser + " will begin
when " + muteuser + "
sends
its next message." + LOCALMSG
"" CHATSTR =
} CHATSTR "^mute (.*)" GREPSTR IF
{
0 gagstatus =
"M0NPak Mute: Removing any active mute." LOCALMSG
"" CHATSTR =
} CHATSTR "unmute" == IF