I could be wrong, wouldn't be the first time, but in limits.c in point_update() there is a call to check_idling() if !IS_NPC(i). After that call there are some gain_condition() calls, which just subtract the hunger/thirst/drunk by 1 for the char. (Ok not the most elegant way to say it but hey :) What if the character is extracted by check_idling() ? In check_idling() the character gets force rented and extracted if their idle time exceeds the predetermined limit. If the character gets extracted, gain_condition() references a freed area of memory. In the normal flow of the program this usually will not result in an error I think, but I've added quite a few things after that check_idling() call in point_update(), so it does do some nasty things on my mud. Solution? Well reordering the function calls will work, but I think I'll just have check_idling() return bool (TRUE if the char was extracted and freed) and if (check_idling(i)) perhaps continue on to the next char in the point_update() for loop. Well, I hope someone else can take a look and maybe show me somethin I'm missin. vall aka jtrhone RoA +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST