DARKOVER 2.0 This isn't a Darkover specific file, I just grabbed this from the building.doc file for Circle 3.00. All credit goes to Jeff Fink who submitted the documentation and the code for the shops to Circle 3.00. And of course, mucho credit to Jeremet Elson, who put all the junk together. Once this works well, I'll write a doc file. Probably going to make several modifications to this stuff anyways. -- Eldritch (7/21/95) 7. Shop Files CircleMUD v3.0 now has a new shop file format. Since the old format is still supported, both formats will be documented. If you'd like to convert shop files in the old format to that of the new format, compile and run the utility shopconv. When writing new files, you need to tell CircleMUD that the shopfile is in the new format by including the following line BEFORE any shops in the file: CircleMUD v3.0 Shop File~ 7.1. CircleMUD v3.0 Shop Format #~ Shop Number (Used only for display purposes) . . . -1 An arbitrarily long list of the virtual numbers of objects that the shop produces (i.e., items which will always be available). The list must be terminated with -1. The object value is multiplied by this value when sold. This is a floating point value. Must be >= 1.0 The object value is multiplied by this value when bought. This is a floating point value. Must be <= 1.0 [namelist 1] [namelist 2] [namelist 3] . . . [namelist n] -1 These lines contain the types of items that the shop will buy. The first argument, called "type" is the Type Flag of items the shop will buy (see "Type Flag" under "Format of an Object" in this document). Numerical or English forms are valid (5 or WEAPON, 9 or ARMOR, etc.). In addition, you can provide optional keywords to define specific keywords that must be present on the item for the shopkeeper to trade it. For further details on these expressions, see the section "Item Name Lists" below. This list must be terminated by a -1. ~ ~ ~ ~ ~ ~ Price is represented by %d. ~ Price is represented by %d. When player can't afford an item, the shopkeeper tells them they can't afford the item and then: 0 - The shopkeeper pukes on the player. 1 - The shopkeeper smokes his joint. other - No action besides message above. A bitvector (see "Using Bitvectors" above) with the following values: 1 a WILL_START_FIGHT Players can to try to kill this shopkeeper. 2 b WILL_BANK_MONEY Shopkeeper will put money over 15000 coins in the bank. A brief note: Shopkeepers should be hard (if even possible) to kill. The benefits players can receive from killing them is enough to unbalance most non monty-haul campaigns. Virtual number of the shopkeeper mobile. A bitvector (see "Using Bitvectors" above) used to designate certain alignments or classes that the shop will not trade with, with the following values: 1 a NOGOOD Keeper won't trade with positively-aligned players. 2 b NOEVIL Keeper won't trade with evilly-aligned players. 4 c NONEUTRAL Keeper won't trade with neutrally-aligned players. 8 d NOMAGIC_USER Keeper won't trade with the Mage class. 16 e NOCLERIC Keeper won't trade with the Cleric class. 32 f NOTHIEF Keeper won't trade with the Thief class. 64 g NOWARRIOR Keeper won't trade with the Warrior class. . . . -1 The virtual numbers the mobile must be in for the shop to be effective. (So trans'ed shopkeepers can't sell in the desert). The list must be terminated by a -1.