root/releases/1.6/0p2/README

Revision 44, 27.6 KB (checked in by pennmush, 3 years ago)

PennMUSH 1.6.0p0 Archival

Line 
1
2****IF YOU'VE NEVER USED A POST-PL10 PENNMUSH RELEASE, READ THIS FILE!
3****INSTALLATION AND CONFIGURATION PROCEDURES HAVE CHANGED SINCE PL10!
4
5============================================================================
6                   User's Guide to PennMUSH (post-pl10)
7============================================================================
8
9Most of this Guide was written by Amberyl, and is used with permission.
10Modifications are by Paul/Javelin.
11
12I.   Introduction
13II.  Installation Guide (new users)
14III. Conversion Guide (previous users) *NEW STUFF*
15IV.  Additional Options
16V.   Trouble-shooting
17VI.  Comments
18
19You may also want to take a look at Javelin's Guide for PennMUSH Gods,
20at http://mellers1.psych.berkeley.edu/~alansz/guide.html
21or by ftp from mellers1.psych.berkeley.edu, /pub/PennMUSH/Guide
22============================================================================
23 
24I.   Introduction
25 
26     PennMUSH is a TinyMUD derivative, and one of the branches along the
27MUSH line. "Vanilla" TinyMUSH, which added the "v" registers and functions
28to the basic TinyMUD building commands, was written by Larry Foard. The
29code was later expanded by Jin, of MicroMUSH. In January of 1991, MicroMUSH
30changed its name to MicroMUSE, and the code there continued to develop
31under the MUSE name. At that same point in time, Moonchilde took the last
32public release of that code and began a series of improvements and extensions.
33 
34     That code was released as PernMUSH, named for the MUSH that Moonchilde
35was running. The last released version of that code was version 1.15, at
36the end of November 1991. PernMUSH itself had switched over to TinyMUSH 2.0,
37which Moonchilde had co-written with Glenn Crocker (Wizard of TinyCWRU);
38there was no longer a reason for Moonchilde to maintain this code.
39 
40     In January of 1992, Amberyl began working on the PernMUSH 1.15 code
41release, for TinyKrynn. She took over the code, which no one was supporting,
42and is continuing to work on extending this code, as well as improving its
43compatibility with TinyMUSH 2.0.  She changed the name to PennMUSH
44(named for her school, the University of Pennsylvania), to avoid the
45confusion that resulted from PernMUSH actually running TinyMUSH 2.0.
46 
47      PennMUSH is memory-based; TinyMUSH is disk-based. PennMUSH can
48run in very little disk space, but very large databases (25,000+
49objects) can take up a prohibitive amount of memory. TinyMUSH has a
50fairly large initial memory requirement, and uses a lot of disk space,
51but has the advantage of being more efficient, as well as a vastly
52slower rate of growth in memory usage, once the database gets to about
53ten thousand or so objects.  It is possible to switch from PennMUSH to
54TinyMUSH, as well as vice versa, so you are not "stuck" with any one
55code.
56
57      In January of 1995, Amberyl passed on her mantle to Javelin
58(aka Paul@Dune, Alan Schwartz), who is now the maintainer of the
59primary public distribution in development. He released two patchlevels
60numbered "dune-1" and "dune-2" before releasing PennMUSH 1.50 pl11 and
61later distributions. The numbering scheme changed again with PennMUSH
621.6.0 (see CHANGES-9).
63
64      TinyMUSH 2.0 is capable of reading in databases from all PennMUSH
65versions (though some optional features may have to be configured out of
66the database before handing it off to Tiny). A program to convert
67PennMUSH 1.50 format into TinyMUSH 2.0.6 format is available from
68Amberyl via email; she hasn't gotten around to writing a converter for
69later formats yet.
70
71      A MUSH manual should be available at caisr2.caisr.cwru.edu,
72ftp.math.okstate.edu, primerd.prime.com, or from wherever you got this
73code from. The manual should be numbered version 2.007 or higher.
74
75      If you are planning on modifying the source code to PennMUSH,
76you'll probably want Javelin's Guide for PennMUSH Gods, which should
77be available where you got this code, or, in hypertext, as
78http://mellers1.psych.berkeley.edu/~alansz/guide.html
79
80      Enjoy!
81
82============================================================================
83
84II.  Installation (new users)
85
86     DISCLAIMER: Before attempting to run a MUD of any sort, you should
87have some reasonable knowledge of UNIX and C.  If you do not, it is
88_strongly_ suggested that you learn UNIX and C to some reasonable level
89of competency before attempting to set up a MUSH.
90 
91     The MUSH directories are organized fairly simply: source code is in
92the src subdirectory, with RWHO-related stuff in the RWHO directory
93below it, and ident-related stuff in the IDENT directory below it;
94header files are in the hdrs subdirectory; all things related to
95running the game itself are in the "game" subdirectory. That directory
96contains four subdirectories -- "data" (current databases), "save"
97(backup databases), "txt" (text files), and "log" (log files).
98
99     First, type 'sh Configure' in the top directory. This script
100will ask you some questions and attempt to identify the proper Makefile
101settings for your system. The default answers are very likely to be
102correct, except that if you have gcc 2.0 or later, you should generally
103prefer to compile with that than with your system's cc compiler.
104
105    Configure will create a Makefile, a config.h file, and
106a confmagic.h file. Probably you don't want to modify these, though
107you could tweak the Makefile if you like. If that's necessary,
108please report it to me so that it can be corrected in
109future versions.
110
111EITHER:
112
113     Then, copy options.h.dist to options.h and dune.h.dist to dune.h.
114Note that these files stay in the top directory, as there is a symbolic
115link to them from the hdrs directory.
116     Then, edit options.h.  The file is fairly liberally commented.
117You should definitely read the entire thing before figuring out what
118you want to change.
119     Do the same with dune.h
120     Also, cp game/mushcnf.dst to game/mush.cnf.
121
122OR:
123
124     Type 'make update', and answer all the questions about
125which MUSH options you want.
126
127     If you want the chat system, set CHAT_SYSTEM to 3 or 4. If you don't
128want it, set CHAT_SYSTEM to 0. PennMUSH is now intelligent enough
129to convert db's back and forth automatically.
130
131     If you use CHAT_SYSTEM 3, the initial default chat channels are
132listed in chat.c. You can change these defaults at runtime (read
133the help for @channel, and put the relevant commands on the @startup of
134an object). CHAT_SYSTEM 4 doesn't hardcode the chat channels, and
135is recommended.
136
137     You do not need to change any of the other header files.
138
139     You next have to make sure you're set up for the IPC you need for
140your machine. The only IPC package which is guaranteed to work is
141bsd.c. Nick Gammon <nick@connexus.apana.org.au> is responsible for
142the WIN32 port, and can answer questions about compiling for Windows 95/NT.
143
144     Now, finally, edit src/Makefile.  Pick your compiler, memory
145options, and other stuff.  For now, you will not want to run with any
146RWHO or IDENT options, so just use the default there.
147
148     Do a "make install". This will build all the necessary files, and
149set up some symbolic links for the restart script.  You will need to
150use "mkindx" to build the indexes for news and help (and events, if
151you're using that). The format is 'mkindx <text file> <index file>'.
152You must change the index file every time you change its associated
153text file.  The restart script automatically builds the indexes for you
154every time you start the game. You do not need to worry about the
155"extract" and "dump" utilities.
156
157     If you plan to run multiple MUSHes, you may want to do a
158"make customize" which will run a script to help set up a separate
159customized game subdirectory for each MUSH (run it once per MUSH you
160plan to run). Files in these subdirectories will already be
161customized in many ways, so what follows may be slightly different. :)
162
163     The next step is to create your configuration file. In the game
164directory is a file called "mush.cnf". You may want to rename it
165<your MUSH name>.cnf.  This is a list of all runtime configuration
166options with their default settting. Change them as you see fit.
167IMPORTANT: do not _delete_ any parameters. They all need to be there.
168 
169     Next, you must edit the restart script. You will probably want
170to change the INDB to indb.Z, and you almost definitely will to change
171GAMEDIR. That should be whatever directory the restart script is in.
172You will also probably need to change the name of the configuration file,
173as well as possibly some of the other file names, depending on what you
174chose in the config file. The restart script is written for sh, and
175assumes a fairly standard Berkeley UNIX setup. If you're on a HP-UX
176or SysV machine, for example, you may need to change the restart script
177a bit (the ps options, for example).
178 
179     You should now be ready to start the game.  This distribution comes
180packaged with a basic database - a God character, starting room, and master
181room. This file is called game/data/minimal.db.Z.  You will probably want
182to rename this file  to indb.Z (it needs to be the same as INDB in the
183restart script).  The god character "One" has a default password of
184"one", which you should change immediately (via @password).
185options.h has the Master Room as #2 by default; in the provided database,
186this room is created for you.
187 
188      Now you should be set -- all you have to do now is customize the
189.txt files in the game directory.
190
191      The logfiles in the "log" directory generally contain useful
192information. You will probably want to read your main logfile (defined
193in the restart script) every time, since errors and other important
194messages get printed to that logfile.
195 
196      If you have any problems, feel free to contact Paul via email
197at dunemush@mellers1.psych.berkeley.edu. PLEASE include the version
198number you are attempting to compile, the type of machine and operating
199system you are using, and, if possible, the address of the MUSH.
200
201============================================================================
202
203III.  Conversion Guide (previous users)
204
2051. dune.h/options.h/mush.cnf
206
207      The 'make update' command will run the update.pl program,
208which examines the current dune.h and options.h files, compares
209them with dune.h.dist and options.h.dist, and reports any new
210or removed options which you can choose to define (or not)
211interactively. It's designed to make upgrading your dune.h/options.h
212from patchlevel to patchlevel a much easier process.
213
214      Assuming you've unpacked the new patchlevel in a directory
215called new/, and the old one in a directory called old/, you should
216copy your old dune.h and options.h files into new/, and then
217type 'make update'.
218
219      Make update also updates your mush.cnf file. Again, copy
220your old mush.cnf file to new/game/mush.cnf and run make update.
221
2222. Database format
223
224      This MUSH version will read databases along the main branch of
225MUSH evolution -- TinyMUD, vanilla TinyMUSH, MicroMUSH, and all
226Pern/PennMUSH versions. If you need to convert a TinyMUSH 2.0 database,
227please contact Amberyl, and she'll mail you an extension to 2.0 that will
228dump a 1.50-readable flatfile.
229
230      Starting from release "Dune-2", PennMUSH uses the version header
231in the database to automatically read the db correctly, no matter what
232options you have set, and to write a db which reflects those options.
233If you plan to convert a PennMUSH db to TinyMUSH 2.0, you'll have to
234unset all the options which add to the db (except the CHAT_SYSTEM),
235start up like that, and then shutdown to dump a plain PennMUSH pl10 db.
236You will lose all special info (warnings, etc.) in that db, so keep a
237copy of the original!
238 
239      It might be necessary to do some conversions, depending on
240what version you are converting from. The "ADD_<whatever>" options
241govern the conversions; to convert, compile with whatever
242ADD options you need defined, start up the game, do a @shutdown,
243recompile with those options turned off, and then start the game again.
244 
245      If you are upgrading from 1.50.p7 or 1.50.p8, you will not need to
246do any conversions. From PennMUSH 1.50 versions before patchlevel 7, you will
247need to define ADD_POWERS. If you have a 1.x MUSH database dating before
2481.50, you should ftp PennMUSH 1.50 patchlevel 5, and convert your database
249to 1.50 format, then follow the directions for ADD_POWERS above.
250
251      If you do not do the conversion correctly, when you attempt
252to start the game, you will get an error message like "bad attribute"
253in the logfile, and the MUSH will refuse to start. You will definitely
254want to back up your database before attempting to do any conversions.
255
256      If you are upgrading from patchlevel 5 or earlier, please note
257that  in patchlevel 6, compile-time configuration options were moved
258into options.h, and the restart script was written in sh instead of csh.
259
260      Please read the CHANGES files. They contain a large amount of
261important information. A list of code changes that affect players is
262given in news.txt. You may want to clip that section for your own news file.
263
2643. Improved destroy code
265
266NOTE: Past versions of PennMUSH were vulnerable to some types of
267database corruption. In particular, a room could lose track of its
268exits, which would then take up space in the database, but not be
269accessible by any ordinary method.
270
271PennMUSH 1.6.0 identifies these corruptions and fixes them. When the
272MUSH first does an @dbck (about 10 minutes after startup) you may get
273a bunch of messages like this in your netmush.log:
274
275ERROR: Exit Out;o(#123E) leading from invalid room #456 destroyed.
276
277and
278
279Object Out;o(#456E) not pointed to by anything.
280Orphaned exit destroyed.
281
282and
283
284Object Out;o(#789E) not pointed to by anything.
285Moved to Room(#1234R).
286
287Do not be alarmed about a burst of these messages in the first ten
288minutes after startup. Most databases will have some of these orphaned
289exits.
290
291Do, however, inspect each of the rooms to which exits are moved, to
292decide whether you want to welcome back the prodigal exits. It is likely
293that many of the exits that get relinked may have been duplicated by
294later building. (One room on my test database ended up with three North;n
295exits and three south;s exits.)
296
297If errors like this happen after that initial burst, it then merits
298some concern. The initial burst of messages, though, should be a cause
299for attention, but not for alarm.
300
301[This message by RLM]
302 
303============================================================================
304 
305IV.   Additional Options
306 
307    There are two additional major things which you can change: IDENT
308and RWHO. IDENT allows your MUSH to report now only a player's site
309of connection, but their account name, if they connect from a site
310which runs an ident daemon (e.g. netcom.com, crl.com, and others).
311
312        MUSH provides an interface for connecting to an RWHO server.
313RWHO servers allow players to see who is connected to many MUDs via
314telnet, or, if the administrator allows it, via a direct RWHO command
315from the game.
316 
317    There are three possible options for RWHO. The first is not to
318use it. This is the default, and you can feel free to just keep it
319that way.
320 
321        The second option is to send login info to a remote RWHO server.
322This option is highly recommended, since it is simple and painless. It
323uses UDP to send the info, so there will be no slowdown of the game by
324enabling this. There are several steps to getting this set up.
325 
326        1)  Contact the administrator of an RWHO server and ask if you can
327            send login info to that server. The names of administrators
328            are generally in the MUDlist posted to rec.games.mud.misc.
329            One of the larger servers is run by Moira (Jennifer Smith,
330            jds@moebius.math.okstate.edu).  Try sending her mail, with
331            the name and address of your MUSH.
332        2)  The administrator will probably send you mail back within a
333            day or two, with additional info. You will get a password
334            and an address for the RWHO server. Change the appropriate
335            things in options.h and recompile. You should then be set.
336 
337        The third option is to send info to the RWHO server, AND enable
338reading RWHO server info from within the MUSH (via the RWHO command).
339This is a BAD idea unless the RWHO server and the MUSH are on the same
340LOCAL network. The reason for this is that retrieving RWHO info uses
341a stream port, and the MUSH could freeze if the net between it and the
342RWHO server went down. If you MUST run this way, you might want to talk
343to mjr@decuac.dec.com about how to set up your own RWHO server.
344
345    MUSH also provides an interface to the identd daemon on remote
346sites. Players who connect from these sites can be identified not only
347by site, but by account name. Like RWHO, you can choose to use IDENT
348or not. If you choose to use it, the ident_timeout configuration option
349in mush.conf lets you set the maximum number of seconds the MUSH will
350wait to get an identd response.
351
352    Another option you may want to consider is allowing your MUSH
353to receive remote messages from other MUSHes via rpage. This uses UDP,
354and does not slow down or otherwise endanger the MUSH.  If you wish to
355do this, you should contact Amberyl to get the rpage code, and compile
356with ALLOW_RPAGE defined.
357
358        You should then contact the Gods of some other MUSHes. You will
359need, for each MUSH, to agree on a password. You will need to do a:
360rpage/add OtherMUSH password=address.of.other.mush
361and the God of the other MUSH will need to do a:
362rpage/add YourMUSH password=address.of.your.mush
363
364        The name of the MUSH must be the same as that in "@version",
365aliases are allowed for additional entries, but one entry MUST be the
366name the MUSH uses in its conf file.
367 
368    The final thing you may want to think about is compiling
369announce.c or portmsg.c. These are port announcers; if your
370MUSH ever goes down, you can set one up, and a message will be given to
371a person attempting to connect to that port.  Read that file for
372details. It is not an official MUSH piece of code; rather, it is a
373freely distributable program available via anonymous FTP that is
374included in this code because it happens to be fairly useful.
375Paul suggests using portmsg - it appears to be more stable.
376
377============================================================================
378
379V.      Trouble-shooting
380
381    If you ever run into trouble, the your first reaction should
382ALWAYS be to back up your database. indb.Z.old is the file that the
383MUSH saves indb.Z to when the game, restarted, indb.Z is the file that
384the MUSH loaded at startup, and outdb.Z is the file to which the MUSH
385is currently dumping the database.
386
387    You can tell if a dump is (theoretically) complete by doing a
388"zcat <database file name> | tail -10".  The last line should read
389"***END OF DUMP***". If it doesn't, your database has been truncated
390for some reason. Check the logfile. Possible causes include a full
391process table, a full disk partition, or running out of disk quota.
392
393        Occasionally the dump process may dump core. This is caused
394by some sort of corruption in an attribute, normally. You can tell
395if the dump process has died by looking in your data directory; you
396will see something like "outdb.Z.#5#". Wait a few moments and check
397on the file again. If it has grown, then the game is in the process
398of a normal dump. If it hasn't, and there's a core file, then something
399has gone wrong. You should definitely shout a warning that building
400is not being saved.
401
402        To attempt to fix the problem, do a @dbck to take care of any
403possible minor weirdness in the database, then try doing a "@dump/paranoid",
404and reading the checkpoint logfile (default is log/checkpt.log). This is
405slow, but it will write out an uncorrupted database, and tell you what it
406fixed. Back up that database and indb.Z, then figure out what you're going
407to do next: you can take the game down with a kill -9, or attempt to
408manually fix the problem by either @destroying the offending object, or
409attempting to reset the attributes on the object that are causing a problem.
410If "@dump/paranoid" dies, you are more or less out of luck.
411
412        To fix weirdness in numerical fields, such as location or flags,
413use the "examine/debug" and "@fixdb" commands.  Don't do this unless you
414know precisely what you're trying to fix, since it's possible to produce
415database inconsistencies which will panic, crash, or hang the server.
416 
417        The game may crash from time to time. It will generate a
418core file, usually; if you don't limit the coredumpsize or strip the
419executable, you should be able to get some useful information out of
420it, using a debugger. Paul is interested in stack traces. You can
421do a stack trace in the following manner: Go into the directory where
422you keep your source code, and type
423    <name of debugger> netmud game/core
424If you don't call your executable "netmud", substitute in whatever
425you do call it.
426 
427        You are looking for variables set to bizarre values - attempts
428to access objects that aren't there, attempts to use pointers which
429point to nothing, and the like.
430 
431        If you are using the "adb" debugger (don't do this unless
432you really have absolutely nothing else available), you will see
433nothing. It's loaded and ready, though. Type "$c". This will print
434out a list of the functions it called. Type "$q" to quit. You can't
435really get much more useful information out of adb.
436 
437        If you are using the "dbx" debugger, type "where" to see
438the stack trace. You can move through it using "up" and "down",
439and see exactly what the sequence of calls was. You can also use
440"print <variable name>" to see the value of a variable at the
441time the game crashed.  The "gdb" debugger is similar to "dbx"; with
442that, you can abbreviate "print" as "p".
443 
444        Paul appreciates news of any bugs found, and any patches
445that have been written to deal with them. He is also interested in
446any extensions that people make to the code, and requests that ones
447that are of more than just local interest be sent to her for inclusion
448in the next release of this code.
449 
450        One important thing to remember is, if the MUSH refuses to
451start, there is probably a good reason. Check the MUSH log, and the
452core file, if there is one. Make sure to back up your database before
453attempting to restart -- remember that every time it restarts, it
454overwrites indb.Z.old. If you restart three times and somehow manage
455to trash your database each time (for example, a full process table
456zero'ing out your files), you won't have a backup to restart from,
457unless you've backed up your database before trying!
458
459    You can also find helpful tips in Paul's Guide for Gods,
460which is available on the WWW as
461    http://mellers1.psych.berkeley.edu/~alansz/guide.html
462and by ftp from mellers1.psych.berkeley.edu as
463    /pub/DuneMUSH/Guide/guide-single.txt
464
465        This code has been tested on a fairly wide variety of machines
466and operating systems. JT Traub (otherwise known as Moonchilde) ran
467it on a DECstation; Ambar later worked with JT on stabilizing the code
468on a NeXT, where it eventually was rock-solid stable. Please do not
469bother these people with requests for help; they no longer maintain this
470code. Amberyl worked on a Sun SPARC-series workstation,
471and did fairly extensive testing on an IBM RS/6000, a MicroVAX II, and
472various SGI workstations. There's no real reason why PennMUSH shouldn't
473compile on a machine with a BSD-derived operating system and an ANSI
474compliant compiler (non-ANSI compilers should also work, but no guarantees
475are given here). It should probably should run under anything System V-ish
476with some juggling of #include files and other  modifications (tell Paul
477if you needed to make major changes to get it working).
478
479    Paul does his development on a Sun SPARC-series workstation,
480but has a variety of test platforms.
481
482        This version of code was sucessfully compiled on a several different
483Sun Sparc-series computers running SunOS 4.1.1, 4.1.2, and 4.1.3, a NeXT
484running Mach 2.1, some DEC machines running various versions of Ultrix, an
485IBM RS/6000 running AIX 3.2, and some SGI workstations running IRIX 4.0.5.
486Previous versions have worked on an HP 9000/720 running HP-UX 8.0 and
487various 486 PCs running Linux; this version should, as well.
488 
489        If you have serious problems, contact Paul and he will
490try to help you. Email is the best way to get a fast response;
491in an emergency, you can bother him on a MUD, but for code problems,
492email will probably get you a better response.
493 
494============================================================================
495 
496VI.     Amberyl's Comments
497
498        These are in the first person.  :)
499 
500        I've been working with this code for a year and a quarter now.
501I can't claim that it's particularly elegant or inspired; all I can say
502is that it works (most of the time), and that I've had fun writing it.
503I'm also hoping that it's quite readable; the sections I've added or
504revised tend to be quite heavily commented.
505
506        I'm willing to support this code and listen to whatever complaints,
507suggestions, and screams for help you might have, with a great deal of
508patience (usually). I am interested in any changes that you might make to
509the code, as well as anything you might need to have done in order to get
510PennMUSH to compile and run on "unusual" systems.
511
512    If you mail me with bug reports or other problems, you MUST
513tell me the following, or it's likely I won't be able to give you useful
514information:
515
5161. PennMUSH version number
5172. The type of machine you are using (Sun SparcStation, IBM RS/6000, etc.)
5183. The operating system and version (SunOS 4.1.2, AIX 3.2.4, etc.),
5194. The compiler and compiler version (gcc 2.4.5, SGI cc 2.10, etc. -- the
520   'file' command usually tells you the compiler version, if there's no
521   built-in option like '-v' or '-V' to give it),
5225. Whether or not you have made any changes to the code.
523
524PLEASE do not send full options.h or mush.conf files. Also, please don't
525mail me asking me to help with debugging code you've added or asking for
526details on how to code something. I've commented the code so anybody with
527even a little bit of competence in C should be able to read and modify it;
528I'm interested in _finished_ changes, not half-completed things I need to
529debug myself.
530 
531        A number of people have been contributed a lot, directly and
532indirectly, to PennMUSH; many of them are credited in copyright.h. 
533Read the file and embarrass them the next time you see them.  ;)
534 
535        PennMUSH 1.50 patchlevel 3 contains the promised parser rewrite.
536A great deal of the code is derived or directly taken from the TinyMUSH 2.0
537parser; credit goes to JT Traub (Moonchilde) and Glenn Crocker (Wizard)
538for writing the thing in the first place. In most cases, the 1.50 parser
539should now be functionally identical to the parser in TinyMUSH 2.0.9;
540see the news file for a brief summary of the changes. Major differences
541between the 1.50 and 2.0 parsers are almost certainly bugs, and should
542be reported to me.
543
544        I do have a life, though, and academics/job/social stuff
545take priority. Thus, don't get too upset if it takes me a while to
546add your pet hack.  :)  I'm generally happy to discuss code and
547life in general, though, so if you see me on a MUSH, feel free to
548say hi.
549 
550        Enjoy your MUSH, and feel free to email for help.
551 
552 
553              --  Lydia Leong  (lwl@eniac.seas.upenn.edu)
554                  "Amberyl" just about everywhere
555
556============================================================================
557
558VII. Paul/Javelin's Comments
559
560    The stuff in Amberyl's comments still applies, just change
561the name to "Paul" and the email address to mine. :)
562
563        I am trying to keep extending the functionality of the server,
564while optimizing and rewriting things wherever possible.  Ideas for
565new features, and other discussion of this server should be sent to
566the 1.50 mailing list:  pennmush@mellers1.psych.berkeley.edu
567To subscribe, send mail to listproc@mellers1.psych.berkeley.edu,
568and put 'subscribe pennmush YourNameHere' in the body of the message.
569 
570
571        -- Alan Schwartz (alansz@mellers1.psych.berkeley.edu)
572           Paul@DuneMUSHes, Javelin just about everywhere else
Note: See TracBrowser for help on using the browser.