Re: CODE/HELP: Second attack snipit

From: Rasmus 'Con' Ronlev (raro94ab@hp4.econ.cbs.dk)
Date: 07/08/96


On Mon, 8 Jul 1996, Sliver wrote:

>  hit(ch, FIGHTING(ch), TYPE_UNDEFINED);
>     if((GET_SKILL(ch, SKILL_SECOND_ATTACK) > 0)) {
>        if(GET_SKILL(ch, SKILL_SECOND_ATTACK) > number(1,200)-5*GET_LEVEL(ch) )
>          hit(ch, FIGHTING(ch), TYPE_UNDEFINED);
>     }
>   if(IS_AFFECTED(ch,AFF_HASTE)) {
>        hit(ch, FIGHTING(ch), TYPE_UNDEFINED);
>     }
> second of all, with this code, whenever I fight while affected by haste, or the 
> second_attack skill, the mud crashes, with no errors in the syslog.

Well, I beleave you've run across the most common problem of the 
implementors adding multible attacks :) The reason for your crash(es) is, 
that normaly the perform_violence routine checks for sanity checks at the 
START of perform_violence() to check if the person is fighting and stuff 
like that. This is not done on your seccond and/or haste attack, and 
thus, if you kill the mob in your first hit, you will be 'hitting' a mob 
thats been killed BEFORE you make the sanity checks again... (does it 
make any sense to you ? *grin*).

Anyway, just add if (FIGHTING(ch)) before all the hit()'s you added, and 
it won't crash... simple and easy :)

Regards,
Con.

d.
--
     Rasmus Rønlev DOEK'94      WWW: http://www.econ.cbs.dk/people/raro94ab  
     Student instructor         MUD: exiled.mud.circlemud.org 5000
                                         199.199.16.100 5000
       Student, B.Sc in Computer Science and Business Administration. 



This archive was generated by hypermail 2b30 : 12/07/00 PST