summaryrefslogtreecommitdiff
path: root/npc/012-1
diff options
context:
space:
mode:
Diffstat (limited to 'npc/012-1')
-rw-r--r--npc/012-1/_import.txt4
-rw-r--r--npc/012-1/dyrinthetraveler.txt105
-rw-r--r--npc/012-1/mapflags.txt2
-rw-r--r--npc/012-1/richard.txt154
-rw-r--r--npc/012-1/soul-menhir.txt20
5 files changed, 285 insertions, 0 deletions
diff --git a/npc/012-1/_import.txt b/npc/012-1/_import.txt
index e12153fc0..cbcb25def 100644
--- a/npc/012-1/_import.txt
+++ b/npc/012-1/_import.txt
@@ -3,4 +3,8 @@
"npc/012-1/_mobs.txt",
"npc/012-1/_warps.txt",
"npc/012-1/andrei.txt",
+"npc/012-1/dyrinthetraveler.txt",
+"npc/012-1/mapflags.txt",
+"npc/012-1/richard.txt",
+"npc/012-1/soul-menhir.txt",
"npc/012-1/statue.txt",
diff --git a/npc/012-1/dyrinthetraveler.txt b/npc/012-1/dyrinthetraveler.txt
new file mode 100644
index 000000000..ebacbfecd
--- /dev/null
+++ b/npc/012-1/dyrinthetraveler.txt
@@ -0,0 +1,105 @@
+// TMW2 Script
+// Author:
+// Jesusalva
+// Description:
+// The Travelers travel around the world telling stories.
+
+012-1,119,52,0 script Dyrin The Traveler NPC_M_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 Halinarzo."), L_Halin,
+ l("Tell me about Hurnscald."), L_Hurns,
+ l("Tell me about Nivalis."), L_Nival,
+ l("Tell me about Artis."), L_Artis,
+ l("Sorry, I'll pass."), L_Close;
+
+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_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_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_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_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); // All travelers wear this stuff
+ setunitdata(.@npcId, UDT_HEADBOTTOM, TulimsharGuardBoots);
+ setunitdata(.@npcId, UDT_WEAPON, SilkPants);
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 13);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 12);
+ npcsit;
+
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+}
+
diff --git a/npc/012-1/mapflags.txt b/npc/012-1/mapflags.txt
new file mode 100644
index 000000000..a0f4719c5
--- /dev/null
+++ b/npc/012-1/mapflags.txt
@@ -0,0 +1,2 @@
+012-1 mapflag town
+012-1 mapflag nopenalty
diff --git a/npc/012-1/richard.txt b/npc/012-1/richard.txt
new file mode 100644
index 000000000..c71febd13
--- /dev/null
+++ b/npc/012-1/richard.txt
@@ -0,0 +1,154 @@
+// TMW-2 Script.
+// Author:
+// Saulc
+// Jesusalva
+
+012-1,65,64,0 script Richard NPC_LLOYD,{
+
+// Evol scripts.
+// Authors:
+// gumi
+// Reid
+// Description:
+// banker NPC.
+
+
+ function explain_guild {
+ speech S_LAST_NEXT,
+ l("The guild is in charge of the commerce regularization throughout Hurnscald and its surroundings."),
+ l("With the help of the town hall we organize some auction and we help local merchants to launch their businesses."),
+ l("We also feature some services like a storage and a bank for members."),
+ l("Registration is open to everybody, but newcomers need to pay a fee for all of the paperwork.");
+
+ narrator S_FIRST_BLANK_LINE,
+ l("The bank and item storage is shared between all characters within a same account."),
+ l("With it, you can safely move items and funds between your characters."),
+ l("To move between characters that are on different accounts, you have to use the Trade function.");
+ return;
+ }
+
+ function first_visit {
+ speech S_LAST_NEXT,
+ l("Welcome!"),
+ l("My name is @@, I am a representative of the Merchant Guild on Hurnscald.", .name$);
+
+ select(l("My name is @@...", strcharinfo(0)));
+
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("\"@@\", I like this name!", strcharinfo(0)),
+ l("Oh, wait a second...");
+ narrator S_LAST_NEXT,
+ l("@@ is searching something in his book.", .name$);
+ speech S_LAST_NEXT,
+ l("I see."),
+ lg("You are new around here, right?");
+
+ if (select(l("How do you know?"), l("Yes I am.")) == 1)
+ {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Oh, it is simple. I have on this book the names of every citizen of Hurnscald and its surroundings."),
+ l("And I have no mention of a so called \"@@\" on it!", strcharinfo(0));
+ }
+ else
+ {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("I knew it!");
+ }
+
+ speech S_LAST_NEXT,
+ l("Let me explain to you what the Merchant Guild is for.");
+
+ explain_guild;
+ next;
+
+ .@price = 12000;
+ speech S_LAST_NEXT,
+ l("The fee is of @@ GP. So, do you want to register?", .@price);
+
+ switch (select(l("Yes."),
+ l("I don't have the time now.")))
+ {
+ case 1:
+ if (Zeny < .@price)
+ {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("You do not seem to have enough money, come back later!");
+ }
+ else
+ {
+ Zeny = Zeny - .@price;
+ setq ArtisQuests_Lloyd, 1;
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Perfect!"),
+ l("I wrote your name on the book, you are now free to use the storage and bank services.");
+ }
+ break;
+ case 2:
+ break;
+ }
+
+ return;
+ }
+
+
+ if (getq(ArtisQuests_Lloyd) == 0) {
+ first_visit;
+
+ closedialog;
+ goodbye;
+ close;
+ }
+
+ speech S_LAST_NEXT,
+ l("Welcome to the Merchant Guild of Hurnscald."),
+ l("What do you want today?");
+
+ do
+ {
+
+ select
+ l("I would like to store some items."),
+ l("I would like to perform money transactions."),
+ l("What is this guild for?"),
+ l("Bye.");
+
+ switch (@menu)
+ {
+ case 1:
+ openstorage;
+ closedialog;
+ close;
+ break;
+ case 2:
+ MerchantGuild_Bank;
+ break;
+ case 3:
+ mes "";
+ explain_guild;
+ break;
+ }
+ if (@menu != 4)
+ {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT | S_NO_NPC_NAME,
+ l("Something else?");
+ }
+ } while (@menu != 4);
+
+ closedialog;
+ goodbye;
+ close;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 4;
+ end;
+
+OnPCLoginEvent:
+ checkclientversion;
+ if (#MerchantBank)
+ {
+ BankVault += max(0, #MerchantBank);
+ #MerchantBank = 0;
+ }
+ end;
+}
diff --git a/npc/012-1/soul-menhir.txt b/npc/012-1/soul-menhir.txt
new file mode 100644
index 000000000..790225a01
--- /dev/null
+++ b/npc/012-1/soul-menhir.txt
@@ -0,0 +1,20 @@
+// TMW2 scripts.
+// Author:
+// Jesusalva
+// Description:
+// Soul Menhir
+
+012-1,115,70,0 script Soul Menhir#hurns NPC_SOUL_NORMAL,{
+ @map$ = "012-1";
+ setarray @Xs, 52, 53, 54, 52, 54, 52, 54;
+ setarray @Ys, 39, 39, 39, 40, 40, 41, 41;
+ @x = 0;
+ @y = 0;
+ callfunc "SoulMenhir";
+ @map$ = "";
+ cleararray @Xs[0], 0, getarraysize(@Xs);
+ cleararray @Ys[0], 0, getarraysize(@Ys);
+ @x = 0;
+ @y = 0;
+ close;
+}