wmud/old-codebase/doc/OLD-DOCS/utils.doc
2012-03-07 16:24:50 +01:00

220 lines
7.3 KiB
Plaintext

/**************************************************************************
* Copyright (C) 1993 - see 'license.doc' for complete information. *
* Jeremy Elson; 7/12/93 *
**************************************************************************/
CIRCLEMUD UTILITIES
"utils.doc"
There are currently 12 utilities and several shell scripts which come with
CircleMUD to help you run and maintain it. This file documents them.
Brief Synopsis
--------------
AUTOWIZ Automatically generate a wizlist and an immlist from the
playerfile.
DELOBJS Delete the object files (i.e. crash-save, rent, cryo-rent,
etc.) of players who no longer exist in the playerfile.
HASMAIL Return an exit status of 0 or 1, depending on if the
recipient specified has MUDmail waiting or not.
LISTRENT Show the contents of one of more object files.
MAILINDEX Generate a list of all mail contained in a mail file.
MUDPASSWD Change the password of a MUD character in a playerfile.
PURGEPLAY Create a new playerfile with deadweight characters removed.
READMAIL Print mail contained in a mail file.
SHOWPLAY List players contained in a playerfile.
SIGN Present a sign on a port (i.e. "MUD will be down today").
SPLIT Split a large file into several smaller files.
SYNTAX_CHECK Check the syntax of a set of world files.
Detailed Documentation
----------------------
AUTOWIZ
Autowiz is not really meant to be run by a person; the MUD automatically
executes it every time someone reaches immortality or is promoted to an
immort or higher level.
It must be compiled and in the circle/bin directory in order for the
automatic wizlist system to work, of course.
DELOBJS
delobjs <playerfile> <file1> <file2> <filen>
Delobjs generates an index of all players in the playerfile, then checks
each file listed on the command line to make sure that the object file
has a corresponding player in the player index. If the player does not
exist, the object file is deleted.
Although this program can be run manually, it is much easier simply to
use the "purgeobjs" script in the lib/plrobjs directory. That script
will automatically run delobjs on every file in each of the 5 object
directory, and save a list of the files deleted to a file called DELETED.
LISTRENT
listrent <file1> <file2> ... <filen>
Listrent will simply list the contents of an object save file. You can
list as many files as you like on the command line; the contents of each
file will be listed.
Included in the lib/plrobjs directory is a script called 'searchfor', which
you can use to see who in the game has certain items. For example, if you
wanted to see who had object #3001 rented, you would switch into the
lib/plrobjs directory and type "searchfor 3001".
HASMAIL
hasmail <mail-file> <recipient-name>
Hasmail has no output -- it just returns a 0 or 1, depending on if you
have mail waiting or not. It's useful for putting something like this
in your .login (assuming you use csh):
set NAME = ras
if ( { hasmail ~/circle/lib/misc/plrmail $NAME } ) then
echo "You have mud-mail waiting."
endif
MAILINDEX and READMAIL
CircleMUD's mail files are binary files -- they can't be read with 'cat',
'more', etc. The MAILINDEX and READMAIL commands allow you to see the
contents of a mail file.
Obviously, there are a lot of serious privacy issues which go along with
programs like this. For exactly that reason, I didn't even write these
utilities for months after I wrote the mail system. I eventually broke
down and wrote them because there is no way to save Mudmail after you've
read it from within the MUD, but READMAIL allows you to do just that --
read your mail without deleting it.
As a footnote, the MUDmail system was intentionally designed so that
one is not able to save mail after having read it. I have a tendency
to save all of my (real) email, as do many other people, and I didn't
want hundreds of mud players to start saving all their MUDmail at the
expense of my disk.
Now that I've loaded these utilities with excessive moral baggage, I'll
describe how they are used.
mailindex <mailfile>
readmail <mailfile> <recipient-name>
MAILINDEX will show you a list of all letters currently in the mail file,
in the following format:
Recipient 1
Sender 1
[...]
Sender n
Recipient 2
Sender 1
[...]
Sender n
[...]
Recipient m
Sender 1
[...]
Sender n
READMAIL will show you all mail addressed to the recipient you specify.
MUDPASSWD
mudpasswd <playerfile> <character> <new-password>
MUDPASSWD is used to change the password of a character in the playerfile.
It can be done while the game is running, but "set passwd" from within the
game is probably safer.
MUDPASSWD is useful for people who forget their passwords, etc. SET PASSWD
does the same thing.
PURGEPLAY
purgeplay <playerfile-name>
PURGEPLAY will read all the characters in the playerfile you specify, and
output a new playerfile called 'players.new', with "deadweight" characters
removed. The original playerfile will not be changed. Characters meeting
one or more of the following criteria will not be included in players.new:
- Buggy characters (i.e., non-alphabetic name or invalid level)
- Characters with a DELETED flag
- Level 0 characters (connected but never entered game)
- If a character is NOT cryo-rented, the following timeouts apply:
- Level 1 characters who have not played in 4 days
- Level 2-4 characters who have not played in 7 days
- Level 5-10 characters who have not played in 30 days
- Level 11-30 characters who have not played in 60 days
- Level 31 characters who have not played in 90 days
- If a character IS cryo-rented, the timout for levels 1-31 is 90 days.
- A CHARACTER WITH A NODELETE FLAG WILL NOT BE REMOVED, even if
the character meets one or more of the above criteria.
PURGEPLAY will generate a report of all characters which were not included
in players.new and the reason for their omission.
SIGN
sign <filename | '-'> <port #>
SIGN is used for putting a message on a port, i.e., "BazookaMUD is currently
down for repairs." The second argument can either be the name of a text
file or a dash; if it is a dash, SIGN will prompt you for the sign text.
Port # is, of course, the port on which you'd like the sign to be displayed.
SPLIT
Split reads text files from standard input and writes a series of files
to disk as output. Its intended usage it to take a large diku world
file and split it into several smaller, more managable files. You'll
probably only need to use it if you're porting a large world file from
some other MUD to Circle.
To use SPLIT, insert a line containing only "=filename" at each point
in the original file where you'd like SPLIT to start writing to a
new file. When SPLIT reaches a line starting with '=', it will begin
writing all subsequent lines to a file called 'filename' until the next
'=' or EOF is encountered. #99999 is appended to the end of each file.
A file called 'index' is created, containing a list of all files which
were created (see running.doc for more information about index files.)
SYNTAX_CHECK
syntax_check <zone number>
Syntax_check is a utility for checking that world files are formatted
correctly. It should be run from the main lib/world directory. If you
type 'syntax_check 30', it will check the files wld/30.wld, obj/30.obj,
mob/30.mob, and zon/30.zon.