diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/003-1/_warps.txt | 2 | ||||
-rw-r--r-- | npc/003-3/_import.txt | 4 | ||||
-rw-r--r-- | npc/003-3/_warps.txt | 3 | ||||
-rw-r--r-- | npc/003-3/malindou.txt | 249 | ||||
-rw-r--r-- | npc/_import.txt | 1 |
5 files changed, 258 insertions, 1 deletions
diff --git a/npc/003-1/_warps.txt b/npc/003-1/_warps.txt index 6c3b53296..48af153b3 100644 --- a/npc/003-1/_warps.txt +++ b/npc/003-1/_warps.txt @@ -3,7 +3,7 @@ 003-1,49,72,0 warp #003-1_49_72 0,0,003-2,35,40 003-1,46,72,0 warp #003-1_46_72 0,0,003-2,32,40 003-1,52,72,0 warp #003-1_52_72 0,0,003-2,38,40 -003-1,56,99,0 warp #003-1_56_99 0,0,003-3,35,40 +003-1,56,99,0 warp #003-1_56_99 0,0,003-3,39,40 003-1,54,137,0 warp #003-1_54_137 0,0,003-4,35,40 003-1,51,119,0 warp #003-1_51_119 0,0,003-1,82,119 003-1,81,119,0 warp #003-1_81_119 0,0,003-1,52,119 diff --git a/npc/003-3/_import.txt b/npc/003-3/_import.txt new file mode 100644 index 000000000..d371450b7 --- /dev/null +++ b/npc/003-3/_import.txt @@ -0,0 +1,4 @@ +// Map 003-3: Tulimshar Storage +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/003-3/_warps.txt", +"npc/003-3/malindou.txt", diff --git a/npc/003-3/_warps.txt b/npc/003-3/_warps.txt new file mode 100644 index 000000000..3f24581e3 --- /dev/null +++ b/npc/003-3/_warps.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 003-3: Tulimshar Storage warps +003-3,39,41,0 warp #003-3_39_41 0,0,003-1,56,100 diff --git a/npc/003-3/malindou.txt b/npc/003-3/malindou.txt new file mode 100644 index 000000000..0ac61cde1 --- /dev/null +++ b/npc/003-3/malindou.txt @@ -0,0 +1,249 @@ +// Author: +// Saulc + +003-3,36,34,0 script Malindou NPC_LLOYD,{ + +// 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. + + + 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 Tulimshar 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 Tulimshar 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 Malindou, I am a representative of the Merchant Guild of Tulimshar."); + + 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 Tulimshar 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 = 15000; + 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 Tulimshar"), + 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/_import.txt b/npc/_import.txt index f784e93b3..e815e095c 100644 --- a/npc/_import.txt +++ b/npc/_import.txt @@ -65,6 +65,7 @@ @include "npc/003-2-1/_import.txt" @include "npc/003-2-2/_import.txt" @include "npc/003-2/_import.txt" +@include "npc/003-3/_import.txt" @include "npc/005-1/_import.txt" @include "npc/005-2/_import.txt" @include "npc/005-3/_import.txt" |