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 /npc | |
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.
Diffstat (limited to 'npc')
-rw-r--r-- | npc/001-1/eventmaster.txt | 1 | ||||
-rw-r--r-- | npc/001-1/rewards.txt | 1 | ||||
-rw-r--r-- | npc/007-1/pylon.txt | 21 | ||||
-rw-r--r-- | npc/009-6/doorbell.txt | 1 | ||||
-rw-r--r-- | npc/009-6/utils.txt | 1 | ||||
-rw-r--r-- | npc/009-7/doorbell.txt | 1 | ||||
-rw-r--r-- | npc/009-7/utils.txt | 1 | ||||
-rw-r--r-- | npc/012-8/doorbell.txt | 1 | ||||
-rw-r--r-- | npc/012-8/utils.txt | 1 | ||||
-rw-r--r-- | npc/017-7/doorbell.txt | 1 | ||||
-rw-r--r-- | npc/017-7/utils.txt | 1 | ||||
-rw-r--r-- | npc/017-8/doorbell.txt | 1 | ||||
-rw-r--r-- | npc/017-8/utils.txt | 1 | ||||
-rw-r--r-- | npc/018-2/_import.txt | 1 | ||||
-rw-r--r-- | npc/018-2/wateranimation.txt | 22 | ||||
-rw-r--r-- | npc/024-14/doorbell.txt | 1 | ||||
-rw-r--r-- | npc/024-14/utils.txt | 11 | ||||
-rw-r--r-- | npc/025-1/ctrl.c | 2 | ||||
-rw-r--r-- | npc/029-8/_import.txt | 1 | ||||
-rw-r--r-- | npc/029-8/wateranimation.txt | 27 | ||||
-rw-r--r-- | npc/craft/cooking.txt | 132 | ||||
-rw-r--r-- | npc/craft/price.txt | 13 | ||||
-rw-r--r-- | npc/craft/recipes.txt | 13 | ||||
-rw-r--r-- | npc/functions/estate2.txt | 33 | ||||
-rw-r--r-- | npc/items/cooking.txt | 15 | ||||
-rw-r--r-- | npc/items/inc_sc_bonus.txt | 4 | ||||
-rw-r--r-- | npc/magic/transmigration.txt | 7 | ||||
-rw-r--r-- | npc/scripts.conf | 2 |
28 files changed, 312 insertions, 5 deletions
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", |