Merc Release 2.2 Wednesday 24 November 1993 Kahn Hatchet === What's new in 2.2 Many of the changes from 2.1 to 2.2 were contributed by the MERC imps out on the net as well as from our playtesters. Kudos to them! See 'contrib.txt' for acknowledgements. We have 'lost' a few platforms due to the addition of MOBPrograms. 'mob_prog.c' and 'mob_commands.c' might provide warnings and/or errors on certain platforms. John Daub is working on the MacIntosh platform on his own and will post the reported MERC to the net. We now have a startup for those using SH instead of CSH. MERC 2.2 will not lockup a port anymore. Flying enables the player to walk over water. Dispel Magic has been removed pending YOUR rewrite. I had no time to fix that source of crashes so I just killed it. New Commands were added: OWHERE is an immortal version of 'locate object'. SPELLS shows the mana cost of your spells. SLIST shows the spells available for your level. AUTOEXIT, AUTOSAC, AUTOLOOT, etc were added for more flexibilty. WIZIFY sets player bits to allow certain players to bypass wizlock. PAGELENGTH enables a player to set the number of lines paged on screen. PROMPT toggles the prompt display plus allows the player to set it to his/her own liking. MOBPrograms which enable mobiles more versatility with out coding a spec_proc. A screen pager. Decompression of Pfiles at login. A Parsed Pfile directory for ease of Pfile search. More accurate consider command. Other various tweeks, additions and bugfixes. === What's new in 2.0 Many of the changes from 2.0 Beta to 2.0 were contributed by our beta testers. See 'contrib.txt' for acknowledgements. Several new platforms are supported. The 'startup' script now works on many more Unix systems. Containers are back. Memory management has been redone (again). Almost all of the static limits from 1.0 and 2.0 Beta are gone, with neglible performance loss; memory use is slightly less than 2.0 Beta. New and improved mortal commands: 'commands' to list all commands; 'configure' to configure 'brief', 'compact', the 'auto' stuff, et cetera; a new 'who' command with lots of options. New and improved immortal commands: 'slookup' to find sn's and slot numbers; 'trust' to give the effect of advancement without changing level; 'transfer' now takes a destination room; 'ban' now matches sites by suffix (so you can 'ban foo.edu'); 'log all' has been added; 'snoop' now prevents snoop-looping; 'oset' can set extended descriptions; 'mset' can set a mobile's spec_fun. Bug fixes: auto-dropping aligned items had a nasty linked-list bug; 'pose' was fixed; 'force all' was rewritten. Several new areas have been added. Ascii save files are in effect. Equipment and container contents are saved in the right place. Objects which have been oset will keep their new values. This includes description strings and extra descriptions, so you can look cool in your Ray-Ban's without restringing them every time you log in. Object lists are (optionally) displayed with item counts now. Players may loot only their own corpses or their own groups' corpses. Other corpse looting is punished with a PLR_THIEF flag. === What was new in 2.0 Beta The 'lib' directory is gone. Most of the *.txt files have been moved into 'help.are' as 'help' entries. The 'doc' directory is much larger. All the files have been rewritten (with the exception of 'license.doc'). The help file 'help.are' has been rewritten. It is now complete and correct. Merc now uses a different area file system: one area, one file. Each area is stored in a separate file. The list of areas to read on bootup is stored in the file 'area.lst' in the directory where the server boots. The server reads in all area files once on bootup and never touches them again. The server now generates mobile and object statistics on its own, ignoring the values in the files. Statistics are subject to random variation. We have a dozen new areas. The server has very good error checking on areas. Most diagnostics are accompanied by area file name and line number. The server does exit after finding just one error, but Merc loads areas so fast (4 seconds on a Sun-4) that you can easily use the whole server as a syntax checker. All code has been re-written. The entire code base is about 6000 lines smaller than the 1.0 release, and runs in about half the memory as 1.0. The external declarations have been re-organized to improve portability. The files merc.h and comm.c have OS-specific declaration sections for suitable external declarations, and comm.c has several OS-dependent sections. Outside of these files all of the code is machine-independent. Many new Unix-based operating systems are supported, and a single-user MS-DOS version is supported as well. The code for classes has been consolidated into tables in const.c, making it much easier to add new classes. See 'class.txt'. The skill / spell code has been rewritten. The entire cast_* layer has been removed. The miserable SPELLO declarations have been replaced by more extensive declarations of skills and spells in 'const.c'. In particular, the slot number in #OBJECT area is no longer equal to the internal index number of a skill or spell, so adding new skills and spells is an order of magnitude easier. See 'skill.txt'. The horrible 'board.c' code has been sent to /dev/null. In its place we have a new 'notes' facility. Player files are now in Ascii form. You can read them, grep them, edit them, move them to other machines, do whatever you want with them. Some fields (in particular, class, skill, and spell names) have been separated further from internal constants, making it easier to add new classes, skills, and spells without upsetting existing player files. Auto-save is implemented. One player is saved each tick (whomever has the most time since previously saving). Thus with 20 players online, each player will be saved once every ten minutes. Many immortal commands are now logged automatically. All unimplemented spells have been removed. In particular, several of the partially implemented 1.0 spells were taken from an undocumented 'magic.c' we found on ucbvax.berkeley.edu. These spells were originally written by Dan Brumleve and we apologize to him for the past infringement. All of this code is gone from Merc now. The main menu ('press 1 to enter the game') has been removed. There are two new game commands, 'password' and 'description', to accomplish the same effect. The 'password' command is protected against logging and snooping. Tick times and area update times are now random (with an average time set by PULSE_TICK and PULSE_AREA respectively). Players no longer gain experience from pkilling. Players may no longer log in with the same name as mobiles in the game. The new 'areas' command lists all areas available. The 'memory' immortal command shows memory usage. There are many new and upgraded immortal commands, and all of them have on-line help now. The new 'respond' command allows players to hold up their end of the conversation with invisible or switched immortals. The 'tell' command may no longer be used to talk to mobiles outside of the room. The 'pick' command is now limited. Mobs will guard a lock against picking by low level thieves. The 'steal' command is now limited. One may not steal from a PC nor from a mob more than 5 levels above one's level. Several commands have been removed, including 'ask', 'info', 'pour', 'whisper', and 'tick'. The group code has been redesigned, eliminating several bugs in the process. Mobiles now will join in fights, especially when other mobiles of the same type are fighting. Players also automatically auto-assist other players in their group. There is a pet shop. Many bugs related to 'charm' have been fixed. Several nasty memory allocation bugs were fixed. These didn't show up on SunOS or Ultrix, but crashed Linux, NextOS, and many other OS's. Thanks to Vic for debugging help. The bug where getting killed with an 'armor' spell on left one's AC at 120 (instead of 100) has been fixed. The server emits a telnet GA sequence at the end of the prompt. The 'prompt' command disables or enables the prompt. Handy for immortals who don't need the prompt, but it's primarily there to reduce output for blind mudders using speech synthesizers to read their output. Thanks to davros@ccwf.cc.utexas.edu for suggesting this feature. The 'time' command now reports system time, so players in any time zone can know when your morning shutdown occurs. It also reports bootup time, so you can see how reliable your Merc is. There are no more bags. Item carrying limits are in effect. The recall command has been tweaked. It works perfectly outside of combat. In combat, it has a less-than-perfect chance of working, and it costs xp to try it (more than for flee). The spell 'word of recall' now just calls the recall command. The 'flee' command now reports xp lost. When a character flees, all characters fighting it will stop fighting, not just one. This also fixes the mysterious 'Extract_char: NULL' bugs. Link dead characters in combat are dealt with more harshly, to discourage intentional link killing as a way out of combat. The 'harm' spell is limited to 100 points of damage. The 'summon' spell is now limited. One may not summon a person out of combat, and one may not summon a mob to a different zone. Characters may not practice until level 3. They are encouraged to train instead.