Re: Code for Fast agressive mobs, and a iq flag so mobs always hit the one with the lowest hp.

From: John Evans (evansj@HI-LINE.NET)
Date: 08/26/97


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