This topic has been up before, if you check the archives.. I believe the
solution was to check to make sure there was a victim in fight code.
-----Original Message-----
From: Circle Discussion List [mailto:CIRCLE@post.queensu.ca]On Behalf Of
Steve Kunitzer
Sent: Wednesday, March 22, 2000 5:02 AM
To: CIRCLE@post.queensu.ca
Subject: [CIRCLE] [NEWBIE] Crashing circle30bpl16-dg7a-oasis2.0
I've been dabbling with the circle30bpl16-dg7a-oasis2.0 archive from the
ftp site and I have come up with the following crash...
Whenever a mortal character "kills" another mob, the mud crashes.
I have narrowed down the error (as best I think I know how to) to fight.c
in the raw_kill or die methods.
void die(struct char_data * ch, struct char_data * killer)
{
gain_exp(ch, -(GET_EXP(ch) / 2));
if (!IS_NPC(ch)) {
REMOVE_BIT_AR(PLR_FLAGS(ch), PLR_KILLER);
REMOVE_BIT_AR(PLR_FLAGS(ch), PLR_THIEF);
}
raw_kill(ch, killer); <-------
}
If I remove or modify the line above I get no crash but no corpse and
objects left behind.
void raw_kill(struct char_data * ch, struct char_data * killer)
{
if (FIGHTING(ch))
stop_fighting(ch);
while (ch->affected)
affect_remove(ch, ch->affected);
if (killer) {
if (death_mtrigger(ch, killer))
death_cry(ch);
} else
death_cry(ch);
make_corpse(ch); <--------
extract_char(ch); <--------
}
If I comment out either of these two lines I don't get a crash but a whole
slew of attempt to damage a corpse messages.
Has anyone else run into this problem?
It has been driving me crazy.
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT