summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/craft/recipes.txt112
1 files changed, 112 insertions, 0 deletions
diff --git a/npc/craft/recipes.txt b/npc/craft/recipes.txt
new file mode 100644
index 000000000..b60b9830d
--- /dev/null
+++ b/npc/craft/recipes.txt
@@ -0,0 +1,112 @@
+// 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;