From b8af2f4e579e2ac439c4bc00991e9f9e91796696 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Fri, 13 Jul 2018 00:36:46 -0300 Subject: Every city must have these base scripts, beside the Soul Menhir. LoF is no excpetion. --- npc/017-1/_import.txt | 1 + npc/017-1/misc.txt | 318 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 319 insertions(+) create mode 100644 npc/017-1/misc.txt (limited to 'npc/017-1') diff --git a/npc/017-1/_import.txt b/npc/017-1/_import.txt index 865a28863..aeb37394c 100644 --- a/npc/017-1/_import.txt +++ b/npc/017-1/_import.txt @@ -4,6 +4,7 @@ "npc/017-1/_warps.txt", "npc/017-1/guards.txt", "npc/017-1/mapflags.txt", +"npc/017-1/misc.txt", "npc/017-1/nowhere_man.txt", "npc/017-1/signs.txt", "npc/017-1/soul-menhir.txt", diff --git a/npc/017-1/misc.txt b/npc/017-1/misc.txt new file mode 100644 index 000000000..90cd712e7 --- /dev/null +++ b/npc/017-1/misc.txt @@ -0,0 +1,318 @@ +// TMW2/LoF scripts. +// Authors: +// Jesusalva +// Description: +// Essential scripts any city must have + +// Description: +// The Travelers travel around the world telling stories. +017-1,144,204,0 script Elen The Traveler NPC_F_COINKEEPER,{ + + mesn; + if (strcharinfo(0) == $MOST_HEROIC$) mesq l("Wow! Are you @@? Everyone, in every city, talks about you!", $MOST_HEROIC$); + if (strcharinfo(0) == $MOST_HEROIC$) next; + + mesq l("Hello. I am @@, and I am from a family of travellers. We travel though the whole world, looking for exotic goods.", .name$); + next; + mesq l("You can buy rare items with me, or I can tell you about different cities in our world."); + +L_Menu: + mes ""; + menu + l("I want to trade with you."), L_Trade, + l("Tell me about Tulimshar."), L_Tulim, + l("Tell me about Hurnscald."), L_Hurns, + l("Tell me about Nivalis."), L_Nival, + l("Tell me about Esperia."), L_Esper, + l("Tell me about Artis."), L_Artis, + l("Tell me about Frostia."), L_Frost, + l("Tell me about Halinarzo."), L_Halin, + l("Sorry, I'll pass."), L_Close; + +L_Tulim: + mes ""; + mesn; + mesq l("Tulimshar is the oldest human city, and its foundation is the year zero of our calendar."); + next; + mesq l("The city only flourished because Janett Platinum had the idea to build city walls surrounding this city."); + next; + mesq l("The desert climate means you'll find mostly maggots and scorpions. Their drops include cactus drinks, cake, knifes, black pearls, gold, and other common things."); + next; + mesq l("You can find for a good price desert equipment and some kind of dyes. You find all sort of crafters, artisans and warriors here."); + next; + goto L_Menu; + +L_Hurns: + mes ""; + mesn; + mesq l("Hurnscald was founded after Tulimshar, in more fertile lands. Their walls are not so sturdy as the ones of Tulimshar."); + next; + mesq l("Under the leadership of King Wusher, they were the first to accept immigrants from other races. You will find humans and non-humans there."); + next; + mesq l("The fertile climate is ideal for mushrooms. You can also find lots of wood."); + next; + mesq l("Their economy provide many edible items and potions."); + next; + goto L_Menu; + +L_Nival: + mes ""; + mesn; + mesq l("Nivalis was the last human settlement built during the First Era."); + next; + mesq l("It's cold, harsh climate makes difficult to live there. It was founded by people thrown away from Tulimshar and Hunrscald for political reasons."); + next; + mesq l("The cold climate is ideal for slimes, penguins, and other icy creatures. You can find lots of... ice, of course!"); + next; + mesq l("Some items are only produced in Nivalis. After all, it is hard to work properly with ice in a desert!"); + next; + goto L_Menu; + + +L_Esper: + mes ""; + mesn; + mesq l("Esperia is the human capital founded at the other continent."); + next; + mesq l("After the Great Famine which happened after the Red Queen death, it was founded by people who sailed away in look of new opportunities."); + next; + mesq l("It offers better living conditions than Tulimshar, and is bigger and more prosperous. Few monsters live there."); + next; + mesq l("However, taxes there are the highest. Living cost is high, and you should avoid buying things there."); + next; + goto L_Menu; + +L_Artis: + mes ""; + mesn; + mesq l("Artis is a city port founded after the Great Famine on the other continent."); + next; + mesq l("People say it is the second biggest city from the world."); + next; + mesq l("Different kind of monsters live near the city. For example, blubs. I have no idea of what are those."); + next; + mesq l("People usually dock there when travelling to the second continent. Nothing exceptional about economy."); + next; + goto L_Menu; + + +L_Frost: + mes ""; + mesn; + mesq l("Frostia is the only city known that was not founded by humans."); + next; + mesq l("They are strict with who is allowed inside, so you'll need either elf or ukar friends to pass."); + next; + mesq l("It is on a huge, icy mountain peak. Rumors about dragons and legendary items to be found."); + next; + mesq l("Some of finest elven craftmanship can be found there, like bows, for example."); + next; + goto L_Menu; + +L_Halin: + mes ""; + mesn; + mesq l("Halinarzo was founded to explore Mana Stones."); + next; + mesq l("You can find both huge swamps, as huge desertic areas near and on it."); + next; + mesq l("Lizards are the main monster found, and they steal gold from innocent bypassers."); + next; + mesq l("Without any mana stone left, and because the walls were not very strong, most of the city was destroyed."); + next; + mesq l("Unlike many other cities, if you want people in eternal need of items, there is a good place to look."); + next; + goto L_Menu; + + +L_Trade: + mesn; + mesq l("Use your @@ as currency!", getitemlink(StrangeCoin)); + next; + openshop "Aeros Trader"; + closedialog; + +L_Close: + close; + +OnInit: + .@npcId = getnpcid(0, .name$); + setunitdata(.@npcId, UDT_HEADTOP, NPCEyes); + setunitdata(.@npcId, UDT_HEADMIDDLE, UglyChristmasSweater); + setunitdata(.@npcId, UDT_HEADBOTTOM, JeansShorts); + setunitdata(.@npcId, UDT_WEAPON, CandorBoots); // Boots + setunitdata(.@npcId, UDT_HAIRSTYLE, 27); + setunitdata(.@npcId, UDT_HAIRCOLOR, 11); + npcsit; + + .sex = G_FEMALE; + .distance = 5; + end; +} + +// Description: +// Banker. +017-3,85,41,0 script Stalman NPC_LLOYD,{ + Banker(.name$, "Land Of Fire Village", 14000); + close; + +OnInit: + .sex = G_MALE; + .distance = 5; + end; +} + +// Description: +// Barber. + +017-1,147,176,0 script Milocat NPC_ELVEN_FEMALE_ARMOR_SHOP,{ + function setRace { + clear; + setnpcdialogtitle l("Debug - Modify Race"); + mes l("Race") + ": " + $@allraces$[Class]; + next; + mes l("Please select the desired race."); + select("Human:Ukar:Redy:Elf:Orc:Raijin:Tritan"); + jobchange max(0, @menu-1); + return; + } + + + mesn; + mesq l("Hi! Do you want a hair cut?"); + + do + { + select + l("What is my current hairstyle and hair color?"), + l("I'd like to get a different style."), + l("Can you do something with my color?"), + rif(is_staff(), l("I am a GM, and I want to change my Race!")), + l("I'm fine for now, thank you."); + + switch (@menu) + { + case 1: + BarberSayStyle 3; + break; + case 2: + BarberChangeStyle; + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Enjoy your new style."); + l("Anything else?"); + break; + case 3: + BarberChangeColor; + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("I hope you like this color."); + l("Anything else?"); + break; + case 4: + setRace; + break; + case 5: + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Feel free to come visit me another time."); + + goodbye; + } + } while (1); + close; + + +OnInit: + .sex = G_FEMALE; + .distance = 5; + end; +} + + +// Description: +// Status Reset +017-1,39,138,0 script Bobby NPC_PLAYER,{ + + speech S_LAST_NEXT, + l("I am @@, an alchemist specialized in reset potions.", .name$); + +L_Menu: + .@plush_count = BaseLevel*210-(9*210); + // Lv 10: 210 GP + + select + l("Can you reset my stats please?"), + lg("You are weird, I have to go sorry."); + + switch (@menu) + { + case 1: + goto L_ResetStats; + case 2: + goto L_Quit; + } + +L_ResetStats: + mesn; + mesq l("Status point reset can't be undone. Do you really want this?"); + +L_ConfirmReset: + select + lg("Yes, I am sure."), + lg("I need to think about it..."); + + switch (@menu) + { + case 1: + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Let me just have a quick look at you. Hm... I will need @@ GP to reset your stats.", .@plush_count); + + select + rif(Zeny >= .@plush_count, l("Here, take as much as you need, I have plenty!")), + rif(Zeny > 0 && Zeny < .@plush_count, l("I don't have enough money...")), + rif(Zeny == 0, l("Oh no, I don't have any money on me right now.")), + l("I have to go, sorry."); + + if (@menu > 1) { + goto L_Quit; + } + + // TODO: I think there were functions to deal with GP + set Zeny, Zeny-.@plush_count; + + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Thank you."), + l("Now stand still... It should not take much time..."); + + .@wasSP = StatusPoint; + resetstatus; + if (StatusPoint == .@wasSP) { + speech S_LAST_NEXT, + l("It seems that you have no status points to reset!"), + l("But the money you brought was really awesome you know."), + l("Come back when you will really need me."); + } else { + speech S_LAST_NEXT, + l("Let's see... @@ of your status points have just been reset!", StatusPoint - .@wasSP), + l("Spend it wisely this time."), + l("But you are welcome to reset your stats again! I need the money."); + } + } + goto L_Quit; + +L_Quit: + closedialog; + goodbye; + close; + +OnInit: + .@npcId = getnpcid(0, .name$); + setunitdata(.@npcId, UDT_HEADTOP, ForestShroomHat); + setunitdata(.@npcId, UDT_HEADMIDDLE, SailorShirt); + setunitdata(.@npcId, UDT_HEADBOTTOM, BromenalPants); + setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins); // Boots + setunitdata(.@npcId, UDT_HAIRSTYLE, 8); + setunitdata(.@npcId, UDT_HAIRCOLOR, 12); + + .sex = G_MALE; + .distance = 5; + end; +} -- cgit v1.2.3-70-g09d2