» SmaugMuds » Bugfix Lists » AFKMud Bugfix List » AFKMud Bug Archive » [Bug] Scavenging mobs claim t...
Pages:<< prev 1 next >>
#1 Sep 10, 2006 4:32 pm
Black Hand
GroupAdministrators
Posts3,685
JoinedJan 1, 2002
Bug: Scavenging mobs claim to pick up prototype items
Danger: Low - Annoyance spam
Discovered in: AFKMud 1.77
Found by: Valcados
Fixed by: Valcados
---
handler.c, obj_to_char
Locate:
Change to:
update.c, mobile_update
Locate:
Change to:
mspecial.c, spec_janitor
Locate:
Below that, add:
Danger: Low - Annoyance spam
Discovered in: AFKMud 1.77
Found by: Valcados
Fixed by: Valcados
---
handler.c, obj_to_char
Locate:
if( IS_OBJ_FLAG( obj, ITEM_PROTOTYPE ) ) { if( !IS_IMMORTAL( ch ) && !IS_ACT_FLAG( ch, ACT_PROTOTYPE ) ) return obj_to_room( obj, ch->in_room, ch ); }
Change to:
if( IS_OBJ_FLAG( obj, ITEM_PROTOTYPE ) ) { if( !IS_IMMORTAL( ch ) && ( !IS_NPC(ch) || !IS_ACT_FLAG( ch, ACT_PROTOTYPE ) ) ) return obj_to_room( obj, ch->in_room, ch ); }
update.c, mobile_update
Locate:
for( obj = ch->in_room->first_content; obj; obj = obj->next_content ) { if( CAN_WEAR( obj, ITEM_TAKE ) && obj->cost > max && !IS_OBJ_FLAG( obj, ITEM_BURIED ) ) { obj_best = obj; max = obj->cost; } }
Change to:
for( obj = ch->in_room->first_content; obj; obj = obj->next_content ) { if ( IS_OBJ_FLAG( obj, ITEM_PROTOTYPE ) && !IS_ACT_FLAG( ch, ACT_PROTOTYPE ) ) continue; if( CAN_WEAR( obj, ITEM_TAKE ) && obj->cost > max && !IS_OBJ_FLAG( obj, ITEM_BURIED ) ) { obj_best = obj; max = obj->cost; } }
mspecial.c, spec_janitor
Locate:
if( !IS_WEAR_FLAG( trash, ITEM_TAKE ) || IS_OBJ_FLAG( trash, ITEM_BURIED ) ) continue;
Below that, add:
if( IS_OBJ_FLAG( trash, ITEM_PROTOTYPE ) && !IS_ACT_FLAG( ch, ACT_PROTOTYPE ) ) continue;
Valcados said:
Janitors and scavenger mobs do not check if the shiny objects they want are prototype. If the object is prototype, they will repeatedly issue echos to the effect that they have picked it up, when in fact they have not.
Pages:<< prev 1 next >>