diff options
Diffstat (limited to 'npc/items/recipes.txt')
-rw-r--r-- | npc/items/recipes.txt | 352 |
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; -} |