Re: [CODING] Spec Proc bug...

From: Johan Dustler (Johan.Dustler@epk.ericsson.se)
Date: 12/18/98


Hi,

I hope you have been able to fix this problem already, but if
not I think I know what might be causing the problem.


> From: CyberLord <tmillea@nfinity.com>
>
> I wrote a spec proc that after a few rounds fighting this mob you are put in
> another room.
>
> I found a bug that is kind of irritating me since I can't find where it is
> going haywire.
>
> A player starts the fight... and after the randon number of rounds the
> player is moved to
>  another room.. that all works fine..
>
> If a god is fighting the mob and does a goto <mob> seemingly at the same
> time the spec
>  proc does it's char_from_room and char_to _room calls the mob gets moved
> into the
> room along with the god.
>

I'm pretty sure the mob could get moved even when a mortal is fighting.
Try attacking the mob, and then issue a number of 'look' commands.
After no more then 5 or 6 commands, the mob should be moved.

The reason for this is that the special procedure is called every
time a command is issued. To prevent this from happen add the
following.


> Snippet follows:
>
> SPECIAL(mob)
> {
>         struct char_data *vict;
>         static round;
>         static max_rounds;

+         if (cmd)
+           return FALSE;

>
>         vict = FIGHTING(ch);
>
>         if(max_rounds == 0) // if max_rounds has not been set yet
>                 max_rounds = number(3,6); // set it to a random number between 3 and 6


/Johan


     +------------------------------------------------------------+
     | 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 : 12/15/00 PST