OK, I got bored this morning and decided to cut down on complaints by a lot of people about the spam they get when looking at the people who hoard eq. So, I added a bit of code to look_at_char, trying to make the objects stack, and am having a bit of trouble with it. When I look at a char(who has 5 of the exact same obj in his inventory) no eq shows up... I've put a comment where the stacking code starts, and ends... If anyone can tell me what I might be doing wrong, I'd be appreciative.... I'm running BPL14 if it makes a difference. void look_at_char(struct char_data * i, struct char_data * ch) { int j, found, num; struct obj_data *tmp_obj, *nxt_obj; if (!ch->desc) return; if (i->player.description) send_to_char(i->player.description, ch); else act("You see nothing special about $m.", FALSE, i, 0, ch, TO_VICT); diag_char_to_char(i, ch); found = FALSE; for (j = 0; !found && j < NUM_WEARS; j++) if (GET_EQ(i, j) && CAN_SEE_OBJ(ch, GET_EQ(i, j))) found = TRUE; if (found) { act("\r\n$n is using:", FALSE, i, 0, ch, TO_VICT); for (j = 0; j < NUM_WEARS; j++) if (GET_EQ(i, j) && CAN_SEE_OBJ(ch, GET_EQ(i, j))) { send_to_char(where[j], ch); show_obj_to_char(GET_EQ(i, j), ch, 1); } } if (ch != i && (IS_THIEF(ch) || GET_LEVEL(ch) >= LVL_IMMORT)) { found = FALSE; act("\r\nYou attempt to peek at $s inventory:", FALSE, i, 0, ch, TO_VICT); for (tmp_obj = i->carrying; tmp_obj; tmp_obj = tmp_obj->next_content) { if (CAN_SEE_OBJ(ch, tmp_obj) && (number(0, 20) < GET_LEVEL(ch))) { /* Begin stacking */ for(nxt_obj = tmp_obj; nxt_obj; nxt_obj = nxt_obj->next_content) { if(nxt_obj->item_number == NOTHING){ if(strcmp(nxt_obj->short_description, tmp_obj->short_description) == 0) break; } else if (nxt_obj->item_number==tmp_obj->item_number) break; if (nxt_obj!=tmp_obj) continue; for (nxt_obj = tmp_obj; nxt_obj; nxt_obj = nxt_obj->next_content) if (nxt_obj->item_number==NOTHING) { if(strcmp(nxt_obj->short_description,tmp_obj->short_description)==0) num++; } else if (nxt_obj->item_number==tmp_obj->item_number) num++; if (CAN_SEE_OBJ(ch, tmp_obj)) { if (num!=1) { sprintf(buf,"[%2i ] ",num); strcat(buf, tmp_obj->short_description); send_to_char(buf, ch); } } } /* End stacking */ /* show_obj_to_char(tmp_obj, ch, 1); */ found = TRUE; } } if (!found) send_to_char("You can't see anything.\r\n", ch); } } -Phillip Phillip Ames | Implementor of Apocalypse MUD kirk47@juno.com | telnet://oberon.krans.com:1701 ICQ: 8778335 | AOL IM: Grathol http://members.xoom.com/Gowron/index.html ___________________________________________________________________ You don't need to buy Internet access to use free Internet e-mail. Get completely free e-mail from Juno at http://www.juno.com/getjuno.html or call Juno at (800) 654-JUNO [654-5866] +------------------------------------------------------------+ | 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