I think you need to take the object from the person before crashing. This is just an early morning guess, if this doesnt help,. try mailing in the gdb output so we can see WHAT is crashing it. Good Luck! Ghost Shaidan > ACMD(do_objpurge) { [snip init && basic checks] > > for (i = object_list; i; i = i->next) { > fprintf(stderr, "%s\n", i->name); > if (GET_OBJ_RNUM(i) == r_num) { /* this is where it crashes :( */ > if (i->carried_by) { > act("$p burns into fine ashes and slips through your fingers.", > FALSE, i->carried_by, i, 0, TO_CHAR); /*here*/ obj_from_char(i); > } else if ((i->in_room != NOWHERE) && (world[i->in_room]->people)) { > act("$p is burned into fine ashes and slips through $n's fingers.", > TRUE, world[i->in_room]->people, i, 0, TO_ROOM); > act("$p is burned into fine ashes and slips through $n'ss fingers.", > TRUE, world[i->in_room]->people, i, 0, TO_CHAR); /*there is an obj_from_room but I think you can extract_obj without calling it*/ > } else if (i->worn_by) { > act("$p burns into fine ashes is taken by the breeze.", FALSE, > i->worn_by, i, 0, TO_CHAR); > act("$n's $p burns into fine ashes is taken by the breeze.", FALSE, > i->worn_by, i, 0, TO_ROOM); /*and here*/ unequip_char(i->worn_by, i->worn_on); obj_from_char(i, i->carried_by); > } > extract_obj(i); /* if I comment out this then it works fine */ > found = TRUE; > } > } > if (found) { > sprintf(buf, "%s objpurges all objects with vnum %d", > GET_NAME(ch), number); > mudlog(buf, BRF, LVL_GRGOD, TRUE); > } > } > } +------------------------------------------------------------+ | 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