summaryrefslogtreecommitdiff
path: root/npc/items/recipes.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/items/recipes.txt')
-rw-r--r--npc/items/recipes.txt352
1 files changed, 0 insertions, 352 deletions
diff --git a/npc/items/recipes.txt b/npc/items/recipes.txt
deleted file mode 100644
index 42cdf51b..00000000
--- a/npc/items/recipes.txt
+++ /dev/null
@@ -1,352 +0,0 @@
-// Evol script.
-// Author:
-// Jesusalva
-// Micksha
-// Description:
-// Contains recipe books for Evol Online
-
-// showRecipe( recipe{, recipe...} )
-function script showRecipe {
- freeloop(true);
- for (.@a = 0; .@a < getargcount(); ++.@a) {
- .@const$ = data_to_string(getarg(.@a));
-
- if (startswith(.@const$, "Craft")) {
- // infer the item constant from the craft constant
- .@recipe = getarg(.@a);
-
- .@item = string_to_data(substr(.@const$, 5, getstrlen(.@const$) - 1));
- } else {
- // infer the craft constant from the item constant
- .@recipe = string_to_data(sprintf("Craft%s", .@const$));
- .@item = getarg(.@a);
- }
-
- if (.@item <= 0) {
- // target item not found
- continue;
- }
-
- if (!RECIPES[.@recipe] && !debug) {
- // does not have the recipe
- continue;
- }
-
- for (.@inv = 0; .@inv < 9; ++.@inv) {
- .@size = getcraftrecipe(.@recipe, .@inv, .@qty[0], .@item_id[0]);
-
- if (.@size < 0) {
- if (.@size == -1) {
- // recipe does not exist
- break;
- }
- // inventory does not exist
- break;
- }
-
- mes(l(".:: %s Recipe ::.", getitemlink(.@item)));
-
- for (.@it = 0; .@it < .@size; ++.@it) {
- .@recipe_item = .@item_id[.@it];
- .@recipe_qty = .@qty[.@it];
-
- if (.@recipe_item <= 0) {
- break;
- }
-
- mesc(sprintf("%d/%d %s", countitem(.@recipe_item), .@recipe_qty, getitemlink(.@recipe_item)));
- }
-
- mes("");
- .@count++;
- }
- }
- freeloop(false);
-
- return .@count > 0;
-}
-
-- script #RecipeBook NPC_HIDDEN,{
- function read_book;
- function read_cooking;
- function read_smithery;
- function read_tailoring;
- end;
-
-function read_book {
- setnpcdialogtitle l(.book_name$);
- mesc l("This book has several bookmarks. Which one will you open?");
- next;
- menuint
- l("Cooking"), CRAFT_COOKING,
- l("Alchemy"), CRAFT_ALCHEMY,
- l("Smithery"), CRAFT_SMITHERY,
- l("Tailoring"), CRAFT_TAILORING,
- l("Jewelery"), CRAFT_JEWELERY;
- mes "";
- switch (@menuret) {
- case CRAFT_COOKING:
- read_cooking(); break;
- case CRAFT_SMITHERY:
- read_smithery(); break;
- case CRAFT_TAILORING:
- read_tailoring(); break;
- default:
- mesc l("Unfortunately, there is nothing on this bookmark.");
- mesc l("Perhaps, in future, someone adds it to this world.");
- break;
- }
- close2();
- return;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-function read_cooking {
-
- setnpcdialogtitle l("Cooking Recipes");
-
- mesc l("Eating is a necessity, but cooking is an art.");
- mesc l("(All items must be placed exactly in this order for cooking work.)");
- next;
- mesc l("List of known cooking recipes:");
- mes "";
- mes ".:: " + l("Sandwiches") + " ::.";
- mes "";
-
- showRecipe(CarpSandwich,
- PioulegSandwich,
- MananaSandwich);
-
- mes "";
- mes ".:: " + l("Stew") + " ::.";
- mes "";
-
- showRecipe(SailorStew,
- SquirrelStew,
- MoubooStew);
-
- mes "";
- mes ".:: " + l("Plates") + " ::.";
- mes "";
-
- showRecipe(SeafoodPlate,
- BarbecuePlate,
- VeggiePlate);
-
- mes "";
- mes ".:: " + l("Desserts") + " ::.";
- mes "";
-
- showRecipe(Donut,
- BlueberryCake,
- CarrotCake);
- return;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-function read_smithery {
-
- setnpcdialogtitle l("Smithery Recipes");
-
- mesc l("You will trust your life to this, so you better do a good job!");
- mesc l("(All items must be placed exactly in this order.)");
- next;
- mesc l("List of known smithery recipes:");
-
- mes();
- mesf(".:: %s ::.", l("Chest Armor"));
- mes();
-
- showRecipe(LegionTrainingShirt,
- LegionCopperArmor,
- Chainmail,
- Snakeplate,
- LightPlatemail,
- JustifierChest,
- LegionIronArmor,
- WarlordPlate,
- TerraniteArmor,
- AssassinChest,
- BlackArmor,
- GoldenWarlordPlate);
-
- next();
- mes();
- mesf(".:: %s ::.", l("Leg Armor"));
- mes();
-
- showRecipe(ChainmailSkirt,
- TerranitePants,
- AssassinPants);
-
- next();
- mes();
- mesf(".:: %s ::.", l("Gloves"));
- mes();
-
- showRecipe(CopperArmbands,
- BromenalGloves,
- IronArmbands);
-
- next();
- mes();
- mesf(".:: %s ::.", l("Boots"));
- mes();
-
- showRecipe(BromenalBoots,
- WarlordBoots);
-
- return;
-}
-
-function read_tailoring {
- setnpcdialogtitle(l("Tailoring Recipes"));
-
- mesc(l("(All items must be placed exactly in this order.)"));
- next();
- mesc(l("List of known tailoring recipes:"));
-
- mes();
- mesf(".:: %s ::.", l("Chest Armor"));
- mes();
-
- showRecipe(CreasedShirt,
- ArtisTankTop,
- VneckJumper,
- SailorShirt,
- FineDress,
- SilkRobe,
- ForestArmor,
- ApprenticeRobe,
- PeltJacket,
- SorcererRobe,
- WizardRobe,
- EvocatorRobe);
-
- next();
- mes();
- mesf(".:: %s ::.", l("Leg Armor"));
- mes();
-
- showRecipe(CreasedShorts,
- CottonSkirt,
- PirateShorts,
- SilkPants,
- BrownTrousers,
- BanditTrousers,
- JeansChaps,
- LeatherTrousers);
-
- next();
- mes();
- mesf(".:: %s ::.", l("Gloves"));
- mes();
-
- showRecipe(ShortGloves,
- Armbands,
- CottonGloves,
- BanditGloves,
- SilkGloves,
- LeatherGloves,
- AssassinGloves);
-
- next();
- mes();
- mesf(".:: %s ::.", l("Boots"));
- mes();
-
- showRecipe(LousyMoccasins,
- Slippers,
- CottonBoots,
- BanditBoots,
- ManaSlippers,
- SquirrelBoots,
- LeatherBoots,
- RidingBoots,
- AssassinBoots);
-
- return;
-}
-
-
-OnUse:
- if (openbook())
- read_book();
- closeclientdialog();
- close;
-
-OnInit:
- .book_name$ = getitemname(RecipeBook);
- .distance = 1;
- end;
-}
-
-//////////////////////////////////////////////////////
-// Below this line are utils for Gacha. We use callfunc() on itemDB.
-// Types: see constants.db - everything is a bitwise here
-// Rarity: 1 - basic, 2 - intermediary, 4 - advanced, 8 - expert, 16 - master
-// Rarity: 1 - training, 2 - basic, 4 - advanced, 8 - expert, 16 - legendary
-// Keep in mind! Expert and Master blueprints must be restricted!
-// MakeBlueprint(type, rarity)
-function script MakeBlueprint {
- .@type=getarg(0, -1);
- .@rarity=getarg(1, 1);
-
- if (.@type & CRAFT_COOKING) {
-
- // ----------------------------------
- if (.@rarity & CRAFT_BASIC) {
- }
- if (.@rarity & CRAFT_INTERMEDIARY) {
- }
- if (.@rarity & CRAFT_ADVANCED) {
- }
- if (.@rarity & CRAFT_EXPERT) {
- }
- if (.@rarity & CRAFT_MASTER) {
- }
- // ----------------------------------
-
- }
- else if (.@type & CRAFT_SMITHERY)
- {
-
- // ----------------------------------
- if (.@rarity & CRAFT_BASIC) {
- }
- if (.@rarity & CRAFT_INTERMEDIARY) {
- array_push(.@recipes, CraftInfantryHelmet);
- }
- if (.@rarity & CRAFT_ADVANCED) {
- }
- if (.@rarity & CRAFT_EXPERT) {
- }
- if (.@rarity & CRAFT_MASTER) {
- }
- // ----------------------------------
-
- }
-
- // We don't have a .@recipes array D:
- if (array_entries(.@recipes) <= 0) {
- dispbottom l("This blueprint was blank.");
- return;
- }
-
- // Select a recipe randomly
- .@rcp=any_of(.@recipes);
-
- // Double precision failsafe
- if (RECIPES[.@rcp])
- .@rcp=any_of(.@recipes);
-
- // Learn the recipe or lose the item (and gain some EXP)
- if (RECIPES_[.@rcp]) {
- dispbottom l("It was a recipe you already knew...");
- getexp (BaseLevel+JobLevel)*rand2(1,.@rarity), JobLevel+rand2(1,.@rarity);
- } else {
- dispbottom l("Learned a new recipe!");
- RECIPES[.@rcp]=true;
- }
- return;
-}