UNNOFICIAL Zen's EnvyMud patch Release 0.82! (HomeCooked Envy2.2)
Monday, 23th 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 Envy 2.2:
Zen There seems to be a bug in Envy2.2 do_imtlset when you
use the '-' option. The problem is in the pointer buf2
this should not be a pointer. I will fix it later in
another release... Or better, you fix it!
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