PennMUSH 1.7.7p33 has been released. This version is pretty much all bugfixes and code cleanup.
The new patchlevel's released in the usual place. Several new features, including SQL support (currently MySQL). Please read the patch header carefully if applying the patch. Here's the change-list:
This new release fixes a crash bug in the power system (triggered primarily by @clone), changes the behavior when mortals teleport admin, adds a new admin flag (HEAVY) to get the old behavior back for selected admin, and updates the doxygen commenting (the "Latest source docs" linked here have also been updated).
You can now get the headlines from the Skotos Tech game design article series in a block in your community.pennmush.org page. Select "edit account" from the menu and turn on the block to get it. Updated every three hours.
Thanks to the intrepid bug-finders, there's a new 1.7.7 release that fixes two critical bugs (one can cause a graceful shutdown, the other is a broken function) and does a whole bunch of options-related cleanup. Go get it!
These new Penn versions are now available in the usual place. 1.7.6p16 just updates the included PCRE source code. 1.7.7p29 includes these feature enhancements: #lambda (anonymous attributes), @power/add and friends, removal of No_Pay from Wizard/Royalty, more @ns*emit commands, the align() function and others, and other minor improvements and bugfixes.
Many external coders need to have configurable settings which players may change without recompiling the server. In fact, it could be as easy as using the @config command. As of PennMUSH 1.7.7p28 adding your own is easy.
Adding your config
We will be working primarily with the add_config() function, but first we need to setup some global variables to hold the data. Outside of any function declarations, usually near the top of a source file, we will declare some global variables:
int config_happyserver = 1; char config_favoriteadmin = "grapenut";
Now that we have a place to store our variables, we can go into the local_config() function in src/local.c and add the following:
add_config("happyserver", cf_bool, &config_happyserver, sizeof config_happyserver, "cosmetic"); add_config("favoriteadmin", cf_str, config_favoriteadmin, sizeof config_favoriteadmin, "cosmetic");
Here's how we break this function down. The first argument is the name of the option, ie, what does it look for in the .cnf file.
Moe from ChicagoMUSH writes:
I once did a rather elaborate conversion using @decomp to move from TM3.1 to Penn...It worked pretty well, here's a rough breakdown of what I did:
On the TM3.1 game, I did an @decomp of every object in the db,
sequentially, logging the WHOLE thing out. This way, the whole thing
would be recreated, in order, preserving dbrefs. And all the commands
that I 'created' the output for would get quoted in as commands to the
PennMUSH 1.7.7p28 has been released - the download link on this page will take you to the right spot to get it. Here's an abbreviated list of changes:
- Add customized mush.cnf configuration parameters with the local_configs() function in local.c (YOU MUST UPDATE YOUR local.c FROM local.dst IN THIS PATCHLEVEL). Patch by grapenut@M*U*S*H.
- Object ids provide a unique referent to an object even when the dbref is nuked and recycled. See help for %: and objid()
- @command/add and @command/del. Add a custom command with built-in precedence and @hook it to softcode. Patch by Walker@M*U*S*H.
...so it might actually be useful.
I'm curious about the amount of demand among PennMUSH users for updated, and possibly improved, documentation for running the server on Windows. As always, questions about it come up from time to time, but overall it seems that people figure it out on their own.
Are there things that those of you out there running Penn on Windows would like to see better documented? I know people still use Nick Gammon's site as a reference, though it is somewhat dated, and the READMEs cover the essentials... so what is missing? What is lacking? And, what needs to be replaced?