UNNOFICIAL Zen's EnvyMud patch Release 0.83! (HomeCooked Envy2.2) Monday, 30th June 1997 Zen vasc@camoes.rnl.ist.utl.pt === Greetings! My name in MUDs is Zen... in rl i'm called Vasco Costa. The first MUD i ever played was Envy 2.0 and Envy is my favorite mud still. Reasons? No need of scrolls of recall, no need to retrieve corpse, need i go on? Envy is soo much user friendly... This is the first time ever i took a real stab at Envy coding so here's what i came up with. === BUGS/UNDOCUMENTED FEATURES in this release of HomeCooked: None i know of. I usually squash them when i see them. But see changes.txt also, just in case i forgot to add something here. === BUGS/UNDOCUMENTED FEATURES in Envy 2.2: Zen do_imtlset has a bug when you use the '-' option. Sometimes the mud crashes with a segmentation fault... Fixed! Zen If you set a mobile in the area files to have AFF_CHARM and try to kill him the mud crashes... :( NOW FIXED! The bug was in fight.c in violence_update(), i added these 2 lines of code to solve it. /* fight.c */ /* Ok here we test for switch if victim is charmed */ if ( IS_AFFECTED( victim, AFF_CHARM ) -> && victim->master -> && !victim->master->deleted && victim->in_room == victim->master->in_room && number_percent() > 40 ) Why? If the mob is charmed and has no master the mud would crash with a segmentation fault! Kenneth Dugas lower level thieves steal better than > level bug Zen comment: Steal bug still existed in act_obj.c!!!!!!!! :( NOW FIXED! Just change "percent > number_percent()" to "percent < number percent". /* act_obj.c */ if ( ( !IS_NPC( victim ) && ( ( !IS_SET( victim->act, PLR_KILLER ) && !IS_SET( victim->act, PLR_THIEF ) && !IS_SET( victim->act, PLR_REGISTER ) && victim->race != race_lookup( "Vampire" ) ) || ch->level - victim->level < 5 ) ) || percent > number_percent( ) ) { ^^^^^^^^^^^^^^^^^^^^^^^^^^^ /* * Failure. */^^^^^^^^ Zen Mob of race Fish may walk in dry land... Solution: change do_move in act.move.c. Fixed! Joguel characters/mobs of race Fish can't breathe if room is ROOM_WATER_SWIM or ROOM_WATER_NOSWIM! Zen Solution: fix update.c Fixed! /* update.c */ if ( ( ch->in_room->sector_type == SECT_UNDERWATER && ( !IS_IMMORTAL( ch ) && !IS_AFFECTED( ch, AFF_GILLS ) && !IS_SET( race_table[ ch->race ].race_abilities, RACE_WATERBREATH ) ) ) || ( ( ch->in_room->sector_type != SECT_UNDERWATER -> && ch->in_room->sector_type != SECT_WATER_NOSWIM -> && ch->in_room->sector_type != SECT_WATER_SWIM ) && IS_SET( race_table[ ch->race ].race_abilities, RACE_WATERBREATH ) && ( strcmp( race_table[ ch->race ].name, "Object" ) && strcmp( race_table[ ch->race ].name, "God" ) ) ) ) { send_to_char( "You can't breathe!\n\r", ch ); act( "$n sputters and chokes!", ch, NULL, NULL, TO_ROOM ); damage( ch, ch, 5, gsn_breathe_water, WEAR_NONE ); Zen & Joguel Wand of water breathing in Midgaard magic shop is utterly useless unless player is of race Bear. As default player races don't have RACE_SWIM players can't move in ROOM_UNDERWATER (see act_move.c) Fish and God race have gills so why bother with the wand? Zen's suggestion: new swim skill. Swim skill implemented! - Zen