summaryrefslogtreecommitdiff
path: root/npc/001-2-19
diff options
context:
space:
mode:
Diffstat (limited to 'npc/001-2-19')
-rw-r--r--npc/001-2-19/_import.txt5
-rw-r--r--npc/001-2-19/_warps.txt51
-rw-r--r--npc/001-2-19/lloyd.txt244
-rw-r--r--npc/001-2-19/mapflags.txt1
4 files changed, 301 insertions, 0 deletions
diff --git a/npc/001-2-19/_import.txt b/npc/001-2-19/_import.txt
new file mode 100644
index 000000000..c92d08258
--- /dev/null
+++ b/npc/001-2-19/_import.txt
@@ -0,0 +1,5 @@
+// Map 001-2-19: Merchant Hall
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/001-2-19/_warps.txt",
+"npc/001-2-19/lloyd.txt",
+"npc/001-2-19/mapflags.txt",
diff --git a/npc/001-2-19/_warps.txt b/npc/001-2-19/_warps.txt
new file mode 100644
index 000000000..fa0917193
--- /dev/null
+++ b/npc/001-2-19/_warps.txt
@@ -0,0 +1,51 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 001-2-19: Merchant Hall warps
+001-2-19,41,31,0 warp #001-2-19_41_31 0,0,001-1,104,33
+001-2-19,41,24,0 script #001-2-19_41_24_h NPC_HIDDEN,0,0,{
+OnTouch:
+ warp "001-2-25", 29, 30;
+close;
+
+OnUnTouch:
+ doevent "#001-2-19_41_24::OnUnTouch";
+}
+001-2-19,41,24,0 script #001-2-19_41_24 NPC_ARTIS_DOOR_WOOD,2,3,{
+ close;
+OnTouch:
+ doorTouch;
+
+OnUnTouch:
+ doorUnTouch;
+
+OnTimer340:
+ doorTimer;
+
+OnInit:
+ doorInit;
+}
+
+001-2-19,33,38,0 warp #001-2-19_33_38 0,0,001-1,101,37
+001-2-19,41,57,0 warp #001-2-19_41_55 0,0,001-2-20,29,27
+001-2-19,41,47,0 script #001-2-19_41_47_h NPC_HIDDEN,0,0,{
+OnTouch:
+ warp "001-1", 104, 42;
+close;
+
+OnUnTouch:
+ doevent "#001-2-19_41_47::OnUnTouch";
+}
+001-2-19,41,47,0 script #001-2-19_41_47 NPC_ARTIS_DOOR_WOOD,2,3,{
+ close;
+OnTouch:
+ doorTouch;
+
+OnUnTouch:
+ doorUnTouch;
+
+OnTimer340:
+ doorTimer;
+
+OnInit:
+ doorInit;
+}
+
diff --git a/npc/001-2-19/lloyd.txt b/npc/001-2-19/lloyd.txt
new file mode 100644
index 000000000..9a0b2f37c
--- /dev/null
+++ b/npc/001-2-19/lloyd.txt
@@ -0,0 +1,244 @@
+// Evol scripts.
+// Authors:
+// gumi
+// Reid
+// Description:
+// Lloyd the banker NPC.
+// Variables:
+// 0 ArtisQuests_Lloyd
+// 1 ArtisQuests_Fexil
+// 2 ArtisQuests_Enora
+// Quest states:
+// 00 -- Never talked
+// 01 -- Registred on the Guild
+// 10 -- not started
+// 11 -- Lloyd warned about the quest
+// 20 -- Default.
+// 21 -- BlackSmith quest delivered.
+// 22 -- Chelios Quest given.
+// 23 -- Chelios Quest done.
+
+001-2-19,31,25,0 script Lloyd the Banker NPC_LLOYD,{
+
+ function enora_quest {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Black iron... That is a very specific request that you have for me!"),
+ l("Let me check in my inventory book..."),
+ l("..."),
+ l("Yes, I have some! \"5x Black Iron Ingots\""),
+ lg("Is this for you or somebody else? Because you need to be registered to obtain these materials.");
+
+ switch (selectd(ArtisQuests_Enora,
+ l("This is for my own use."),
+ l("Chelios asked me to get it.")))
+ {
+ case 1:
+ speech S_FIRST_BLANK_LINE,
+ l("This is your first time asking for something, you won't pay this time, take it as a sign of good faith!"),
+ l("If you need something in the future, do not hesitate to pass by here, our stock is full of boxes collecting dust.");
+ emotion E_WINK;
+ break;
+ case 2:
+ speech S_FIRST_BLANK_LINE,
+ l("Chelios... He is part of the Blacksmith House, is he not?"),
+ l("Since Don settled in Artis he and his band refused to register to the Merchant Guild."),
+ l("I will close an eye for once, but only because it's your first time asking for something!"),
+ l("Sometimes a good merchant needs to reach out first. It's on the house, give Chelios my regards!");
+ emotion E_WINK;
+ break;
+ }
+ setq ArtisQuests_Enora, 3;
+
+ return;
+ }
+
+ function explain_guild {
+ speech S_LAST_NEXT,
+ l("The guild is in charge of the commerce regularization throughout Artis and its surroundings."),
+ l("With the help of the town hall and the Legion of Aemil 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 Lloyd, I am a representative of the Merchant Guild of Artis.");
+
+ selectd(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("Lloyd is searching something in his book.");
+ speech S_LAST_NEXT,
+ l("I see."),
+ lg("You are new around here, right?");
+
+ if (selectd(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 Artis 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 = 500;
+ speech S_LAST_NEXT,
+ l("The fee is of @@ E. So, do you want to register?", .@price);
+
+ switch (selectd(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;
+ }
+
+ function paper_to_deliver {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Now that you bring up that topic, that reminds me of something..."),
+ l("Earlier today there was this young seller named Fexil that passed by here."),
+ l("He asked to lend some money and a place to open his store, I think that he asked for a place on the merchant squares on the south-west of the city..."),
+ l("Anyway, he forgot his permit when he left the building."),
+ l("Could you bring it to him?");
+
+ do
+ {
+ .@q = selectd(ArtisQuests_Fexil,
+ l("Ok, I will bring it to him."),
+ l("I need more information first."),
+ l("I don't have the time."));
+ switch (.@q)
+ {
+ case 1:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Thank you for this!");
+ setq ArtisQuests_Fexil, 1;
+ break;
+ case 2:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("You should look for a seller named Fexil around the merchant square."),
+ l("Ask other merchants, they might know where he is.");
+ break;
+ case 3:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("No problem, come back later if you changed your mind!");
+ break;
+ }
+ } while (.@q == 2);
+ }
+
+ if (getq(ArtisQuests_Lloyd) == 0)
+ {
+ first_visit;
+
+ closedialog;
+ goodbye;
+ close;
+ }
+
+ speech S_LAST_NEXT,
+ l("Welcome to the Merchant Guild of Artis!"),
+ l("What do you want today?");
+
+ do
+ {
+ .@enora = getq(ArtisQuests_Enora);
+
+ selectd
+ rif(.@enora == 2, l("I'm looking for some black iron ingots.")),
+ l("I would like to store some items."),
+ l("I would like to perform money transactions."),
+ l("What is this guild for?"),
+ l("Does the guild has any work for me right now?"),
+ l("Bye.");
+
+ switch (@menu)
+ {
+ case 1:
+ enora_quest;
+ break;
+ case 2:
+ openstorage;
+ closedialog;
+ close;
+ break;
+ case 3:
+ MerchantGuild_Bank;
+ break;
+ case 4:
+ mes "";
+ explain_guild;
+ break;
+ case 5:
+ if (getq(ArtisQuests_Fexil) >= 1)
+ {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("There are no tasks for you right now.");
+ continue;
+ }
+
+ paper_to_deliver;
+
+ continue;
+ }
+ if (@menu != 6)
+ {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT | S_NO_NPC_NAME,
+ l("Something else?");
+ }
+ } while (@menu != 6);
+
+ closedialog;
+ goodbye;
+ close;
+
+OnInit:
+ .quest_debug = ArtisQuests_Lloyd;
+ .sex = G_MALE;
+ .distance = 4;
+ end;
+
+OnPCLoginEvent:
+ if (#MerchantBank)
+ {
+ BankVault += max(0, #MerchantBank);
+ #MerchantBank = 0;
+ }
+ end;
+}
diff --git a/npc/001-2-19/mapflags.txt b/npc/001-2-19/mapflags.txt
new file mode 100644
index 000000000..f083b6eb9
--- /dev/null
+++ b/npc/001-2-19/mapflags.txt
@@ -0,0 +1 @@
+001-2-19 mapflag town