Ron Cole wrote:
>
[snip]
>
> Take a look at where the spec is called, in mobile_activity() probably, see if
> the loop depends on the character staying in the linked list.
>
> Ron
You hit it on the head Ron. It appears as if mobile_activity()
in mobact.c handles it rather poorly if you extract the mob for
which it called the special procedure.
Many thanks to both Ron and John Evans for their assistance.
Jared
-------------------------------------------------------------------
SPECIAL( shadow )
{
/* code is complicated by fact that sometimes mob = ch and
sometimes mob = me. Parameters differ because when called
from mobile_actions, ch references the mob, but when called
in response to a player cmd, ch references the player. */
if ( (time_info.hours >= 6) && (time_info.hours <= 21 ) )
{
if ( IS_NPC(ch) )
{
/*
true if called from mobile_activity in mobact.c. It appears
that mobile_activity handles things poorly when the mob it
called the special proc for is extracted, so instead
just incapacitate and leave for dead.
*/
GET_HIT(ch) = -10;
GET_POS(ch) = POS_MORTALLYW;
return( TRUE );
}
else
{
act( "$n hisses in agony and withers away as the sun hits $e!",
FALSE, me, 0, 0, TO_ROOM );
die( me );
return( FALSE );
}
}
return( FALSE );
}
+------------------------------------------------------------+
| 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