UNNOFICIAL Zen's EnvyMud patch Release 0.87j! (Ultra Envy2.2) Wednesday, 10th December 1997 Zen vasc@camoes.rnl.ist.utl.pt === What's new in this patch Release 0.87j The 0.87X series consists of bugfix releases only. Don't expect any new features in here. For new features wait for 0.88 (?)... ---0.87a--- Zen: Fixed bug in Envy 2.2 which caused descriptions of objects in player files to have the corrupt string on DEC Alpha. Added CHECK_RES(), CHECK_IMM(), CHECK_SUS() macros. ---0.87b--- Fixed a couple of mistakes i made on 0.87a. Scrolls, potions & pills v4's use finally is as described in area.txt. Rakot: Chars damaged by daylight even if they aren't Vampires bug (fixed) Satan: Weird value[3] in weapons crashes the mud bug (fixed) ---0.87c--- Fixed bug in mprog_translate() which i thought had been completely fixed way back in version 0.85. I hope it's dead. To give you "insufficient security to edit area" messages less often, you aren't allowed to enter the editor unless you have enough security. ---0.87d--- Zen: You can use the OLC editors without security to see stats. Added a couple of more checks in fread_char(). OLC aedit without arguments edits the player's area. OLC oedit modified to edit new object affect format. OLC oedit bad value settings bug fixed. ---0.87f--- Zen: Removed several ugly bugs from clan code. Removed yet another OLC bug in oedit addaffect. It seems UltraEnvy crashed with some old Envy2.2 player files and/or areas because i changed the name of "protection" I'm actually glad this happened because it allowed me to fix one Envy2.2 bug and one memory leak! (fixed) ---0.87g--- If you ordered a charmed mob to suicide himself he would attack you, this one comes from Envy2.2 (fixed) No more easy going for players who give offensive pills & stuff to a mob to make it hurt himself. No more easy going for players who give scrolls of heal to a mob to make it heal them. Added a couple of small enhancements to clan code. Changed obj_update() a bit; i think it doesn't quite do what was supposed to but heck! The mud didn't crash yet... Added checks for fpReserve in a lot of places; is this really necessary? Cleaned up code. I hope i didn't introduce any new bug... I had forgot to add the security check for the "sober" imm cmd. Rset now understands strings besides numbers. Oset now understands strings besides numbers. In comm.c getpeername and getsockname aren't used anymore so there is no need to have OS-dependent declarations for them. In comm.c bzero isn't called anywhere so i scrapped all related declarations. Renamed mob_commands.c to mob_comm.c. Added new object_update() loop to introduce object specials. Added object specials. Added new room_update() loop to make falling things faster. "who" command now should have less weird results. ---0.87h--- Solved small bug in saving of object resets. Changed "#if defined( linux )" to "#if defined( __linux__ )". Although the former is defined, it is not POSIX compliant. Changed OLC and do_astat to work with Sektor's new #AREADATA format. Changed load_area() to convert well behaved Envy2.2 area names to Sektor's #AREADATA format. Reconverted most areas back from Envy2.2 again. Fixed up some forgotten resets also. Satan: Shopkeeper's ITEM_FURNITURE objects get level 0 (fixed) Sektor: Suggested new directory structure. 'invis', 'mass invis' and 'polymorph other' didn't have realms. New area loading routines: new_load_area(), fread_area(). ---0.87j--- Removed ridable mobs bug. Scraped old aliases for Sektor's code. MUCH better. Made noticeable changes to alias code including I/O routines. Sektor: Much improved alias code. === What's new in patch Release 0.87 Zen: Now HomeCooked should be compatible with old Envy2.2 player files. However, it's now incompatible with previous HomeCooked version's player files... Updated help files so you now have helps for all <= v0.85 features... Added Erwin's printf_to_char(), bugf() and logf() functions. Implemented NiMUD hit types. Including hit FUN's. Removed mobs sleepwalking bug. Added ranged weapons support. NiMUD style. Still primitive. Changed startupSH a bit. Only tested on bash. Changed color scheme, unfortunately it is now partially incompatible with the previous version. However, now it also allows you to change the background color of text. Changed score command to have a new SMAUG based look. Added Mythran's WIZNET code. Changed process_output() slightly to show the user the percent of lines displayed so far. Changed restore so that restore with no arguments will restore the whole room (Mythran style). Implemented NiMUD weather system improvements. Including: temperature, windspeed, snowing. Added SMAUG's BVXX defines. Cleaned up code a bit. Plague spell for Clerics and Mages (Mythran) Cure disease spell for Clerics (Mythran) Flower social (Mythran) Added WIZNET WIZ_DEBUG info. Changed tracking algorithms: SMAUG's tracking module was actually graph.c with a couple more things (or so it seems). I replaced it for the SillyMUD hunt.c algorithm since it seems it's faster (at least this was mentioned on the merc mailing-list). Mythran uses this also. The code is almost twice the size of SMAUG's tracking module. But if it's faster this is no problem. Does anyone know the speeds for sure? One funny thing: hunt.c source is bigger but the object file size is 10k smaller compared to track.c (at least on Linux) Changed verbose area saving a bit to look nicer. Full #GAMES support added. Upper Lower Triple dice game (coded by Thelonius) Seven dice game (coded by Maniac) High dice game (coded by Maniac) Added Mythran's casino area. It was very empty so i had to do 50% of the work to make it usable. Also made helps for the dice games. Some were already in gamehelp.are. Added damages types ex: DAM_FIRE, DAM_COLD, etc. Also: Resistances, Immunities and Susceptibilities (RIS). The system is mostly based on ROM's IRV system (as i call it). Also took some ideas for the system from SMAUG. The problem i have is on some code in fight.c and magic.c (i can't make my mind to what damage types to use). Also i'm not sure which RIS to put on each race. Look at const.c and see for yourself. Testing of immunity was done on mob Captain Vader - Undead. Vader and the other Undeads are now immune to gas breath :-) (gas breath is DAM_POISON and Undeads can't be poisoned). Weapon proficiencies, NiMUD/SMAUG/ROM style (mean hybrid :-) ) (see attack_table in const.c) Changed password and retire, they now use a longwinded routine in comm.c nanny() to do their stuff; done by yours truly :-) Minimum level for OLC commands is now L_SEN. Removed aedit, redit and replaced them for NiMUD style versions. All that source with command tables, OLC_FUN's and stuff was making code harder to read, it was spread all over the place. The inconvenience is that "commands" no longer works for OLC. Changed player "description" command to use sedit. Changed look of sedit's string_append() & string_add(). Ridable mobs (got most code from NiMUD) Several code changes in update.c and MobProgs in attempt to improve performance (not much impact though). Removed a couple of bugs. Added command history, finally no more need for endless typing! Enhanced spell system: now spells have mana types, and you can use special mana charged gems to boost your inner mana. Inner mana is automagically convertible into any of the mana types. Got idea from NiMUD but most code was changed to allow spell casting without gems. Nearly finished on new clan code. Now it only needs testing and steady refinement. Solved bug in MobProgs; act_prog wasn't working... Fixed warnings of 'cast from pointer to integer of different size' on Alpha machines from Envy22. Caused a segmentation fault. Added name prefixes. Example: kill fido & kill fi both work. Fixed a LOT of bugs introduced from all the code changes i made. Thanks to the staff and players of DragonMud which found countless bugs which i promptly fixed. Fixed bug in old HC versions which caused descriptions of objects in player files to become corrupt. Changed new tracking module to compile cleanly on DEC Alpha and replaced bzero(), bcopy() for memset(), memmove(). It seems Envy2.2's mana cost of remove alignment was right all along... Changed it back to 10. Sorry. Following Erwin's letter to the Merc mailing list regarding int vs char and EOF handling i changed a lot of chars to ints. Changed source so it would compile without warnings on Visual C++ 4.0. Also removed a couple of type casts here and there. Changed startupWNT.cmd and startupW95.bat a bit. Changed select() calls in comm.c to not trap ERRINTR as per Erwin's suggestion in a letter to the Merc mailing list so i could profile code. Included more accurate string hashing function by Erwin S.A. Removed a lot of wasteful calls to race_lookup() in fight.c like: -> if ( ch->race == race_lookup( "Snake" ) ) for: -> if ( !str_cmp( race_table[ch->race].name, "Snake" ) ) Satan: Bug in comm.c act() sometimes made a segmentation fault. originated from Envy2.2 (fixed) === What's new in patch Release 0.85 Zen: It seems like i forgot do update load_helps() in db.c. Added SMAUG's track code. Smarter mobs. Track skill for Thieves (SMAUG code) Whirlwind skill for Warriors. Removed olc_envy20's ROOM_TEMP_CONE_OF_SILENCE and replaced it with a new field orig_room_flags in room_index_data. This field is saved by OLC instead of room_flags. Added more detailed boot log ala SMAUG. Object affects, now you can have a One Ring which renders you invisible with AFF_INVIS, or sanctuary with AFF_SANCTUARY, etc... Renamed spell 'Scry' to 'Wizard Eye'. Updated help.are just a little Changed layout of aedit_show(), medit_show(). Added preliminary parts support, like the one in ROM. Cleaned up send_to_char (color version) Now redit_show uses do_rstat for all output. It seems that when loading files from stdin, if AREA.LST had "-limbo.are" for example; when saving, it was saved it with the name "-limbo.are" instead of "limbo.are"... Added new "editinfo" mode. Added medit_copy. Added oedit_copy. Envy2.2 didn't have the Irix target defined in the top Makefile... Changed Flee code a bit to make mobs look smarter and slightly more aggressive. Fixed bug in mprog_translate. Cleaned up some code. Improved look and feel of OLC. Renamed clookup to clist, and showclass do clookup. Now immortals may pass all doors. Fixed security loophole in mob_commands. Fixed bug in mptransfer(). Stimpy: WhirlWind skill for Warriors. SMAUG team: Most Hunt/Track code - 95% i think :-) Track skill for Thieves. Mobile memory. ROM2.4 mobs have better memory but i don't want a mob with a huge linked memory list... ROM 2.4: Parts support idea, SMAUG also features this. === What's new in patch Release 0.84 Zen: Quick fix, i think nobody even got 0.83 since i only left it on ftp.game.org for 2 days. Alias code was using bzero and it seems not all platforms have this... Oops! === What's new in patch Release 0.83 Zen: Fixed bug in "imtlset" when using the '-' option with only one immskill. Sometimes it made a segmentation fault... Now you can see the OLC prompt options while switched. Removed several other minor bugs. Added a couple of new text attributes to colorconv(). Updated all Makefiles. Added Slash's "falling" code. All class info in a text file. Socials table is now in a text file also... Now the immortal command "delete" merely moves player files to the backup directory instead of erasing them. Fixed bug in OLC when using redit_mlist() "all". It would list many mobs not in the area, but in the area's vnum range! It would overflow the buffer for output and cause a segmentation fault. Fixed much the same bug in OLC's redit_olist() "all". It now simply checks if the object belongs in the area or not. Changed alias code a little... Changed "sset" so immortals may "sset all" other immortals to ALL spells/skills, even those not of their class. === What's new in patch Release 0.82 Zen: Converted skills from src/Contributions. ANSI color support using ColoUr_V1.2. Scry spell for all caster classes Mass Vortex Lift spell for Clerics Vortex Lift spell for Mages and Psionicists Meteor Swarm (Drool Co design) spell for Mages Meditate skill for all caster classes Added Arena Code using ROOM_ARENA flag, could be better. Swim skill for all classes Steal bug fixed. Retire command. new Director command "Delete" NUKES player on the fly! Increased mana cost of remove alignment to 100 as in Envy2.0 Primitive CLANS code support. do_remove now allows things as: "remove #.ring" do_sacrifice now allows things as: "sacrifice #.something" where # is the word "all" or a number. Added MOBPrograms 2.1. Brew skill (creates potions). Scribe skill (creates scrolls). All ch's >= LEVEL_IMMORTAL may enter in any guild room. Added "show" bit to cmd_type. Killing charmed mob without master bug fixed. Chain Lightning (Drool Co design) spell for Mages Detect Good spell for Clerics Dispel Good spell for Clerics Dirt Kicking skill for Warriors and Thieves Added several new liquid types Added ITEM_PORTAL, ITEM_WARP_STONE Added do_enter, so you can enter a portal and teleport. Added several new liquid types. Added Online Editing using ILAB OLC Beta 1.1. Changed object format slightly. Will still load old Envy areas. Added alias, and unalias commands. Added CHANNEL_GRATS and "grats" command. Added CHANNEL_CLANTALK and "clantalk" command. Protection Good spell for Clerics. Fixed colorconv() bug when player was switched. Fixed bug in OLC when switched. Joguel: race Fish should breathe in SECT_WATER/SECT_WATER_NOSWIM === What can i do to help? Please make suggestions, contribute with code or whatever. Whatever i do i will try to make it available to everyone. And pass it to the EnvyMud staff. PLEASE do not make code which requests who uses it to put your name on the title screen as i have seen some code (like quest.c in ftp.solace.mh.se) i hate this! If everyone were like this soon we would have pages and pages of names in the title screen... If you want put your name in the help of the skill or whatever. To fight this i will include NO code which requests the author's name in the title screen unless it's a MAJOR code change. I have included some ROM/SMAUG/NiMud code and i put a reference to ROM/SMAUG/NiMud in the code as well as in here. Btw i'm in need of help sections for most of the new skills/spells as i hack code but usually forget to make the relevant help or it's very outdated... I would apreciate very much if some kind soul did this for me. - Zen