Commit 8566bf0f authored by Alynna Trypnotk's avatar Alynna Trypnotk

Proto 1.0 versions historical versions only!

parent 2f78525e
/**************************************************************************
* 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
\ No newline at end of file
## 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
NeonMUCK Changes Files
----------------------
The work on NeonMUCK was not highly documented. These files are the only
indications of any record keeping on the changes that went into NeonMUCK.
They have been included here as a reference as to what ProtoMUCK evolved
from. Nothing contained in them is implied to be correct, or to even be
supported in ProtoMUCK anymore.
NeonMuck source code is (C)1996 Andrew Nelson and Jeremy Blackman, all
rights reserved. All pertinant TinyMUCK and TinyMUCKfb copyrights also
still apply. Database compression code (C) Dragon's Eye Productions and
used with the kind permission of Dr. Cat.
---- Changes from normal TinyMUCKfb as of Neon 1.5, first release ----
REALLY MAJOR:
* Pueblo multimedia protocol support added.
- 'PUEBLO' ($) flag added.
- notify_html, notify_html_exclude, html_nocr, html_exclude_nocr
MUF primitives added.
- {html:} and {ohtml:} MPI added
* ANSI color support added.
- 'COLOR' flag added to players.
- ansi_notify MUF primitive added
- {ansi:} MPI added.
* New MUCKER / WIZARD level system added.
- see 'help newlevels'
* WWW server support added.
- notify_descriptor (MAGE (M4) only) MUF primitive added.
- Users can create homepages on themselves.
- MUF programs can work as webpages as well.
* Combat/RPG support planned
- MOBILE and ETHEREAL flags (currently unused by server) added for
MUD-program use.
OF OTHER INTEREST:
* Program logs show user's mucker level.
* @/lockout-msg can be set on a player to prevent them from logging in...
contents of this prop will be displayed and login rejected.
* Lots of new @tune parameters
* Online registration request hopper added.
* wizchat/wc added internally.
* Wizards can choose to not see wall_wizards messages
* Added setting to curtail building if DB hits a certain size
* Wizards can @name non-wizards without needing to @newpassword the user
* Dark rooms do not display contents even to owner. Examine will still
show all contents
* Fixed simple_look in look.c to not use (@desc) for the 'command @'
* _sys/lastcleantime added for cleanup intervals
* Added support for mortal use of !@ps
* Wizards cannot @force other wizards. Period.
* MPI security holes patched.
* @/mage feeps added to allow select mortals higher-level use of certain
commands.
* Wizards can teleport into player's inventories. No, you can't ask why.
Boredom, ok? :)
* MUF 'parseprop' now parses MPI _correctly_ to remove all non-printing
characters from result string.
* MUF 'moveto' prim now allows entry of vehicles without a wizbit.
* Wizard WHO list modified so there's more room for sitenames.
* 'Doing...' in normal WHO list is replaced by #0=_poll, if set.
* Fixed @tune to allow un-setting of dbref tune params.
* Added GUEST flag, restricted use of certain commands so characters set
GUEST cannot use them. Set this flag on twinks, too! Note that MUF
programs not locked against GUEST characters could potentially give them
these powers back.
* Added a 'help' command to the login screen to spit back 'connect.txt'
as opposed to welcome.txt.
* 'viewable' flag added.
* DARK flag on a player will send them ALL debug info for a MUF program
they run. HACK FOR DEBUGGING PURPOSES...(?)TEMPORARY(?)
* Andy made a truly garish default color scheme. Watch out! :)
* Program changes by wizards are NOT logged to logs/programs.
This saves an unbelievable amount of disk space.
* Nicer @stats and @proginfo
* Automatic character generation / e-mail based registration added. Cool!
* Some sites, for real losers, can be COMPLETELY blocked. Neon won't
even output the login screen before dropping connection.
* {showlist} MPI primitive will print a list without running against the
{list} length limit.
* A set of randomly cycled login screens! Again, no, you can't ask why! ;)
INTERNAL:
* Fixed some logging issues.
* Hostname resolution in registration connection should work better now.
* Violated some C programming rules, but fixed dump_users() to not crash
on long usernames.
* format_time() fixed.
NeonMuck source code is (C)1996 Jeremy Blackman, Andrew Nelson, and Joe
Traub.
All rights reserved. All pertinant TinyMUCK and TinyMUCKfb copyrights
also still apply. Database compression code (C) Dragon's Eye Productions
and used with the kind permission of Dr. Cat.
---- Changes from pre-2.x Neon as of Neon 2.0 ----
* First prototype of NWI (Neon Web Interface) is in place.
- this allows a user without Pueblo to log in and still get
multimedia.
* More MUF primitives cleaned up.
* Some 'ease of use' MPI and MUF for multimedia added...
- commandtext
- playmidi
* KEEPDUMPS cleaned up.
* First hooks for a potential Windows port added in place.
---- Changes from Neon 2.0 as of Neon 2.10 ----
* NWI cleaned up slightly.
* This version is mostly internal changes to allow easier compiling
across different platforms.
- SunOS/Solaris now compiles without too much trouble, although a
slight manual change to autoconf.h is still needed after running
the configure script.
- WinNT/95 port works now!
* Some (undocumented, and possibly temporary) new MUF primitives added,
to support arrays and socket controls.
---- Planned changes ---
Loki is talking to Foxen, the author of TinyMUCKfb, about establishing
some standards between the two MUCKs so that TinyMUCKfb, which will support
multimedia as well eventually, will be able to exchange code with NeonMuck.
This may necessitate a large revision, to 3.x, but will allow the standards
for arrays, sockets, etc to be fixed and then documented, since it will
then be a reasonable safe assumption they won't be changing.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Changes from 1.70 to 1.71
**Foxsteve**
- Added the RESTART, SHUTDOWN, DELTA, DUMP, and ARMAGEDDON prims to MUF.
- Fixed various overflow crashes caused by checks not being implemented
where they should be.
- Submitted MUF editing prims for review. Note that the MUF editng prims
were not included in Proto1.75, but will show up in 1.80. The reason
for this is that they will be redesigned to work with arrays instead
of stack ranges.
- Fixed }array, }list, and }dict to actually work. Those had gotten lost
from compile.c at some point along the line.
**Alynna**
* Added the define CYGWIN for defining a compile under CYGWIN. Off by default.
If you are compiling for Win32 under Cygwin, and define this, all will go off
without so much as a warning. :) Assuming your Cygwin is configed right.
* Added the define CYGWIN_TZ and CYGWIN_TZX which defines the
offset in hours and the label of the timezone for strftime.
* Added my comments in config.h, documenting these, and added a note to
the USE_STRFTIME define, saying not to define it, as CYGWIN define fixes
the protomuck strftime.
* strftime.c/format_time: For %Z: When determining the timezone, use
whats in the define, dont try to figure it out under CYGWIN, it breaks.
Takes the label from CYGWIN_TZX
* strftime.c/get_tz_offset: Return whats defined under CYGWIN_TZ, dont
try to figure it out.
* interface.c/main: DETACH define fix, CYGWIN is POSIX, but doesnt
explicitly say so. CYGWIN define activates this fix when DETACH is defined.
CYGWIN define tells proto to use 'setsid()' for CYGWIN.
* version.h: Update version number and specifically detect CYGWIN and display
apporpriate version info.
* game.c: Modified @version for new version info, and to display whether it is
compiled for Cygwin.
* Added define STAFF_POWER, by default defined, that adds a power called STAFF
to the powers list. It does nothing codewise, but it can be detected by
<obj> "STAFF" power?
This is so that you can give special priveledges in MUF to someone with that
power set without giving them a full W.
* STAFF_POWER define activates edits in the following files to support the new
@power: inc/db.h look.c p_db.c unparse.c wiz.c
* Fixed a crasher in fltostr() that would choke on some instances of float
props
* Fixed a segfault crasher in CYGWIN having to do with arbitrary declarations
of BUFFER_LEN in some buffers.
* Added two new propqueues, @dumpwarn and @dump, both called just before a dump
warning or a dump. They're only valid on #0, and return #-1 as the trigger,
#1 as the player triggering, and #0 as the location, at all times. This is
so you can execute programs or customize messages just before a dump warning
or a dbsave. Considering saves are near instant due to forking, it may be
found useful just to tune dumps up to one every 5 minutes or so, turn off
messages, and use the dump propqueues to do any pre-dump work needed. Both
queues run before the message, so that you can use the queue to change the
message.
* The new propqueues can be turned off by undefining DUMP propqueues in
inc/config.h
* Added 'staff? ( d -- i )' primitive, inserver define for:
dup "W" flag? "STAFF" power? or
**Akari**
INTERNAL:
December 10, 2001
- Fixed it so that DARK characters don't show up on the login
WHO anymore. [Proto only bug]
- Fixed a crasher with the in-server look crashing when internal
descs were used on things.
December 15, 2001:
- Made it so that _disconnect propqueues are called whenever a
character is dropped, not just when it is the last connection.
This is in line with how FB has always handled it.
Feburary 23, 2002:
- Fixed it so that failed help attempts don't show up to LOGWALL
admin when log_failedhelp is turned off.
Feburary 24, 2002:
- Made it so that array_tree_free_node() asserts that any subnodes
are NULL. This is to help catch any memory leaks. [FB6-change]
March 6, 2002:
- Fixed a typo in the @idesc code.
SERVER-SIDE:
December 10, 2001
- Removed the FLUSHCHANGED #ifdef from the code, since it should
never be turned off. [FB6 change]
- Made it so that the MUCK will fork off a child process to do
data base dumps, thus making it so that the MUCK won't have
to pause for dumps. [FB6 change]
- Fixed resolver to properly shutdown() indentd sockets. [FB6 fix]
December 15, 2001:
- Fixed a compiletime warning in the SMATCH prim.
Feburary 23, 2002:
- Incorporated a ton of changes made by Moose to make compiling
WinProto a much easier process.
March 9, 2002:
- Fixed a crash related to loading floating point props.
April 18, 2002:
- Fixed it so that the webserver port will not be opened if HTTPD is
undefined in config.h.
May 18, 2002:
- Removed the coremail call from the restart script for now. Will have
to rethink the design on that.
MPI:
December 10, 2001:
- Fixed MPI variables. Under certain condition garbage would be
put in them because they were not initialzed properly.
MUF:
December 10, 2001:
- Fixed ARRAY_GET_PROPLIST to not get confused by null value entries
in the list. It will create valid entries for them in the array with
the content of '0'. [FB6 fix]
- Made it so that ARRAY_FILTER_PROP follows the same behavior as the
SMATCH prim. [FB6 fix]
Feburary 23, 2002:
- Made it so that LOGSTATUS was understood by the interpretor.
- Made it so that flag? does not abort out on unknown flags, but
instead returns 0.
- Fixed NEWOBJECT to allow the appropriate destinations for the new
object to be located.
- Fixed PNAME-OK? and NAME-OK?.
Feburary 24, 2002:
- Made array sorting use FLT_EPSILON for more accurate number
comparison. [FB6-change]
- Added a }join inserver define that expands to:
} array_make \"\" array_join
- Added ARRAY_SORT_INDEXED. [FB6-addition]
- Blocked a security hole in moveto that allowed anyone to move to #0
by trying to send something to an invalid location. [FB6-fix]
- Added ARRAY_FMTSTRING. [FB6-addition]. The code on this was formatted
horribly, but it's 400+ lines long, so I kinda left it as-is for
now. Would be nice to format it correctly sometime...
March 25, 2002:
- Fixed a crasher with NBSOCKRECV handling Invalid Host returns wrong.
March 28, 2002:
- Fixed TREAD to work correctly.
- Fixed it so that NBSOCKRECV won't infinite loop if the input has no
end of line or character ASCII in it.
- Fixed NBSOCKRECV to ignore non-printable ASCII.
- Added NBSOCKRECV_CHAR. Only takes in 1 character at a time from the
input stream and pushes it onto the stack as an integer.
- Moved socket prims header stuff to p_socket.h instead of p_misc.h.
April 22, 2002:
- Fixed NBSOCKRECV to accept control characters again, and resolved
a number of socket prim related bugs.
- Changed FINDNEXT to not abort on garbage objects. It will return
garbage objects if the object
- Changed staff? to return false on players.
May 18, 2002:
- Fixed a hanging problem with nbsockrecv working with raw MS telnet.
- Tried to fix the NBSOCKRECV to accept control characters again, without
allowing Extended ASCII to get through.
\ No newline at end of file
This diff is collapsed.
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!
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.
This diff is collapsed.
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.
TinyMUCKfb5.47 Pueblo1.0.0 Pending Document Changes
---
These changes will go into the main documentation as appropriate around
the time that the server gets it's own, more sane, version name/number,
and when the database modifications and the changes to MUF and MPI are
done. In the meantime, this will be the repository of info on changes.
New commands:
@htmldesc <object>=<htmldescription>
This is shown to Pueblo users instead of the normal desc, if present.
New MUF commands:
notify_html (d s -- )
Only shown to Pueblo users...HTML codes are NOT escapes. TO have an HTML
code be effective, it must be sent with this.
notify_html_exclude (d s -- )
The html version of notify_exclude
parsecgi (s -- s1 s2 .. sn n)
Takes a string that would normally be passed from a form to a cgi-bin
script (e.g. ?parameter=value&parameter=value... ) and splits it
up into it's component parameter=value strings, performing the
extended character (%xx) hex-to-character conversion while doing so.
grabcgi (s s -- s)
Given first a full cgi string, and then the 'parameter' to get the
value of, returns either the 'value' for that parameter, or a null
string if there was no matching parameter.
++ (v --)
Takes a variable (the type you normally access with @ and !) and
increments it by one. Basically, a short method of doing
variable @ 1 + variable !
-- (v --)
Same thing as ++, but subtracts one.
mark ( -- s)
Places a stack marker (a unique string). This does nothing on it's
own, but is intended to pair with release.
release ( -- <lots of stack removed>)
This wipes the stack back to, and including, the last marker left by
mark. This is very useful for subroutines which should clean off the
stack when they're done.
MPI additions:
{html:<text>,<dbref>}
Only shown to Pueblo users, and the HTML codes are not escaped.
This is to {tell:} as notify_html is to notify
{ohtml:<text>,<dbref>}
As {otell:} is to {tell:}, so is {ohtml:} to {html:}
More additions coming!
PuebloMUCK 1.1.0 Changes
------------------------
Note that not all of these changes are in effect as of 1.0.9, some are in
remark blocks to prevent them from crashing due to bugs in Pueblo 1.07
which will be resolved by 1.10
Note that the MUCK name has changed. I'm doing so much modification that
calling this TinyMUCK 2.2fb5.47 Pueblo x.y.z seemed a bit clunky. So now
we're just PuebloMUCK x.y.z, where x.y is the Pueblo protocol we're
designed around, and z is the revision within that.
Unless specifically stated otherwise, the data in 'info pueblo' is still
valid.
--- MUF Changes ---
Two new commands:
html_nocr (d s -- )
html_exclude_nocr (d s -- )
These work like notify_html and notify_html_exclude except that they
don't have a carriage return on the end of the line.
--- MPI Changes ---
None as yet. Got suggestions? Tell me.
--- Server changes ---
*** THESE ARE BOTH DISABLED IN 1.0.9!! ***
@pedit <program>
A new version of @edit which uses Pueblo to create a GUI interface. This
interface can be left up to edit a program, and allows a debug window and
some other nice features. Note that this mode is highly experimental and
has NOT been tested at ALL because Pueblo does not support the features
needed to run it yet.
@led <object>=<listname>
A new lsedit replacement, built into the server. led creates a Pueblo
pane that allows you to easily edit existing lists, simply scroll through
the list and edit as needed, a'la Notepad or a similar basic text
editor. Again, the features needed to use this are not in place yet so
this has not been tested and is currently disabled.
----
Loki <ranma@eskimo.com> / <jeremy@adobe.chaco.com>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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
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 is your world on Proto. And this is ProtoMUCK v2.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.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
muf files will go here...
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.
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