See Copyright and Usage Notice


The Palace

Palace Frequently Asked Questions FAQ

Guide to the Palace FAQ

How do I become a registered user of The Palace?

How do I find other Internet Palace Sites and Reach them Directly?

How do I sign onto the Palace via AppleTalk?

Palace Community Standards

IptScrae 101: Using the Palace Script Language to Automate Yourself

IptScrae 202: Special Tricks and Sample Scripts


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:

  1. Start the Palace client and make sure you are not connected to any Palace server.
  2. Mac users: Pull down the File menu and select Register. Windows users: Click on the Register menu.
  3. A dialogue box will appear, prompting you for your name, organization, and serial number (the Windows version says Registration number.). Enter your serial number and click on the Register button.
  4. That's it! Once this is complete, your generic shareware morphs into a full-fledged Palace. Don't give out your serial number! Palace servers will not allow two users with the same serial number to connect at the same time. This means that if someone else uses your serial number, you may be locked out of servers all over the Net.

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:

  1. Select Sign On via TCP (for Mac users) or Connect...(for Windows users) from the File menu. A dialogue box will appear asking you to enter the IP Address and Port Number of the desired server.
  2. Type in the Address or Name in the IP Address box. By default, the Port Number of all Palace servers is 9998 (e.g., The Palace Mansion is mansion.thepalace.com 9998).
  3. If this Port Number doesn't work, and you're sure you have right IP Address, you will have to contact the server gods or The Palace directory (covered in the previous section) to determine the correct port.
  4. When you hit OK, The Palace software will attempt to establish a connection with the Internet Palace server specified. If all goes well, the status bar will display the words, Connected via TCP...and you're on.

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.

"\x0d"

"\x0d" +

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 "" and "" (including the angle brackets) with whatever information you want. If you want to add a third (or fourth, etc.) information line, copy the format of the second one (including the plus sign at the end). Unless you're an IptScrae wiz, you should probably leave the rest of this structure alone.

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:

  1. It plays the No audio file, and places the word Zap! in a spiky balloon at the position of the mouse pointer ( "!)no Zap!" MOUSEPOS SAYAT ).
  2. It sets the system pen to bright red (255 red, 0 green, and 0 blue), and makes it two pixels wide ( 2 PENSIZE ).
  3. It draws a line (at the current color and size) from your avatar's position (POSX POSY) to the mouse pointer's position (MOUSEPOS ). This creates a laser beam effect.
  4. It erases the line ( PAINTUNDO ).
  5. It removes your zap statement from the CHAT string, so no one sees it ( "" CHATSTR.= ).

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 " in a spiky balloon at position 64 by 64 on the screen. Next, it runs macro number one, which sets your initial appearance. (This is equivalent to running the same macro yourself from the Macros menu or the hot key combination.)

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



© Copyright Bruce Damer, 1996, All rights reserved.

***