I've been working on the CircleMUD shop code, and recently I found an error in one of the shop files that will let players buy items and a very low price at a certain shop. If you're using zone 210 (New Sparta) you should go into 210.shp and look at shop #21001. The beginning of the shop should look like this: #21001~ -1 3054 3051 3053 1.05 There needs to be another -1 somewhere between the ~ and the 1.05. Right now, the bootup sequence reads the 1 in 1.05 and treats it as the fifth item, and then treats the .05 as the ratio to multiply costs by when selling items. If anyone has any ideas on improving the shops, I'd like to hear them. As of right now, here's what I've done: Ability to buy multiple items at once ("buy 5 bread"). New listing that groups identical items together, listing them only once, with a column for quantity. Ability to buy by using the listing number (shown when you "list": i.e. "buy #2", or "buy 3 #4"). List accepts an optional argument so you can list only one particular type of item ("list sword"). Ability to see multiple items at once ("sell 5 sword"). Ability to designate classes or alignments not to trade with. Burned out wands and staves will not be bought by anyone. It is now impossible to steal from, or start a fight with a shopkeeper as a result of a failed steal. New file format to allow production of unlimited items, as well as shops that buy every type of item. The old format is still supported, and a conversion program is available to convert old files to the new format. A "stat shop" function that allows you to see detailed information about each shop while the mud is running. (This is how I located the bug mentioned above) I've also played with a lot of the internals and fixed a small memory leak and set up preallocation of shop memory to quicken boot time a little bit. Thanks for any ideas anyone can give me. -Jeff
This archive was generated by hypermail 2b30 : 12/07/00 PST