Data: Here's a patch to your non aggressives scanning the room. It's not a very good idea to put this code into your mud because then, all mobs are essentially aggressive. /* Aggressive Mobs */ if (MOB_FLAGGED(ch, MOB_AGGRESSIVE | MOB_AGGR_TO_ALIGN)) { found = FALSE; for (vict = world[ch->in_room].people; vict && !found; vict = vict->next_in_room) { if (IS_NPC(vict) || !CAN_SEE(ch, vict) || PRF_FLAGGED(vict, PRF_NOHASSLE)) continue; if (MOB_FLAGGED(ch, MOB_WIMPY) && AWAKE(vict)) continue; if (!MOB_FLAGGED(ch, MOB_AGGR_TO_ALIGN) || (MOB_FLAGGED(ch, MOB_AGGR_EVIL) && IS_EVIL(vict)) || (MOB_FLAGGED(ch, MOB_AGGR_NEUTRAL) && IS_NEUTRAL(vict)) || (MOB_FLAGGED(ch, MOB_AGGR_GOOD) && IS_GOOD(vict))) { hit(ch, vict, TYPE_UNDEFINED); found = TRUE; } } } else { act("$n looks around suspiciously.", FALSE, ch, 0, 0, TO_ROOM); for (vict = world[ch->in_room].people; vict && !found; vict = vict->next_in_room) { if (number(0, 20) >= GET_CHA(vict)) { hit(ch, victim, TYPE_UNDEFINED); found = TRUE; } } } The error you had before was because vict was never defined (or at least not yet.) All I did was reorganize your code to add a for(vict) loop to it. This defines the vict as people in the room, one at a time. Don't worry, the code prevents the mobile from hitting everyone in the room; it stops checking after it hits the first unfortunately victim. linc aka Aladdin of Eternity DikuMUD BTW: mailing data@iii.net got my mail bounced. Wassup wit dat?
This archive was generated by hypermail 2b30 : 12/07/00 PST