>From: Julian Fong <jfong@pobox.com> >Subject: minor shop violence bug [...] >In ok_damage_shopkeeper in shops.c, the line: > > if (IS_NPC(victim) && (mob_index[GET_MOB_RNUM(victim)].func == shop_keeper)) > >should be changed to: > > if (IS_MOB(victim) && (mob_index[GET_MOB_RNUM(victim)].func == shop_keeper)) > >otherwise there is the chance that GET_MOB_RNUM(victim) is -1. > >Thus I don't think this causes a problem in stock at all, but may >cause a problem when one extends the game to dynamically created mobs >with rnum -1. True enough: diff -uprN stk/shop.c isnpcmob/shop.c --- stk/shop.c Wed Oct 29 00:16:28 1997 +++ isnpcmob/shop.c Mon Mar 30 16:53:19 1998 @@ -891,7 +891,7 @@ int ok_damage_shopkeeper(struct char_dat char buf[200]; int index; - if (IS_NPC(victim) && (mob_index[GET_MOB_RNUM(victim)].func == shop_keeper)) + if (IS_MOB(victim) && (mob_index[GET_MOB_RNUM(victim)].func == shop_keeper)) for (index = 0; index < top_shop; index++) if ((GET_MOB_RNUM(victim) == SHOP_KEEPER(index)) && !SHOP_KILL_CHARS(index)) { do_action(victim, GET_NAME(ch), cmd_slap, 0); -- George Greer - Me@Null.net | Genius may have its limitations, but stupidity http://www.van.ml.org/~greerga | is not thus handicapped. -- Elbert Hubbard +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST