[Crash] SOLVED my problem!

From: Chris Jacobson (fear@ATHENET.NET)
Date: 09/18/97


Ok, I finally solved the problem!

I couldn't figure out what was happening, but then I looked over the code
very carefully, took everything into consideration, slept on it, went to
work, spent ane vening with my gf, got back, looked at the code, and
after months of wondering, it all snapped into place:

The killer was getting killed DURING the damage routine but BEFORE the
skillmsg() and die() calls.  How?  Well, I implemented an 'acidblood'
feature for when aliens take a lot of damage, and the damage done is
(8d(damage to alien / 8), with a variable chance of doing damage.
Acidblood from the victim was killing the killer.

The solution:
     Well, I couldn't remove acidblood, people loved it.  I could make it
weaker, but it just has less chance of the same bug.  I couldn't move it
after the die call, because then the killer is dead, and some of the
things wouldn't work.  I could make a generic acidspray() call that
doesn't need all the info from the victim, which could use some small
info gathered before the die() call, and then an "} else {" after the end
of "if (GET_POS(victim) == POS_DEAD)".

What I decided was to do the same thing I did with death traps - make the
character suffer.  They are dropped to -100 hits, have an updated
position, and die shortly thereafter :-)
People love non-instant death traps for some reason.

Cheers and happy debugging!

- Chris Jacobson


     +------------------------------------------------------------+
     | 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