// TMW-2 script. // Author: // Jesusalva // Description: // Recipe Books in TMW2 - script #RecipeBook NPC_HIDDEN,{ function showRecipe; function readCooking; function readAlchemy; function readCrafting; OnUse: setnpcdialogtitle l("Recipe Book"); mesc l("You open the Recipe Book. Each recipe you get can be put here."); next; do { mesc l("Which recipes do you want to read?"); select l("Nothing."), l("Cooking Recipes."), l("Alchemy Recipes."), l("Crafting Recipes."); mes ""; switch (@menu) { case 2: readCooking(); break; case 3: readAlchemy(); break; case 4: readCrafting(); break; } } while (@menu != 1); closeclientdialog; close; // Expects: @scope$ // showRecipe( Craft, Bonus, {item 1, amount 1}, {item 2, amount 2}... ) function showRecipe { if (getargcount() < 3 || getargcount() % 2 != 0 || @scope$ == "") return Exception("Faulty recipe skill command invoked - error"); // getd("$RECIPES_ALCHEMY_"+getcharid(2)+"["+getarg(0)+"]") if (getd("RECIPES_"+@scope$+"["+getarg(0)+"]") { if (getarg(1)) { mesn l(".:: @@ Recipe ::.", getitemlink(getarg(1))); for (.@i=2;.@i < getargcount(); .@i++) { mesc l("@@/@@ @@", countitem(getarg(.@i)), getarg(.@i+1), getitemlink(getarg(.@i))); .@i++; } mes ""; } return 1; } //debugmes "Nope, nothing here"; return 0; } // =============================== Cooking Functions function readCooking { setnpcdialogtitle l("Cooking Recipes"); @scope$="COOKING"; mesc l("Eating is a necessity, but cooking is an art."); mesc l("(All items must be placed exactly in this order.)"); next; mesc l("List of known cooking recipes:"); mes ""; showRecipe(0, Iten, WarpedLog, 9999); next; @scope$=""; return; } // =============================== Cooking Functions function readCooking { setnpcdialogtitle l("Alchemy Recipes"); @scope$="ALCHEMY"; mesc l("Burn burn!"); mesc l("(All items must be placed exactly in this order.)"); next; mesc l("List of known alchemy recipes:"); mes ""; showRecipe(0, Iten, WarpedLog, 9999); next; @scope$=""; return; } // =============================== Crafting Functions function readCrafting { setnpcdialogtitle l("Crafting Recipes"); @scope$="EQUIPMENT"; mesc l("Smith smith!"); mesc l("(All items must be placed exactly in this order.)"); next; mesc l("List of known crafting recipes:"); mes ""; showRecipe(0, Iten, WarpedLog, 9999); next; @scope$=""; return; } OnInit: .sex = G_OTHER; .distance = 1; end;