/* Aggressive Mobs */ if (MOB_FLAGGED(ch, MOB_AGGRESSIVE | MOB_AGGR_TO_ALIGN)) { found = FALSE; for (vict = world[IN_ROOM(ch)].people; vict && !found; vict = vict->next_in_room) { /* Mobs will now attack each other if they are aggressive - Corwynn */ if (!CAN_SEE(ch, vict) || (!IS_NPC(vict) && PRF_FLAGGED(vict, PRF_NOHASSLE))) continue; if (vict == ch) /* Do not kill self! */ continue; if (vict == ch->master || ch == vict->master) /* Do not kill master/follower! */ continue; As we can see, the check for IS_NPC(vict) has been removed, so NPCs will attack each other. Added in are checks for not killing self, and not killing anyone that the NPC is master of, or following. However, for some strange reason, I get a crash in void stop_follower. I just log any character in (to wake the mud up) and within about 10 seconds, it crashes with no input from me. (I can just sit in a room.) My version of GDB is the cygwin GUI version so I'm not entirely sure what I can look at to get a better idea of what's happening. (Typically when I find out where it crashes, I have had a decent idea of why . . . not this time sadly.) The lines it manages to crash at (in stop_followers) are below: if (ch->master->followers->follower == ch) { /* Head of follower-list? */ or for (k = ch->master->followers; k->next->follower != ch; k = k->next); I'm sorry for the poor quality of this report, but I'm unsure of what other information is of use that I can acquire from this version of GDB. -Mathew -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | | Newbie List: http://groups.yahoo.com/group/circle-newbies/ | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT