» SmaugMuds » Bugfix Lists » AFKMud Bugfix List » AFKMud Bug Archive » [Bug] Breath mobs are biased ...
Pages:<< prev 1 next >>
Black Hand

GroupAdministrators
Posts3,708
JoinedJan 1, 2002
Bug: Breath mobs are biased based on room occupant order
Danger: Medium - Whoever enters the room first is going to get picked on more
Discovered in: AFKMud 1.77
Found by: Valcados
Fixed by: Valcados
---
mspecial.c, dragon
Replace the function with:
Dragons ( or other breath mobs ) would tend to breathe on whoever was listed first in order by the occupants of the room. This makes the choice a little more random based on who is fighting the mob.
Danger: Medium - Whoever enters the room first is going to get picked on more
Discovered in: AFKMud 1.77
Found by: Valcados
Fixed by: Valcados
---
mspecial.c, dragon
Replace the function with:
bool dragon( CHAR_DATA * ch, char *fspell_name )
{
CHAR_DATA *victim, *chosen = NULL;
int sn, count=0;
if( ch->position != POS_FIGHTING
&& ch->position != POS_EVASIVE
&& ch->position != POS_DEFENSIVE && ch->position != POS_AGGRESSIVE && ch->position != POS_BERSERK )
return FALSE;
for( victim = ch->in_room->first_person; victim; victim = victim->next_in_room )
{
if( who_fighting( victim ) != ch )
continue;
if( !number_range( 0, count ) )
chosen = victim, count++;
}
if( !chosen )
return FALSE;
if( ( sn = skill_lookup( fspell_name ) ) < 0 )
return FALSE;
( *skill_table[sn]->spell_fun ) ( sn, ch->level, ch, chosen );
return TRUE;
}
Dragons ( or other breath mobs ) would tend to breathe on whoever was listed first in order by the occupants of the room. This makes the choice a little more random based on who is fighting the mob.
Pages:<< prev 1 next >>