// 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;