diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
commit | a7c45a192268da2601cef47a4cdba987ae2327ca (patch) | |
tree | c5fb5b97db109fe7106496dd96498c475881046b /npc/032-1 | |
download | serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2 serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip |
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/032-1')
-rw-r--r-- | npc/032-1/_import.txt | 5 | ||||
-rw-r--r-- | npc/032-1/_mobs.txt | 11 | ||||
-rw-r--r-- | npc/032-1/_warps.txt | 8 | ||||
-rw-r--r-- | npc/032-1/episode.txt | 612 |
4 files changed, 636 insertions, 0 deletions
diff --git a/npc/032-1/_import.txt b/npc/032-1/_import.txt new file mode 100644 index 0000000..35ba4a6 --- /dev/null +++ b/npc/032-1/_import.txt @@ -0,0 +1,5 @@ +// Map 032-1: Past Tulimshar +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/032-1/_mobs.txt", +"npc/032-1/_warps.txt", +"npc/032-1/episode.txt", diff --git a/npc/032-1/_mobs.txt b/npc/032-1/_mobs.txt new file mode 100644 index 0000000..b297b35 --- /dev/null +++ b/npc/032-1/_mobs.txt @@ -0,0 +1,11 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 032-1: Past Tulimshar mobs +032-1,107,88,69,78 monster Duck 1029,12,30000,20000 +032-1,84,52,19,37 monster Croc 1006,5,35000,90000 +032-1,44,171,2,4 monster Crocotree 1010,2,5000,150000 +032-1,104,119,22,41 monster Little Blub 1007,7,35000,150000 +032-1,0,0,0,0 monster Maggot 1030,65,35000,450000 +032-1,104,200,63,36 monster Giant Maggot 1031,4,30000,20000 +032-1,143,214,37,29 monster Red Scorpion 1072,11,35000,120000 +032-1,0,0,0,0 monster Desert Bandit 1124,12,85000,50000 +032-1,0,0,0,0 monster Little Red Slime 1234,8,5000,2000 diff --git a/npc/032-1/_warps.txt b/npc/032-1/_warps.txt new file mode 100644 index 0000000..d7e2cb9 --- /dev/null +++ b/npc/032-1/_warps.txt @@ -0,0 +1,8 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 032-1: Past Tulimshar warps +032-1,53,108,0 warp #032-1_53_108 0,0,032-2,40,21 +032-1,53,126,0 script #032-1_53_126 NPC_HIDDEN,1,0,{ + end; +OnTouch: + slide 59,127; end; +} diff --git a/npc/032-1/episode.txt b/npc/032-1/episode.txt new file mode 100644 index 0000000..98a1503 --- /dev/null +++ b/npc/032-1/episode.txt @@ -0,0 +1,612 @@ +// TMW2 scripts. +// Authors: +// Jesusalva +// Description: +// Part of the Doctor's Quest. + +// Elli is capable to use magic without a mana stone, which puts her on the same +// level as the Moubootaur and the Mana Source. +032-1,58,129,0 script Elli NPC_ELLI,{ + .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99); + .@x = getq3(LoFQuest_EPISODE); + .@banu_prize = (.@x & 8); + .@eurni_info = (.@x & 16); + .@razor_info = (.@x & 32); + .@ellis_info = (.@x & 64); + if (!.@q && getq3(LoFQuest_EPISODE)) { + mesn; + mesq l("Hi. Do you need something?"); + next; + select + l("No, nothing. Sorry."), + l("I need to enter."); + mes ""; + if (@menu == 1) { + closeclientdialog; + close; + } + if (!.@ellis_info) { + mesn; + mesq l("You're stupid. Leave."); + close; + } + if (!.@razor_info) { + mesn; + mesq l("You don't need to talk with any researcher inside, so why bother? Leave!"); + close; + } + if (!.@banu_prize) { + mesn; + mesq l("And who would you be? Another bandit? Leave!"); + close; + } + if (!.@eurni_info) { + mesn; + mesq l("Why? You are most definitely at the wrong place. Leave!"); + close; + } + mesn; + mesq l("Eh... Sure, why not. What could go wrong, after all."); + setq2 LoFQuest_EPISODE, 1; + setq3 LoFQuest_EPISODE, 0; + close; + } + npctalk3 l("Hi."); + end; + +OnFin: + sc_start(SC_STUN, 20000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK); + setpcblock(PCBLOCK_SOFT, true); + npctalk3 l("I am Elli. One of the Originals."); + sleep2(4000); + npctalk3 l("The supreme guardian of the \"Talpan\" creatures, such as you."); + sleep2(4000); + npctalk3 l("From the time you come from, the Moubootaur has escaped its chains."); + sleep2(4000); + npctalk3 l("The Mana Source, supreme guardian of the world itself, has already took providences."); + sleep2(4000); + npctalk3 l("The Moubootaur is evil. Defeat him and protect the world. Now..."); + sleep2(4000); + npctalk3 l("Return to your time!"); + setpcblock(PCBLOCK_SOFT, false); + sc_end SC_STUN; + sleep2(1500); + warp "017-3", 72, 69; + // Nothing else needs to be done, quest was closed earlier + // So we just fix your bank account + BankVault += #MerchantBank; + #MerchantBank = 0; + end; + +OnInit: + .distance=5; + end; +} + +032-1,59,126,0 script #InnerEP NPC_HIDDEN,0,0,{ + end; +OnTouch: + .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99); + if (getq(LoFQuest_EPISODE) > 15 || .@q) + slide 52, 127; + else + dispbottom l("This door is locked."); + end; +} + +032-1,68,54,0 script Adrian NPC_PLAYER,{ + .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99); + if (.@q) { + npctalk3 l("Hi. Are you here to get luggage?"); + } else { + mesn; + mesq l("Hi. Are you here to get luggage?"); + next; + select + l("No, sorry."), + l("The Red Queen's Party?"); + mes ""; + if (@menu == 2) { + mesn; + mesq l("Is that someone's luggage?"); + next; + mesn; + mesq l("No, seriously, you should do these questions to Elli. She is the smartest girl I know, close to the Academy."); + setq3 LoFQuest_EPISODE, getq3(LoFQuest_EPISODE) | 64; + next; + } + closeclientdialog; + } + end; + +OnInit: + .@npcId = getnpcid(.name$); + setunitdata(.@npcId, UDT_HEADTOP, SailorHat); + setunitdata(.@npcId, UDT_HEADMIDDLE, SilkRobe); + //setunitdata(.@npcId, UDT_HEADBOTTOM, LeatherTrousers); // TODO + setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins); + setunitdata(.@npcId, UDT_HAIRSTYLE, 21); + setunitdata(.@npcId, UDT_HAIRCOLOR, 11); + + .sex = G_MALE; + .distance=5; + end; +} + +032-1,45,36,0 script Marikel NPC_PLAYER,{ + .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99); + if (.@q) { + npctalk3 l("Hi. Working on the docks can be hard, but I'm glad I at least get to eat!"); + } else { + mesn; + mesq l("Hi. Working on the docks can be hard, but I'm glad I at least get to eat!"); + do + { + next; + select + l("Cool, thanks."), + l("Why is it hard?"), + l("The wage is high?"), + l("Something to eat?"), + l("The Queen's Party?"); + mes ""; + switch (@menu) { + case 2: + mesn; + mesq l("Because the council has some crazy project which requires me to move crates all the time!"); + next; + mesn; + mesq l("Civilian traffic keeps declining but they keep bringing more crates back and forth! Crates filled with rubble!"); + next; + mesn; + mesq l("I miss the Red Queen, times were easier when she was around."); + break; + case 3: + mesn; + mesq l("Absolutely not, but not may job offers nowadays."); + break; + case 4: + mesn; + mesq l("The crops have failed again but the government keeps wasting money on research, for what purposes, as if I would know."); + next; + mesn; + mesq l("Importing food from Hurnscald is expensive, local food is expensive, if you don't have a job you're a dead person. Worse if you need medical aid."); + break; + case 5: + mesn; + mesq l("I heard they promised to revive the Red Queen, no idea how and don't care, they don't have money anyway."); + break; + } + } while (@menu != 1); + closeclientdialog; + } + end; + +OnInit: + .@npcId = getnpcid(.name$); + setunitdata(.@npcId, UDT_HEADTOP, SailorHat); + setunitdata(.@npcId, UDT_HEADMIDDLE, SailorShirt); + setunitdata(.@npcId, UDT_HEADBOTTOM, LeatherTrousers); + setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins); + setunitdata(.@npcId, UDT_HAIRSTYLE, 21); + setunitdata(.@npcId, UDT_HAIRCOLOR, 11); + + .sex = G_MALE; + .distance=5; + end; +} + +032-1,75,46,0 script Joelin NPC_FEMALE,{ + .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99); + if (.@q) { + npctalk3 l("Hi. My ship is about to set sail, we'll try to find somewhere better to live than this ruined place!"); + } else { + mesn; + mesq l("Hi. My ship is about to set sail, we'll try to find somewhere better to live than this ruined place!"); + do + { + next; + select + l("Cool, thanks."), + l("Somewhere better to live?"), + l("Ruined place?"), + l("The Queen's Party?"); + mes ""; + switch (@menu) { + case 2: + mesn; + mesq l("Yes! We'll sail west, and find legendary lands!"); + next; + mesn; + mesq l("And if I end back here, I'll prove the planet is round! This is the perfect plan! %s GP to ride with me TO GLORY!", fnum(3000)); + next; + mesn strcharinfo(0); + if (Zeny < 3000) + mesq l("I don't have that much money, sorry."); + else + mesq l("Uh, maybe another time."); + next; + mesn; + mesq l("Your loss!"); + break; + case 3: + mesn; + mesq l("Where are you from, don't you see all the bandits? Seriously, with these ridiculous plans, the whole continent doomed."); + next; + mesn; + // Be careful with what you wish, Joelin... + mesq l("Leave sir Benjamin in charge for a few more years, and nothing will be left of these towns. I hope this council perishes in a fire!"); + break; + case 4: + mesn; + mesq l("Leave me alone."); + break; + } + } while (@menu != 1); + closeclientdialog; + } + end; + +OnInit: + .@npcId = getnpcid(.name$); + setunitdata(.@npcId, UDT_HEADTOP, CaptainCap); + setunitdata(.@npcId, UDT_HEADMIDDLE, SilkRobe); + //setunitdata(.@npcId, UDT_HEADBOTTOM, LeatherTrousers); // TODO + setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins); + setunitdata(.@npcId, UDT_HAIRSTYLE, 21); + setunitdata(.@npcId, UDT_HAIRCOLOR, 11); + + .sex = G_FEMALE; + .distance=5; + end; +} + +032-1,77,46,0 script Harper NPC_PLAYER,{ + .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99); + npctalk3 l("Hi. My captain believe the world is round, can you believe that?"); + end; + +OnInit: + .@npcId = getnpcid(.name$); + setunitdata(.@npcId, UDT_HEADTOP, SailorHat); + setunitdata(.@npcId, UDT_HEADMIDDLE, SailorShirt); + setunitdata(.@npcId, UDT_HEADBOTTOM, LeatherTrousers); + setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins); + setunitdata(.@npcId, UDT_HAIRSTYLE, 21); + setunitdata(.@npcId, UDT_HAIRCOLOR, 11); + + .sex = G_MALE; + .distance=5; + end; +} + +032-1,112,142,0 script Banu NPC_GLASS_OLD_LADY,{ + .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99); + if (.@q) { + npctalk3 l("Hi. My back hurts!"); + } else { + // Quest can be reset, so no major rewards, not even experience + .@x = getq3(LoFQuest_EPISODE); + .@met_banu = (.@x & 1); + .@ask_apple = (.@x & 2); + .@got_apple = (.@x & 4); + .@banu_priz = (.@x & 8); + if (!.@got_apple) { + mesn; + mesq l("You won't have any of my vegetables, you scoundrel! Get off my yard!"); + setq3 LoFQuest_EPISODE, getq3(LoFQuest_EPISODE) | 1; + close; + } else if (!.@banu_priz) { + mesn; + mesq l("Oh, thanks, darling; I was starving. Do you need anything?"); + next; + select + l("I want the apples back."), + l("I'm after the Queen's Party."), + l("I want a knife and a bottle of water!"); + mes ""; + setq3 LoFQuest_EPISODE, getq3(LoFQuest_EPISODE) | 8; + switch (@menu) { + case 1: + getitem RedApple, 12; + mesn; + mesq l("Sure, here you go!"); + close; + case 2: + getitem SharpKnife, 1; + getitem ChickenLeg, 1; + mesn; + mesq l("They did nothing good! They claim the Platinum Queen was a savior, all lies!"); + next; + mesn; + mesq l("We sure flourished at her early years, but the late years were a disaster! Crops were failing way before her death!"); + next; + mesn; + mesq l("Don't believe anything they tell you! Here, take this, so you can defend yourself. And some food, now leave."); + close; + case 3: + getitem BottleOfTonoriWater, 1; + getitem SmallKnife, 1; + mesn; + mesq l("Sure, here you go!"); + close; + } + close; + } else { + npctalk3 l("Hi. Thanks for the pie."); + } + } + end; + +OnInit: + .distance=5; + end; +} + +032-1,71,195,0 script Joanna NPC_JOANA,{ + .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99); + if (.@q) { + npctalk3 l("Hi. Come to the bakery!"); + } else { + .@x = getq3(LoFQuest_EPISODE); + .@met_banu = (.@x & 1); + .@ask_apple = (.@x & 2); + .@got_apple = (.@x & 4); + .@banu_priz = (.@x & 8); + if (.@met_banu && !.@ask_apple) { + mesn; + mesq l("Hey, you, stranger. I promised Banu a pie, but she is yet to give me the apples."); + next; + mesn; + mesq l("Can you fetch with her? 12 %s.", getitemlink(RedApple)); + next; + select + l("Sure!"), + l("No, sorry."); + mes ""; + if (@menu == 1) setq3 LoFQuest_EPISODE, .@x | 2; + close; + } else if (.@ask_apple && !.@got_apple) { + mesn; + mesq l("Did you brought me 12 %s?", getitemlink(RedApple)); + if (countitem(RedApple) < 12) close; + next; + select + l("Sure!"), + l("No, sorry."); + mes ""; + if (@menu == 2) + close; + delitem RedApple, 12; + setq3 LoFQuest_EPISODE, .@x | 4; + mesn; + mesq l("Thank you, tell her to come to the bakery at... Actually, nevermind. Just give her this note."); + close; + } else { + mesn; + mesq l("Come to the bakery!"); + close; + } + } + end; + +OnInit: + .distance=5; + end; +} + +032-1,151,201,0 script Eurni NPC_EURNI,{ + .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99); + if (.@q) { + npctalk3 l("Hi. I have questionable items of questionable origins for you."); + openshop; + } else { + mesn; + mesq l("Hi. I have questionable items of questionable origins for you."); + next; + select + l("Trade"), + l("The Queen's Party?"), + l("Not now."); + mes ""; + if (@menu == 1) { + openshop; + closeclientdialog; + } + else if (@menu == 2) { + mesn; + mesq l("I always do shady deals. *cough cough* %s GP.", fnum(500)); + next; + if (askyesno() == ASK_YES && Zeny >= 500) { + Zeny-=500; + setq3 LoFQuest_EPISODE, getq3(LoFQuest_EPISODE) | 16; + mesn; + mesq l("They are hidden in the crypts, inside a cave."); + next; + mesn; + mesq l("This conversation never happened."); + } + } + close; + } + end; + +OnInit: + sleep(SHOPWAIT); + sellitem Bread, getiteminfo(Bread, ITEMINFO_BUYPRICE)*16/10; + sellitem Cheese, getiteminfo(Cheese, ITEMINFO_BUYPRICE)*16/10; + sellitem ChamomileTea, getiteminfo(ChamomileTea, ITEMINFO_BUYPRICE)*18/10; + sellitem BugLeg, getiteminfo(BugLeg, ITEMINFO_BUYPRICE)*192/10; + sellitem LazuriteShard, 700; + sellitem MaggotSlime, getiteminfo(MaggotSlime, ITEMINFO_BUYPRICE)*192/10; + sellitem Coal, getiteminfo(Coal, ITEMINFO_BUYPRICE)*132/10; + sellitem Lockpicks, 10000; + sellitem IcedBottle, getiteminfo(IcedBottle, ITEMINFO_BUYPRICE)*32/10; + sellitem Wurtzite, getiteminfo(Wurtzite, ITEMINFO_BUYPRICE)*164/10; + sellitem CopperArmor; // Fair price! + sellitem StrangeCoin, 1000000; + sellitem WumpusEgg, 99999999; + + .sex = G_MALE; + .distance = 5; + end; + +// Pay your taxes! +OnBuyItem: + end; + +OnSellItem: + end; +} + +032-1,140,213,0 script Weellos NPC_LEGACY_GUARD_A,{ + .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99); + if (!.@q) { + mesn; + mesq l("Hi. This is a very historic building - the former residence of the red queen no less!"); + next; + select + l("Nice! I love history!"), + l("I'm looking for the Queen's Party."), + l("I hate the Red Queen."); + mes ""; + switch (@menu) { + case 1: + mesn; + mesq l("Yes! History is the best!"); + break; + case 2: + mesn; + mesq l("You should talk to the Black Razor. He was a researcher, so try the academy."); + setq3 LoFQuest_EPISODE, getq3(LoFQuest_EPISODE) | 32; + break; + case 3: + mesn; + mesq l("Most do. I'm not sure if all that hatred is justified, but who cares. She is dead, even if her ghost is back."); + break; + } + close; + } else { + npctalk3 l("Hi. This is a very historic building - the former residence of the red queen no less!"); + } + end; + +OnInit: + .distance=5; + end; +} + +032-1,65,223,0 script Townhall Guard#EP NPC_LEGACY_GUARD_D,{ + mesn; + mesq l("Sorry, but no entry to Townhall under orders of the council head, Benjamin L."); + close; + +OnInit: + .distance=5; + end; +} + +032-1,138,126,0 script Market Guard#EP NPC_LEGACY_GUARD_C,{ + mesn; + mesq l("With the wages I receive, you can use this market at your own risk."); + close; + +OnInit: + .distance=5; + end; +} + +032-1,40,146,0 script Academy Guard#EP NPC_LEGACY_GUARD_B,{ + mesn; + mesq l("I'm actually paid by the Academy, or there would be no security here."); + close; + +OnInit: + .distance=5; + end; +} + +032-1,152,183,0 script Lt. Longburn#EP NPC_LEGACY_LIEUTENANT,{ + mesn; + mesq l("If you have trouble with guards, just bribe them and they'll leave you alone. I asked a few to be fired three years ago, but the council haven't reviewed it yet."); + close; + +OnInit: + .distance=5; + end; +} + +032-1,138,152,0 script Begger#EP NPC_SCAMMER,{ + mesn; + mesq l("I was kicked out of home for not paying rent. But I had no choice, it was either to eat or to have a roof..."); + close; + +OnInit: + .distance=5; + end; +} + +032-1,114,194,0 script Imec#EP NPC_LOF_TRAVMERC,{ + .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99); + .@x = getq3(LoFQuest_EPISODE); + .@met_banu = (.@x & 1); + .@ask_apple = (.@x & 2); + .@got_apple = (.@x & 4); + .@banu_priz = (.@x & 8); + .@warez = (!.@q && (.@ask_apple && !.@got_apple)); + .@apple = 12-countitem(RedApple); + mesn; + mesq l("Warez?"); + next; + select + l("No but thanks."), + l("No, loans."), + rif(.@warez && .@apple > 0, l("Yes, I need %d apples.", .@apple)); + mes ""; + switch (@menu) { + case 1: + closeclientdialog; break; + case 2: + mesn; + mesc l("To pay in the specified date, we'll charge you %s over the loaned amount. So, how much?", "25%"); + next; + menuint + l("I'm sure the Doctor has a trick... No loans, thanks."), 0, + rif(#MerchantBank > 1250, l("1,000 GP")), 1000, + rif(#MerchantBank > 3125, l("2,500 GP")), 2500, + rif(#MerchantBank > 6250, l("5,000 GP")), 5000, + rif(#MerchantBank > 12500, l("10,000 GP")), 10000, + rif(#MerchantBank > 62500, l("50,000 GP")), 50000, + rif(#MerchantBank > 312500, l("250,000 GP")), 250000; + mes ""; + #MerchantBank -= @menuret * 125 / 100; + Zeny += @menuret; + mesn; + mesq l("...As you wish."); + break; + case 3: + // Inflation: 400% + // Plus a discount for buying many at once + .@price = .@apple * getiteminfo(RedApple, ITEMINFO_BUYPRICE) * 4 + (120 - (.@apple*10)); + mesn; + mesq l("That'll be %s GP.", fnum(.@price)); + if (Zeny < .@price) break; + next; + if (askyesno() == ASK_NO) break; + Zeny -= .@price; + getitem RedApple, .@apple; + mesn; + mesq l("My pleasure."); + } + close; + +OnInit: + .distance=5; + end; +} +// NPC_OMAR NPC_KADIYA NPC_SASHA + +// Omatt (NPC_OMAR) swears to make a large donation to the Academy +// shall Kadiya ever be cured. He is a trader of rare gems. +// Reward for saving Kadiya with future's medicine is a Light Green Diamond. + |