This is revision .05 of the OLC code for circle 3.0. It is now based on circle patch level 9. If you've got an unmodified copy of circle 3.0 patch level 9, the included files are direct replacements for the stock files. Release .05 is mostly bugfixes, with some cleanup/rewriting of several functions. It has also been ported to circle patch level 9. Users of obuild .03 or .04 can upgrade by getting the new act.build.c file. No other changes are necessary. .05 is functionally identical to .03 and .04, but is amller, cleaner, and more stable. Users of obuild .02 and previous versions will need to change several files, including structs.h, db.h, config.c, and interpreter.c. Upgrading to .05 will give you the zone editor. NOTE: If you get the new act.build.c and install it in an older version of circle (pl8 or previous), you'll need to delete two lines near the beginning of act.build.c. You'll see where I mean as soon as you load it into an editor. Release .04b has the following improvements over .03: * Fixed door and remove command saves * Fixed an old room editor crashbug * Made other minor bug fixes * Eliminated over 300 lines of code * Added an option to view a range of zone commands Release .03b has the following improvements over .02: * Small bugfixes * Builder permissions are loaded into memory on demand * Support for zones with more than 100 vnums of each type * The zone editor! I've included a Makefile with this release. It is not meant to be a direct replacement for your Makefile, since it was generated by running configure on my machine. Look for act.build in the included Makefile and edit your Makefile to match. I also added a short introduction to editing zone commands. The zone editor is nowhere near as flexible or as user-friendly as I'd like, and I plan on improving it in the near future. Until then, it should be just fine for most builder needs. The new zflags option: Typing "zflags <command number>" will list every reset command, starting with command #<command number>. "zflags <min> <max> will list every command from <min> to <max>. Using either of these options allows you to view a range of commands regardless of room or zflag options. Note: There's an option in config.c by the name of comment_zone_file. This defaults true and causes all mob and object commands to be saved in the zone file with their short descriptions. If you're short on disk space, change this variable to FALSE. KNOWN BUGS IN THE ZONE EDITOR: I've experienced a crashbug that I can't seem to track down or even produce consistently. It sometimes happens when using zload, and sometimes when zones reset. There's no useful debugger output in the core file, and the reset commands appear to be what they should be when this happens. If anyone has any new info to add to this, please mail me. Also, I've noticed that sometimes the zone I've been saving gives me errors on some object loads when booting the mud. It says there's an invalid vnum, and says the offending command is disabled, but the command is actually still valid. I started noticing this after I started putting extra spaces in the zone file to make it more readable. It seems like it could be caused by the extra spaces, but other commands are ok. Note that when designing the editor I based it on the building.doc file I got with patch level 8. There are some inconsistencies with the existing code. The one that stands out is the object stat supplied in act.wizard.c. The "name" in the stat is actually the short description and the "alias list" is actually the name (namelist). You'll probably want to either change do_stat_object or the object editor to avoid confusion. Also note that stating the mob you're editing ("mstat" with no argument) will produce some confusing results. Circle uses hit/mana/move to hold the mob's hit dice until the mob is actually loaded into the game. You'll notice that f you set the mob's hit dice to 2d5+30 and mstat it, you'll notice 2 is in hitpoints, 5 is in mana, and 30 is in moves. You could change the mstat function to load a mob, stat it, and extract it. You could also make a slight change to the do_stat_character function to show the mob's hit dice when maxhit is 0 (the value that tells circle the hp/mana/move are hitdice). You may want to change some of the security around, to give features to lower lever imms, or take features out. Implementor-level imms can turn the room and mob editors on or off. They both default enabled when the mud boots, but if you're having trouble with them you can have them default off so you can control when they're available. Use zedit allow/deny to toggle room editing, and medit allow/deny to toggle mob editing. You might want to add the status of them to "show stats". I've also included new_help, which you can add to wizhelp.doc, or help_table, or wherever is appropriate. In my experience the help included in the code is usually all your builders will need. I've also included olc_faq, which I threw together to handle the common questions and make my life easier. If you make sure each f your builders has a copy of it, it'll make your life easier too. Mobs haven't been added to it but will be sometime soon once I get some more feedback. Also remember to give each of them a copy of building.doc (the one that came with the circle distribution), because all my code was written under the assumption that the builder has a copy handy. Known bugs: As far as I know there are only a couple of annoying bugs which I haven't had time to track down. One is the ^M's you'll see building up in some of the output files. As soon as I get a little better at text manipulation I'll squash those. I've seen two instances of "zedit save" crashing the mud. When this happened, the wld file being saved was lost. I threw in a safety net to keep this from screwing things up too bad. When you save your rooms, it creates a backup file (ex: 30.wld.back) so if the wld file is empty, the mud will boot the backup and copy it to the orginal file (30.wld). I haven't seen this bug in months, and I think it had something to do with changes made that are specific to my mud, but I'd suggest keeping the back files just in case. Saving mobs and objects that are loaded in the game has some weird affects. For example, if you load a fido and give him a meat, then edit the fido and the meat and save both, the ones you loaded may have their names changed. Usually you'll get something like "the corpse of the drunk" with "the corpse of the janitor" in it's inventory. It's a pointer problem and I'll fix it soon, but until then I'd suggest purging all online copies of a given mob/object before saving new versions. Please send all comments, suggestions, and bugs to: samedi@clark.net If you'd like to be put on my support mailing list, send mail me and request to be put on the list. No listserver commands to know, since I'm running it by hand. It's a one-way list, so I can announce bugfixes etc. If you use this editor in a public mud, please credit 'Samedi' where appropriate. I can't promise any technical support, but I'll help as much as my time and patience allow :) Sam