Re: Autoskill help

From: Daniel A. Koepke (dkoepke@circlemud.org)
Date: 01/28/01


On Sun, 28 Jan 2001, Kaun Lazaro wrote:

> last part of my code is the for statement I added for multi-attacks:
>
>   for (i = 0; i < att; i++) {
>     hit(ch, FIGHTING(ch), dam, TYPE_UNDEFINED);
>   }

What happens if a hit() kills the person they're fighting while the
attacker still has attacks left?  You want:

  for (i = 0; FIGHTING(ch) && i < att; i++)
    hit(ch, FIGHTING(ch), dam, TYPE_UNDEFINED);

>   do_kick(ch, FIGHTING(ch));

I don't think you want to have them hit and then kick the person every
round; if you don't, consider a different approach.  Either way, you
should ensure FIGHTING(ch) is not NULL (i.e., the victim hasn't been
killed), yet.

> which is:
> do_kick(struct char_data * ch, struct char_data * vict) {

Not unless you've changed it.

I believe your problem amounts to you killing the victim earlier and
failing to check if they've died.  This has been brought up several times
in the past: the list archive is your friend.


-dak

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/03/01 PST