Jump to navigation Jump to search
Version 1.8.5 patchlevel 0 -- Feb 12, 2011
- The PCRE library is now required to build Penn, instead of falling back to an old, buggy version formerly bundled with the MUSH.
- The OpenSSL library is now required to build Penn.
- A new command prefix, "}", enables debug for a single execution of the command - }think foo, }+who, etc. See 'help }' for more info.
- Added a new event, OBJECT`FLAG, triggered when a flag/power with the "event" restriction is set or cleared. Suggested by [SW]. [MG]
- Expanded help on lock types and @powers.
- @startups are now processed in db order (#0, #1, etc) on reboot instead of giving priority to player objects.
- @startups (and local_startup() in local.c) are now triggered slightly later, ensuring that the db is fully loaded, and that the connected player list is loaded on @shutdown/reboot.
- Switch names that are defined but not used by any commands are warned about on startup, and several unused ones have been removed from the master list.
- Tweak utils/mkcmds.pl for the above change and to remove references to generating the obsolete patches.h.
- Tweak the parameters of the skip list used to store memcheck counts to save some memory.
- Bring the scheme scripts in utils up to date with current versions of chicken scheme (The implementation of the language they're written for.)
- The test harness code strips trailing whitespace before attempting to match against expected results, making it easier to use bounded regexps.
- @destination (for variable exits) is now a standard attribute, and has a helpfile.
- Sound is now propagated through audible variable exits, and exits @linked to 'home'.
- The internal QUEUE attribute is no longer used to track the number of action lists an object has queued; the objdata system is used instead.
- isobjid() now requires a full object id (with :ctime), and will return 0 for simple dbrefs, or objids of destroyed/invalid objects. isdbref() still matches both dbrefs and objids.
- @entrances and entrances() now use the same internal routines as @search, and have similar (and saner) privs.
- Connection messages that are evaluated from an attribute instead of read from a file get the dbref of the connected player as %1, as long as they're ones shown post-connection (motd_file, etc.)
- Passwords are, thanks to OpenSSL digest routines, now stored in a less error prone, more secure, flexible and extendable format. Existing player passwords will be upgraded automatically on login.
- New script in utils/ for manipulating player passwords in an offline database. Useful if you forget God's password.
- The my_vsnprintf function in the hardcode has been renamed to mush_vsnprintf to avoid a conflict with MySQL.
- The enactor (%#) for the PLAYER`DISCONNECT event is now more useful, instead of always being set to the dbref of the player disconnecting (%0).
- The SOCKET`LOGINFAIL event now gets passed the name that was entered as %5 when no matching player is found.
- Added @mail/review for reading mail you've sent, and @mail/retract for deleting unread mail that you sent. Idea from MUX.
- @hook/list now shows error messages if you don't have permission to use it, or if a command has no hooks, instead of failing silently.
- Wizards can now @pcreate players with restricted names, as well as being able to rename existing players to forbidden names.
- Functions that take a sort type argument now accept 'mtime' for sorting based on object's modification time.
- New registers() function, like listq() but returns all kinds of registers (q-registers, %0-%9 args, iter/switch context, regexp captures). Also takes an output separator arg.
- digest(list) returns all message digest algorithms the server supports.
- sha0() has been deprecated in favor of digest().
- lit() didn't properly handle '\'s.
- listq() incorrectly returned all registers (including %0-%9, %i0, etc), not just %q-registers.
- The mud_url code didn't always work correctly in Firefox because http headers weren't sent.
- %0 and %1 arguments weren't properly passed through verb attributes after a change in p8.
- Fix really stupid copy-and-paste error in magic sorts on strings with ANSI, which broke setinter() and friends.
- Help fixes.
- Memory leak in ldelete() fixed.
- Fix a crashbug reported.
- Sorting functions now ignore ANSI when sorting a string as a number or dbref.
- strreplace() was broken for overly long length arguments.
- Compile errors on Windows with OpenSSL.
- @uptime could report negative times for the first dump, purge, etc after a game was started.
- override/inplace hooks from .cnf files didn't work correctly.
- The portmsg announcer daemon was broken.
- A change in p8 broke the sending of the Pueblo hello string in some cases.
- Fix crash bug in @sitelock/remove
- ssl_slave would drop connections if it couldn't resolve a valid hostname for the connecting IP address.
- Non-matching regexp captures ($0, $<foo>, etc) sometimes had the value of the previous matching capture.