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