Basics
There seems to be a lack of information about crafting, so here is a basic setup. You will need to create a python file in genesis and put in something like this. Always remeber that to have a craft item, all the ingediants and the final product already exist in your items folder.
c = DBRecipe(name = "Apprentice Bone Dagger")
c.skillname = "Weapon Craft"
c.skillLevel = 1
c.addIngredient("Bone Rod")
c.addIngredient("Apprentice Smithing Hammer")
c.addIngredient("Tongs")
c.addIngredient("Hardy")
c.addIngredient("Leather Strap")
c.addIngredient("Hilt")
c.craftItem = "Apprentice Bone Dagger"
c.craftSound = "sfx/Hit_MetalPoleImpact2.ogg"
c = c.clone(name = "Journeyman Bone Dagger")
c.skillLevel = 3
c.clearIngredients()
c.addIngredient("Bone Rod")
c.addIngredient("Journeyman Smithing Hammer")
c.addIngredient("Hardy")
c.addIngredient("Tongs")
c.addIngredient("Leather Strap")
c.addIngredient("Hilt")
c.craftItem = "Journeyman Bone Dagger"
What this will do is add a Recipe to create 2 items. It will specify the skill needed and the level to create it. As you can see it is going to specify the ingredients, the item created (perhaps in the same file or in another item file in genesis) and there can be a sound on success.
Cost and Count
Below is an example of requiring a count of an item and a cost to make it.
r = DBRecipe(name = "Fortified Potion of Agility")
r.skillname = "Alchemy"
r.skillLevel = 1
r.addIngredient("Potion of Agility",2)
r.addIngredient("Moon Powder")
r.craftItem = "Fortified Potion of Agility"
r.craftSound = "sfx/Underwater_Bubbles2.ogg"
r.costSP = 50
r.costCP = 30
As you can see 2 Potions of Agility are required and a Silver and Copper cost are added.
Ingredients that are not used up
Below is an example item that is not used up when used in crafting.
item = DBItemProto() item.name = "Cup of Measuring" item.desc = "Used when cooking and brewing. It is given by Janorkia during part 3 of the Cooking/Brewing quest. Do Not Delete this! It is essential equipment and can not be replaced." item.bitmap = "STUFF/43" item.craftConsumed = False item.flags = RPG_ITEM_SOULBOUND
As you can see the cunsumed flag is switched to False so it is not "eaten" during the process.
Blacksmithing
Haven't done much with this yet. You will find blacksmithing zones are specified in crafting.py. You will most likely need to change those to make it work.
Further Examples
http://www.mmoworkshop.com/trac/mom/browser/trunk/games/minionsofmirth/v1/genesis/crafting
A lot of MoM's crafting code can be seen here. Some good examples how everything works and is setup.
