Ronny Iversen wrote:
>
> Wrote a function to extract all objects of certain virtual number,
> only problem is it goes loco whenever the objects r extracted, if I
> comment out
> the extract(i) it works fine, can anybody tell me why? :)
I rewrote it, made a couple mods for readability. it works just fine on
mine.
replace the PCOMM with ACMD and the OBJECT with struct obj_data
PCOMM(do_purge_obj) {
OBJECT *i;
int number, r_num;
bool found = FALSE;
one_argument(argument, arg);
if(!*arg) {
send_to_char("I need an object to purge.\n\r", ch);
return;
}
if (!isdigit(*arg)) {
send_to_char("Usage: objpurge [vnum]\r\n", ch);
return;
}
if ( (number = atoi(arg)) < 0) {
send_to_char("A NEGATIVE number??\r\n", ch);
return;
}
for (i = object_list; i; i = i->next) {
if (GET_OBJ_VNUM(i) != number)
continue;
if (i->carried_by)
act("$p burns into fine ashes and slips through your fingers.",
FALSE, i->carried_by, i, 0, TO_CHAR);
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 your
fingers.",
TRUE, world[i->in_room].people, i, 0, TO_CHAR);
}
if (i->worn_by) {
act("$p burns into fine ashes and is taken by the breeze.",
FALSE, i->worn_by, i, 0, TO_CHAR);
act("Your $p burns into fine ashes and is taken by the breeze.",
FALSE, i->worn_by, i, 0, TO_ROOM);
}
extract_obj(i);
found = TRUE;
}
if (found) {
sprintf(buf, "%s objpurges all objects with vnum %d",
GET_NAME(ch), number);
mudlog(buf, BRF, LVL_GRGOD, TRUE);
}
}
--
Weather forecast for today: Sunny & Mild
Weather forecast for tomorrow : Sunny & Mild
www.giftsgalore.com : www.longboys.net
telnet://undying.longboys.net:4000 http://undying.longboys.net
+------------------------------------------------------------+
| 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