summaryrefslogblamecommitdiff
path: root/npc/craft/recipes.txt
blob: b60b9830d9c197024fa75dc2825b6213cf900c9d (plain) (tree)















































































































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