[snipped sprintascii update fix] >If you edit a shop and select 0, using the same mob number or a mob that >already has a func set as shop_keeper, it apparently causes the shop.c >fuction SPECIAL(shop_keeper) to loop with this bit of code. > > if (SHOP_FUNC(shop_nr)) { /* Check secondary function */ > if ((SHOP_FUNC(shop_nr)) (ch, me, cmd, arg)) > return (TRUE); > } > >Since I don't fully understand it, those more experinced would know more, >but in sedit.c where you set the shopkeeper's func, it sets the shop's >function to shop_keeper. This is becuase the mob already has a func >of shop_keeper. I don't know if this is correct to do so, but >it seems to work for me. ANY real help on how this should be >is WELCOMED! >(sedit.c) > >+ mob_index[i].func = NULL; > S_FUNC(OLC_SHOP(d)) = mob_index[i].func; > mob_index[i].func = shop_keeper; Del, Thanks for the info! I never would have found this myself. I had the sprintascii fix (I think that's updated in Oasis 2.01 when I was trying to fix this myself), and the code you sent fixes the corrupted shop files. However, I still have this problem: After creating/editing a shop and saving it internally, then saving it to disk, whatever. It works perfectly, no problems. It writes the shop file perfectly, no problem. But when I try to do 'show shops' it crashes the mud. When the mud reboots, the shop is still fine and show shops works without flaw. So I assume it must be some other problem in the list_all_shops function in shop.c, but I can't figure that out either. (I know, I'm not very helpful :( Maybe you could tell me if you have this same problem still? Thanks again! Brandon -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST