-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- MMVIEW for Win32 Release Notes -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 4.02.1175 - 8/01/2004 1) Fixed up the help for active monsters and item owners viewers. They should now be more helpful. ;) 2) Added a Gangs viewer-- useful while using the DAT option. This allows you to view all gangs, the number of members MajorMUD believes they have, whether or not they've been disbanded, the various exp variables that make up the display of a 'top gangs' listing, and a properly calculated total of actual exp for each gang. 3) Swapped the Prev/Prgd abilities so they match up correctly now. 4) Updated the map file and active monster file to the new 1.11o file format. 5) In the item simulator the spells cast by a weapon on each hit weren't having their damage calculated correctly (you would never see the max value possible rolled). (See: shimmering greatsword and it's "silvery mace" hit spell). 6) I was slightly off with the random cash fields for items (the ones that MMUD uses when you open, for example, a chest). It was off by one. 7) Rooms are now cached internally, this should provide a significant speedup for the 'map' command in the room simulator. Note that it won't be speed up the first time you run 'map', but subsequent maps in the same (or nearby) location should be much faster. 8) Added ZLib data compression for the text block, item and room cache. You can see a list of the text blocks that are currently cached by executing 'debug textblockcache'. You can see a list of the items that are currently cached by executing 'debug itemcache'. You can see a list of the rooms that are currently cached by executing 'debug roomcache'. In these listings you'll see the actual size of the structure listed and its compressed size. MMVIEW uses ZLib 1.2.1. 9) Added a new search option for items, you can now search by the item description. 10) Added 'appraise' and 'sell' commands to the room simulator (useful to see how much an item will sell for with a given Charm). 11) Fixed the 'inventory' display in the room simulator so it now correctly reflects when you have +Encum items worn. 12) Changed the 'inventory' display in the room simulator to reflect the changes made in MajorMUD 1.11p. 13) Added some additional error checking in the room simulator. For example, if you attempt to 'teleport' or 'peek' into a room that doesn't exist an error will be displayed. 14) Added the new item slots introduced in 1.11p-beta 13 (wrist2, eyes and face). 15) The filenames for this release are-- mmview-w32.dos.x86.4.02.0.1175.exe mmview-w32.nt.x86.4.02.0.1175.exe 4.02.1143 - 10/11/2003 1) Added a few new fields for items and corrected an existing field. As it turns out, I was wrong in the item viewer with assuming that items had 9 lines of description space. They are, in fact, limited to 6. The latter 3 lines are the items 'Lore' description (when a spell flagged as 'Lore' is cast on the item, and if a certain check succeeds, you are shown each line, up until an empty line is encountered). The other field found is what appears to be an items 'Lore difficulty'. This value directly influences whether or not an item can be 'Lore'd. I have not worked out the exact formula used for this mostly because it seems unused so far (would be cool if it was used, though). 2) Changed the way random monster names are generated in the map simulator. After much digging and researching, I've determined exactly how MajorMUD gets random names and have implemented it in MMVIEW so you can more accurately see how MajorMUD would behave. Below is a simple explanation of what MajorMUD does and what each prefix means-- Each line can start with a character followed by a colon. This first character is used to determine how everything after the colon is used in generating random names. Here is a key to the valid characters you can use before the colon, with brief explanations of what they do-- A - Puts the random name portion specified after the colon *after* the monsters given name. If the monster was named 'giant rat', and it had a line with 'A:large', you could possibly end up with a monster named 'giant rat large'. B - Puts the random name portion specified after the colon *before* the monsters given name. If the monster was named 'giant rat', and it had a line with 'B:large', you could possibly end up with a monster named 'large giant rat'. F - Forces the random name portion specified after the colon to be the full monster name, ignoring the monsters given name. If the monster was named 'giant rat', and it had a line with 'F:fat bastard', you could possibly end up with a monster named 'fat bastard'. N - Forces the full monster name to be just the monster name, with no prefixes. Nothing after the colon is used. A line without a colon in the second character, or with an invalid character before the colon, is basically the same as the 'F' command. In other words, the whole line is used as the full monster name. Now, each line is given a 10% chance of being used as the monster name, if that 10% chance fails, then the next line is processed and given a 10% chance, and so on and so forth. If there are no more lines, then the last line given a 10% chance is used. If there was nothing in that line, then the monster name by itself is used. Anyways, that's the long and short of how MajorMUD processes random name text blocks. 3) Fixed a minor bug with the items slots in rooms. I had my count off and left out a hidden item slot in the previous version. This version fixes that issue. 4) Added a 'train stats' command to the room simulator, which will take you to a familiar looking CP assignment screen. Controls work generally as expected, arrow keys are used to move from field to field, invalid values in certain fields will keep you from moving, the only thing that *DOES NOT* work is Ctrl+O to quit and Ctrl+G to save. You *MUST* move to the 'Exit:' field and use the space bar to select what you want to do ('SAVE' to exit and save, 'QUIT' to abort the changes and exit, and 'EDIT' to continue editing-- press enter after selecting the choice you want to make to proceed). Please note that you can only 'train stats' in an actual trainer room (use "goto aged-titan" or walk to the Universal Trainer). 5) Added a 'train' command to the room simulator. Must be performed at a trainer valid for your class and level, you do not however, need any training money. =) Other than the cash on hand check though, every other check MajorMUD makes is performed in the simulator, so if you're a Druid and you're at the Priest trainer, you'll be out of luck. 6) Your room simulator 'sim' character now has hair length, hair color and eye color values. They're currently unused, but are configurable via the 'train stats' command above, and are persisted to the INI file. 7) When using DAT files the room simulator now correctly shows cash laying on the ground as well as all the items (it did this before, but I've refined the display a little bit to make it more 'MajorMUD-like'). 8) Added a /ROOMSIMULATOR command line option. You can use this to start MMVIEW directly in the room simulator without having to perform keyboard commands beforehand. Should be useful in shortcut links or batch files to more easily get to where you want in MMVIEW. 9) Added an additional search method for the room viewer-- you can now search by the shop number of the room. 10) The command parsing in the room simulator has been improved a bit, now it basically performs the same operations MajorMUD does with regard to how commands are processed. A specific example would be that you can now use short form versions of commands-- 'he' rather than 'health'. It does pattern matching for commands. The only possible side effect of this is that short form versions of commands you used to use may need to be qualified with their long form version. It's a step in the right direction for the simulator though I believe. 11) Added 'reroll' and 'suicide' commands to the room simulator. They behave exactly (for the most part anyways) as MajorMUD's commands do. After your final suicide or first reroll, you'll need to press enter before being kicked out of the simulator. 12) As a result of #11 above, you now are forced to pick your race and class upon entry to the simulator whenever you reroll (either through the 'reroll' command or through using 'suicide' while at one life). You're then placed in the CP distribution screen as per normal before being kicked into the simulator. 13) Now shows the gang shop owner in the shops listing. Pretty much useless while viewing the VIR files, but should show the BBS user name of the person who has funds deposited into their in-game bank account when an item is purchased from that specific gang shop. 14) MMVIEW-NT now includes a utility to export the WCCUPDA2.DAT file to it's component VIR files. It will overwrite any existing VIR files, so if the existing files are important, DO make a backup! The exported files can then be used with MMVIEW-NT. Please note that at this time no such utility is being released with MMVIEW-DOS-- if people ask for it enough, I'll see about making a companion DOS utility. =) The utility is command line based, and accepts no parameters. It first creates empty VIR files to export the update data to, then it opens and begins exporting WCCUPDA2.DAT. The whole process is quite quick. 15) Added an additional search method for the items viewer, you can now search for items that negate a specific spell. 16) Updated the item simulator's swing formula to take into account all the changes in 1.11n. The formula now correctly generates swings based on your encumbrance as well as quick and deadly critical hit chance bonuses. 17) Updated the hit message for the item simulator when the hit message is set to 0 or an invalid message. By default MajorMUD uses 'attack' (or, from the third person perspective, 'attacks') as the hit message. It also uses this for the miss message, but that doesn't affect what was changed. 18) Added Last Killed and Active (to complement Limit) to the extended monster viewer. Re-arranged some of the data on the extended monster viewer so I'd have more room to add these fields. ;) 19) Updated the room viewer so it'll show the spell name of the room spell. Also added the spell for when you fail to pick a lock (the spell, if specified, stops the "You failed to pick" message from being displayed). It's cast on the person who fails to pick the lock. The last killed field has also been added, this records when the room was last cleared. 20) Updated room simulator so it correctly shows the possible trap damage for trap-type exits. 21) Added full inventory capabilities to the room simulator. You can now use the following commands to manage your simulated characters items-- SET CHAR GIVEITEM SET CHAR TAKEITEM Where is the number of an item. Once you've added an item to your character, you can then use the typical MajorMUD commands to view your items (INVENTORY), wear your items (EQUIP, WEAR, READY, ARM, WIELD) and remove your items (REMOVE). For light-source type items you can also use the typical command for those (LIGHT ). Finally you can use DISARM to remove your currently armed weapon, KEYS to see an inventory listing of only your keys, and WEALTH to see your current wealth. 22) In conjunction with the above changes I've also made it so equipped items and weapons show their effects in the status screen (STAT). For items that modify your HP or Mana, the statline is also updated as it is in MajorMUD. 23) Items are now cached internally in memory by MMVIEW as they're retrieved, this should significantly speed up operations that work on lots of items. (For example the new simulator capabilities above would hit the database hundreds of times to collect information to update stats and so on-- since most items in the inventory are cached the first time through, these calculations are now almost instant.) Text blocks have been cached since MMVIEW for Win32 was originally released, and I plan on adding more cache functionality later (spells, messages, as well as the ability to configure how much memory you want to set aside for each individual cache). 24) For the INVENTORY simulator command above I've made it so you can specify PERCENT and have individual and total encumbrance percentages shown. When PERCENT is specified, the percent of your total encumbrance that the item consumes is shown to the right of the item name (in paranthesis). At the bottom of the INVENTORY listing where the final encumbrance result is shown a total percent value is presented in brackets next to the current/maximum display. 25) Added two new viewers-- Active Monsters and Item Owners. **THERE ARE NO VISIBLE COMMANDS FOR THESE ON THE MAIN MENU!** To get to these viewers, simply press K for the active monster viewer or O for the item owner viewer (this is, basically, the limited list). Please note that this generally only works with DAT viewing enabled (since the VIR files are empty by default). While in the item owner viewer, if the item is owned by a room or a monster, you can use Ctrl+S to pop into the room simulator at the map and room the item is in (for a monster, it looks up the current map/room and puts you there). If the item is on a player, Ctrl+S currently doesn't do anything. =) I'll probably integrate user viewing into the next release, and subsequently add Ctrl+S for that. 26) When using SET CHAR with LEVEL or CLASS, a check is done to determine that the random portion of your HP is within the allowed range for your level and class, then the value is rerolled if found to be outside the acceptable range. (Each time you 'train' at a trainer or use SET CHAR LEVEL to increase your level, and so on, random rolls are done just like in MajorMUD to determine your HP gain for that/those levels. If you want to see the minimum/maximum for your level, just check the STATUS display.) 27) SET CHAR EP allows you to adjust your evil points. The simulator uses the same values MajorMUD does in determining what items you can and can't equip. 28) When using SET CHAR with EP, LEVEL, RACE or CLASS, items in your inventory that are equipped are re-checked to ensure that you can wear them at your new evil points, level, race or class (respectively). If an item is removed due to one of those limitations being surpassed, a message will be displayed indicating that the item was removed. 29) Special thanks to Blood Fetish for testing. 30) Added a few more default GOTO locations for the map simulator. If you want to have these added to your INI file, just delete the "GotoSections" key in the "Simulator" section. 31) The filenames for this release are-- mmview-w32.dos.x86.4.02.0.1143.exe mmview-w32.nt.x86.4.02.0.1143.exe 4.01.1118 - 8/08/2003 1) Added bookmarking back into MMVIEW, you can now assign bookmarks to the F1 through F10 keys. Simply go to a record you want to bookmark and press Ctrl+Fx where Fx is the F key you want to assign the bookmark to. Now, whenever you press Fx by itself you'll be taken back to that specific record. You can also clear a specific bookmark by using Shift+Fx. These bookmarks are stored in your INI file and are plain text, so you can edit them manually if need be. 2) Added a few more default GOTO locations for the map simulator. If you want to have these added to your INI file, just delete the "GotoSections" key in the "Simulator" section. That's how MMVIEW determines whether to auto- generate the GOTO's again, BTW. =) 3) Added a startup checking routine to check for the presence of each individual MajorMUD data file, displaying success or failure for each attempt to open that file. The startup checking routine also displays which directory is being used as the root directory to look for the MajorMUD data files, and it shows which INI file is currently being used. You can use this to diagnose any problems with setting up MMVIEW you may have. If this startup checking routine is too annoying, you *CAN* disable it by modifying your INI file. Look for a key called "StartupCheck" in the "Options" section-- set this to be equal to "0" to disable the startup check, or set it to "1" (both are without quotes) to enable it. 4) Added a partially functional spell simulator. Works on most spells that I've tested it with, including the chest open spells (the ones that execute text blocks to randomly pick items to give). There's only a handful of spells that it shouldn't work with. If it appears to lock up, attempt to press Ctrl+C to break out of the simulator. Send me e-mail if you find a spell that exhibits this locking up behavior. 5) Found a "new" (actually an old) field in the items database. For chest items there's a field of note that determines how much cash you can get when you open that chest. All of the fields seem to be valid, one I can't really confirm though is the runic field (no chest gives runics AFAIK), but given the ordering of the data it was implied that that field was the one that would give runics (the next field in order was the one that determined plat). The item viewer interface has been modified slightly to show this data. 6) Added a VERY basic Preferences menu which, right now, only lets you set the database directory in case the previously mentioned startup check reports an error. The change is immediate and is also immediately updated in the INI file. You don't need to exit and restart MMVIEW for the changes to take effect as far as MMVIEW is concerned, the first viewer you try to use will take note of the new directory and act appropriately. =) 7) Changed the way abilities are loaded, I'm using a newer, smaller, database to store abilities in. It also uses a specific API to load and retrieve ability info. A new DLL is included that exposes a very basic API to get ability details, load the ability database, and close the ability database. 8) Settings used in the Item simulator are now saved in the INI file so you can enter your characters settings once, and even between runnings of MMVIEW the settings will default to what you last used. (This way, you just press enter for the default and can skip right to the round simulator for weapons). 9) As with the Item simulator settings in item 8 above, Spell simulator settings are also persisted to the INI file and will default to your last used settings even between uses of MMVIEW. 10) Modified a bunch of the menus to do away with some of the unused areas of each menu. This gives the menu a 'floating' look ala the Text Block menu. 11) Added a bunch of new fields from the monsters database-- seems they expanded the space available for abilities and drop items when they did the database changeover. AFAIK nothing uses the new slots available, but now they're visible in case they get used in module 10. Adding these new fields meant re-arranging the data for monsters, you'll need to go to the "Extended" monster viewer (hit 'E' while in the monster viewer) to see the general/non-combat spells a monster can cast. The number of available abilities has been expanded from 5 to 10, and the number of available drop slots for items has been expanded from 5 to 10. I also took the time to add the (mostly useless) armour slot that rarely sees any use. I'm not sure, but armour worn by a monster might be used to 1) add additional abilities to a monster, or 2) add additional AC/DR or other effects to a monster. In any event, it's shown now for completeness sake. 12) Found another new field in the items database I think-- it seems that more space was added for additional abilities on Items. So far I haven't found any items that use the additional space, but I added the new slots to the display anyways in the event they're used in the future. 13) Added another field that was discussed some time ago in the MMB forums-- Charm Res (Charm Resistance), BS Defense (Backstab Defense) and Max Follow (used with Leader-type monsters to determine the maximum number of monsters that will follow). Thanks Tsunami! 14) Fixed a memory leak in the room simulator, bad DOS code not behaving well under Windows. =) Instead of manually clearing an array of strings, I was using FillChar to fill it with 0's-- this worked fine under DOS when strings weren't dynamic, but in Windows strings are just pointers to memory that need to be released. By using FillChar I wasn't giving the compiler a chance to free the memory properly. Now it manually sets each string to blank, freeing the memory and getting rid of the leak. On a side note, I think this is a testament to how well the DOS version was written that only one memory leak and nothing else happened while porting the code to Win32. =) If anyone notices any other situations where memory usage seems to go up in Task Manager (NT/2K/XP) and never goes back down, let me know. BTW, text blocks are buffered in a lot of places, so it's generally normal for memory usage to go up and not back down, but not if you're repeating the same thing over and over again (moving between the same two rooms, moving between the same two records, etc). But regardless, let me know if there's anything suspicious. =) 15) Added another 'mapping' option for the 'set' command in the room simulator. The new option is 'castexitspells' and it toggles whether or not spells linked to exits are cast when you take those exits. An example of this is the high level trainer when you go east and fall into the pit. 16) Added another field for spells, has to do with the duration / length of a spell, and seems to be used to influence the maximum duration / length of a spell. Before, the duration values were assumed to be static, but if this field is non-zero, and if the old final value is less than the new value * level, a randomly generated duration in the range between those values is instead used. Only a handful of items, mostly stuff in and around mod-7, seem to use this feature. 17) Added a 'stat' command to the room simulator-- various settings in the INI file can influence what you see when you issue this command. This is also a showcase for the various formulas I've figured out lately: Perception, Stealth, Thievery, Traps, Picklocks, Tracking, Martial Arts, MR, HP, Spellcasting and Kai are all calculated correctly. Please remember, these are **base** values, before assuming the formula used is incorrect, take into consideration-- racial bonuses, class bonuses, item bonuses, quest bonuses (especially an issue with stealth, since certain classes receive a stealth bonus for their 2nd alignment quest), and spell bonuses. 18) Added another field for rooms, this one serves as a way to override the default protected message when a player tries to engage combat while in a protected room (for example, the Bank in Silvermere). The value is a pointer to a text block that is displayed rather than the default message. It's not used currently, but could be used, for example, to show a block indicating that an NPC has intervened and told the person trying to engage combat to "take it outside" or some such. The block is ONLY shown to the person who tries to initiate combat, not the whole room. 19) Added an 'exp' command to the room simulator as well as 'help exp' and '? exp', which all behave and work as expected. 20) All formulas in this release are accurate to the formulas in MajorMUD 1.11M and not the newer 1.11n betas. 21) Added a number of extended search capabilities for some of the viewers. Specifically, you can search by dropped items while viewing monsters, or search for placed items while viewing rooms! 22) Added an option to use the DAT files rather than the VIR files for viewing. Using this and the previous extended search capabilities, you can perform searches for items hidden in an active realm. PLEASE NOTE, DO NOT RUN MMVIEW ON ACTIVE GAME DATABASES **UNLESS** YOU MANUALLY MOVE *ONLY* THE FOLLOWING FILES TO THE WORLDGROUP SERVER DIRECTORY (AND THIS WILL ONLY WORK WITH WG VERSIONS FOR NT, IT WILL NOT WORK WITH WG/DOS OR MAJORBBS!)-- MMVIEW.EXE MMVABLTY.DLL MMVABLTY.DAT With JUST those files it should use the same Btrieve engine Worldgroup is using. OTHERWISE, IF YOU ARE CONCERNED OVER DATA CORRUPTION IN ANY WAY, I URGE YOU TO COPY THE RELEVANT FILES NEEDED (WCC*.DAT) TO ANOTHER DIRECTORY AND POINT MMVIEW TO THAT DIRECTORY! I TAKE NO RESPONSIBILITY, IN EITHER CASE, FOR ANY DATA CORRUPTION YOU MAY EXPERIENCE! (And actually, in any event, I take no responsibility and make no promise or warrantee that MMVIEW will not do horrible things to your system, but that's a blanket safety statement for me and less of an issue of me actually believing that MMVIEW could do harm.) I cannot stress enough that you ABSOLUTELY *MUST* CREATE BACKUPS REGULARLY AND SAVE THEM IN CASE ANY ISSUES SHOULD ARISE! ** The above concerns should NOT be a worry for anyone who only ever uses MMVIEW to view the VIR files and does not switch to the DAT files. ** You can switch to using the DAT files via the Preferences menu. This feature was added at the request of Don Johnson. 23) MMVIEW now reads and displays limited information from the active monsters database. In conjunction with the above change (being able to read the DAT files if you choose), you can go around and see which monsters are in which rooms, and so on. You can view the monster info for each room by pressing 'M' while on the regular room viewer. It shows the active monster number, as well as the MajorMUD generated name for that monster. If there is enough interest in this feature, I *may* add an active monster database browser in a future version so you can see what items are set to drop off of monsters, as well as other interesting tidbits. =) 24) Fixed a bug in the monster simulator with regard to the minimum damage range on attack spells. I was properly calculating the maximum damage, but was not properly calculating the minimum damage (specifically, I have two internal functions responsible for calculating the minimum possible value for a spell at a specified level, and another identical function to calculate the maximum-- I was only calling the function for the maximum, and was not using the function for the minimum). 25) The filenames for this release are-- mmview-w32.dos.x86.4.01.0.1118.exe mmview-w32.nt.x86.4.01.0.1118.exe 26) Thanks to syntax53 for help in finding some of the new fields presented in this version of MMVIEW! 4.00.978 - 6/17/2003 1) Fixed an issue with INI filenames specified on the command line. If the INI file was in the same directory it would actually try to open and use the filename as if it were in the \WINDOWS directory (or, on NT/2K, \WINNT). 2) Added in Blood Fetish's swing calculator as a weapons simulator. Press Ctrl+S while in the Items viewer to invoke the simulator. 3) There is now a version of MMVIEW for Win32 which will support viewing the NT databases (not just the DOS databases). These seperate installs have the following filenames-- This installation reads the MBBS, WG1.x/2.x and WG3-DOS files-- mmview-w32.dos.x86.4.00.0.978.exe (WCCR*.ZIP, WCCWG*.ZIP, WCCDS*.ZIP) This installation reads the WG3-NT files-- mmview-w32.nt.x86.4.00.0.978.exe (WCCNT*.ZIP) Download the one most appropriate for your databases and enjoy! 4) Did away with seperate MMX and non-MMX versions, MMVIEW now auto-detects SSE2 and MMX extensions and chooses the codepath appropriately. For those of you using MMVIEW on a processor with MMX or SSE2 (currently just Pentium 4's and better for SSE2) you should see a small speedup while navigating text blocks. =) 4.00.947 - 6/15/2003 1) First Win32 release for DOS databases, just about everything has been ported from the old DPMI MS-DOS version, and a number of new features and things have been put in. More to come!