Commit c6bfb5bb authored by nobody's avatar nobody

This commit was manufactured by cvs2svn to create tag 'Beta_15'.

parent 0252123c
# The "checkoutlist" file is used to support additional version controlled
# administrative files in $CVSROOT/CVSROOT, such as template files.
#
# The first entry on a line is a filename which will be checked out from
# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
# The remainder of the line is an error message to use if the file cannot
# be checked out.
#
# File format:
#
# [<whitespace>]<filename><whitespace><error message><end-of-line>
#
# comment lines begin with '#'
# The "commitinfo" file is used to control pre-commit checks.
# The filter on the right is invoked with the repository and a list
# of files to check. A non-zero exit of the filter program will
# cause the commit to be aborted.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being committed to, relative
# to the $CVSROOT. For the first match that is found, then the remainder
# of the line is the name of the filter to run.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".
# Set this to "no" if pserver shouldn't check system users/passwords
#SystemAuth=no
# Set `PreservePermissions' to `yes' to save file status information
# in the repository.
#PreservePermissions=no
# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top
# level of the new working directory when using the `cvs checkout'
# command.
#TopLevelAdmin=no
# This file affects handling of files based on their names.
#
# The -t/-f options allow one to treat directories of files
# as a single file, or to transform a file in other ways on
# its way in and out of CVS.
#
# The -m option specifies whether CVS attempts to merge files.
#
# The -k option specifies keyword expansion (e.g. -kb for binary).
#
# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
#
# wildcard [option value][option value]...
#
# where option is one of
# -f from cvs filter value: path to filter
# -t to cvs filter value: path to filter
# -m update methodology value: MERGE or COPY
# -k expansion mode value: b, o, kkv, &c
#
# and value is a single-quote delimited value.
# For example:
#*.gif -k 'b'
# The "editinfo" file is used to allow verification of logging
# information. It works best when a template (as specified in the
# rcsinfo file) is provided for the logging procedure. Given a
# template with locations for, a bug-id number, a list of people who
# reviewed the code before it can be checked in, and an external
# process to catalog the differences that were code reviewed, the
# following test can be applied to the code:
#
# Making sure that the entered bug-id number is correct.
# Validating that the code that was reviewed is indeed the code being
# checked in (using the bug-id number or a seperate review
# number to identify this particular code set.).
#
# If any of the above test failed, then the commit would be aborted.
#
# Actions such as mailing a copy of the report to each reviewer are
# better handled by an entry in the loginfo file.
#
# One thing that should be noted is the the ALL keyword is not
# supported. There can be only one entry that matches a given
# repository.
# The "loginfo" file controls where "cvs commit" log information
# is sent. The first entry on a line is a regular expression which must match
# the directory that the change is being made to, relative to the
# $CVSROOT. If a match is found, then the remainder of the line is a filter
# program that should expect log information on its standard input.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name ALL appears as a regular expression it is always used
# in addition to the first matching regex or DEFAULT.
#
# You may specify a format string as part of the
# filter. The string is composed of a `%' followed
# by a single format character, or followed by a set of format
# characters surrounded by `{' and `}' as separators. The format
# characters are:
#
# s = file name
# V = old version number (pre-checkin)
# v = new version number (post-checkin)
#
# For example:
#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog
# or
#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog
# Three different line formats are valid:
# key -a aliases...
# key [options] directory
# key [options] directory files...
#
# Where "options" are composed of:
# -i prog Run "prog" on "cvs commit" from top-level of module.
# -o prog Run "prog" on "cvs checkout" of module.
# -e prog Run "prog" on "cvs export" of module.
# -t prog Run "prog" on "cvs rtag" of module.
# -u prog Run "prog" on "cvs update" of module.
# -d dir Place module in directory "dir" instead of module name.
# -l Top-level directory only -- do not recurse.
#
# NOTE: If you change any of the "Run" options above, you'll have to
# release and re-checkout any working directories of these modules.
#
# And "directory" is a path to a directory relative to $CVSROOT.
#
# The "-a" option specifies an alias. An alias is interpreted as if
# everything on the right of the "-a" had been typed on the command line.
#
# You can encode a module within a module by using the special '&'
# character to interpose another module into the current module. This
# can be useful for creating a module that consists of many directories
# spread out over the entire source repository.
# The "notify" file controls where notifications from watches set by
# "cvs watch add" or "cvs edit" are sent. The first entry on a line is
# a regular expression which is tested against the directory that the
# change is being made to, relative to the $CVSROOT. If it matches,
# then the remainder of the line is a filter program that should contain
# one occurrence of %s for the user to notify, and information on its
# standard input.
#
# "ALL" or "DEFAULT" can be used in place of the regular expression.
#
# For example:
#ALL mail %s -s "CVS notification"
# The "rcsinfo" file is used to control templates with which the editor
# is invoked on commit and import.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being made to, relative to the
# $CVSROOT. For the first match that is found, then the remainder of the
# line is the name of the file that contains the template.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".
# The "taginfo" file is used to control pre-tag checks.
# The filter on the right is invoked with the following arguments:
#
# $1 -- tagname
# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
# $3 -- repository
# $4-> file revision [file revision ...]
#
# A non-zero exit of the filter program will cause the tag to be aborted.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being committed to, relative
# to the $CVSROOT. For the first match that is found, then the remainder
# of the line is the name of the filter to run.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".
# The "verifymsg" file is used to allow verification of logging
# information. It works best when a template (as specified in the
# rcsinfo file) is provided for the logging procedure. Given a
# template with locations for, a bug-id number, a list of people who
# reviewed the code before it can be checked in, and an external
# process to catalog the differences that were code reviewed, the
# following test can be applied to the code:
#
# Making sure that the entered bug-id number is correct.
# Validating that the code that was reviewed is indeed the code being
# checked in (using the bug-id number or a seperate review
# number to identify this particular code set.).
#
# If any of the above test failed, then the commit would be aborted.
#
# Actions such as mailing a copy of the report to each reviewer are
# better handled by an entry in the loginfo file.
#
# One thing that should be noted is the the ALL keyword is not
# supported. There can be only one entry that matches a given
# repository.
/**************************************************************************
* ProtoMuck
* Copyright (c) 2000 by Chris Brine, and Richard Taylor
* All rights reserved
*
* Contact addresses
* Chris Brine - Moose/Van - ashitaka@home.com
* Richard Taylor - Akari - Nakoruru08@hotmail.com
*
* This code is based loosely on the following code
* TinyMUD
* Copyright (c) 1989, 1990 by David Applegate, James Aspnes, Timothy
* Freeman, Bennet Yee, and Na Choon Piaw
* TinyMUCK FB
* authored by Foxen/Revar (real name undisclosed)
*
* NeonMUCK
* Copyright (c) 1996 by Jeremy Blackman, Andrew Nelson, and Joseph L. Traub
*
* This code supports the Pueblo multimedia protocol
* Copyright (c) 1995, 1996 by Chaco Communications
*
* This code contains the MCP programming language
* Copyright (c) 1996 by Joseph L. Traub and Jeremy Blackman
*
* This code contains a dictionary-based compression scheme
* Copyright (c) 1995 Dragon's Eye Productions and Dr. Cat
*
* Permission is hereby granted to copy, redistribute or use this software
* subject to the following restrictions and understandings
*
* I) Any copy or redistrubtion of this software must include this
* copyright notice in full
*
* II) Users of this software agree to make a good faith attempt to return
* any improvements or extensions made to this software or it's
* component parts to the authors of this software.
*
* III) All materials developed as a consequence of the use of this software
* shall duly acknowledge such use in accordance with the standards of
* acknowledging credit in academic research.
*
* IV) This software may not be sold, nor may access to this software be
* charged for without the express written permission of the authors
* and the written permission of the authors of the various components.
*
* V) The authors make no warrantee or representation about the fitness
* of this software for any task, nor do they warrantee or represent
* this software as error-free. The authors further will not be held
* responsible for any problems or damages incurred through the use of
* this software.
*
* VI) The authors make no promises or commitments to provide any services
* or support for this software, either by way of maintainance or by
* upgrades to this software.
*
* VII) In conjunction with product arising from the use of this software,
* there shall be no use of the name of the authors, of Carnegie-Mellon
* University, Bell Communications Research, Cat and Dragon Enterprises
* Ltd, Dragon's Eye Productions, Blackman and Ross, CyberSoft or
* Noderunner, nor any adaptation thereof in any advertising,
* promotional, or sales literature without prior written consent from
* the authors, Carnegie-Mellon University, Bell Communications
* Research, Cat and Dragon Enterprises Ltd, Dragon's Eye Productions,
* Blackman and Ross, CyberSoft and Noderunner in each case
*
***************************************************************************/
## QUICK INSTALLATION for those who demand results NOW! ##
1. modify src/inc/config.h to fit your preferences and your system.
2. modify src/inc/params.h also.
3. modify game/data/parmfile.cfg
When you're happy with the changes...
cd src # Enter the src directory.
./configure # This will call the configuration script
make # Compiles the source code
make install # This puts the binaries in ../game/
cd ../game/data # This will put you into the games data directory
(opt) cp minimal.proto proto.db # Make the minimal dbase your dbase
cd ../.. # Directory should be $(HOME)/proto
./proto start # This starts the server.
And you're done! ProtoMuck has it's own special minimal database. To
connect to it, use:
telnet somehost someport
<Welcome screen scrolls by>
connect One potrzebie
You should then be connected to da Man.
QUIT
./proto stop # This shuts the server down.
## HISTORY ##
ProtoMUCK is derived from NeonMUCK with man extentions and
modifications, which is derived from TinyMUCK, PuebloMUCK, RattyMUCK,
and TinyMUCKfb. All of these share common derivation form TinyMUD 1.5.2,
which also has many extensive changes.
## COMPATABILITY ##
ProtoMuck will read, without modification, any TinyMUD, TinyMUCK,
PuebloMUCK, TinyMUCK FB, NeonMUCK, and RattyMUCK databases. ProtoMuck
databases however cannot be loaded back into these other variants,
except for NeonMUCK (though it is untested and only in theory).
NeonMuck added space for 32 additional flags on all objects, along
with a new programming language called MCP, extensive new MUF
primitives, increased support for Pueblo and other web based logins,
and a host of other changes. And, in turn, ProtoMUCK expanded upon
that and started on the long road of bringing the FB code base in
line with the later versions.
To convert an existing FB database over, rename it to proto.db
in the game/data directory. Log in as the God character, and
type '@fixwizbits Convert DB to new level system.' Then shut
down the game and restart it; the database is now a clean
Neon-format database.
## COPYRIGHT ##
Please see the file COPYRIGHT for the full version of the copyright
applying to this code. It is unlawful to use this code without
complying with the copyright.
## COMPILING PROTOMUCK ##
ProtoMuck uses the GNU autoconf system to try and compile without
errors on any platform which supports the required tools. ProtoMuck
does want GCC, Flex, and Bison to compile each and every source file
into object code. If Flex and Bison aren't available, pre-compiled
versions of the mcpparse.y and mcplex.fl files are available in
the 'backup' directory under the source tree.
This code is known to compile without errors or warnings under
Linux, Solaris, and SunOS. It can be ported cleanly to Windows
under Cygnus's gnu-win32 development kit. with a custom Makefile
and using the backup parser files.
It should compile cleanly, or with very few modification under most
systems. If you need to make modifications, or find a system which
it doesn't compile under, or which it compiles but doesn't run under,
please contact the authors, and they will do their best to provide you
with some help, and to incorporate fixes into later releases (if any).
The authors are however under no obligation to provide support, but
will likely do so anyway.
# SLACKWARE LINUX #
ProtoMuck has an internal fix to the Makefile so the fix below should
not be necessary, but the fix is provided for reference purposes.
If you are running slackware 2.2.x or later, you might need to first
make sure your system has a soft link from /usr/lib/libg.sa to
/usr/lib/libc.sa. Do this with the command:
cd /usr/lib; ln -s libc.sa libg.sa
This isn't a complete fix, but it at least lets Proto compile. Make
sure the Makefile generated has LIBR=-lm
This fix is not required under RedHat Linux.
# SUN #
Sun realloc() is braindead. On every Sun system I have seen,
all TinyMUD/TinyMUCK derived code runs about 6 megs in memory with
a very small database if the option DB_DOUBLING is not defined. If
you are running on a Sun3 or Sun4, you should definitely compile with
this option turned on.
Let the authors know if there are other systems that need this. This
may not be as much of a problem with current versions of the server,
as databases now store a count of their objects, and the entire
database generally gets allocated in one chunk.
# OTHER OS'S #
As far as other platforms, you're on your own. In almost all cases,
just running 'make' will set up the makefile and configuration
for your system, then typing 'make' again will compile the server.
## DIRECTORY STRUCTURE ##
bin -- Contains the unix restart script and other support scripts
docs -- Contains important information about administering the muck
game -- Holds all run-time game data files and online information
src -- Contains all source code to build the server executable
and related utility programs
## PROGRAM ##
# protomuck #
Usage: protomuck [options] starting-dbfile dump-dbfile [portnumber]
Where the [options] can be:
-convert load db, save in current format, and quit.
-decompress when saving db, save in uncompressed format.
-nosanity don't do db sanity checks at startup time.
-insanity load db, then enter interactive sanity editor.
-sanfix load db, then fix any sanity problems in the DB.
-wizonly only allow wizards to login.
-help display usage message.
If port is not specified it defaults to 10002. The initial database
will be read in from starting-dbfile, which must contain at least
the two objects in minimal.db to work well.
The -decompress option will cause the dump-file to be saved in an
uncompressed format. The protomuck process will write a checkpoint
out to dump-dbfile every few hours, depending on the @tuned interval
parameter.
The -convert option will cause the server to load an old style
database, save it back out immediately in the most current database
format, and then shutdown, instead of allowing connections.
# proto #
Usage: proto start -- Starts the muck
Usage: proto stop -- Shuts the muck down
This is just a simple script to turn ProtoMuck on or off from the
shell account. ProtoMuck accepts a SIGKILL to force an immediate
but clean and safe shutdown of the muck. (Don't try this on a
normal Fuzzball server, it will crash and could hose your database.)
# olddecompress #
Usage: olddecompress < compressed-db-file > uncompressed-db-file
or: olddecompress compressed-db-file > uncompressed-db-file
Removes old style bigraph compression from a database file that has
been generated by an older version of netmuck using the -DCOMPRESS
compile-time option.
# topwords #
Usage: topwords < db-file | sort > wordlist.txt
This program will find the 4096 words who will give you the best
compression with the new style dictionary based compression. This
is used by the optimdb script to re-optimize the compression of a
database.
# optimdb #
Usage: optimdb infile outfile
This script reads a database, and saves it out to the outfile with
the compression optimized. For databases under a half meg, this db
will likely be a few K larger than the same database compressed with
the old bigraph method. For half a meg and over, though, it's a win.
## AUTHOR and CONTACT INFORMATION ##
Bug reports, suggestions, and complaints can be sent to:
(Moose) ashitaka@home.com -or- (Akari) Nakoruru08@hotmail.com
The Quick Guide On Setting Up The Hopper
----
The @hopper is fully functional, now. To use the automated e-mail,
do the following:
@tune mailserver=<name or IP of an SMTP server you can use>
@tune servername=<name of the host your MUCK runs on>
@tune reg_email=<email address of char wizard>
@tuneing servername is recommended anyway, since HTMuf programs
for the webserver will probably begin to use this instead.
You must then create an lsedit list on #0, called @new-user-mail, e.g.:
lsedit #0=@new-user-mail
This is the body of the message that will be sent to a new user.
You can use %user% for the username, and %pass% for the password.
For example:
lsedit #0=@new-user-mail
Welcome to MyHappyMuck!
Your user, %user%, has been created with password %pass%.
We hope to see you aboard soon!
.end
Then, you have to @tune online_registration=yes
Now users can 'request <charname> <email> <real name>' and be put in a
'hopper'. When you use the @hopper command to verify and create users,
they will be pcreated with a randomly generated password and sent a copy
of that mail (with %user% and %pass% replaced with their user and
password).
If you're a really open MUCK, you can @tune fast_registration=yes
Then the @hopper only records who has used request, because the users
will be created immediately upon request of a char (and mailed that
letter).
Enjoy!
## QUICK INSTALLATION for those who demand results NOW! ##
1. modify src/inc/config.h to fit your preferences and your system.
2. modify src/inc/params.h also.
3. modify game/data/parmfile.cfg
When you're happy with the changes...
cd src # Enter the src directory.
make # This will call the configuration script
(opt) make depend # Makes the dependancies appropriate to your system
make # Compiles the source code
make install # This puts the binaries in ../game/
cd ../game/data # This will put you into the games data directory
cd ../.. # Directory should be $(HOME)/proto
./proto start # This starts the server.
And you're done! ProtoMuck has it's own special minimal database. To
connect to it, use:
telnet somehost someport
<Welcome screen scrolls by>
connect One potrzebie
You should then be connected to da Man.
QUIT
./proto stop # This shuts the server down.
## HISTORY ##
ProtoMUCK is derived from NeonMUCK with man extentions and
modifications, which is derived from TinyMUCK, PuebloMUCK, RattyMUCK,
and TinyMUCKfb. All of these share common derivation form TinyMUD 1.5.2,
which also has many extensive changes.
## COMPATABILITY ##
ProtoMuck will read, without modification, any TinyMUD, TinyMUCK,
PuebloMUCK, TinyMUCK FB, NeonMUCK, and RattyMUCK databases. ProtoMuck
databases however cannot be loaded back into these other variants,
except for NeonMUCK (though it is untested and only in theory).
NeonMuck added space for 32 additional flags on all objects, along
with a new programming language called MCP, extensive new MUF
primitives, increased support for Pueblo and other web based logins,
and a host of other changes. And, in turn, ProtoMUCK expanded upon
that and started on the long road of bringing the FB code base in
line with the later versions.
To convert an existing FB database over, rename it to proto.db
in the game/data directory. Log in as the God character, and
type '@fixwizbits Convert DB to new level system.' Then shut
down the game and restart it; the database is now a clean
Neon-format database.
## COPYRIGHT ##
Please see the file COPYRIGHT for the full version of the copyright
applying to this code. It is unlawful to use this code without
complying with the copyright.
## COMPILING PROTOMUCK ##
ProtoMuck uses the GNU autoconf system to try and compile without
errors on any platform which supports the required tools. ProtoMuck
does want GCC, Flex, and Bison to compile each and every source file
into object code. If Flex and Bison aren't available, pre-compiled
versions of the mcpparse.y and mcplex.fl files are available in
the 'backup' directory under the source tree.
This code is known to compile without errors or warnings under
Linux, Solaris, and SunOS. It can be ported cleanly to Windows
under Cygnus's gnu-win32 development kit. with a custom Makefile
and using the backup parser files.
It should compile cleanly, or with very few modification under most
systems. If you need to make modifications, or find a system which
it doesn't compile under, or which it compiles but doesn't run under,
please contact the authors, and they will do their best to provide you
with some help, and to incorporate fixes into later releases (if any).
The authors are however under no obligation to provide support, but
will likely do so anyway.
# SLACKWARE LINUX #
ProtoMuck has an internal fix to the Makefile so the fix below should
not be necessary, but the fix is provided for reference purposes.
If you are running slackware 2.2.x or later, you might need to first
make sure your system has a soft link from /usr/lib/libg.sa to
/usr/lib/libc.sa. Do this with the command:
cd /usr/lib; ln -s libc.sa libg.sa
This isn't a complete fix, but it at least lets Proto compile. Make
sure the Makefile generated has LIBR=-lm
This fix is not required under RedHat Linux.
# SUN #
Sun realloc() is braindead. On every Sun system I have seen,
all TinyMUD/TinyMUCK derived code runs about 6 megs in memory with
a very small database if the option DB_DOUBLING is not defined. If
you are running on a Sun3 or Sun4, you should definitely compile with
this option turned on.
Let the authors know if there are other systems that need this. This
may not be as much of a problem with current versions of the server,
as databases now store a count of their objects, and the entire
database generally gets allocated in one chunk.
# OTHER OS'S #
As far as other platforms, you're on your own. In almost all cases,
just running 'make' will set up the makefile and configuration
for your system, then typing 'make' again will compile the server.
## DIRECTORY STRUCTURE ##
bin -- Contains the unix restart script and other support scripts
docs -- Contains important information about administering the muck
game -- Holds all run-time game data files and online information
src -- Contains all source code to build the server executable
and related utility programs
## PROGRAM ##
# protomuck #
Usage: protomuck [options] starting-dbfile dump-dbfile [portnumber]
Where the [options] can be:
-convert load db, save in current format, and quit.
-decompress when saving db, save in uncompressed format.
-nosanity don't do db sanity checks at startup time.
-insanity load db, then enter interactive sanity editor.
-sanfix load db, then fix any sanity problems in the DB.
-wizonly only allow wizards to login.
-help display usage message.
If port is not specified it defaults to 10002. The initial database
will be read in from starting-dbfile, which must contain at least
the two objects in minimal.db to work well.
The -decompress option will cause the dump-file to be saved in an
uncompressed format. The protomuck process will write a checkpoint
out to dump-dbfile every few hours, depending on the @tuned interval
parameter.
The -convert option will cause the server to load an old style
database, save it back out immediately in the most current database
format, and then shutdown, instead of allowing connections.
# proto #
Usage: proto start -- Starts the muck
Usage: proto stop -- Shuts the muck down
This is just a simple script to turn ProtoMuck on or off from the
shell account. ProtoMuck accepts a SIGKILL to force an immediate
but clean and safe shutdown of the muck. (Don't try this on a
normal Fuzzball server, it will crash and could hose your database.)
# olddecompress #
Usage: olddecompress < compressed-db-file > uncompressed-db-file
or: olddecompress compressed-db-file > uncompressed-db-file
Removes old style bigraph compression from a database file that has
been generated by an older version of netmuck using the -DCOMPRESS
compile-time option.
# topwords #
Usage: topwords < db-file | sort > wordlist.txt
This program will find the 4096 words who will give you the best
compression with the new style dictionary based compression. This
is used by the optimdb script to re-optimize the compression of a
database.
# optimdb #
Usage: optimdb infile outfile
This script reads a database, and saves it out to the outfile with
the compression optimized. For databases under a half meg, this db
will likely be a few K larger than the same database compressed with
the old bigraph method. For half a meg and over, though, it's a win.
## AUTHOR and CONTACT INFORMATION ##
Bug reports, suggestions, and complaints can be sent to:
(Moose) ashitaka@home.com -or- (Akari) Nakoruru08@hotmail.com
This directory contains the change logs from the various versions of MUCK
prior to NeonMuck that went into the composition of Neon. None of the
information in them is gaurenteed to be correct, or even close. These are
included merely so that people can see from what NeonMuck was derived.
We don't use builder bits; just #define Builder() as (1).
Our player birthroom is #2, not #0.
We allow '==" and ;==:
I make prim_online mucker level 1.
Also conddbref, conidle, contime
We use -lmalloc
I allow @pcreate even with REGISTRATION off.
We've dropped NEXTPROP and PROPDIR? to M2.
I don't normally log wiz commands. CODEWIZARD now excepted.
I comment out the game.c and interface.c default 'log_command()' logging.
We add some stuff to wiz.c:do_usage().
My interface.c check_connect(), aside from having
the reg_* hacks, logs d->hostname, not just d->descriptor.
I leave DOUBLING on but change it to actually grow by 10%
increments rather than 100% increments.
Added a "db_clear_object(newobj); /* CrT */" to db.c:new_object()
'else' clause, it seemed to be crashing on
do_dig -> new_object -> db_free_object -> free()
I add a
OWNER(thing) = GOD; /* CrT */
at end of move.c:recycle(), so people don't own their garbage.
We changed game.c:process_command() to allow mortals to use !@edi
!@lis and !l overrides to get native server code.
Changed interface.c:check_connect to log pw on failed tries, mostly
so I can diagnose people who fail to connect.
I fix timequeue.c next_timequeue_event() main loop to not crash
on null tqhead.
We fix timestamps(?) prim to be M3.
We change 'gripe' command to require three letter prefix.
We change @toad to not do it if *name/@/precious:{any}
Fb5.24 cores if we sweep someone who is INTERACTIVE. We add a
check to p_misc.c:prim_force() to prevent this.
On Mumford's request, p_db.c:prim_moveto has one check commented out.
On Kurane's request, db.c:log_program_text uses folding-mode format.
We turn off all the Builder() restrictions in create.c
This diff is collapsed.
This diff is collapsed.
PuebloMUCK changes merged into TinyMUCKfb5.xpk to form Neon.
---
Support for the Pueblo multimedia protocol.
* notify_html, notify_html_exclude, html_nocr, html_exclude_nocr
* {html} and {ohtml}
* PUEBLO ('$') flag.
---
Changes made to TinyMUCKfb5.xpk before merge.
Added the ability to use MUF files as 'cgi' scripts on web server.
* notify_descriptor (Mage-only primitive)
Added the ability to use lsedit lists / propdirs to set up a homepage
tree for each user.
This diff is collapsed.
MCP 1.0 -- README
-----------------------------------------------------------------------------
MCP is a C-like language that has been added to the NeonMUCK server.
The language is translated from it's C-like syntax into MUF, and then compiled
by the server.
MCP is Copyright(C) 1996 by Joseph L. Traub and Jeremy Blackman.
All Rights Reserved.
Use of this software is governed by the terms and conditions of the NeonMuck
license. Use of this software in any other way or form without the express
written permission of the authors is prohibited by law.
MANIFEST:
README -- this file
mcputil.c -- parse tree utility functions
mcplex.fl -- flex input file for the lexer
mcpparse.y -- bison input file for the parser
mcpstruct.h -- definitions of the various structures
NOTE:
Compilation of MCP has been tested ONLY with flex, bison and gcc. It
will most likely require some small porting effort to get it to work with
byacc, lex, yacc, cc, or any other tools.
DESCRIPTION:
This packages contains all of the code required to rebuild the MCP portion
of NeonMUCK, either as a drop-in to upgrade NeonMuck, or to build a stand
alone translator if you are unfortunate enough to be stuck on an older MUCK
but still want the fun of MCP. (If this is the case, you might wish to define
OLD_MUCK in the makefile, so that the ++ and -- operators work)
The MCP language is very similar to C, but has some features of MUF built
in as well. The easiest way that I know to explain the language is to write
out the BNF and explain what each of the rules means.
Below, an IDENT is an alphanumeric string that may start with an optional
'\' and end with an optional '?' (to satisfy escaping and some primitives
respectively). The character '_' is also allowed in the string. A NUM is
any series of 1 on more digits. COMMENTS are C-style, either /* */ bracketed
or // until end of line. // comments may be nested inside of /* */ comments,
but /* */ comments may not be nested. An OBJECT is either a # sign followed
by a number (optionally negative) or a $ followed by an alphanumeric string
pointing to a registered object. A STRING is any serious of characters within
a pair of double quotes and not spanning a line. Escaped characters in strings
are preserved. The token 'TO_EOL' has been used below to mark that some
constructs (like #ifdef) allow their input to continue to the end of the
current line only, and all text on the line past that token will be used as
part of that construct. The special symbol EMPTY means that there might be
nothing in that portion of the input. I made the choice to only allow
the #define, #include, and #undef compiler directives at the global level.
One final thing to note is that MCP is completely untyped. MCP relies on
MUF to do the type-checking for it, so while x = 1 + "hello"; is valid
MCP code, the resultant MUF '1 "hello" + x !' is not valid, and MUF will tell
you about it.
program -> EMPTY
| program global
| program directive
| program funcdef
global -> COMMENT : an comment
| var vardecl ; : declare one or more vars
| #define IDENT stmnt : declare a $define construct
| #include OBJ : include the defs from <OBJ>
| #undef IDENT : remove the definition
directive -> #echo TO_EOL : declare a $echo construct
| #ifdef TO_EOL : declare a $ifdef construct
| #ifndef TO_EOL : declare a $ifndef construct
| #else : declare a $else
| #endif : declare a $endif
stmnt -> { stmnts } : a statement can be a block
| expr ; : an expression followed by ;
| directive : a compiler directive (above)
| COMMENT : an comment
| return expr ; : a return with value
| return ; : a return
| break ; : the break keyword
| continue ; : the continue keyword
| var vardecl ; : declare one or more lvars
| assign ; : a variable assignment
| if ( cond ) stmnt : an if construct
| if ( cond ) stmnt else stmnt : an if-else construct
| do stmnt while ( cond ) ; : a do/while loop (until/repeat)
| while ( cond ) do stmnt : a while/do loop (while/repeat)
| for ( cond ; cond ; cond ) stmnt : a for loop (becomes a while)
| switch ( expr ) { caselist } : a switch statement
| switchall ( expr ) { caselist } : an alternate switch statement
| newarray ( IDENT , expr ) : make an array of size expr
caselist: -> case_stmt : a single case statment
| caselist case_stmt : more than one case statement
| caselist def_stmt : cases and a default case
case_stmt -> case expr : stmnt : actual case syntax
def_stmt -> default : stmnt : actual default case syntax
cond -> EMPTY : empty condition
| expr : an expression
| assign : an assignment
assign -> vardecl = expr : pop 1 or more vars off stack
stmnts -> stmnt
| stmnts stmnt
expr -> NUM : a number
| OBJ : an object
| STR : a string
| top : a keyword for the stack top
| IDENT : a variables' value
| IDENT [ expr ] : an array variables' value
| IDENT ++ : increment variable by 1
| IDENT -- : decrement variable by 1
| ( expr ) : expression grouping
| expr + expr : addition
| expr - expr : subtraction
| expr * expr : multiplication
| expr / expr : division
| expr % expr : mod
| expr & expr : bitwise and
| expr | expr : bitwise or
| expr ^ expr : bitwise xor
| expr << expr : bitwise shift left
| expr >> expr : bitwise shift right
| expr && expr : logical and
| expr || expr : logical and
| expr > expr : comparison more
| expr < expr : comparison less
| expr >= expr : comparison more or equal
| expr <= expr : comparison less or equal
| expr == expr : comparison equal
| expr != expr : comparison not equal
| - expr : unary negation
| ! expr : bitwise not
| push ( arglist ) : stores arglist on stack
| IDENT ( arglist ) : call function IDENT with args
| OBJ :: IDENT (arglist) : call IDENT on OBJ with args
opt_expr -> EMPTY
| expr
funcdef -> opt_pub func IDENT ( vars ) stmnt : declare a function 'IDENT'
opt_pub -> EMPTY : function is not public
| public : function is added to publics
arglist -> EMPTY : no arguments to the call
| expr : any expression can be an arg
| arglist , expr : multiple args
vardecl -> [] : a blank arg (pops from stack)
| IDENT : a variable named IDENT
| IDENT [ expr ] : element of an array
| vardecl , IDENT : multiple args
| vardecl, IDENT [ expr ] : last arg can be an array ref
| vardecl , [] : last arg can be blank too
vars -> EMPTY : no args to the function
| vardecl : any normal var declaration
A few notes about switch statements. Switch statements in MCP are both
more and less flexible that in C. They are MORE flexible because both the
switch expression and the case expressions can be generalized expressions
and thus may involve variable evaluation, and all sorts of other things.
The still only test for equality of the two expressions however. They are
less flexible because in MCP an assignment statement is NOT considered an
expression (it leaves no value on the stack). Assignments are allowed in
the various looping constructs by some serious hackery and the same hackery
wasn't applicable to switches which at their fundamental level are just a nice
way of packaging up multiple if-statements together. Unlike in C, the default
case MUST be the last case in the list of cases.
There are two types of switch statements. Their main difference is in
what will get executed. In a switch() { ... } statement, only the first case
that matches will get evaluated. In a switchall() { ... } statement, EVERY
case that matches will be evaluated. In this form a default case will ALWAYS
be exected!
If you have any problems or encounter any bugs with this software, please
contact jtraub@dragoncat.net (Joseph Traub) or loki@dragoncat.net (Jeremy
Blackman). Either or both of us will be more than happy to entertain ideas
or enhancements about how to make this better.
#!/bin/csh -f
#
# Change the FBDIR to point towards the game/ directory of your old
# FuzzBallMUCK. This should be the file with the restart script, muf dir,
# logs dir, etc.
#
set HOME = $HOME
set FBDIR = $HOME/fb5.66/game
#
# Make sure that this points to the game/ directory of your new copy
# of ProtoMUCK.
#
set PROTODIR = $HOME/proto/game
set PROTOSRC = $HOME/proto/src
#
# If your FuzzBall directories were not changed from the standard
# configuration, you should not need to change anything below. Note
# that only one copy of the data base is essential, either std-db.db
# or std-db.new. If one or the other is missing, the upgrade will still
# run fine.
#
set MUFDIR = $FBDIR/muf
set LOGSDIR = $FBDIR/logs
set DBOLD = $FBDIR/data/std-db.db
set DBNEW = $FBDIR/data/std-db.new
set WELCOMET = $FBDIR/data/welcome.txt
set NEWST = $FBDIR/data/news.txt
set NEWSD = $FBDIR/data/news
set MOTD = $FBDIR/data/motd.txt
set MPIHELPD = $FBDIR/data/mpihelp
set MAND = $FBDIR/data/man
set INFOD = $FBDIR/data/info
set HELPD = $FBDIR/data/help
set CONNECT = $FBDIR/data/connect.txt
set PARMFILE = $FBDIR/data/parmfile.cfg
################################################################
#
# You should not have to change anything below here.
#
################################################################
echo "---------------------------------------------"
echo "FuzzBall5.xx ---> ProtoMUCK AutoUpgrade "
echo "---------------------------------------------"
#Check for the proto/src directory. If there, compile.
if ( -r $PROTOSRC ) then
if ( -r $PROTODIR/protomuck ) then
rm $PROTODIR/protomuck
endif
echo "Runing configuration script."
cd $PROTOSRC
./configure
cd $PROTODIR/..
echo "Running make depend then make install"
make depend -C $PROTOSRC
make install -C $PROTOSRC
if (! -r $PROTODIR/protomuck ) then
echo "Error in compiling. Cancelling upgrade."
exit 0
endif
endif
echo " "
echo "Now copying over from $FBDIR"
echo " "
#Check for the neon/game game directory.
if (! -r $FBDIR ) then
echo "No Neon directory found to upgrade."
echo "Check FBDIR path."
exit 0
endif
#check for a std-db.db or std-db.new to upgrade from
if (! -r $DBOLD & ! -r $DBNEW ) then
echo "You need a data base to upgrade from."
echo "Check the paths set above for std-db.db or std-db.new."
exit 0
endif
#check for MUF dir. Wouldn't be a good upgrade without it.
if (! -r $MUFDIR ) then
echo "MUF directory not found. Dangerous to upgrade with out."
echo "Check the paths set above for the muf directory"
exit 0
endif
#The rest of the files aren't essential to an upgrade, so are not
#checked for.
echo "Copying std-db.db and std-db.new and renaming to"
echo "proto.db and proto.new"
cp $DBOLD $PROTODIR/data/proto.db
cp $DBNEW $PROTODIR/data/proto.new
echo "Copying all MUF code to $PROTODIR/"
cp -R $MUFDIR $PROTODIR/
#Got the essentials done, now copy the rest.
echo " "
echo " "
if ( -r $PARMFILE ) then
echo "Copying @tune parameters as parmfile.cfg to $PROTODIR/data/"
cp $PARMFILE $PROTODIR/data/
endif
if ( -r $LOGSDIR ) then
echo "Copying contents of log directory to $PROTODIR/log/"
cp -r $LOGSDIR $PROTODIR/
endif
if ( -r $WELCOMET ) then
echo "Copying welcome.txt to $PROTODIR/data/"
cp $WELCOMET $PROTODIR/data/
endif
if ( -r $NEWST ) then
echo "Copying news.txt to $PROTODIR/data/"
cp $NEWST $PROTODIR/data/
endif
if ( -r $NEWSD ) then
echo "Copying news directory to $PROTODIR/data/news/"
cp -r $NEWSD $PROTODIR/data/
endif
if ( -r $MOTD ) then
echo "Copying motd.txt to $PROTODIR/data/"
cp $MOTD $PROTODIR/data/
endif
if ( -r $CONNECT ) then
echo "Copying connect.txt to $PROTODIR/data/ directory."
cp $CONNECT $PROTODIR/data/
endif
if ( -r $MPIHELPD ) then
echo "Copying mpihelp directory to $PROTODIR/data/mpihelp/"
cp -r $MPIHELPD $PROTODIR/data/
endif
if ( -r $MAND ) then
echo "Copying man directory to $PROTODIR/data/man/"
cp -r $MAND $PROTODIR/data/
endif
if ( -r $INFOD ) then
echo "Copying info directory to $PROTODIR/data/info/"
cp -r $INFOD $PROTODIR/data/
endif
if ( -r $HELPD ) then
echo "Copying help directory to $PROTODIR/data/help/"
cp -r $HELPD $PROTODIR/data/
endif
echo " "
if ( -r $PROTODIR/data/proto.new ) then
echo "**std-db.new found, copying over proto.db**"
cp $PROTODIR/data/proto.new $PROTODIR/data/proto.db
endif
echo " "
echo "Converting FuzzBall data base to Proto."
cd $PROTODIR
./protomuck -convert data/proto.db data/proto.db
cd ..
touch game/logs/status
echo "`date` - `who am i` ran the Neon --> Proto upgrade script." >> game/logs/status
echo " "
echo " "
echo "--------------------------------------------------"
echo " Welcome to ProtoMUCK"
echo "--------------------------------------------------"
echo " "
echo "If you are seeing this message, then your upgrade "
echo "from FB5.xx went smoothly. You should -NEVER- "
echo "run this script again once starting up your copy "
echo "of Proto. Doing so may result in the loss of your "
echo "database."
echo "Check the settings in the $PROTODIR/restart "
echo "script to make sure the locations are correct."
echo "**MAKE SURE THE OLD COPY OF FB5.xx IS SHUT DOWN.**"
echo "Then change to $HOME/proto/ and type ./proto start"
echo "to start the MUCK."
Proto will keep backups in this directory (under 'data'). Only the last
ten DB saves will be kept if this option is selected (the 'KEEPDUMPS'
option at compile time).
#!/bin/csh -f
# Save any corefile:
# Set this to whatever your /bin/mail program is, possibly /bin/mailx or it
# may be in /usr/bin, /sbin, or /lib.
set MAIL = /usr/bin/mail
sleep 5
set timestamp = "`date +'%y.%m.%d.%H.%M'`"
if (-r core) then
mv -f core core.$timestamp
echo "core.$timestamp saved by restart from server crash" | $MAIL `whoami`
endif
* connect user pass
logs in
* connect guest guest
logs in as a guest
* request <user> <email> <your name>
requests a character
* ch user pass
logs in hidden, if you are a wizard
* HELP
Shows the help screen
* WHO
Shows who's online
* QUIT
Disconnects
*ProtoMUCK MUF Editor Help*
While in the MUF editor, the following commands are available:
These commands are used to work with the program text:
----------------
compile (c) compile program
<num> [<num>]delete (d) delete a single line or range of lines
<num> insert (i) insert at the line number given
<num> [<num>]list (l) list a single line, or a range of lines
uncompile (u) serves no point in current MUCK versions.
numbers (n) toggle line numbers in program listings
. (.) enter . to exit insert mode
These commands are used to work with the global MUF macros:
----------------
abridged [<letter>] (a) list global MUF macros by name only
<macro name> kill (k) remove a global MUF macro (W1 Command)
show [<letter>] (s) list a full display of global MUF macros
<num> view (v) to list the given program's header
All editor commands may be abbreviated to their first letter.
To define a macro, use the following syntax:
def <macro name> <macro definition>
Then that macro may be used in any MUF program as: .<macro name>
def sample me @ "Sample Macro" notify
would create a macro that notifies the user that string and is called
by using .sample in a MUF.
Be careful when defining a macro, as only w-bitted characters can
delete or change them.
~~~~~~Refer to the MUF manual, 'man', to read about MUF prims.~~~~~~~
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#0
Room Zero
You are in Room Zero. It's very dark here.
-1
1
-1
-1
-1
1
0
0
#1
One
You see Number One.
0
-1
0
-1
-1
1
0
19
potrzebie
***END OF DUMP***
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This is your world on Proto. And this is ProtoMUCK v1.01.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This diff is collapsed.
dumpwarn_mesg=[WARN]
deltawarn_mesg=[WARN]
dumpdeltas_mesg=[SAVE]
dumping_mesg=[SAVE]
dumpdone_mesg=[DONE]
huh_mesg=Huh? Just type "help".
leave_message=Thank you, muck again.
idleboot_message=*poke* *poke* Psst!
noperm_mesg=Permission denied.
noguest_mesg=This command is unavailable to guests.
penny=penny
pennies=pennies
cpenny=Penny
cpennies=Pennies
muckname=ProtoMUCK
dummy_midi=./
mailserver=server.com
servername=server.com
reg_email=user@server.com
dump_interval= 0d 2:00:00
dump_warntime= 0d 0:02:00
monolithic_interval= 0d 4:00:00
clean_interval= 0d 0:15:00
aging_time= 30d 0:00:00
maxidle= 0d 1:00:00
cron_interval= 0d 0:15:00
mainport=3002
wwwport=3001
puebloport=3000
max_object_endowment=100
object_cost=0
exit_cost=0
link_cost=0
room_cost=0
lookup_cost=0
max_pennies=2000000
penny_rate=0
start_pennies=0
command_burst_size=500
commands_per_time=20
command_time_msec=1000
max_delta_objs=20
max_loaded_objs=5
max_process_limit=400
max_plyr_processes=32
max_instr_count=20000
instr_slice=2000
mpi_max_commands=2048
pause_min=100
free_frames_pool=8
max_output=128000
rand_screens=0
listen_mlev=4
playermax_limit=200
process_timer_limit=4
huh_command=#18
login_huh_command=#-1
login_who_prog=#-1
player_start=#0
reg_wiz=#-1
path_prog=#-1
player_prototype=#-1
cron_prog=#-1
www_root=#8
www_surfer=#28
use_hostnames=yes
log_commands=no
log_connects=no
log_failed_commands=no
log_programs=no
log_guests=no
log_files=no
log_sockets=no
dbdump_warning=no
deltadump_warning=no
periodic_program_purge=yes
secure_who=no
who_doing=yes
realms_control=no
allow_listeners=yes
allow_listeners_obj=yes
allow_listeners_env=no
allow_zombies=yes
wiz_vehicles=no
wiz_name=no
recycle_frobs=no
m1_name_notify=yes
registration=no
online_registration=no
fast_registration=no
teleport_to_player=yes
secure_teleport=yes
exit_darking=no
thing_darking=no
dark_sleepers=yes
who_hides_dark=yes
old_priorities=yes
do_mpi_parsing=yes
look_propqueues=yes
lock_envcheck=no
diskbase_propvals=no
idleboot=no
playermax=no
db_readonly=no
building=yes
all_can_build_rooms=no
restricted_building=yes
allow_home=yes
quiet_moves=no
expanded_debug=no
This diff is collapsed.
<code>
Welcome to a ProtoMUCK site!
connect <user> <password> to login
ch <user> <password> to login hidden (Wizard only)
request <user> <email> <your name> to request a character
help to get help
WHO to see who is online
QUIT to quit this screen
</code>
Welcome to a ProtoMUCK site!
connect <user> <password> to login
ch <user> <password> to login hidden (Wizard only)
request <user> <email> <your name> to request a character
help to get help
WHO to see who is online
QUIT to quit this screen
This is the welcome directory, it holds screenshots of welcome messages for
the muck.
Put one welcome screen in a file, then use symbolic links to link them as
welcome1.txt, welcome2.txt, etc, in the game/data directory. These are used
for the random welcome screen shower as set by a @tune option.
You can set items in the #0=@/welcome/ directory to allow custom welcome
screens for certain sites, along with a banned screen for those whose sites
are under suspicion and locked out for one reason or another.
legacy.txt and fbi.txt are sample files to see how to create your own login
screens. You need an editor such as 'joe' for Linux which supports adding
Ctrl-Ms in the text file. (You should see some bold Ms at the end of each
line.) This is needed because some telnets will not do proper linefeeding
if the Ctrl-Ms are not there. (Dos CR-LF vs Unix only doing LF.)
You will want to change the symbolic link game/data/welcome.txt to point to
your own welcome screen:
cd $HOME/neon/game/data
rm -f welcome.txt
ln -s welcome/yourscreen.txt welcome.txt
The way to add custom welcome screens on a per site basis, you can specify
domains using the same pattern matching used for the @/sites/ site locking
system. The format is slightly different to allow for proper sorting of the
properties in the @/welcome directory so site-specific settings take
precedence over larger domain entries. You specify a property that starts
with a level, then an ip number mask. The property should start with a one
word screen name followed by any comment explaining why you did it. Because
of sorting, 0 priority items take precedence over priority 1 items, etc. If
you wish to use 2 or more digits for priorities, pad smaller digits with 0s
as the comparision used is a string based comparision, not numerical. For
best results set the priority to the number of 0 '*' matches in the ip
number.
@set #0=@/welcome/0 123.213.45.54:# for Bob
-- A '#' screen means use random screen selection. This is useful if you
have a whole domain banned but wish to allow normal welcome screen
selection (which is the random screens method if turned on) for a small
subdomain of accepted people.
@set #0=@/welcome/0 123.213.45.54:. for Angel
-- A '.' screen means use the default 'welcome.txt' screen at all times.
This is useful if you have sites that you wish to not use the random
screen selection for whatever reason but just show one standard login
screen.
@set #0=@/welcome/4 0.0.0.0:fnord for UberMuck
-- This would set the base login screen to be 'fnord' for ALL internet
addresses (a 0 means a * pattern match.) Subdomains could then be set to
use random screen selection with '#' if desired or the standard
welcome.txt file with a '.'.
@set #0=@/welcome/3 123.0.0.0:goober for AndyGriffinMuck
-- This would set the standard screen to be 'welcome/goober.txt' for all
machines in the 123 subclass. Because domains are usually specified
using either the first 2 or 3 numbers, this wouldn't normally be used.
@set #0=@/welcome/2 129.89.0.0:uwm for UW-Milwaukee!
-- This would set the standard screen seen by anyone logging in from
UW-Milwaukee the 65535 machine domain to 'welcome/uwm.txt'. Schools
often have a full 65K ip numbers while smaller companies may have a
block of 256*N addresses, shared by Sprint or MCI netblocks.
@set #0=@/welcome/3 199.89.235.0:banned for security reasons
-- This would set a 256 machine domain to 'welcome/banned.txt'. The more
efficient way of doing this would to '@set #0=@/sites/199.89.235.0 L:eep!'
which would lock out this domain from logging into any characters.
There are many options available for locking out and blocking sites from
total site lockouts to individual player lockouts, vacation suspensions,
preventing a site from logging into characters, just guests, or
requesting characters. A @/login directory is available on players to
allow themselves to only log in from certain sites for added security, but
this feature still needs proper muf or other support for setting/removing
sites.
@set #0=@/welcome/4 199.89.235.10:# for Mystikite's home
-- As mentioned above, this will override the banned text just set for the
larger 3 number 199.89.235.* domain for this particular machine and
allow standard random login screens to be shown. This would also
override the first 'fnord' setting, so it takes some thought to get each
site showing what you want it to.
FFFFFFFFFFFFFFFF BBBBBBBBBBBB IIIIIIIIIIIIIIII
FFFFFFFFFFFFFFFF BBBBBBBBBBBBBB IIIIIIIIIIIIIIII
FFFF BBBB BBBB IIII
FFFF BBBB BBBB IIII
FFFF BBBB BBBB IIII
FFFFFFFFFF BBBBBBBBBBBBBB IIII
FFFFFFFFFF BBBBBBBBBBBBBB IIII
FFFF BBBBB BBBB IIII
FFFF BBBBB BBBB IIII
FFFF BBBBB BBBB IIII
FFFF BBBBB BBBB IIII
FFFF BBBBBBBBBBBBBB IIIIIIIIIIIIIIII
FFFF BBBBBBBBBBBB IIIIIIIIIIIIIIII
WW WW AAAA RRRRRR NN NN IIIIII NN NN GGGGG
WW WW WW AA AA RR RR NNNN NN II NNNN NN GG
WW WWWW WW AAAAAAAA RRRRRR NN NNNN II NN NNNN GG GGG
WWW WWW AA AA RR RR NN NN IIIIII nN NN GGGGG
For help connecting or getting a character, type 'help'.
Welcome to LOST STARS!
* connect (user) (pass) to log in as an existing player.
* request (user) (e-mail) (Your Real Name) to request a character.
* QUIT to disconnect
See http://adobe.chaco.com:10001 for more information.
This diff is collapsed.
muf files will go here...
#!/bin/tcsh
#
set tmpfile=uncomp.db.$$
set tmpfile2=wordlist.$$
if ( $# != 2 ) then
echo "Usage: $0 infile outfile"
exit
endif
if ( "$1" == "$2" ) then
echo "$0: infile and outfile cannot be the same."
exit
endif
echo "Database re-optimizer: This may take a while, if your database is huge."
echo "FurryMUCK's 60 meg db took less than an hour to re-optimize, but most of"
echo "that time was spent in converting the database formats and compression."
echo "The program to find the optimized words took less than 15 minutes."
echo ""
echo "Uncompressing the input db..."
./neonmuck -convert -decompress $1 $tmpfile
echo "Calculating the optimized wordlist..."
( \
cat data/wordlist.txt | sed 's/^/:0:/' ; \
cat $tmpfile \
) | ./topwords | sort > $tmpfile2
mv data/wordlist.txt data/wordlist.bak
mv $tmpfile2 data/wordlist.txt
echo "Recompressing the database with the new optimized wordlist..."
./protomuck -convert $tmpfile $2
rm -f $tmpfile $tmpfile2
echo "Done. The file $2 will now contain the optimized database."
This diff is collapsed.
#!/bin/sh
# $Header: /export/home/davin/tmp/protocvs/proto1.0/proto,v 1.2 2000-09-20 18:34:09 akari Exp $HOME/proto/proto,v 1.1 1996/09/19 03:26:44 jtraub Exp $
# $Log: not supported by cvs2svn $
#
# Revision 1.2 2000/06/27 21:45:13 moose
# Update for ProtoMUCK
#
# Revision 1.1 1996/09/19 03:26:44 jtraub
# Initial revision
#
# Start/stop the netmuck server.
HOME=$HOME
case "$1" in
start) $HOME/proto/game/restart ;;
on) $HOME/proto/game/restart ;;
stop) kill `cat $HOME/proto/game/protomuck.pid` ;;
off) kill `cat $HOME/proto/game/protomuck.pid` ;;
*) echo "Usage: $0 start|stop"; exit 1 ;;
esac
exit 0
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
If you do not have Bison and Flex installed on your system,
copy these files out into the src directory. The .c files go in
src, and the .h files in src/inc... they were built under a clean
Flex/Bison distribution.
--Loki
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment