Prolly newbie question

From: Chris Powell (darkness@AGEOFWAR.ORG)
Date: 11/12/97


I am trying to code it so if a char idles out with more eq the they are
allowed it will loop through and extract the eq over the limit.  It works
except it will only extract one object no matter how many over the limit
they are.

in objsave.c

void Idle_eq_remove(struct char_data *ch, struct obj_data *obj, long *nitems)
{
int numitems = 0;
if (obj) {
if ((GET_OBJ_TYPE(obj) == ITEM_WEAPON) ||
   (GET_OBJ_TYPE(obj) == ITEM_ARMOR) || (GET_OBJ_TYPE(obj) == ITEM_LIGHT) ||
   (GET_OBJ_TYPE(obj) == ITEM_FIREWEAPON) || (GET_OBJ_TYPE(obj) == ITEM_STAFF) ||
   (GET_OBJ_TYPE(obj) == ITEM_MISSILE) || (GET_OBJ_TYPE(obj) == ITEM_WAND))
{
      (*nitems)++;
   numitems = *nitems;
    if (numitems > max_obj_save)
     extract_obj(obj);
    }
    Idle_eq_remove(ch, obj->contains, nitems);
    Idle_eq_remove(ch, obj->next_content, nitems);
}
}

in limits.c

 else if (ch->char_specials.timer > 48 ) {
      char_from_room(ch);
      char_to_room(ch, 1202);
  for (i = 0; i < NUM_WEARS; i++){
   if (GET_EQ(ch, i)) {
      Idle_eq_remove(ch, GET_EQ(ch, i), &numitems);
      }
     }
  Idle_eq_remove(ch, ch->carrying, &numitems);
  if (ch->in_room != NOWHERE)
        char_from_room(ch);
      char_to_room(ch, 3);
      if (ch->desc)
        close_socket(ch->desc);
      ch->desc = NULL;


  ___          _      _
/  _  \   _   / \    / \   Age Of War
| |_| |  / \  | |    | |   Telnet: ageofwar.org 4000
|  _  | | O | | \_/\_/ |   Web page: www.ageofwar.org/~aow
|_| |_|  \_/  \___/\___/   Email: darkness@ageofwar.org


     +------------------------------------------------------------+
     | 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