summaryrefslogtreecommitdiff
path: root/npc/002-3
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2022-10-23 21:44:22 -0300
committerJesusaves <cpntb1@ymail.com>2022-10-23 21:44:22 -0300
commita7c45a192268da2601cef47a4cdba987ae2327ca (patch)
treec5fb5b97db109fe7106496dd96498c475881046b /npc/002-3
downloadserverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/002-3')
-rw-r--r--npc/002-3/_import.txt8
-rw-r--r--npc/002-3/_mobs.txt3
-rw-r--r--npc/002-3/doors.txt83
-rw-r--r--npc/002-3/elmo.txt163
-rw-r--r--npc/002-3/mapflags.txt1
-rw-r--r--npc/002-3/nard.txt407
-rw-r--r--npc/002-3/note.txt51
7 files changed, 716 insertions, 0 deletions
diff --git a/npc/002-3/_import.txt b/npc/002-3/_import.txt
new file mode 100644
index 0000000..6d7316f
--- /dev/null
+++ b/npc/002-3/_import.txt
@@ -0,0 +1,8 @@
+// Map 002-3: First Deck
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/002-3/_mobs.txt",
+"npc/002-3/doors.txt",
+"npc/002-3/elmo.txt",
+"npc/002-3/mapflags.txt",
+"npc/002-3/nard.txt",
+"npc/002-3/note.txt",
diff --git a/npc/002-3/_mobs.txt b/npc/002-3/_mobs.txt
new file mode 100644
index 0000000..9e5e45b
--- /dev/null
+++ b/npc/002-3/_mobs.txt
@@ -0,0 +1,3 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 002-3: First Deck mobs
+002-3,35,28,4,2 monster Piou 1002,1,30000,20000,PiouSpwn::OnFakeKill
diff --git a/npc/002-3/doors.txt b/npc/002-3/doors.txt
new file mode 100644
index 0000000..e762b11
--- /dev/null
+++ b/npc/002-3/doors.txt
@@ -0,0 +1,83 @@
+// TMW2 Scripts.
+// Author:
+// Jesusalva
+// Description:
+// Nard's ship Doors NPCs.
+
+002-3,30,28,0 script AreaNPC#doors4 NPC_HIDDEN,0,0,{
+
+OnTouch:
+ if (!getq(General_Narrator) && getq(ShipQuests_Julia) < 3) {
+ showavatar NPC_NARD;
+ setcamnpc "Nard";
+ mesn l("Nard");
+ mesq l("Where do you think you are going, without talking to me first?");
+ next;
+ mesc l("Talk to Nard to unlock the door.");
+ next;
+ restorecam;
+ close;
+ }
+ if (getvaultid() && !(##02_MLQUEST & MLP_ML_NARD)) {
+ mesc l("Alright. A new world. What mysteries await for me behind that wooden door?");
+ next;
+ mesc l("Visiting a new world is always exciting. Actually, the opportunity of taking a new life in a new universe isn't that bad either.");
+ next;
+ mesc l("That's why we must stop... THEM... at any costs. I don't know what they're plotting, but it is not in this world inhabitants best interests... nor any other world.");
+ next;
+ mesc l("Anyway... Let's see how this world works!");
+ next;
+ ##02_MLQUEST = ##02_MLQUEST | MLP_ML_NARD;
+ closeclientdialog;
+ }
+
+ if (LOCATION$ == "Candor") {
+ warp "005-1", 49, 117;
+ close;
+ }
+
+ if (LOCATION$ == "Artis") {
+ warp "029-0", 203, 85;
+ close;
+ }
+
+ if (LOCATION$ == "Tulim") {
+ if ($@MK_SCENE == MK_SIEGE_TULIM && BaseLevel < 30) {
+ showavatar NPC_NARD;
+ setcamnpc "Nard";
+ mesn l("Nard");
+ mesc l("The Monster Army is currently sieging Tulimshar. There are hundreds of dangerous monsters out there right now."), 1;
+ next;
+ mesn l("Nard");
+ mesc l("I would advise you to remain here in the ship, they should leave in a few minutes, but I will not force you."), 1;
+ next;
+ mesn l("Nard");
+ mesc l("Just beware that if you leave, you might get killed really quickly. No death penalty, though."), 1;
+ next;
+ mesc l("Leave the ship? The town have no death penalty and is under a global event."), 1;
+ if (askyesno() == ASK_NO)
+ close;
+ // Boost their evade and HP so they don't get instantly KO'ed (5 min)
+ sc_start SC_INCFLEE, 300000, 200;
+ sc_start SC_INCMHP, 300000, 1000;
+ heal 1000, 0;
+ dispbottom l("Queen Of Dragons: It is dangerous to go out alone, I'll raise your evasion and life!"); // QoD = “Demure”.
+ }
+ warp "003-1", 81, 68;
+ close;
+ }
+ Exception("Script error: 002-3 door");
+ close;
+
+
+}
+
+002-3,42,25,0 script AreaNPC#002-3d NPC_HIDDEN,0,0,{
+
+OnTouch:
+ if (LOCATION$ == "")
+ warp "002-1", 72, 29;
+ else
+ warp "002-1@"+LOCATION$, 72, 29;
+ close;
+}
diff --git a/npc/002-3/elmo.txt b/npc/002-3/elmo.txt
new file mode 100644
index 0000000..03a5f8c
--- /dev/null
+++ b/npc/002-3/elmo.txt
@@ -0,0 +1,163 @@
+// TMW2 Script.
+// Authors:
+// Jesusalva
+// Description:
+// Elmo's second dialog. He is Nard's deputy and second-in-command.
+// Elmo was created in Evol by Qwerty Dragon and Reid
+// TODO: allows smart noobs (<15) get EXP Bonus (20%)
+
+002-3,32,24,0 script Elmo NPC_ELMO,{
+ function ExpBoost;
+ showavatar NPC_ELMO; // this is handled by avatars.xml
+
+ // Core functions
+ if (BaseLevel < 20)
+ ExpBoost();
+
+ if (getq(ShipQuests_Julia) < 3) goto L_NotYet;
+ if (getq(CandorQuest_Sailors) == 2) goto L_Party;
+ if (LOCATION$ == "Candor" && rand(1,7) != 5) goto L_Candor;
+
+ // TODO: NPC looking at task schedule and stuff
+ mesn;
+ if (rand(1,2) == 1)
+ mesq l("Ah, @@ seems to be behind the @@ schedule again...", any("Juliet", "Billy Bons", "Chef Gado", "Dan", "Devis", "Peter"), any(l("cleaning"), l("stocking")));
+ else
+ mesq l("Uhm, @@ seems to have finished their scheduled tasks again... If they were so diligent in cleaning and stocking, though...", any("Nard", "Elmo", "Juliet", "Chef Gado", "Dan", "Peter"));
+
+ close;
+
+L_NotYet:
+ mesn;
+ mes l("I'm not the Captain, Nard is.");
+ mes l("You should talk to him instead.");
+ close;
+
+L_Candor:
+ mesn;
+ if (getq(General_Narrator) < 1) mes l("\"Hey, have you already got the money necessary for the travel?");
+ if (getq(General_Narrator) < 1) mes l("If you haven't, maybe there are a few things you can do besides selling items.\"");
+ if (getq(General_Narrator) >= 1) mesq l("Maybe there are things in Candor which still require your attention? I might have overheard some of them.");
+ if (reputation("Candor") >= 100) mes l("...Although that's unlikely, I admit.");
+ next;
+
+ mes "";
+
+ // Valon Quest
+ .@q=getq(CandorQuest_Trainer);
+ if (.@q < 1) {
+ mesc l("##BFirst and foremost, you should talk to Trainer, inside the big house.##b"), 1;
+ mes l("Besides being able to train you, he is a walking encyclopedia - Ask him anything you are unsure about!");
+ next;
+ mes l("To find him, just leave the ship and turn left. You should also touch the Soul Menhir when you leave this ship.");
+ mes l("The Soul Menhir will attach your soul, so when you die, you'll appear where you last touched it.");
+ close;
+ } else if (.@q < 12) {
+ mes l("- Inside the big house is someone who can train you. All experience is handy!");
+ }
+
+ // Barrel Quest
+ .@q=getq(CandorQuest_Barrel);
+ if (.@q < 4)
+ mes l("- I think you can help the storehouse for some quick cash.");
+
+ // Kids Quest
+ .@q=getq(CandorQuest_HAS);
+ if (.@q < 4)
+ mes l("- You can always play with kids. Not very profitable, though.");
+
+ // Sailors Quest
+ .@q=getq(CandorQuest_Sailors);
+ if (.@q < 3)
+ mes l("- Some of our crew are missing. They're probably wasting their time at beach.");
+
+ // Vincent Quest
+ .@q=getq(CandorQuest_Vincent);
+ if (.@q < 2)
+ mes l("- I overheard rumors about a festival. Maybe someone needs help with their figurine?");
+
+ // Tolchi Quest
+ .@q=getq(CandorQuest_Tolchi);
+ if (.@q < 2)
+ mes l("- The weapon master, Tolchi, could use your help. But she will most likely force you to visit Tulimshar in the end.");
+
+ // Maya Quest
+ .@q=getq(CandorQuest_Maya);
+ if (.@q < 4)
+ mes l("- There is a woman walking on the island, called Maya. Once she realises you're willing to help, she'll start paying well.");
+
+ // Rosen Quest
+ .@q=getq(CandorQuest_Rosen);
+ if (.@q < 3)
+ mes l("- The weapon seller, Rosen, wanted to help new players to improve their equipment.");
+
+ // Nylo Quest
+ .@q=getq(CandorQuest_Marggo);
+ if (.@q < 1)
+ mes l("- The farmer Nylo, who loves beer and money, seems to be having troubles with his crops.");
+
+ // Ship Quests
+ .@q1=getq(ShipQuests_Dan);
+ .@q2=getq(ShipQuests_ChefGado);
+ .@q3=getq(ShipQuests_Peter);
+ if (.@q1 < 3 || .@q2 < 2 || .@q3 < 7)
+ mes l("- Some sailors within this ship may need your help: Chef Gado, Dan, Peter... help them all and collect rewards!");
+
+ // Report in an abstract way to the player how good they are at getting travel
+ // discounts, and how much work is left to do. Some points are easy/required to get (eg. Dan, Peter, HAS, etc.)
+ next;
+ closeclientdialog;
+ .@n=nard_reputation();
+ if (.@n >= 15)
+ npctalk3 l("Nard is truly amazed at you. I am impressed, too.");
+ else if (.@n >= 13)
+ npctalk3 l("Nard is amazed at you.");
+ else if (.@n >= 11)
+ npctalk3 l("Nard is very impressed, you're really a hard worker. Congrats!");
+ else if (.@n >= 9)
+ npctalk3 l("Nard is impressed, you're a hard worker.");
+ else if (.@n >= 7)
+ npctalk3 l("Nard noticed your hard work.");
+ else if (.@n >= 5)
+ npctalk3 l("Nard likes people who work hard. Work harder!");
+ else if (.@n >= 3)
+ npctalk3 l("You really should do some tasks to impress our captain.");
+ else
+ npctalk3 l("Nard doesn't like people who gets money without working for it.");
+
+ end;
+
+L_Party:
+ mesn;
+ mesq l("What? A party?");
+ next;
+ setq CandorQuest_Sailors, 3;
+ getexp 25, 0;
+ Zeny = (Zeny + 1000);
+ mesq l("Alright, I'll show up later. Thanks for calling me. Here's 1000 GP for your efforts."); // With this, the final cost is 50 GP
+ close;
+
+function ExpBoost {
+ mesn;
+ mesq l("Hey there, @@! I see you are still a noob!", strcharinfo(0));
+ next;
+ mesn;
+ mesq l("Well, I'll give you a hour of EXP RATE UP! How cool is that? Enjoy!");
+ mesc l("This boost can be used until level 20."), 9;
+ next;
+ // Get the average level of top players to calculate EXP Boost
+ // Level 100 ("max") = 25% EXP BOOST (max)
+ // Current (2019-04-27) top is 80/80/75, meaning a 19% EXP Boost.
+ // New rules which give 2x exp boost
+ // Current (2019-08-31) top is 85/84/83, meaning a 42% EXP/DROP Boost.
+ .@BONUS=NewcomerEXPDROPUP();
+ specialeffect FX_SPECIAL, SELF, getcharid(3);
+ mesc l("EXP Gain raised in @@% for one hour!", .@BONUS), 2;
+ return;
+}
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+}
diff --git a/npc/002-3/mapflags.txt b/npc/002-3/mapflags.txt
new file mode 100644
index 0000000..e274aa7
--- /dev/null
+++ b/npc/002-3/mapflags.txt
@@ -0,0 +1 @@
+002-3 mapflag nosave 000-1,22,22
diff --git a/npc/002-3/nard.txt b/npc/002-3/nard.txt
new file mode 100644
index 0000000..56a6274
--- /dev/null
+++ b/npc/002-3/nard.txt
@@ -0,0 +1,407 @@
+// TMW2 scripts.
+// Authors:
+// Qwerty Dragon
+// Reid
+// Jesusalva
+// Description:
+// Captain Nard dialogs.
+// Nard is a fair merchant ship's captain.
+// Original Nard's from Evol by Qwerty Dragon and Reid
+
+002-3,36,25,0 script Nard NPC_NARD,{
+ showavatar NPC_NARD; // this is handled by avatars.xml
+
+ .@narrator = getq(General_Narrator);
+
+L_Checker:
+ if (.@narrator) goto L_Travel;
+ if (getq(ShipQuests_Julia) >= 3) goto L_NotYet;
+ if (debug) goto L_TestServer;
+ // Introduction
+ mesn;
+ mesq l("Hello.");
+ next;
+ mesq l("Let me introduce myself, I am Nard, captain of this ship.");
+ next;
+ mesq lg("I am pleased to see that you have woken up and are active. Elmo came here to tell me this good news!");
+ next;
+ mesq l("So, how do you feel? I see that Juliet did a marvellous job! You look like you're in good health now.");
+ next;
+
+ select
+ lg("I feel ok."),
+ l("Who's this Juliet?"),
+ lg("I'm a bit sick...");
+ mes "";
+ switch (@menu) {
+ case 1:
+ mesn;
+ mesq l("Good to know.");
+ next;
+ break;
+ case 2:
+ mesn;
+ mesq lg("You have an awful case of amnesia. She is the nurse and shipkeeper of this ship, and took care of you when you were unconscious.");
+ next;
+ break;
+ case 3:
+ mesn;
+ mesq l("Well, you'll need to get used to. Being seasick is annoying, so you might want to leave the ship as soon as possible.");
+ next;
+ break;
+ }
+
+L_Main:
+ mesn;
+ mesq l("We have made a stop at a little island, before making it on to the port of Tulimshar.");
+ next;
+ mesn;
+ mesq l("Ship travels are not free. Also, I have a few friends on the Island, and I would like you to check out on them.");
+ next;
+ showavatar NPC_ELMO;
+ setcamnpc instance_npcname("Elmo");
+ mesn l("Elmo");
+ mesq l("I, Elmo, captain's deputy, will help you to make the maximum possible money in Candor!");
+ mesc l("Elmo has given you an EXP UP and DROP UP Boost until level 20!"), 2;
+ mesc l("It also expires after two hours. In such case, talk to him again!"), 2;
+ // Actually, why don't we apply it right now...?
+ .@BONUS=NewcomerEXPDROPUP();
+ specialeffect FX_SPECIAL, SELF, getcharid(3);
+ mesc l("EXP Gain raised in @@% for one hour!", .@BONUS), 2;
+ next;
+ showavatar NPC_NARD;
+ setcamnpc;
+ mesn;
+ mesq l("After that, we're going to Tulimshar. Tulim is the most important city on the world, and the Alliance have an office there.");
+ next;
+ mesn;
+ mesq l("The Alliance can help you in finding out about who you are, why you are here, or from where you came from. So, about the tasks I want completed.");
+ LOCATION$ = "Candor";
+ setq ShipQuests_Julia, 3;
+ // Event handling
+ if ($EVENT$ == "Event")
+ getitem MercCard_EH, 1;
+ // Welcome handling
+ if (!#REG_DATE) {
+ $@WELCOME_TIMER=gettimetick(2)+900; // 15 minutes
+ kamibroadcast("Hey, look, I've rescued \""+strcharinfo(0)+"\" from the sea! Who will @welcome them?!", "Nard");
+ #REG_DATE=gettimetick(2);
+ }
+ next;
+ .@price=800;
+ mesc b(l(".:: Main Quest 1-3 ::.")), 3;
+ msObjective(getq(CandorQuest_HAS) >= 4, l("* Help Ayasha to take care of the kids."));
+ msObjective(getq(CandorQuest_Trainer) >= 12, l("* Get trained by Valon, in the big house."));
+ msObjective(getq(CandorQuest_Barrel) >= 4, l("* Ask Zegas, the mayoress, if she needs help."));
+ msObjective(Zeny >= .@price, l("* Collect @@/@@ GP", Zeny, .@price));
+
+L_Referral:
+ // Welcome handling
+ if (!#REG_DATE) {
+ $@WELCOME_TIMER=gettimetick(2)+600; // 10 minutes
+ kamibroadcast("Hey, look, I've rescued \""+strcharinfo(0)+"\" from the sea! Who will @welcome them?!", "Nard");
+ #REG_DATE=gettimetick(2);
+ }
+ // Referral program
+ if (#REFERRAL_PROG == 0 && $REFERRAL_ENABLED) {
+ next;
+ clear;
+ showavatar NPC_LOF_RICH;
+ mesc l("But before, a message from our developers!"), 3;
+ next;
+ mesn l("TMW2 Staff");
+ mesc l("Hello, and welcome to TMW2: Moubootaur Legends!"), 3;
+ next;
+ mesn l("TMW2 Staff");
+ mesc l("Did you came here by someone advise? If yes, write their name down here!"), 3;
+ next;
+ mesc l("If this is not the case, just click on \"Send\"."), 3;
+ .@ref$="";
+ do
+ {
+ input .@ref$;
+ //debugmes "Player invite: "+.@ref$;
+ mes "";
+ if (.@ref$ != "") {
+ .@ref=gf_accid(strip(.@ref$));
+ if (.@ref > 0) {
+ if (.@ref == getcharid(3)) {
+ mesn l("TMW2 Staff");
+ mesc l("Hahah, silly, that's yourself!"), 3;
+ mesc l("Try again!"), 3;
+ next;
+ .@ref$="";
+ } else {
+ #REFERRAL_PROG=.@ref;
+ getitembound FriendGift, 1, 1;
+ mesn l("TMW2 Staff");
+ mesc l("Well, welcome to the game! If you have any doubt, shout on #world for help!"), 3;
+ mesc l("Your friend also sent you a gift - open it when you get level 5!"), 3;
+ next;
+ }
+ } else {
+ mesn l("TMW2 Staff");
+ mesc l("Oops, there is nobody known as @@ on this game.", .@ref$), 3;
+ mesc l("Could you try again? There could be a typo!"), 3;
+ next;
+ .@ref$="";
+ }
+ } else {
+ .@ref$="None";
+ mesn l("TMW2 Staff");
+ mesc l("I see. Well, welcome to the game! If you have any doubt, shout on #world for help!"), 3;
+ next;
+ }
+ } while (.@ref$ == "");
+ showavatar NPC_NARD;
+ }
+
+ close;
+
+
+L_NeedHelp:
+ mes "";
+ mesn;
+ mesq l("You're pretty much stranded on this forsaken island if you don't help me!");
+ next;
+ mesq l("Also, I believe hard work always pay off.");
+ next;
+ goto L_NotYet;
+
+L_CandorIsland:
+ mes "";
+ mesn;
+ mesq l("I come here frequently to trade. It is not deserted nor boring.");
+ next;
+ mesq l("This is ##BCandor Island##b. A very small rich community lives here.");
+ next;
+ mesq l("If they were any bigger, monsters would come and kill everyone.");
+ next;
+ goto L_NotYet;
+
+L_NotYet:
+ .@price=800;
+ mesc b(l(".:: Main Quest 1-1 ::.")), 3;
+ msObjective(getq(CandorQuest_HAS) >= 4, l("* Help Ayasha to take care of the kids."));
+ msObjective(getq(CandorQuest_Trainer) >= 12, l("* Get trained by Valon, in the big house."));
+ msObjective(getq(CandorQuest_Barrel) >= 4, l("* Ask Zegas, the mayoress, if she needs help."));
+ msObjective(Zeny >= .@price, l("* Collect @@/@@ GP", Zeny, .@price));
+ mes "";
+ select
+ rif(Zeny >= .@price, l("I've brought the money you've asked for.")),
+ rif(#REFERRAL_PROG == 0 && $REFERRAL_ENABLED && BaseLevel <= 10,
+ l("I forgot to say earlier, but indeed, I was invited by someone!")),
+ l("Captain, why have you brought me to a deserted boring island?!"),
+ l("I don't want to help your \"friends\", bring me to somewhere useful!"),
+ l("Please excuse me, captain.");
+
+ mes "";
+ if (@menu == 2)
+ goto L_Referral;
+ if (@menu == 3)
+ goto L_CandorIsland;
+ if (@menu == 4)
+ goto L_NeedHelp;
+ if (@menu == 5)
+ close;
+
+ mesn;
+ if (TUTORIAL && (getq(CandorQuest_HAS) < 4 ||
+ getq(CandorQuest_Barrel) < 4 ||
+ getq(CandorQuest_Trainer) < 12)) {
+ mesq l("You didn't help all my friends yet, and without trainment, I can't send you to such dangerous place as Tulimshar.");
+ mesc l("NOTE: It is possible to play the game as a crafter/merchant/fisherman, avoiding to kill as much as possible. However, it is not possible to play the game with a total kill count of zero.");
+ close;
+ }
+ // If you did less than 50% Candor quests, please be warned.
+ if (reputation("Candor") < 50) {
+ mesc l("WARNING: You have done less than 50% of Candor Quests!"), 1;
+ mesc l("It may be expensive to return here. Are you sure?"), 1;
+ next;
+ if (askyesno() == ASK_NO)
+ close;
+ }
+ if (Zeny >= .@price) {
+ inventoryplace TulimMap, 1;
+ mesq l("Ten, fifty, thousand... Yep, this is the amount I've asked for.");
+ next;
+ getvaultexp(10);
+ setq General_Narrator, 1;
+ // Double sure
+ setq ShipQuests_Julia, 3;
+ Zeny = Zeny-.@price;
+ EnterTown("Tulim");
+ getitem TulimMap, 1;
+ mesq l("Set sail! We're going to Tulimshar!");
+ next;
+ PC_DEST$="Tulim";
+ addtimer nard_time(PC_DEST$)+800, .name$+"::OnNardStage";
+ addtimer nard_time(PC_DEST$), "#NardShip::OnEvent";
+ @timer_navio_running = 1;
+ warp "002-5", 39, 26;
+ closeclientdialog;
+ end;
+ } else {
+ mesq l("You still haven't completed your tasks.");
+ mes "";
+ mesc l("You still need @@ GP for the trip to Tulimshar.", (.@price-Zeny));
+ }
+ close;
+
+L_Travel:
+ // Current nard_reputation() value for 100% discount: 15
+ .@price=800;
+ .@price-=min(780, nard_reputation()*54);
+
+ mesn;
+ mesq l("Hi @@.", strcharinfo(0));
+ next;
+ mesq l("You are currently at @@.", LOCATION$);
+ mes "";
+ mes l("A ship travel will cost you @@ GP.", .@price);
+ if (ST_TIER == 8)
+ mesc l("What are you doing? Go talk to @@ and bring me a @@!", b("Elanore"), getitemlink(Lifestone));
+
+ if (Zeny >= .@price || ((ST_TIER == 7 || ST_TIER == 9) && gettimetick(2) < QUEST_ELEVARTEMPO)) {
+ menu
+ rif(Zeny >= .@price && LOCATION$ != "Candor", l("To Candor Island.")), L_TCandor,
+ rif(Zeny >= .@price && LOCATION$ != "Tulim", l("To Tulimshar.")), L_TTulim,
+ rif(Zeny >= .@price && LOCATION$ != "Artis" && $FIRESOFSTEAM && getq(General_Narrator) >= 20, l("To Artis.")), L_TArtis,
+ rif(ST_TIER == 7 && gettimetick(2) < QUEST_ELEVARTEMPO ,l("Help me, I need Jesusaves Grimorie!")), L_Tier2,
+ rif(ST_TIER == 9 && countitem(Lifestone) && gettimetick(2) < QUEST_ELEVARTEMPO ,l("Help me, I need Jesusaves Grimorie!")), L_Tier2Ok,
+ l("No, I'll save my money."), -;
+ } else {
+ mes l("You still need @@ GP to afford it.", (.@price-Zeny));
+ }
+
+ close;
+
+L_TCandor:
+ Zeny=Zeny-.@price;
+ PC_DEST$="Candor";
+
+ mes "";
+ mesn;
+ mesq l("Candor Island, then? Yes, that is a pretty island, right?");
+ next;
+ mesq l("I was planning to go there soon, anyway. All aboard!");
+ close2;
+ addtimer nard_time(PC_DEST$), "#NardShip::OnEvent";
+ @timer_navio_running = 1;
+ warp "002-5", 39, 26;
+ end;
+
+L_TTulim:
+ Zeny=Zeny-.@price;
+ PC_DEST$="Tulim";
+ @timer_navio_running = 1;
+
+ mes "";
+ mesn;
+ mesq l("Tulimshar, right? The oldest human city-state!");
+ next;
+ mesq l("I was planning to go there soon, anyway. All aboard!");
+ close2;
+ addtimer nard_time(PC_DEST$), "#NardShip::OnEvent";
+ @timer_navio_running = 1;
+ warp "002-5", 39, 26;
+ end;
+
+L_TArtis:
+ Zeny=Zeny-.@price;
+ PC_DEST$="Artis";
+ @timer_navio_running = 1;
+
+ mes "";
+ mesn;
+ mesq l("Artis, right? So Andrei Sakar summoned you?");
+ next;
+ mesq l("Hahaha, good luck out there, my friend!");
+ close2;
+ addtimer nard_time(PC_DEST$), "#NardShip::OnEvent";
+ @timer_navio_running = 1;
+ warp "002-5", 39, 26;
+ end;
+
+L_Tier2:
+ mes "";
+ mesn;
+ mesq l("WHAT?! ARE YOU OUT OF MIND?!?!");
+ next;
+ mesn;
+ if (nard_reputation() < 8) {
+ mesq l("THAT GRIMORIE IS A SUPER DUPER MEGA UPER RARE BOOK, I CANNOT GIVE IT TO ANYBODY ASKING ME ABOUT!!");
+ next;
+ mesn;
+ mesq l("GET OUT OF HERE, YOUR NOBODY!");
+ close;
+ }
+ mesq l("That is a rare, precious book, which writes itself!");
+ next;
+ mesn;
+ mesq l("I cannot just give it to you for nothing. Run to Elanore and fetch me a @@. You need to make a new one, an old one I won't accept.", getitemlink(Lifestone));
+ ST_TIER=8;
+ close;
+
+L_Tier2Ok:
+ mes "";
+ mesn;
+ mesc l("*tut*");
+ next;
+ inventoryplace JesusalvaGrimorium, 1;
+ delitem Lifestone, 1;
+ getitem JesusalvaGrimorium, 1;
+ getexp 200, 0;
+ ST_TIER=10;
+ mesn;
+ mesq l("Here, take it. If the mana goes out of your body, I'll have your class master to return the book to me.");
+ close;
+
+OnNardStage:
+ showavatar NPC_NARD; // this is handled by avatars.xml
+ mesn;
+ mesq l("Welcome to Tulimshar, @@!", strcharinfo(0));
+ mesc l("Nard gives you a map of the city so you don't get lost.");
+ next;
+ if (GSET_SOULMENHIR_MANUAL) {
+ mesn;
+ mesq l("You can explore the city as you want, but if I were you, I would ##Btouch the Soul Menhir##b, north of here, to don't respawn at Candor.");
+ next;
+ } else {
+ mesn;
+ mesq l("If you die, you'll appear near Tulimshar's Soul Menhir, which is the nearest Menhir to you. You can use @@ if you ever want to change this behavior.", b("@ucp"));
+ next;
+ }
+ mesn;
+ mesq l("Other than that, you can explore the city as you want, but as you had a memory loss, You should visit the townhall.");
+ next;
+ mesn;
+ mesq l("When you get out of the ship, it is the first building you'll see. Talk to ##BLua##b, she is an alliance representative.");
+ next;
+ mesn;
+ mesq l("The Alliance have records of everyone. And if you need another trip, talk to me!");
+ tutmes l("PROTIP: Every quest you complete in a location, will make ship travels to and from them cheaper!"), "Protip", false;
+ next;
+ addtimer 2500, "Inac::OnShout";
+ closeclientdialog;
+ close;
+
+L_TestServer:
+ mesc l("THIS IS MOUBOOTAUR LEGENDS TEST SERVER."), 1;
+ mesc l("Progress on this server may be %s.", b(l("lost forever"))), 1;
+ mes "";
+ mesc l("Unless you know what you are doing, please go to Main Server instead."), 1;
+ mesc l("Main server is: %s", b("server.moubootaurlegends.org")), 2;
+ mes "";
+ mesf "@@help://test-server|%s@@", l("more information about test server ->");
+ next;
+ goto L_Main;
+
+L_Close:
+ close;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+}
diff --git a/npc/002-3/note.txt b/npc/002-3/note.txt
new file mode 100644
index 0000000..32cdf4d
--- /dev/null
+++ b/npc/002-3/note.txt
@@ -0,0 +1,51 @@
+// TMW-2 Script.
+// Evol scripts.
+// Authors:
+// gumi
+// Qwerty Dragon
+// Reid
+// WildX
+// Jesusalva
+// Description:
+// A small note presenting the rules and game-world release notes of TMW-2.
+
+002-3,40,25,0 script Note#johanne NPC_PAPER_NOTE,{
+ narrator S_LAST_NEXT,
+ l("The La Johanne always have interesting notes.");
+
+ do {
+ select
+ l("Read the News."),
+ l("Read the Rules."),
+ rif($EVENT$ != "", l("Event Information")),
+ l("Leave.");
+
+ switch (@menu) {
+ case 1:
+ GameNews();
+ break;
+ case 2:
+ GameRules(8 | 4);
+ break;
+ case 3:
+ EventHelp();
+ break;
+
+ }
+ } while (@menu != 4);
+
+
+ narrator S_NO_NPC_NAME,
+ l("Following these lines are some other writings on this paper."),
+ l("Do not give your password to anybody! Keep it secret and try not to use the same one anywhere else in the future. - Juliet"),
+ l("People from the press always know what is happening in the world. Talk to them to learn about the latest news! - Jerican from the Press"),
+ l("I love you, Silvia! - Swezanne"),
+ (!rand2(50) ? ("\"Come meager fire, and devastate spot!\" "+l("-- Grandmaster")) : ""),
+ l("Other things are written but are not legible anymore.");
+
+ close;
+
+OnInit:
+ .distance = 2;
+ end;
+}