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