diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/020-1/_import.txt | 1 | ||||
-rw-r--r-- | npc/020-1/misc.txt | 198 |
2 files changed, 199 insertions, 0 deletions
diff --git a/npc/020-1/_import.txt b/npc/020-1/_import.txt index 22f64f3d1..85be59016 100644 --- a/npc/020-1/_import.txt +++ b/npc/020-1/_import.txt @@ -2,5 +2,6 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/020-1/_mobs.txt", "npc/020-1/_warps.txt", +"npc/020-1/misc.txt", "npc/020-1/serge.txt", "npc/020-1/siege.txt", diff --git a/npc/020-1/misc.txt b/npc/020-1/misc.txt new file mode 100644 index 000000000..df5ce37e9 --- /dev/null +++ b/npc/020-1/misc.txt @@ -0,0 +1,198 @@ +// TMW2 scripts. +// Authors: +// Jesusalva +// Description: +// Essential scripts any city must have + +// Description: +// The Travelers travel around the world telling stories. +020-1,44,67,0 script Knox 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 Nivalis."), L_Nival, + l("Tell me about Frostia."), L_Frost, + l("Tell me about Thermin."), L_Therm, + 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_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_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_Therm: + mes ""; + mesn; + mesq l("Thermin is also known as the lost city. It was once founded to mine ores, and export to everyone."); + next; + mesq l("I think it was the Orcs and Raijins town. It was laid to waste by Yetis."); + next; + mesq l("Most Orcs become nomads and Raijins moved to Hurnscald, but they say Thermin might have been rebuilt somewhere else."); + next; + mesq l("On the ruins you may find free loot... And on the new town, you may find the sturdiest stuff of all."); + 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(.name$); + setunitdata(.@npcId, UDT_HEADTOP, NPCEyes); + setunitdata(.@npcId, UDT_HEADMIDDLE, UglyChristmasSweater); + setunitdata(.@npcId, UDT_HEADBOTTOM, JeansShorts); + setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); // Boots + setunitdata(.@npcId, UDT_HAIRSTYLE, 22); + setunitdata(.@npcId, UDT_HAIRCOLOR, 8); + npcsit; + + .sex = G_MALE; + .distance = 5; + end; +} + +// Description: +// Banker. +// LOCATION TODO +020-1,58,65,0 script Ben#NivBanker NPC_LLOYD,{ + Banker(.name$, "Nivalis", 10000); + close; + +OnInit: + .sex = G_MALE; + .distance = 5; + end; +} + +// Description: +// Barber. +// LOCATION TODO +020-1,55,65,0 script Camilot 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: +// Soul Menhir +020-1,57,63,0 script Soul Menhir#niv NPC_SOUL_SNOW,{ + @map$ = "020-1"; + setarray @Xs, 56, 57, 58, 56, 58, 56, 57, 58; + setarray @Ys, 62, 62, 62, 63, 63, 64, 64, 64; + @x = 0; + @y = 0; + callfunc "SoulMenhir"; + @map$ = ""; + cleararray @Xs[0], 0, getarraysize(@Xs); + cleararray @Ys[0], 0, getarraysize(@Ys); + @x = 0; + @y = 0; + close; +} |