123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462 |
- VERSION 3.8 (Apr 05/09)
- * new module, 'doc', for reading Python documentation in game, and generating
- html versions of module documentation
- * new module, 'display', containing utilities for displaying tabular data
- and meters
- * admin disconnect command, takes a socket ID. Use connections to view sockets
- * trigger types can now be added from outside the scripts module
- * fixed a bug in pathfinding, causing incorrect directions to be given
- * mudsys.add_xxx_method now accepts properties, as well as methods
- * Python StorageList() can now take a Python list of StorageSets as argument
- * Improved IAC handling
- * Changed the way object equipping and unequipping is handled to accomodate
- for hooks
- * Added copy() and store() methods to Python characters and objects
- * Added read() methods to the obj and character modules
- * Added ability to check if character can edit a zone, from Python
- * Fixed infinite loop caused when malformed storage sets are read from disk
- * ch.send rewritten. Now takes optional newline=True|False, and can have
- embedded dynamic descriptions
- VERSION 3.7.9 (Mar 02/09)
- * The location of zone directories changed from lib/world/ to lib/world/zones/. You will need to manually move your zone files to the new location.
- * Added new user group, wizard, to encompass general wiz-ly commands that
- should Have shared access by admins and builders.
- * restructured the group priviledges for some admin and build commands. Be
- sure to give all of your admins/builders the 'wizard' user group
- * User groups can now be edited through 'pcedit'
- * Fixed problem with display 'sticking' before a prompt
- * Added support for guest characters
- * Account menu and login sequence drastically changed!
- * Added support for instanced rooms and zones
- * Added support for persistent (state saved across reboot & crash) to rooms
- and their contents (chars, objs). A stand-alone module will be released for
- tracking persist rooms and contents
- * Added new module for logging communication histories (tell, chat)
- * Exposed aliases to Python
- * All uids now poll from a common pool
- * Rooms can now have room-specific checks added to commands without having to
- override the entire command
- * reading/writing via storage sets is now buffered instead of being done
- directly
- * char_vars module renamed dyn_vars, and added to rooms and objects as well
- * exposed the text editor to Python
- * fixed nasty bug with objects sometimes being added to game twice, and
- corrupting the object list when they are extracted
- * added support for (string) pearson hashing, with 8, 16, and 32 bit hashes
- * exposed helpfiles to Python
- * Fixed the nasty green color leak issues
- * Received IAC events now broadcast via the receive_iac hook (sock, sequence)
- * disabled MCCP on this basis:
- http://www.mudconnect.com/discuss/discuss.cgi?mode=MSG&area=coders&message=24304#24304
- MCCP will be re-added as a stand-alone module, working via the iac hook
- * characters, rooms, and objects now track their 'birth' -- the time at which
- their 'new' function was called.
- * Fixed olc so the OLC extenders will properly work with Python
- * Fixed various issues with trying to use OLC commands on entities with
- nonexistent zones
- * generic_find and parse can now search for things by UID, as well as keywords
- * The ch.cansee function can be extended through Python
- * Character, room, and object bitvectors can now be extended and accessed via
- Python
- * Fixed issue with /e in the script editor adding \r to the end of lines
- (which makes Python choke)
- * Added new trigger types for looking, closing, and entering the game
- VERSION 3.7 (Dec 06/08)
- * Python can now access World (e.g., for adding protos, dialogs, quests,
- etc...). See scripts/pymudsys.c for relevant functions
- * medit, redit, and oedit now have 'extenders'. Extra menu options can be
- registered, so the OLC interfaces can be extended without editing the module
- directly
- * Python now has access to do_olc, and OLC extenders
- * Python can now add new item types
- * Changed how obj/room/mob prototypes are turned into OLC-editable things
- * multi-word arguments to the commmand parser can now be specified
- with " and " or ' and '
- * Replaced all instances of vsprintf with vsnprintf
- VERSION 3.6 (May 31/08)
- * Deleted the old help module and wrote a new one, help2.
- * When the mud reads in Python commands, attempts to set their documentation
- string as the helpfile for the command, if no helpfile for that command
- already exists.
- * Outbound text and prompt are now flushed separately and have their own unique
- process and finalize hooks incase they need to be handled separately.
- * Added a 'flush' hook to the beginning of flush_output
- * Goto and transfer are now builder commands, not admin commands
- * removed the instantiate command; use rcopy
- * Fixed bug with cmdcopyto
- * Fixed message bug with emote and gemote when no emote text is entered
- * Fixed a problem with OLC menus sometimes printing twice
- * start_update was broken last patch and would not requeue events; fixed
- VERSION 3.5 (Oct 15/07)
- * Revamped add_cmd. It no longer takes position or pc/npc constraints
- * New function, add_cmd_check, that adds a function that runs pre-command. If
- it fails, the command doesn't run. Useful for modules to modify command
- conditions after the fact. Like, for instance, combat modules preventing
- movement while combat is taking place.
- * Output and prompts are now sent after the current event cycle resolves,
- instead of before.
- * Events added with a delay of 0 now queue to the back of the event list,
- instead of being pushed on to the front of it. This is for events that
- trigger other events that need to be resolved in the same event cycle.
- Normal events (with a delay > 0) will be resolved on the next event cycle,
- as usual.
- * Characters now save after the init_player hooks are run
- * Fixed a problem with special exits not displaying the proper exit messages
- * Enter hooks are now properly run when someone enters a portal
- * pyobj.load_obj now properly sends worn items to the inventory if no body
- location arguments are supplied
- VERSION 3.4 (Sep 22/07)
- * Made sure NM compiles with Python 2.5
- * Python module for finding the shortest path between two rooms now exists
- * Python module for doing repeatable/nonrepeatable routines (i.e. path
- following) now exists
- * There is now a 'script' room reset type. Runs a script on the initiator
- (room, loaded mob, object, etc) as 'me'. Intended to set up behaviors for a
- unique instantion of a mob/obj like pathing.
- * renamed the char_vars module to dyn_vars. It now applies to objects and rooms
- * added a initialize hook before we enter the gameloop
- * the commands command now displays room-specific commands
- * Made generic_find() search equipment before inventory
- * Python rooms are now hashable
- * Characters can no longer call act() in Python unless they have a room (i.e.,
- no actions if a character's prototype is still initializing the character)
- * Fixed bug with lists not properly handling element removals
- * Fixed a bug where a char/obj/room would potentially not properly dereference
- after its prototype script had being run over it
- * Fixed problem with nested calls to hookRun overwriting eachothers' argument
- list
- * Fixed a buffer overflows in storage.c parse_line, parse_string, and
- write_string_data
- * Removed night descs. Their functionality can be reproduced with embedded
- Python scripts.
- * Fixed memory leak with Python events not properly decrementing ref counts on
- owners for interrupted events
- * Fixed a bug where the python char generation wasn't calling char_to_game,
- allowing new characters to interact with stuff, but not having stuff be able
- to interact with them
- * If the mud is locked down to players, no new players can be created
- The mud no longer hangs if a person hits enter and nothing else on the first
- connection prompt
- VERSION 3.3 (Dec 25/06)
- * If a Python module has errors when initialized, the MUD halts booting and
- prints a traceback to standard out.
- * Gave Python access to the input handler and prompt
- * The main prompt is now contained in pymudsys.c and can be overwritten with
- the Python command, mudsys.show_prompt = new_prompt_here. Demo contained in
- the doc folder
- * Rewrote login and account generation in Python
- * Rewrote character generation in Python
- * Moved color and universal newline code into Python
- * added getAuxiliary() to Python rooms and objects
- * Gave Python access to char, obj, room, etc... without them having to
- actually be in game (i.e. for char gen). Still need to be extracted after
- being used.
- * Replaced some send_to_char oopsies with ch.send in the python code
- * Deprecated the Python event.start_update; recursively call
- event.start_event now
- * Fixed some bugs with ch or vict being NULL in message()
- * cmd_delay now accepts floating point delay values
- * Fixed bugs where Py_None returned without increasing its reference count
- * Fixed bug with completed Python events not decrementing data reference count
- Bug still exists for interrupted events.
- * Optional SCons build system introduced
- VERSION 3.2.1 (Jul 09/06)
- * Fixed bug with NPCs becoming unable to speak
- * Mysty mysteriously stopped loading. She now loads again
- * Fixed bug with lockdown not working
- * Fixed a memory leak in Python char.list_chars() and char.list_sockets()
- * Fixed bug with atoi() not being imported in cmd_admin.py
- * Gave Python access to a character's notepad
- * Fixed various spelling mistakes
- VERSION 3.2 (Jul 01/06)
- * Python now has access to parse_args()
- * Python now has access to hooks. Hooks rewritten to accomodate for this
- * Most of the cmd_xxx functions were rewritten in Python (lib/pymodules)
- * Almost all remaining commands shuffled around into modules
- * Python modules can now have an __unload__ method that is called whenever
- they are reloaded with the pyload command. Useful for removing commands or
- hooks
- * Room resets now apply recursively to prototypes
- * Added builder commands: rcopy, dig, fill
- * Modified the "commands" command to accept a group list
- * Fixed python aux data crash bug introduced in 3.1
- * Fixed bug not allowing exits to link between zones
- VERSION 3.1 (Dec 04/05)
- * Let dynamic descriptions be embedded with a Python-like, markup
- language-like style. For example:
- You're in a [if ch.race=="fairy"]HUGE[elif ch.race=="giant"]tiny[/if] cave.
- * Prototypes and triggers now re-use code objects when they are run multiple
- times, instead of recompiling from source every time
- * Similarly, characters, objects, and room now reuse their Python
- representations instead of remaking one every time it is needed
- * Redid the way hooks work, to make them more flexible.
- * Added new hooks for account and character creation
- * Changed functionality of next_space_in to to check for newlines, carriage
- returns, and tabs
- * Made bodies reset when races are changed in Python scripts
- * Characters' equipment can now be accessed in Python
- * Changed parse_keywords and parse_strings to return a list of strings rather
- than an array of strings
- * Rooms now auto-reload after being edited in OLC
- * Prototypes now print errors if their parents cannot be found when run
- * Exit descriptions can now have embedded python scripts
- * Added new hook types for after looking at rooms, exits, objects, and chars
- * Python now has access to functions in the time module
- * Made some small changes to the functionality of Sets
- * Added warning message to OLC for people making closable exits w/o keywords
- * Carriage returns are now stripped from triggers when they are edited
- * Parse now handles multiple words surrounded by " and " as a single word
- * Redid try_equip to work with more than just worn items
- * Added set methods for the Integer, Double, and Long structs. Also added a
- new struct, Boolean.
- * Fixed bug with Python event module method list not being terminated properly
- * Fixed bug with PyChar_act editing PyStrings when it shouldn't
- * Fixed crash bug with PyChar_geton
- * Fixed many memory leaks caused by improper handling of Python objects
- * Fixed some buffer formatting problems
- * Fixed problem with dynamic descs crashing the mud
- * Fixed problem with OLC not liking " in descriptions. This problem still
- exists in short and room descriptions, but not paragraph descriptions.
- * Fixed bug with mud crashing if players do not have a room but use a command
- * Fixed bug with exits not being able to be set as closable
- * Fixed a bug with the "enter" command not working properly
- * Fixed alignment problems in worn item type OLC menus
- * Fixed bug with embedded scripts not expanding for char or obj descs
- * Fixed a bug with redit not generating night descriptions properly
- * Fixed bug with python load_obj not being able to equip characters.
- * Fixed bug with oedit, medit, and redit not handling spaces in extra code
- * properly
- VERSION 3.0 (Oct 07/05)
- * things in the game database (rooms, objects, mobs, triggers) now have string
- keys instead of vnums. Each key has two parts: a name and a locale (zone
- key). So, for instance, Mysty which was vnum 100 in v2.7 is now
- mysty@examples
- * rooms, objects, and mobiles now support inheritance.
- * mob, obj, and room prototypes are now stored as python scripts.
- * scripts now run in a special restricted environment to prevent scripters
- from running malicious code. Modules written in python are still run in the
- normal Python environment.
- * rooms must now be rreload-ed before changes made in OLC are updated.
- * replaced load/delete_account/player with get/unreference_account/player to
- prevent multiple copies of the same account/player from being loaded into
- memory.
- * created general framework for setting up hooks.
- * commands no longer have a subcmd integer value associated with them.
- * dialogs have been removed from the codebase, and will be re-released as an
- optional module (forthcoming)
- * new function, parse_args, added to parse command input into appropriate
- values.
- * rooms can now have their own commands
- * exits now have python representations
- * rewrote OLC (yet again... hopefully the last time!)
- * added new OLC commands (mpedit, opedit, rpedit) for editing the python code
- for prototypes directly
- * room reset rules are no longer stored on rooms themselves. They now have
- their own entries in the world database.
- * replaced all occurences of strdup(var ? var : "") with strdupsafe(var)
- * many bug fixes and other minor changes
- VERSION 2.7 (July 31/05)
- * changed the way the world is saved to disk
- * added lazy loading for the game world
- * removed some unused types defined in mud.h
- * added wrappers for int, double, and long so they can be passed around as
- pointers
- * added lazy loading; massive changes to how zones are stored on disk
- * added python wrapper for generic_find()
- * Fixed bug with setting an object type that does not exist (thanks Venzor)
- * Fixed bug with transfer crashing when target did not exist (thanks Venzor)
- * Modified scrun so scripts can be run from a person's notepad (thanks Venzor)
- * Changed the scriptGetNotepad function to return the entire buffer, and not
- just the string
- * Terrain saving fixed AGAIN... apparently, I didn't add the changes last
- version. This time, terrain values save as strings, not ints. Easier
- reading in the zone files. Yay readability.
- * Fixed bug with deleteRoom crashing us whenever the room contained objs or
- mobs
- * New function: build_who() ... returns a buffer of the who list, rather
- than the who list just being accessable through a command.
- * Fixed bug with admins not being able to edit all zones
- * Extraction of objs/mobs is now a two-stage process: first, all of the stuff
- is done to prepare them for extraction (e.g. remove all pointers in game to
- them, remove them from rooms/containers). Then, at the end of the pulse,
- they are removed from game and deleted. This is to help prevent against
- problems with referencing bad memory when trying to use something in a
- function after it has been extracted in the same function.
- * Added new admin command, force
- * expanded generic_find() so it can return lists of characters if all.xxx is
- used
- * Added script editor option for supressing auto-indent (easier pasting of
- code)
- VERSION 2.6 (July 06/05)
- * Fixed HUGE memory leak with zones saving. Storage sets weren't closing!!
- * Fixed bug with room terrains saving as ints but loading as strings (they
- save/load as ints. Ideally, I would have liked to do it as strings, but
- then I'd have to write a conversion patch. Maybe next version)
- * Helpfiles can now be viewed from olc
- * resized the column width for help listings and command listings
- * Added a new method to pychars which allows strings to be paged rather than
- sent, for easy reading of long text
- * set_val now works on offline characters
- * Added new scripter command, scstat to pull up script info for a vnum
- * Fixed bug with count_occurences not working properly.
- * Aliases be embedded in other aliases. Aliases can be multi-command
- * Fixed bug with set not working on one's self
- * Special exits can now have their "opposite" direction set in OLC When
- closing/opening or locking/unlocking an exit, the opposite exit on the other
- side will also do the same.
- * Made special exits check before normal commands
- VERSION 2.5 (June 18/05)
- * New manual for scripts and extending the mud in Python
- * Gave python access to storage sets, auxiliary data, event handler,
- action handler, and way more variables + functions
- * Fixed bug with gcc not building dependencies properly on some OSes
- * Fixed bug with wearable items not being, well, wearable!! oops...
- * A bunch of random utility functions, and minor changes
- VERSION 2.4 (June 4/05)
- * Redid big chunks of the Makefile so output is easier to read.
- * New make command added: make backup. Backs up lib, src, and doc directories
- * redid some of the message() command. There are no longer TO_NOTCHAR and
- TO_NOTVICT flags (they are redundant)
- * Fixed a couple minor bugs in OLC that could potentially get you stuck at
- a menu screen with no way to exit
- * Gave python access to more aspects of rooms, characters, objects...
- * Python packages can now be imported, in addition to modules
- * Fixed a buffer overflow bug when loading python modules
- * Fixed a problem with text displaying on the same line as a prompt
- * Fixed problem with who displaying the wrong group status for people
- VERSION 2.3 (May 27/05)
- * Removed levels, added "user groups" for command priviledges
- * Fixed bug with purge trying to extract null objects or characters
- * Fixed bug with unequipping objects more than once that are on more than
- one bodypart
- * Python objects are now extendable from outside modules
- * Commands can be written in python
- * Modules written in python can now be loaded into NakedMud
- VERSION 2.2 (May 12/05)
- * Accounts have been added to the MUD.
- * Minor fixes to input handling and flushing of output when we don't have a
- prompt to display after the flushing.
- * ./autorun.py can now be used to start up the autorun file
- * Added an MOTD command
- * Added read/store_bool to storage.h
- * new admin command, lockdown, that can bar players of certain levels from
- entering the game.
- * sets now auto-expand themselves like hashtables
- VERSION 2.1.1 (May 08/05)
- * Fixed two major bugs: property_tables will no longer give a key a negative
- bucket number. Copyover now works. Socket data wasn't being zeroed before
- it was being used, causing us to crash on some platforms. Thanks go out to
- Rhaelar for pointing out and helping me find both of these bugs
- VERSION 2.1 (Apr 24/05)
- * scripts can now attach/detach other scripts from rooms, objs, and mobs
- * hashtables no longer need a size specified when they are made; they will
- also automatically expand themselves as needed
- * major bugs with olc2 fixed; when editing a new object or mobile, the item
- will actually be created now
- * minor bug with "fill" fixed. When filling an exit that doesn't link back to
- the room you are filling from, the mud will no longer crash
- * oedit and medit can now be used to edit mobs and objects in your room or
- in your inventory, respectively
- * new script type: runnable. New command: scrun
- * bitvector edit added to olc2
- VERSION 2.0 (Apr 15/05)
- * changed the way file dependencies are created during make (calculating
- dependencies is an automatic process now)
- * The code had a *huge* number of changes. The more prominent changes listed:
- * Completely redid OLC. There is now a new module called OLC2
- * Made some modules _neccessary_ to NakedMud (e.g. scripts, olc, and other
- core modules)
- * Stacked input handlers for sockets, instead of socket states
- * A new, more robust, more easily extendable text editor
- * hashIn will now correctly return TRUE if there is a key with a value pair
- of null
- * Fixed the "copyover" bug that was introduced by the last version's directory
- structure.
- * Fixed the min/max position problem with socials. These parameters now work.
- * Changed the hashtable to be case-insensitive
- VERSION 1.5 (Jan 29/05)
- * Created a new unordered storage type, SET
- * helpfile system completed
- * Added a linecount to the end of the text editor.
- * Added a new 'write' command that allows players to enter a basic text
- editor so they can compose messages. Used with editing helpfiles, and later
- for mail and board messages.
- * Re-did races.c so new ones can be added by modules
- * Added auxiliary data to zones
- * moved try_buildwalk() from cmd_builder.c to movement.c
- * renamed admin.c to cmd_admin.c and builder.c to cmd_builder.c
- * Added a "transfer" so wizzies can move players around.
- * Added a "stop" command to interrupt player actions
- * Looking at an exit now displays the objects/characters in the room as well
- * Killed a bunch of the terrain data that seemed out of place for NakedMud
- * Changed roomGetExitNames to return pointers to the exit names instead of
- strdups of them, so users don't have to worry about garbage collection.
- * Immortals can now go invisible
- * added a new type of event -> updates. They will automatically add themselves
- back into the event queue after they fire
- * Made vnums show for mob/objects in lists when builders and above see them.
- Still needs to be done for mobiles on furniture, and the furniture itself
- * Made characters save after creation
- * Mobile gender can now be changed in OLC
- * Problem with gender names fixed (male/female/neutral names were mixed up)
- * removed the "exit" parameter from scripts
- * removed the "comment" parameter from all of the store_xxx functions in
- the storage utility.
- VERSION 1.4 (Jan 18/05)
- Too many changes to list. Some of the major ones include:
- * NakedMUD should now be set up to compile under most linux systems rather
- than Mac OSX - us OSX'ers are probably the minority.
- * Makefiles were completely redone. Compiling modules is much easier now.
- Many thanks go out to Tyche for pointing me in the direction of a paper
- that allowed me to redo the makefiles nicely.
- * You can now pull an element out of a list, even if you are iterating over
- the element.
- * Aliases were extracted out of character.c and added as a new module
- * char_vars were extracted out of character.c and added as a new module.
- char_vars can now be numerical values AND strings.
- * scripts were updated to reflect changes to char_vars
- * socials were added, plus an OLC for them (socedit).
- * some work was done to generic_find() and its related functions
- * various bug-fixes here and there.
- VERSION 1.0 (Dec 26/04)
- * First public release of NakedMud
|