UNNOFICIAL Zen's EnvyMud patch Release 0.87! (Ultra Envy2.2)
Monday, 20th October 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 UltraEnvy:
Missile weapons support isn't very good yet.
Clans code needs more testing/refinement.
Don't mess with crazy non existent value[3] in weapons;
thanx go to Satan for crashing the mud with this...
Otherwise, none i know of. I usually squash them when i see them. But see
new.txt also, just in case i forgot to add something here.
Thanx are in order for Joguel, Satan, Spear & Thanatos for helping me playtest
the mud in the early days. Also thanx to all the players of DragonMud which
flooded me with bugs reports ;-) I couldn't have made this release stable
without your precious help.
=== BUGS/UNDOCUMENTED FEATURES in Envy 2.2:
Zen don't do "ofind all"... If you do... segmentation fault!
Fixed. In comm.c , write_to_buffer():
while ( d->outtop + length >= d->outsize )
{
char *outbuf;
-> if ( d->outsize >= 32000 )
-> {
-> /* empty buffer */
-> d->outtop = 0;
-> close_socket( d );
-> bugf( "Buffer overflow. Closing (%s).",
-> ( d->character ? d->character->name : "???" ) );
-> return;
-> }
outbuf = alloc_mem( 2 * d->outsize );
Since "ofind all" overflowed the output buffer it would crash the mud. So this
way, the offending char will simply be disconnected for safety.
Zen mobile_update() in update.c: mobs flee in terror if hurt
from some PC even if they can't see him...
Fixed!
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 'Cast from pointer to integer of different size'
warnings in save.c caused segmentation faults on DEC
Alpha.
- Zen