Hi, We have been converting zones from other code bases to add in some all time favorites, and our most recent conversion has about 15 shops in it. Bringing our total to 112 shops. The shops are in 2 files, one has 14 shop entries, one has 1. The file with 1 works fine. The file with 14 works fine through the first 12. If I take some out, the last 2 shops work, and it boots up fine even with all 14 in the file. If all 14 are in the file however, shop shop crashes us on the last page of the output (6/6). I can put in up to 110 shops. I am thinking we are over running buf in list_detailed_shop perhaps. (We have had similar problems when listing rent files, usually because of the extra chars from our color codes.) I declared a second var ( char buf2[32768];) and replace all instances of buf with buf2 in the list_detailed_shop() function. We still crash. There is also a buf1 that is used, but it doesnt look to hold enough for us to over run it. The strangest part is the gdb output: 0 0x80a778a in special (ch=0x8c93bf0, cmd=4, arg=0x8102bef "") at interpreter.c:1534 1534 if (GET_MOB_SPEC(k) != NULL) (gdb) bt #0 0x80a778a in special (ch=0x8c93bf0, cmd=4, arg=0x8102bef "") at interpreter.c:1534 #1 0x8062b66 in do_simple_move (ch=0x8c93bf0, dir=3, need_specials_check=1) at act.movement.c:171 #2 0x806373d in perform_move (ch=0x8c93bf0, dir=3, need_specials_check=1) at act.movement.c:326 #3 0x80b21f8 in mobile_activity () at mobact.c:99 #4 0x804abd6 in heartbeat (pulse=100) at comm.c:727 #5 0x804ab59 in game_loop (mother_desc=3) at comm.c:701 #6 0x8049a27 in init_game (port=5000) at comm.c:275 #7 0x804999c in main (argc=2, argv=0xbffffd98) at comm.c:246 #8 0x804955b in ___crt_dummy__ () (gdb) list 1529 if (GET_OBJ_SPEC(i) (ch, i, cmd, arg)) 1530 return 1; 1531 1532 /* special in mobile present? */ 1533 for (k = world[ch->in_room].people; k; k = k->next_in_room) 1534 if (GET_MOB_SPEC(k) != NULL) 1535 if (GET_MOB_SPEC(k) (ch, k, cmd, arg)) 1536 return 1; 1537 1538 /* special in object present? */ Alot of our core files indicate crashes at this spot. I think when we over run memory we are over running either a mob or plr or obj index (sometimes it crashes a few lines further up). The shop code kind of intimidates me, I have made 2 modifications to it: We list the objects the shop sells differently (in color and a different order to make up for some spacing issues due to the color codes). And I flag everything purchased at a store !SACRIFCE so that people can't get cheap heals by sacing daggers or papers.... If anyone has any ideas or has run across this before, I would appriciate anything that would help me through this. Ghost Shaidan qs.mudservices.com 4000 +------------------------------------------------------------+ | 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/15/00 PST