diff options
author | Jesusaves <cpntb1@ymail.com> | 2024-01-20 11:49:57 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2024-01-20 11:49:57 -0300 |
commit | 03cbbf5e2ba23f9714baf42df157c0001599fb85 (patch) | |
tree | 6ec7d8a8183a5ac8034ffe08170c91d86ad5a97d | |
parent | d786c3b3977ef72b4b64248099274dd79b642258 (diff) | |
download | serverdata-03cbbf5e2ba23f9714baf42df157c0001599fb85.tar.gz serverdata-03cbbf5e2ba23f9714baf42df157c0001599fb85.tar.bz2 serverdata-03cbbf5e2ba23f9714baf42df157c0001599fb85.tar.xz serverdata-03cbbf5e2ba23f9714baf42df157c0001599fb85.zip |
This is the initial version of Cooking System (work in progress).
In particular:
- You cannot learn how to cook
- You cannot learn any recipe
- You cannot make flour
- You cannot cook Fruit Salad, Zombie Nachos nor Pancake
This also introduces changes to drops, as well as new items, incl. Donuts.
Partly Tested.
34 files changed, 911 insertions, 57 deletions
diff --git a/db/constants.conf b/db/constants.conf index bcac8ddd4..8ba69372c 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1870,6 +1870,7 @@ constants_db: { NPC_KADIYA: 281 NPC_SASHA: 282 NPC_BLANC: 283 + NPC_STOVE: 284 // TMW-BR Non Animated NPCs NPC_SHOPPAKEP: 301 diff --git a/db/craft_db.conf b/db/craft_db.conf index 0c1b1869e..b098336f1 100644 --- a/db/craft_db.conf +++ b/db/craft_db.conf @@ -4403,5 +4403,267 @@ craft_db: ( // Cooking System (ID 200~250, Flag 4) ////////////////////////////////////////////////////////////////////////////// +{ + Id: 200 + Name: "CraftPepperoniPizza" + Flag: 4 + ReturnCode: 2300 + SourceItems: + ( + { + TortugaTongue: 1 + Bread: 1 + Cheese: 1 + Tomato: 1 + Fungus: 1 + }, + ) + CreateItems: + ( + { + HalfEggshell: 1 + }, + ) + Priority: 10 +}, +/****************************************************************************/ +{ + Id: 201 + Name: "CraftCaramelApple" + Flag: 4 + ReturnCode: 2301 + SourceItems: + ( + { + RedApple: 1 + Honey: 1 + HardSpike: 1 + }, + ) + CreateItems: + ( + { + HalfEggshell: 1 + }, + ) + Priority: 10 +}, +/****************************************************************************/ +{ + Id: 202 + Name: "CraftCarpSandwich" + Flag: 4 + ReturnCode: 2302 + SourceItems: + ( + { + GrassCarp: 1 + Bread: 1 + Cheese: 1 + LettuceLeaf: 1 + Root: 1 + }, + ) + CreateItems: + ( + { + HalfEggshell: 1 + }, + ) + Priority: 10 +}, +/****************************************************************************/ +{ + Id: 203 + Name: "CraftShellSandwich" + Flag: 4 + ReturnCode: 2303 + SourceItems: + ( + { + TortugaShellFragment: 1 + Bread: 1 + Cheese: 1 + LettuceLeaf: 1 + Root: 1 + }, + ) + CreateItems: + ( + { + HalfEggshell: 1 + }, + ) + Priority: 10 +}, +/****************************************************************************/ +{ + Id: 204 + Name: "CraftChickenSandwich" + Flag: 4 + ReturnCode: 2304 + SourceItems: + ( + { + ChickenLeg: 1 + Bread: 1 + Cheese: 1 + LettuceLeaf: 1 + Root: 1 + }, + ) + CreateItems: + ( + { + HalfEggshell: 1 + }, + ) + Priority: 10 +}, +/****************************************************************************/ +{ + Id: 205 + Name: "CraftSushi" + Flag: 4 + ReturnCode: 2305 + SourceItems: + ( + { + Trout: 1 + CommonCarp: 1 + GrassCarp: 1 + Roach: 1 + Tench: 1 + Aquada: 1 + }, + ) + CreateItems: + ( + { + HalfEggshell: 1 + }, + ) + Priority: 10 +}, +/****************************************************************************/ +{ + Id: 206 + Name: "CraftSteakAndEggs" + Flag: 4 + ReturnCode: 2306 + SourceItems: + ( + { + MoubooSteak: 2 + BlackMambaEgg: 2 + SmallMushroom: 1 + }, + ) + CreateItems: + ( + { + HalfEggshell: 1 + }, + ) + Priority: 10 +}, +/****************************************************************************/ +{ + Id: 207 + Name: "CraftFruitSalad" + Flag: 4 + ReturnCode: 2307 + SourceItems: + ( + { + Manana: 1 + RedApple: 1 + Orange: 1 + Pear: 1 + NPCEyes: 1 + NPCEyes: 1 + }, + ) + CreateItems: + ( + { + HalfEggshell: 1 + }, + ) + Priority: 10 +}, +/****************************************************************************/ +{ + Id: 208 + Name: "CraftPoisonedDish" + Flag: 4 + ReturnCode: 2308 + SourceItems: + ( + { + BatWing: 1 + Moss: 1 + PurpleBlobime: 1 + PinkBlobime: 1 + SeaDrops: 1 + ChocolateBiscuit: 1 + }, + ) + CreateItems: + ( + { + HalfEggshell: 1 + }, + ) + Priority: 10 +}, +/****************************************************************************/ +{ + Id: 209 + Name: "CraftZombieNachos" + Flag: 4 + ReturnCode: 2309 + SourceItems: + ( + { + Cheese: 1 + GambogeHerb: 1 + Flour: 1 + Dragonfruit: 1 + SkullBloodyMug: 1 + }, + ) + CreateItems: + ( + { + HalfEggshell: 1 + }, + ) + Priority: 10 +}, +/****************************************************************************/ +{ + Id: 210 + Name: "CraftPancake" + Flag: 4 + ReturnCode: 2310 + SourceItems: + ( + { + MountainSnakeEgg: 1 + Flour: 1 + Milk: 1 + Cheese: 1 + Curshroom: 1 + }, + ) + CreateItems: + ( + { + HalfEggshell: 1 + }, + ) + Priority: 10 +}, /****************************************************************************/ ) diff --git a/db/re/item_db.conf b/db/re/item_db.conf index 1d0bdf4f7..b37fd2b93 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -158,7 +158,8 @@ item_db: ( 1300 1799 = Chest Armors 1800 1999 = Boots 2000 2199 = Gloves -2200 2499 = Pants +2200 2299 = Pants +2300 2499 = Cooked Food 2500 2699 = Rings 2700 2899 = Shields 2900 3199 = Head Gears @@ -1402,19 +1403,20 @@ item_db: ( }, { Id: 574 - AegisName: "ZombieNachos" - Name: "Zombie Nachos" + AegisName: "Tomato" + Name: "Tomato" Type: "IT_HEALING" Buy: 50 Sell: 25 - Weight: 4 + Weight: 5 Refine: false Delay: 500 UseEffect: "EFFECT_HEAL" Script: <" - callfunc("ItHeal2", 2, 1); + callfunc("ItHeal", 15, 75); "> }, +// 575-582 free { Id: 583 AegisName: "ChocolateBiscuit" @@ -3384,8 +3386,8 @@ item_db: ( AegisName: "TortugaShellFragment" Name: "Tortuga Shell Fragment" Type: "IT_ETC" - Buy: 25 - Sell: 8 + Buy: 250 + Sell: 80 Weight: 25 Refine: false }, @@ -3444,8 +3446,8 @@ item_db: ( AegisName: "TortugaShell" Name: "Tortuga Shell" Type: "IT_ETC" - Buy: 90 - Sell: 30 + Buy: 900 + Sell: 300 Weight: 95 Refine: false }, @@ -3454,8 +3456,8 @@ item_db: ( AegisName: "TortugaTongue" Name: "Tortuga Tongue" Type: "IT_ETC" - Buy: 18 - Sell: 6 + Buy: 180 + Sell: 60 Weight: 2 Refine: false }, @@ -3530,17 +3532,13 @@ item_db: ( }, { Id: 717 - AegisName: "PoisonedDish" - Name: "Poisoned Dish" + AegisName: "Trout" + Name: "Trout" Type: "IT_ETC" - Buy: 999999 - Sell: 1 - Weight: 20 + Buy: 114 + Sell: 57 + Weight: 150 Refine: false - Trade: { - nodrop: true - noselltonpc: true - } }, { Id: 718 @@ -4523,11 +4521,15 @@ item_db: ( Weight: 20 Refine: false }, -// ID 816 is free { Id: 816 - AegisName: "Item816" - Name: "Item 816" + AegisName: "Flour" + Name: "Flour" + Type: "IT_ETC" + Buy: 250 + Sell: 100 + Weight: 80 + Refine: false }, { Id: 817 @@ -8791,6 +8793,203 @@ item_db: ( "> }, +// Cooked Food +{ + Id: 2300 + AegisName: "PepperoniPizza" + Name: "Pepperoni Pizza" + Type: "IT_ARMOR" + Buy: 999999 + Sell: 1 + Weight: 1 + Loc: "EQP_SHADOW_ACC_L" + Refine: false + Script: <" + bonus bAllStats,2; + "> + OnUnequipScript: <" + callfunc "item_consumption", 2300; + "> +}, +{ + Id: 2301 + AegisName: "CaramelApple" + Name: "Caramel Apple" + Type: "IT_ARMOR" + Buy: 999999 + Sell: 1 + Weight: 1 + Loc: "EQP_SHADOW_ACC_L" + Refine: false + Script: <" + bonus bShortWeaponDamageReturn, 5; + bonus bLongWeaponDamageReturn, 5; + "> + OnUnequipScript: <" + callfunc "item_consumption", 2301; + "> +}, +{ + Id: 2302 + AegisName: "CarpSandwich" + Name: "Carp Sandwich" + Type: "IT_ARMOR" + Buy: 999999 + Sell: 1 + Weight: 1 + Loc: "EQP_SHADOW_ACC_L" + Refine: false + Script: <" + bonus bPerfectHitRate, 10; + bonus bHit, 5; + "> + OnUnequipScript: <" + callfunc "item_consumption", 2302; + "> +}, +{ + Id: 2303 + AegisName: "ShellSandwich" + Name: "Shell Sandwich" + Type: "IT_ARMOR" + Buy: 999999 + Sell: 1 + Weight: 1 + Loc: "EQP_SHADOW_ACC_L" + Refine: false + Script: <" + bonus bSplashAddRange, 1; // Stackable! + bonus bAtkRate, -15; // The canon value is -20% + "> + OnUnequipScript: <" + callfunc "item_consumption", 2303; + "> +}, +{ + Id: 2304 + AegisName: "ChickenSandwich" + Name: "Chicken Sandwich" + Type: "IT_ARMOR" + Buy: 999999 + Sell: 1 + Weight: 1 + Loc: "EQP_SHADOW_ACC_L" + Refine: false + Script: <" + bonus2 bHPRegenRate, 40, 2000; + "> + OnUnequipScript: <" + callfunc "item_consumption", 2304; + "> +}, +{ + Id: 2305 + AegisName: "Sushi" + Name: "Sushi" + Type: "IT_ARMOR" + Buy: 999999 + Sell: 1 + Weight: 1 + Loc: "EQP_SHADOW_ACC_L" + Refine: false + Script: <" + bonus bDoubleAddRate, 10; + bonus bHit, 25; + "> + OnUnequipScript: <" + callfunc "item_consumption", 2305; + "> +}, +{ + Id: 2306 + AegisName: "SteakAndEggs" + Name: "Steak and Eggs" + Type: "IT_ARMOR" + Buy: 999999 + Sell: 1 + Weight: 1 + Loc: "EQP_SHADOW_ACC_L" + Refine: false + Script: <" + bonus bNoWeaponDamage, 5; + "> + OnUnequipScript: <" + callfunc "item_consumption", 2306; + "> +}, +{ + Id: 2307 + AegisName: "FruitSalad" + Name: "FruitSalad" + Type: "IT_ARMOR" + Buy: 999999 + Sell: 1 + Weight: 1 + Loc: "EQP_SHADOW_ACC_L" + Refine: false + Script: <" + bonus bRestartFullRecover,100; + bonus2 bSPRegenRate, 8, 2000; + "> + OnUnequipScript: <" + callfunc "item_consumption", 2307; + "> +}, +{ + Id: 2308 + AegisName: "PoisonedDish" + Name: "Poisoned Dish" + Type: "IT_ARMOR" + Buy: 999999 + Sell: 1 + Weight: 1 + Loc: "EQP_SHADOW_ACC_L" + Refine: false + Script: <" + bonus bMaxHPrate, -35; + bonus2 bGetZenyNum, 15, 100; + "> + OnUnequipScript: <" + callfunc "item_consumption", 2308; + "> +}, +{ + Id: 2309 + AegisName: "ZombieNachos" + Name: "Zombie Nachos" + Type: "IT_ARMOR" + Buy: 999999 + Sell: 1 + Weight: 1 + Loc: "EQP_SHADOW_ACC_L" + Refine: false + Script: <" + bonus bAddMonsterDropChainItem, ITMCHAIN_ORE; // FIXME: Not thematic + "> + OnUnequipScript: <" + callfunc "item_consumption", 2309; + "> +}, +{ + Id: 2310 + AegisName: "Pancake" + Name: "Pancake" + Type: "IT_ARMOR" + Buy: 999999 + Sell: 1 + Weight: 1 + Loc: "EQP_SHADOW_ACC_L" + Refine: false + Script: <" + bonus bCriticalDef, 5; + bonus bNearAtkDef, 5; + bonus bLuk, 3; + "> + OnUnequipScript: <" + callfunc "item_consumption", 2310; + "> +}, + // Rings { Id: 2500 @@ -19617,15 +19816,51 @@ item_db: ( Refine: false Delay: 500 Script: <" - @min = 20; - @max = 20; - @delay = 60; - @type = SC_INCFLEE; - doevent "inc_sc_bonus::OnUse"; + callfunc("SC_Bonus", 60, SC_INCFLEE, 20); + "> +}, +{ + Id: 8053 + AegisName: "ChocolateDonut" + Name: "Chocolate Donut" + Type: "IT_USABLE" + Buy: 10000 + Sell: 100 + Weight: 20 + Refine: false + Delay: 500 + Script: <" + callfunc("SC_Bonus", 60, SC_INCHIT, 20); + "> +}, +{ + Id: 8054 + AegisName: "SparklyChocolateDonut" + Name: "Sparkly Chocolate Donut" + Type: "IT_USABLE" + Buy: 10000 + Sell: 100 + Weight: 24 + Refine: false + Delay: 500 + Script: <" + callfunc("SC_Bonus", 60, SC_FOOD_CRITICALSUCCESSVALUE, 10); // 10/10=1 + "> +}, +{ + Id: 8055 + AegisName: "MintDonut" + Name: "Mint Donut" + Type: "IT_USABLE" + Buy: 10000 + Sell: 100 + Weight: 20 + Refine: false + Delay: 500 + Script: <" + callfunc("SC_Bonus", 60, SC_WALKSPEED, 110); "> }, -// 8053 Chocolate Donut -// 8054 Sparkly Chocolate Donut // 8055 Mint Donut // 8056 Sparkly Mint Donut { @@ -19639,11 +19874,7 @@ item_db: ( Refine: false Delay: 500 Script: <" - @min = 5; - @max = 5; - @delay = 150; - @type = SC_INCMSPRATE; - doevent "inc_sc_bonus::OnUse"; + callfunc("SC_Bonus", 150, SC_INCMSPRATE, 5); "> }, { @@ -19657,11 +19888,7 @@ item_db: ( Refine: false Delay: 500 Script: <" - @min = 5; - @max = 5; - @delay = 150; - @type = SC_INCMHPRATE; - doevent "inc_sc_bonus::OnUse"; + callfunc("SC_Bonus", 150, SC_INCMHPRATE, 5); "> }, diff --git a/db/re/mob_db.conf b/db/re/mob_db.conf index ad9dfa9a1..199f72619 100644 --- a/db/re/mob_db.conf +++ b/db/re/mob_db.conf @@ -231,8 +231,8 @@ mob_db: ( Moss: 2500 LettuceLeaf: 1800 TortugaShellFragment: 1780 - TortugaTongue: 1000 Fungus: 800 + TortugaTongue: 700 Aquada: 600 SeaDrops: 500 TortugaShell: 400 @@ -2423,6 +2423,7 @@ mob_db: ( Chagashroom: 350 HardSpike: 200 ArtichokeHerb: 150 + Pear: 60 Emerald: 3 ForestShroomHat: 1 } @@ -2509,6 +2510,7 @@ mob_db: ( DamageMotion: 900 Drops: { RedApple: 400 + Tomato: 300 LeatherPatch: 240 CoinBag: 125 Lockpicks: 100 @@ -6083,6 +6085,10 @@ mob_db: ( AttackMotion: 672 DamageMotion: 480 // This chest must give back 70% hp recovery to killer. + Drops: { + Tomato: 350 + Pear: 300 + } }, { Id: 1146 @@ -6208,7 +6214,10 @@ mob_db: ( AttackDelay: 800 AttackMotion: 672 DamageMotion: 480 - // Chest way spawm some angry monsters + // Chest may spawn some angry monsters + Drops: { + Tomato: 50 + } }, { Id: 1150 @@ -7251,10 +7260,11 @@ mob_db: ( AttackMotion: 472 DamageMotion: 280 Drops: { - Potatoz: 1300 + Potatoz: 1400 Moss: 500 GrassSeeds: 300 TinOre: 140 + Pear: 20 Carrot: 11 LOFCoin: 6 Emerald: 2 @@ -7472,6 +7482,7 @@ mob_db: ( Drops: { FluoPowder: 200 Curshroom: 150 + Pear: 40 LightGreenDiamond: 2 } }, @@ -8556,11 +8567,12 @@ mob_db: ( AttackMotion: 672 DamageMotion: 270 Drops: { - FrozenYetiTear: 10000 - AnimalBones: 8000 + FrozenYetiTear: 9500 + AnimalBones: 7500 HeroCoin: 3000 BronzeBossGift: 2000 SilverBossGift: 1000 + Pear: 150 MercBoxA: 100 ArcmageBoxset: 80 YetiMask: 50 @@ -9150,6 +9162,8 @@ mob_db: ( AttackMotion: 672 DamageMotion: 200 Drops: { + Tomato: 180 + Pear: 70 CherryCake: 60 } }, @@ -9682,6 +9696,7 @@ mob_db: ( Drops: { CoinBag: 780 CasinoCoins: 560 + Tomato: 320 SharpKnife: 280 CactusDrink: 200 Dagger: 180 @@ -9782,6 +9797,7 @@ mob_db: ( TinOre: 400 Coal: 360 IronOre: 300 + SparklyChocolateDonut: 70 TitaniumOre: 40 CopperKey: 20 IridiumOre: 10 @@ -9836,7 +9852,7 @@ mob_db: ( OrangeCupcake: 400 GoldOre: 200 CherryCake: 150 - SharpKnife: 42 + MintDonut: 42 Topaz: 22 } WeaponAttacks: { @@ -9936,6 +9952,7 @@ mob_db: ( ChocolateBar: 3600 ChocolateBar: 1000 ChocolateBiscuit: 800 + Pear: 75 ChocolateMouboo: 40 LOFCoin: 10 ChocolateDye: 8 @@ -11363,9 +11380,12 @@ mob_db: ( ViewRange: 7 ChaseRange: 11 Drops: { + Tomato: 810 ChickenLeg: 520 Fungus: 220 + ChocolateDonut: 100 SparklyStrawberryDonut: 50 + MintDonut: 30 } }, { @@ -11406,10 +11426,12 @@ mob_db: ( ViewRange: 7 ChaseRange: 11 Drops: { - Fungus: 180 + Fungus: 190 + Pear: 120 DodgeDonut: 60 Sapphire: 30 - StrawberryDonut: 10 + StrawberryDonut: 15 + MintDonut: 10 } }, { @@ -11452,8 +11474,9 @@ mob_db: ( Drops: { MushroomSpores: 1200 SmallMushroom: 900 + ChocolateDonut: 240 Curshroom: 180 - Fungus: 80 + Fungus: 120 } }, { @@ -11498,6 +11521,7 @@ mob_db: ( Acorn: 3000 Acorn: 2000 Acorn: 1000 + ChocolateDonut: 500 SparklyStrawberryDonut: 250 } }, @@ -11540,7 +11564,8 @@ mob_db: ( ChaseRange: 11 Drops: { ArtichokeHerb: 2800 - Fungus: 40 + ChocolateDonut: 100 + Fungus: 50 DodgeDonut: 10 } }, @@ -11620,9 +11645,11 @@ mob_db: ( ChaseRange: 11 Drops: { LettuceLeaf: 800 + Fungus: 250 FluoPowder: 240 + MintDonut: 120 Emerald: 40 - Fungus: 10 + SparklyChocolateDonut: 10 } }, { @@ -11664,7 +11691,10 @@ mob_db: ( ChaseRange: 11 Drops: { ShadowHerb: 8000 + TortugaShellFragment: 670 + ChocolateDonut: 500 Coal: 180 + SparklyChocolateDonut: 120 Amethyst: 20 DeathPotion: 10 } @@ -11711,6 +11741,7 @@ mob_db: ( DeathPotion: 1000 DodgeDonut: 600 StrawberryDonut: 300 + SparklyChocolateDonut: 140 ThetaRing: 3 } }, @@ -12219,8 +12250,11 @@ mob_db: ( ViewRange: 14 ChaseRange: 18 Drops: { + ChocolateDonut: 1400 FluoPowder: 900 + SparklyChocolateDonut: 200 FluoPowder: 50 + MintDonut: 25 } WeaponAttacks: { All: 4000 @@ -12519,6 +12553,7 @@ mob_db: ( Drops: { CoinBag: 4000 BronzeBossGift: 1000 + SparklyChocolateDonut: 400 SilverBossGift: 200 GoldenBossGift: 25 } @@ -12560,6 +12595,7 @@ mob_db: ( AttackMotion: 672 DamageMotion: 200 Drops: { + Tomato: 920 CoinBag: 500 DarkCrystal: 24 Pearl: 20 @@ -12603,6 +12639,7 @@ mob_db: ( AttackMotion: 672 DamageMotion: 200 Drops: { + Tomato: 920 CoinBag: 500 DarkCrystal: 24 Pearl: 20 @@ -12649,6 +12686,7 @@ mob_db: ( AttackMotion: 672 DamageMotion: 200 Drops: { + Tomato: 6000 CoinBag: 3500 BronzeBossGift: 800 SilverBossGift: 150 @@ -12696,6 +12734,7 @@ mob_db: ( AttackMotion: 672 DamageMotion: 200 Drops: { + SparklyChocolateDonut: 300 BronzeBossGift: 200 SilverBossGift: 50 GoldenBossGift: 10 @@ -12750,6 +12789,8 @@ mob_db: ( } Drops: { Coal: 300 + ChocolateDonut: 15 + TortugaShellFragment: 3 } }, // System @@ -13114,6 +13155,7 @@ mob_db: ( DamageMotion: 480 Drops: { ArcmageBoxset: 4500 + Tomato: 1420 BronzeBossGift: 1000 HastePotion: 500 StrengthPotion: 500 @@ -13161,6 +13203,7 @@ mob_db: ( AttackMotion: 272 DamageMotion: 100 Drops: { + SparklyChocolateDonut: 2700 LegendaryMouboo: 1 } }, @@ -13334,6 +13377,7 @@ mob_db: ( DamageMotion: 100 Drops: { BronzeBossGift: 1000 + Tomato: 620 SilverBossGift: 250 GoldenBossGift: 10 GuildCoin: 10 diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index 28bb8630e..9328a4d40 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -38485,7 +38485,19 @@ skill_db: ( Quest: true } }, -// 20005~20008 reserved for TMW/Evol +// 20005~20007 reserved for TMW/Evol +{ + Id: 20008 + Name: "TMW2_COOKING" + Description: "Cooking" + MaxLevel: 7 + SkillType: { + Self: true + } + SkillInfo: { + Quest: true + } +}, { Id: 20009 Name: "TMW2_DROPS" diff --git a/db/re/skill_tree.conf b/db/re/skill_tree.conf index 02d20488a..6ecdff753 100644 --- a/db/re/skill_tree.conf +++ b/db/re/skill_tree.conf @@ -33,6 +33,7 @@ Human: { TMW2_FAKESKILL2: 0 TMW2_SKILLPERMIT: 0 TMW2_CRAFT: 0 + TMW2_COOKING: 0 TMW2_ANCIENTLANGUAGES: 0 TMW2_SPEECH: 0 TMW2_MPREGEN: 0 diff --git a/npc/001-1/eventmaster.txt b/npc/001-1/eventmaster.txt index ad44024b2..a040470d6 100644 --- a/npc/001-1/eventmaster.txt +++ b/npc/001-1/eventmaster.txt @@ -554,6 +554,7 @@ L_EventOnly: "Silver Mimic", SilverMimic, "Golden Chest", GoldenChest, "Golden Mimic", GoldenMimic, + "WildX Chest", WildxChest, "Evil Chest", EvilChest, "Big Magic Bif", BigMagicBif, "Maverick", Maverick; diff --git a/npc/001-1/rewards.txt b/npc/001-1/rewards.txt index 0d49ca796..859ede1f2 100644 --- a/npc/001-1/rewards.txt +++ b/npc/001-1/rewards.txt @@ -108,7 +108,6 @@ OnInit: sellitem PrecisionPotion,9; sellitem DodgePotion,9; sellitem Wurtzite,8; - sellitem Curshroom,6; sellitem PetcaringGuide,5; // I needed to add this somewhere sellitem ScrollSCave,3; sellitem SmokeGrenade,3; diff --git a/npc/007-1/pylon.txt b/npc/007-1/pylon.txt index 71637600a..67c5bd4b7 100644 --- a/npc/007-1/pylon.txt +++ b/npc/007-1/pylon.txt @@ -39,6 +39,7 @@ L_Menu: rif(countitem(Amethyst) >= 1 && Zeny >= 100, l("Yeah sure, take my Amethyst!")), rif(countitem(IronOre) >= 1 && Zeny >= 100, l("And what about Iron Ore?")), rif(countitem(SunnyCrystal) >= 1 && Zeny >= 1000 && !checkbound(SunnyCrystal), l("And what about Sunny Crystals?")), + rif(!checkbound(TortugaShell) && countitem(TortugaShell) && Zeny >= 1000 && getskilllv(TMW2_COOKING), l("Actually, can you break Tortuga Shells?")), l("No, thanks, I will keep my gems."); mes ""; @@ -54,6 +55,9 @@ L_Menu: goto L_Savior; break; case 10: + goto L_Shell; + break; + case 11: close; break; default: @@ -160,6 +164,23 @@ L_Savior: } goto L_Menu; +L_Shell: + mesn; + mesq l("For cooking? Sure thing, but this costs %s GP.", fnum(1000)); + next; + mesn; + mesc l("Are you sure you want to smash it?"), 1; + next; + if (askyesno() == ASK_YES) { + Zeny-=1000; + delitem TortugaShell, 1; + getitem TortugaShellFragment, rand2(1,3); + mesn; + mesq l("Here you go, have fun in whatever dish you'll use this in."); + next; + } + goto L_Menu; + L_Close: close; diff --git a/npc/009-6/doorbell.txt b/npc/009-6/doorbell.txt index 2f6796823..5a7444a4d 100644 --- a/npc/009-6/doorbell.txt +++ b/npc/009-6/doorbell.txt @@ -265,6 +265,7 @@ OnInit: create_object("Shelf 12" , 1, 2000, 8192, 38, 23, 38, 23); create_object("Piano" , 3, 10000, 1, 33, 25, 35, 25); + create_object("Stove" , 3, 40000, 2, 23, 24, 24, 24); create_object("Left Desk" , 2, 5000, 1, 20, 25, 22, 27); create_object("Right Desk" , 2, 5000, 2, 36, 30, 38, 32); diff --git a/npc/009-6/utils.txt b/npc/009-6/utils.txt index 65ffbb276..0652607fa 100644 --- a/npc/009-6/utils.txt +++ b/npc/009-6/utils.txt @@ -67,6 +67,7 @@ OnReload: // load_npc ( name , map, x , y{, cell} ) load_npc("Wardrobe#RES_0096", .mapa$, 21, 23); load_npc("Piano#RES_0096" , .mapa$, 34, 25); + load_npc("Stove#RES_0096" , .mapa$, 23, 24); end; } diff --git a/npc/009-7/doorbell.txt b/npc/009-7/doorbell.txt index 0898dc334..1dfd1c1e5 100644 --- a/npc/009-7/doorbell.txt +++ b/npc/009-7/doorbell.txt @@ -265,6 +265,7 @@ OnInit: create_object("Shelf 12" , 1, 2000, 8192, 38, 23, 38, 23); create_object("Piano" , 3, 10000, 1, 33, 25, 35, 25); + create_object("Stove" , 3, 40000, 2, 23, 24, 24, 24); create_object("Left Desk" , 2, 5000, 1, 20, 25, 22, 27); create_object("Right Desk" , 2, 5000, 2, 36, 30, 38, 32); diff --git a/npc/009-7/utils.txt b/npc/009-7/utils.txt index 424a1f779..4a30c401d 100644 --- a/npc/009-7/utils.txt +++ b/npc/009-7/utils.txt @@ -67,6 +67,7 @@ OnReload: // load_npc ( name , map, x , y{, cell} ) load_npc("Wardrobe#RES_0097", .mapa$, 21, 23); load_npc("Piano#RES_0097" , .mapa$, 34, 25); + load_npc("Stove#RES_0097" , .mapa$, 23, 24); end; } diff --git a/npc/012-8/doorbell.txt b/npc/012-8/doorbell.txt index e9f5877d4..2ddb693d7 100644 --- a/npc/012-8/doorbell.txt +++ b/npc/012-8/doorbell.txt @@ -271,6 +271,7 @@ OnInit: create_object("Shelf 12" , 1, 2000, 8192, 38, 23, 38, 23); create_object("Piano" , 3, 10000, 1, 33, 25, 35, 25); + create_object("Stove" , 3, 40000, 2, 23, 24, 24, 24); create_object("Left Desk" , 2, 5000, 1, 20, 25, 22, 27); create_object("Right Desk" , 2, 5000, 2, 36, 30, 38, 32); diff --git a/npc/012-8/utils.txt b/npc/012-8/utils.txt index 7e34e91fe..0086fd191 100644 --- a/npc/012-8/utils.txt +++ b/npc/012-8/utils.txt @@ -65,6 +65,7 @@ OnReload: load_npc("Wardrobe#RES_0128", .map$, 21, 23); load_npc("Cauldron#RES_0128", .map$, 28, 24); load_npc("Piano#RES_0128" , .map$, 34, 25); + load_npc("Stove#RES_0128" , .map$, 23, 24); end; } diff --git a/npc/017-7/doorbell.txt b/npc/017-7/doorbell.txt index 1be18ad8b..a944dc83e 100644 --- a/npc/017-7/doorbell.txt +++ b/npc/017-7/doorbell.txt @@ -271,6 +271,7 @@ OnInit: create_object("Shelf 12" , 1, 2000, 8192, 38, 23, 38, 23); create_object("Piano" , 3, 10000, 1, 33, 25, 35, 25); + create_object("Stove" , 3, 40000, 2, 23, 24, 24, 24); create_object("Left Desk" , 2, 5000, 1, 20, 25, 22, 27); create_object("Right Desk" , 2, 5000, 2, 36, 30, 38, 32); diff --git a/npc/017-7/utils.txt b/npc/017-7/utils.txt index 28f69e283..6541d6a03 100644 --- a/npc/017-7/utils.txt +++ b/npc/017-7/utils.txt @@ -68,6 +68,7 @@ OnReload: load_npc("Wardrobe#RES_0177", .mapa$, 21, 23); load_npc("Cauldron#RES_0177", .mapa$, 28, 24); load_npc("Piano#RES_0177" , .mapa$, 34, 25); + load_npc("Stove#RES_0177" , .mapa$, 23, 24); end; } diff --git a/npc/017-8/doorbell.txt b/npc/017-8/doorbell.txt index cc26c4679..4accdd31e 100644 --- a/npc/017-8/doorbell.txt +++ b/npc/017-8/doorbell.txt @@ -271,6 +271,7 @@ OnInit: create_object("Shelf 12" , 1, 2000, 8192, 38, 23, 38, 23); create_object("Piano" , 3, 10000, 1, 33, 25, 35, 25); + create_object("Stove" , 3, 40000, 2, 23, 24, 24, 24); create_object("Left Desk" , 2, 5000, 1, 20, 25, 22, 27); create_object("Right Desk" , 2, 5000, 2, 36, 30, 38, 32); diff --git a/npc/017-8/utils.txt b/npc/017-8/utils.txt index 70161131a..11f711334 100644 --- a/npc/017-8/utils.txt +++ b/npc/017-8/utils.txt @@ -68,6 +68,7 @@ OnReload: load_npc("Wardrobe#RES_0178", .mapa$, 21, 23); load_npc("Cauldron#RES_0178", .mapa$, 28, 24); load_npc("Piano#RES_0178" , .mapa$, 34, 25); + load_npc("Stove#RES_0178" , .mapa$, 23, 24); end; } diff --git a/npc/018-2/_import.txt b/npc/018-2/_import.txt index adb5e8745..cee0d2783 100644 --- a/npc/018-2/_import.txt +++ b/npc/018-2/_import.txt @@ -2,3 +2,4 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/018-2/_mobs.txt", "npc/018-2/_warps.txt", +"npc/018-2/wateranimation.txt", diff --git a/npc/018-2/wateranimation.txt b/npc/018-2/wateranimation.txt new file mode 100644 index 000000000..73a17835a --- /dev/null +++ b/npc/018-2/wateranimation.txt @@ -0,0 +1,22 @@ +// TMW2 scripts. +// Author: +// Jesusalva +// Description: +// Water animations, splash, fishes, etc... + +018-2,118,50,0 script #HH_WAM0 NPC_WATER_SPLASH,{ + + fishing(1, + CommonCarp, + Trout); + + close; + +OnInit: + .sex = G_OTHER; + .distance = 4; + end; +} + +018-2,41,49,0 duplicate(#HH_WAM0) #HH_WAM1 NPC_WATER_SPLASH +018-2,51,93,0 duplicate(#HH_WAM0) #HH_WAM2 NPC_WATER_SPLASH diff --git a/npc/024-14/doorbell.txt b/npc/024-14/doorbell.txt index ac6452a17..b8b6c8842 100644 --- a/npc/024-14/doorbell.txt +++ b/npc/024-14/doorbell.txt @@ -219,6 +219,7 @@ OnInit: create_object("Beer Shelf" , 1, 2000, 32, 37, 26, 37, 26); create_object("Piano" , 3, 10000, 1, 31, 26, 33, 26); + create_object("Stove" , 3, 42000, 2, 30, 26, 31, 27); create_object("Right Desk" , 2, 5000, 2, 36, 30, 38, 32); diff --git a/npc/024-14/utils.txt b/npc/024-14/utils.txt index ad9c51134..69656594c 100644 --- a/npc/024-14/utils.txt +++ b/npc/024-14/utils.txt @@ -45,6 +45,7 @@ OnReload: load_npc("Wardrobe#RES_PPL", "ples@"+getcharid(0), 25, 26); load_npc("Cauldron#RES_PPL", "ples@"+getcharid(0), 28, 27); load_npc("Piano#RES_PPL" , "ples@"+getcharid(0), 32, 26); + load_npc("Stove#RES_PPL" , "ples@"+getcharid(0), 30, 27); end; } @@ -78,3 +79,13 @@ OnInit: end; } + +024-14,30,27,0 script Stove#RES_PPL NPC_STOVE,{ + realestate_stove(); + close; + +OnInit: + .distance=3; + end; +} + diff --git a/npc/025-1/ctrl.c b/npc/025-1/ctrl.c index 160206415..18e685801 100644 --- a/npc/025-1/ctrl.c +++ b/npc/025-1/ctrl.c @@ -287,7 +287,7 @@ OnMPReinforce: // Last a whole minute summon("Allied Guard", any(FallenGuard1, FallenGuard2, FallenGuard3)); if (strcharinfo(0) == $MOST_HEROIC$) - summon("Allied Guard", any(FallenGuard1, FallenGuard2, FallenGuard3)); + summon("Allied Guard", any(FallenGuard1, FallenGuard2, DustGatling)); end; ///////////////////////////////////////////////////////// diff --git a/npc/029-8/_import.txt b/npc/029-8/_import.txt index 02bf49b9f..b21131502 100644 --- a/npc/029-8/_import.txt +++ b/npc/029-8/_import.txt @@ -1,2 +1,3 @@ // Map 029-8: Asphodel Moors // This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/029-8/wateranimation.txt", diff --git a/npc/029-8/wateranimation.txt b/npc/029-8/wateranimation.txt new file mode 100644 index 000000000..702e554d9 --- /dev/null +++ b/npc/029-8/wateranimation.txt @@ -0,0 +1,27 @@ +// TMW2 scripts. +// Author: +// Jesusalva +// Description: +// Water animations, splash, fishes, etc... + +029-8,96,82,0 script #Moors_WAM0 NPC_WATER_SPLASH,{ + + fishing(2, + Trout, Roach, + GrassCarp, Tench); + + close; + +OnInit: + .sex = G_OTHER; + .distance = 4; + end; +} + +029-8,115,75,0 duplicate(#Moors_WAM0) #Moors_WAM1 NPC_WATER_SPLASH +029-8,98,65,0 duplicate(#Moors_WAM0) #Moors_WAM2 NPC_WATER_SPLASH +029-8,108,58,0 duplicate(#Moors_WAM0) #Moors_WAM3 NPC_WATER_SPLASH +029-8,112,65,0 duplicate(#Moors_WAM0) #Moors_WAM4 NPC_WATER_SPLASH +029-8,55,88,0 duplicate(#Moors_WAM0) #Moors_WAM5 NPC_WATER_SPLASH +029-8,103,79,0 duplicate(#Moors_WAM0) #Moors_WAM6 NPC_WATER_SPLASH +029-8,52,90,0 duplicate(#Moors_WAM0) #Moors_WAM7 NPC_WATER_SPLASH diff --git a/npc/craft/cooking.txt b/npc/craft/cooking.txt new file mode 100644 index 000000000..0ec3ee1f8 --- /dev/null +++ b/npc/craft/cooking.txt @@ -0,0 +1,132 @@ +// TMW2 Script +// Author: +// Jesusalva, Micksha, Meway +// Description: +// Cooking System (Player, Guild, NPC) + +// Usage: CookingSystem ({scope}) +// Scopes: CRAFT_NPC, CRAFT_PLAYER +// If an invalid scope is passed, .knowledge won't be set but will be required +// Returns true on success, false on failure +function script CookingSystem { + // Set .scope, .knowledge and .success + .scope=getarg(0, CRAFT_PLAYER); + if (.scope == CRAFT_PLAYER) { + if (!getskilllv(TMW2_COOKING)) { + mesc l("You don't know how to cook."), 1; + return false; + } + copyarray(.knowledge,RECIPES_COOKING,getarraysize(RECIPES_COOKING)); + } + .success=false; + + setskin "craft3"; + .@var$ = requestcraft(6); // ????? + .@craft = initcraft(.@var$); + .@entry = findcraftentry(.@craft, CRAFT_COOKING); // ?????? + if (debug || $@GM_OVERRIDE) mes "found craft entry: " + .@entry; + if (debug || $@GM_OVERRIDE) mes "knowledge value: " + .knowledge[.@entry]; + if (.@entry < 0) { + .success=false; + } else { + if (.scope == CRAFT_NPC || .knowledge[.@entry]) { + .@s=validatecraft(.@craft); + // Could not validate (not enough resources) + if (!.@s) { + mesc l("Not crafting - insufficient materials!"), 1; + return false; + } + usecraft(.@craft); + .@it=getcraftcode(.@entry); + .@tm=limit(3600, getiteminfo(.@it, ITEMINFO_SELLPRICE) * getskilllv(TMW2_COOKING), 86400); + rentitem(.@it, .@tm); // From 1 hour to 1 day + // getskilllv(TMW2_COOKING) → and in theory, we can apply options + .success=true; + } else { + .success=false; + } + } + deletecraft .@craft; + setskin ""; + return .success; +} + +/* +Alchemy can rely in cross-building +Where a weaker potion is base for a stronger one +Standard Duration = 2 minutes ~ 5 minutes + +Reagents: + Water + ...Eggs? + ...Milk? + Nymph Poison + Death Potion + Manapple + +Products: + Tea (Chamomile, Spearmint, Oolong, Jasmine, Yerba Mate?) + → Argaes Water + «Herbal Reagent» +OK Coffee (Shadow Herb + Tonori Water) +OK Piberries Infusion (Piberries + Curshroom) +OK Atropos Mixture (Lachesis Brew + Clotho Liquor) +OK Death Potion (Dragonfruit + Nightshade Tea) +OK Smoke Grenade (Cactus pot + Coal) +OK Grenade (Cactus pot + Sulfur Powder) +OK Scented Grenade (Cactus pot + Moss) +OK Haste Potion (Plushshroom) +OK Strength Potion (Chagashroom) + Return Potion (Hurnscald Recipe => Ocean Croc Claw + Hard Spike? Grass Seeds?) +OK Status Reset (Curshroom + Mana Piou Feather) +OK Homun Stat Reset (Curshroom + Manapple) +OK Move Speed (Gem Powder + Fluor Powder) +OK Precision (Piberries + Mt. Snake Egg) +OK Dodge Potion (Piberries + Snake Egg) +OK Luck, Dex, Int, Vit, Agi (Gems + Tea) +OK Sacred Life (Golden Apple + Elixir of Life) +OK Sacred Mana (Golden Apple + Celestia Tea) +OK Sacred Revival (Sacred Life + Sacred Mana) +OK Broken Warp Crystal? (Wurtizite + Black Mamba Skin) +OK Magic Apple? (Divine Apple + Manapple? Death Potion? Sacred Life/Revival?) +OK Purification Potion (Nymph Poison + Sacred Life) +OK Iced Bottle (Tonori W. + Argaes W.) +OK Insurance Contract (» Insurance?) (Quill + Reed Bundle) +OK Insurance (Quill + Death Potion) + Mysterious Fruit? (Legendary) + +For all Scrolls: Quill + ? (depends on scroll itself) + » Summon Scrolls (Based on mob parts, 1× mob?) + → alignment_cansummon() + SummonMagic() or summon() directly + → Criteria between weak/strong version is alignment + → When aligned, scrolls always summon strongest ver + → Level must be equal or superior to strongest, tho + » Maggot/Giant Maggot: Bug Leg (Lv 40) + » CaveMaggot: Maggot Slime + » Green Dragon/Nightmare: Dragon Scales (Lv 105) + » Wolvern: Wolvern Pelt + » Moggun/Yeti: Frozen Yeti Tear (Lv 60) + » Terranite/T.Prot.: Terranite Ore (Lv 90) + » Magnus Heal (Lifestone) + » Area Provoke? → Scent grenade? + » Guild Skills? +OK » ScrollAngelLightA ( + ) +OK » ScrollBattlePlansA ( + ) +OK » ScrollDefenseBlessA ( + ) +OK » ScrollCriticalFortuneA ( + ) + → TODO: Kyrie Eleison (Absolute Shield) + → With self-stun, makes you a temporary wall? + → Maybe a item of Quill + LoF Coin for guild skills? (LoF Quill) + + // Skills for Aegis Shield, all beyond maximum level + // Slimes, Snakes, Fairies, Darth Duck, Mr. Prickel + // PoisonS.Mushroom + // TODO: Lizards, (Black)Scorpions, Moonshroom, Black Mamba, Centaur + skill TMW2_HALHISS, 10; + skill TMW2_KALSPIKE, 9; + skill TMW2_LIMERIZER, 10; + skill TMW2_FAIRYKINGDOM, 9; + skill TMW2_DUCKY, 10; + skill TMW2_FAIRYEMPIRE, 10; + +*/ + diff --git a/npc/craft/price.txt b/npc/craft/price.txt index ba40f95e8..7cc755029 100644 --- a/npc/craft/price.txt +++ b/npc/craft/price.txt @@ -96,6 +96,19 @@ function script fix_cPrice { // TODO: Scrolls? Reagents? // And reagents should happen before potions + // Fix cooked food prices + _fix_cPrice(PepperoniPizza, 9999); + _fix_cPrice(CaramelApple, 9999); + _fix_cPrice(CarpSandwich, 9999); + _fix_cPrice(ShellSandwich, 9999); + _fix_cPrice(ChickenSandwich, 9999); + _fix_cPrice(Sushi, 9999); + _fix_cPrice(SteakAndEggs, 9999); + _fix_cPrice(FruitSalad, 9999); + _fix_cPrice(PoisonedDish, 9999); + _fix_cPrice(ZombieNachos, 9999); + _fix_cPrice(Pancake, 9999); + // And weapons _fix_cPrice(WoodenSword); _fix_cPrice(BugSlayer); diff --git a/npc/craft/recipes.txt b/npc/craft/recipes.txt index 423bca93b..3d819e654 100644 --- a/npc/craft/recipes.txt +++ b/npc/craft/recipes.txt @@ -107,11 +107,22 @@ function readCooking { @scope$="COOKING"; mesc l("Eating is a necessity, but cooking is an art."); + mesc l("NOTE: Cooked Food will expire some time after its cooked."), 1; 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); + showRecipe(PepperoniPizza, + CaramelApple, + CarpSandwich, + ShellSandwich, + ChickenSandwich, + Sushi, + SteakAndEggs, + FruitSalad, + PoisonedDish, + ZombieNachos, + Pancake); next; @scope$=""; return; diff --git a/npc/functions/estate2.txt b/npc/functions/estate2.txt index 99100f2f8..3899a560d 100644 --- a/npc/functions/estate2.txt +++ b/npc/functions/estate2.txt @@ -273,6 +273,23 @@ function script realestate_cauldron { return; } + + +// Stove Mobilia +// realestate_cauldron ( ) +function script realestate_stove { + do { + mesc l("What will you brew today?"); + if (CookingSystem(CRAFT_PLAYER)) + mesc l("Success!"), 3; + else + mesc l("That didn't work!"), 1; + next; + mesc l("Try again?"); + } while (askyesno() == ASK_YES); + return; +} + //////////////////////////////////////////////////////////////////////////// // TODO: NPCs toogle on/off controller? @@ -324,3 +341,19 @@ OnInit: 009-7,34,25,0 duplicate(Piano#RES_0128) Piano#RES_0097 NPC_NO_SPRITE +//////////////////////////////////////////////////////////////////////////// +012-8,23,24,0 script Stove#RES_0128 NPC_STOVE,{ + realestate_stove(); + close; + +OnInit: + .distance=3; + end; +} + +017-7,23,24,0 duplicate(Stove#RES_0128) Stove#RES_0177 NPC_NO_SPRITE +017-8,23,24,0 duplicate(Stove#RES_0128) Stove#RES_0178 NPC_NO_SPRITE +009-6,23,24,0 duplicate(Stove#RES_0128) Stove#RES_0096 NPC_NO_SPRITE +009-7,23,24,0 duplicate(Stove#RES_0128) Stove#RES_0097 NPC_NO_SPRITE + + diff --git a/npc/items/cooking.txt b/npc/items/cooking.txt new file mode 100644 index 000000000..70de9a8e0 --- /dev/null +++ b/npc/items/cooking.txt @@ -0,0 +1,15 @@ +// TMW2 scripts. +// Authors: +// Jesusalva +// Description: +// Cooking inner functions + +// item_consumption(item_id) - consumes the item after it is removed +function script item_consumption { + sleep2(15); // To avoid crashes, but too quick for user reaction + .@it=getarg(0); + if (countitem(.@it)) + delitem .@it, 1; + return; +} + diff --git a/npc/items/inc_sc_bonus.txt b/npc/items/inc_sc_bonus.txt index 8e6b6e5be..b0680b680 100644 --- a/npc/items/inc_sc_bonus.txt +++ b/npc/items/inc_sc_bonus.txt @@ -3,11 +3,11 @@ // Jesusalva // Description: // Applies effects for INC_* (STR doesn't exist) -// Valid values: INCAGI INCVIT INCINT INCDEX INCLUK INCHIT INCFLEE SC_FURY +// Valid values: INCAGI INCVIT INCINT INCDEX INCLUK INCHIT INCFLEE // Doesn't works: SC_STRUP // Works if .@min == .@max: INCMHP INCMHPRATE INCMSP INCMSPRATE /// Untested Values: WALKSPEED (reverse logic) INVINCIBLE (broken) -// PS. SC_FURY causes crit rate to increase +// PS. SC_CRITICALPERCENT (Crit) SC_FOOD_CRITICALSUCCESSVALUE (Crit) SC_STRIKING (Crit , ATK) // // Variables: // .@delay Second of buffing diff --git a/npc/magic/transmigration.txt b/npc/magic/transmigration.txt index 838fa718c..77c3e8114 100644 --- a/npc/magic/transmigration.txt +++ b/npc/magic/transmigration.txt @@ -80,6 +80,7 @@ OnCall: l("Black Mamba Tongue -> Mountain Snake Tongue"), MountainSnakeTongue, l("Mountain Snake Tongue -> Snake Tongue"), SnakeTongue, l("Snake Tongue -> Cave Snake Tongue"), CaveSnakeTongue, + l("5x Snake Tongues -> Tortuga Tongue"), TortugaTongue, l("Cancel"), 0; break; case RedScorpionStinger: @@ -216,6 +217,12 @@ OnCall: end; } break; + case TortugaTongue: + if (!transcheck(SnakeTongue, 5)) { + dispbottom l("Not enough items!"); + end; + } + break; // Scorpion Stinger Chain case RedScorpionStinger: if (!transcheck(BlackScorpionStinger, 1)) { diff --git a/npc/scripts.conf b/npc/scripts.conf index 5f8bc1cab..204d22a09 100644 --- a/npc/scripts.conf +++ b/npc/scripts.conf @@ -81,6 +81,7 @@ "npc/items/alcohol.txt", "npc/items/arcmage.txt", "npc/items/books.txt", +"npc/items/cooking.txt", "npc/items/croconut.txt", "npc/items/emptybox.txt", "npc/items/grenade.txt", @@ -95,6 +96,7 @@ // Crafting System "npc/craft/options.txt", "npc/craft/alchemy.txt", +"npc/craft/cooking.txt", "npc/craft/smith.txt", "npc/craft/tweak.txt", "npc/craft/recipes.txt", |