Re: Sedit Problem (Possible fixes to two problems)

From: Timbrewolf (
Date: 07/29/01

[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
>+    mob_index[i].func = NULL;
>    S_FUNC(OLC_SHOP(d)) = mob_index[i].func;
>    mob_index[i].func = shop_keeper;


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

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!

   | FAQ: |
   | Archives: |

This archive was generated by hypermail 2b30 : 12/06/01 PST