At 02:58 PM 8/23/97 +0200, you wrote: >Code for two new mob flags - if someone can use it :) > > >MOB_FAST_AGGR >============= > >ACMD(do_move) >{ > register struct char_data *vict, *tmob; > int found; > > /* > * This is basically a mapping of cmd numbers to perform_move indices. > * It cannot be done in perform_move because perform_move is called > * by other functions which do not require the remapping. > */ > perform_move(ch, cmd - 1, 0); > > /* LJ Fast Aggressive */ > for (tmob = world[ch->in_room].people; tmob; tmob = tmob->next_in_room) > { > if (!IS_NPC(tmob) || !MOB_FLAGGED(tmob, MOB_FAST_AGGR)) > continue; Stick a check in here to see if the moving player is sneaking.... After all, that's the point of sneaking into a room, eh? I don't remember who said it, but this stuff (seems to) work faster in perform_move() instead of here. > > found = FALSE; > for (vict = world[tmob->in_room].people; vict && !found; vict = >vict->next_in_room) > { > if (IS_NPC(vict) || !CAN_SEE(tmob, vict) || PRF_FLAGGED(vict, >PRF_NOHASSLE)) > continue; > if (MOB_FLAGGED(tmob, MOB_WIMPY) && AWAKE(vict)) > continue; > > if (MOB_FLAGGED(tmob, MOB_AGGRESSIVE) || > (MOB_FLAGGED(tmob, MOB_AGGR_EVIL) && IS_EVIL(vict)) || > (MOB_FLAGGED(tmob, MOB_AGGR_NEUTRAL) && IS_NEUTRAL(vict)) || > (MOB_FLAGGED(tmob, MOB_AGGR_GOOD) && IS_GOOD(vict))) { > hit(tmob, vict, TYPE_UNDEFINED); > found = TRUE; > } > } > } > >} > John Evans mailto:evansj@hi-line.net http://www.hi-line.net/~evansj/ I don't suffer from Insanity. I enjoy every minute of it! +------------------------------------------------------------+ | 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/08/00 PST