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