> This is the line in question:
>
> if (((SECT(IN_ROOM(ch)) == SECT_FLYING)) && (!AFF_FLAGGED(ch, AFF_FLY)) &&
> !(IS_NPC(ch) && MOB_FLAGGED(ch, MOB_WINGS)) &&
> !(IS_NPC(ch) && MOB_FLAGGED(ch, MOB_NOACT)) &&
> !(GET_LEVEL(ch) > LVL_IMMORT)) {
>
> if (FIGHTING(ch)) {
> stop_fighting(ch);
> stop_fighting(FIGHTING(ch));
> }
It seems to me that the problem here is that you have stop_fighting(ch)
BEFORE stop_fighting(FIGHTING(ch)).
i.e. when you try to stop their opponent fighting it doesn't work,
because their opponent is no longer stored in FIGHTING(ch).
The way I got around it was having a:
struct char_data *fighting;
fighting = FIGHTING(ch); // somewhere before you stop the char fighting,
and before you kill them
stop_fighting(fighting); // instead of stop_fighting(FIGHTING(ch))
Hope that does it for you.
Chris.
_____________________________________________________
"A double-edged sword lets you cut down
your enemies with the backswing as well."
-- Gerrard of the Weatherlight
-----------------------------------------------------
Check out Dominia Mud, on snafu.net.au 3333
Or my homepage: http://yoyo.cc.monash.edu.au/~cjp
+------------------------------------------------------------+
| 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