summaryrefslogtreecommitdiff
path: root/npc/027-1
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/027-1
downloadserverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/027-1')
-rw-r--r--npc/027-1/_import.txt14
-rw-r--r--npc/027-1/_mobs.txt12
-rw-r--r--npc/027-1/_warps.txt10
-rw-r--r--npc/027-1/ctrl.txt38
-rw-r--r--npc/027-1/eliza.txt22
-rw-r--r--npc/027-1/elza.txt22
-rw-r--r--npc/027-1/enzo.txt20
-rw-r--r--npc/027-1/ezra.txt23
-rw-r--r--npc/027-1/laura.txt395
-rw-r--r--npc/027-1/statue.txt26
-rw-r--r--npc/027-1/students.txt45
-rw-r--r--npc/027-1/students2.txt136
-rw-r--r--npc/027-1/wizard.txt33
13 files changed, 796 insertions, 0 deletions
diff --git a/npc/027-1/_import.txt b/npc/027-1/_import.txt
new file mode 100644
index 0000000..e64a633
--- /dev/null
+++ b/npc/027-1/_import.txt
@@ -0,0 +1,14 @@
+// Map 027-1: The Academy Island
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/027-1/_mobs.txt",
+"npc/027-1/_warps.txt",
+"npc/027-1/ctrl.txt",
+"npc/027-1/eliza.txt",
+"npc/027-1/elza.txt",
+"npc/027-1/enzo.txt",
+"npc/027-1/ezra.txt",
+"npc/027-1/laura.txt",
+"npc/027-1/statue.txt",
+"npc/027-1/students.txt",
+"npc/027-1/students2.txt",
+"npc/027-1/wizard.txt",
diff --git a/npc/027-1/_mobs.txt b/npc/027-1/_mobs.txt
new file mode 100644
index 0000000..d8d5604
--- /dev/null
+++ b/npc/027-1/_mobs.txt
@@ -0,0 +1,12 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 027-1: The Academy Island mobs
+027-1,77,95,4,3 monster Duck 1029,2,60000,30000
+027-1,29,146,10,10 monster Magic Ratto 1126,3,60000,30000
+027-1,57,127,9,3 monster Mana Piou 1155,3,60000,30000
+027-1,114,116,30,25 monster Red Butterfly 1025,7,60000,30000
+027-1,128,25,12,6 monster Duck 1029,2,30000,30000
+027-1,150,48,10,30 monster Croc 1006,6,30000,30000
+027-1,59,116,24,25 monster Mana Bug 1075,4,60000,30000
+027-1,100,152,60,7 monster Sea Slime 1093,12,5000,5000
+027-1,149,117,11,27 monster Piou 1002,4,60000,30000
+027-1,89,65,26,25 monster Cyan Butterfly 1172,6,60000,30000
diff --git a/npc/027-1/_warps.txt b/npc/027-1/_warps.txt
new file mode 100644
index 0000000..7d57ab2
--- /dev/null
+++ b/npc/027-1/_warps.txt
@@ -0,0 +1,10 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 027-1: The Academy Island warps
+027-1,90,156,0 warp #027-1_90_156 5,0,003-1,59,59
+027-1,90,39,0 warp #027-1_90_39 1,0,027-0,65,35
+027-1,73,53,0 warp #027-1_73_53 0,0,027-2,28,28
+027-1,77,65,0 warp #027-1_77_65 0,0,027-2,32,42
+027-1,107,59,0 warp #027-1_107_59 0,0,027-4,29,34
+027-1,46,100,0 warp #027-1_46_100 0,0,027-3,27,25
+027-1,40,115,0 warp #027-1_40_115 0,0,027-3,24,39
+027-1,103,101,0 warp #027-1_103_101 0,0,027-6,30,38
diff --git a/npc/027-1/ctrl.txt b/npc/027-1/ctrl.txt
new file mode 100644
index 0000000..234fda9
--- /dev/null
+++ b/npc/027-1/ctrl.txt
@@ -0,0 +1,38 @@
+// TMW2 Scripts.
+// Author:
+// Jesusalva
+// Description:
+// Magic School controlled warps
+
+027-1,120,131,0 script #0271W01 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ if (ACADEMIC_RANK || is_sponsor())
+ warp "027-5", 28, 23;
+ end;
+}
+
+027-1,82,118,0 script #0271W02 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ if (ACADEMIC_RANK || is_sponsor())
+ warp "027-7", 60, 48;
+ end;
+}
+
+027-1,76,118,0 script #0271W03 NPC_HIDDEN,1,0,{
+ end;
+OnTouch:
+ if (ACADEMIC_RANK || is_sponsor())
+ warp "027-7", 41, 48;
+ end;
+}
+
+027-1,72,118,0 script #0271W04 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ if (ACADEMIC_RANK || is_sponsor())
+ warp "027-7", 24, 48;
+ end;
+}
+
diff --git a/npc/027-1/eliza.txt b/npc/027-1/eliza.txt
new file mode 100644
index 0000000..48c0592
--- /dev/null
+++ b/npc/027-1/eliza.txt
@@ -0,0 +1,22 @@
+// TMW2 Script
+// Author:
+// Jesusalva
+// Description:
+// Forgetful
+
+027-1,75,56,0 script Eliza NPC_DARK_SORCERER_F,{
+ mesn l("%s, the Forgetful", .name$);
+ mesq l("What was I doing before...? I totally forgot!");
+ if (any(true, false))
+ mesc l("Have you seen my sister Elza?");
+ next;
+ ForgetfulNPC(.name$, CLASS_DESTRUCTION);
+ close;
+
+OnInit:
+ .sex = G_FEMALE;
+ .distance = 5;
+ end;
+
+}
+
diff --git a/npc/027-1/elza.txt b/npc/027-1/elza.txt
new file mode 100644
index 0000000..cd72c25
--- /dev/null
+++ b/npc/027-1/elza.txt
@@ -0,0 +1,22 @@
+// TMW2 Script
+// Author:
+// Jesusalva
+// Description:
+// Forgetful
+
+027-1,104,61,0 script Elza NPC_DARK_SORCERER_F,{
+ mesn l("%s, the Forgetful", .name$);
+ mesq l("What was I doing before...? I totally forgot!");
+ if (any(true, false))
+ mesc l("Have you seen my brother %s?", any("Enzo", "Ezra"));
+ next;
+ ForgetfulNPC(.name$, CLASS_SCHOLARSHIP);
+ close;
+
+OnInit:
+ .sex = G_FEMALE;
+ .distance = 5;
+ end;
+
+}
+
diff --git a/npc/027-1/enzo.txt b/npc/027-1/enzo.txt
new file mode 100644
index 0000000..7ca4259
--- /dev/null
+++ b/npc/027-1/enzo.txt
@@ -0,0 +1,20 @@
+// TMW2 Script
+// Author:
+// Jesusalva
+// Description:
+// Forgetful
+
+027-1,49,102,0 script Enzo NPC_BLACKWIZARD,{
+ mesn l("%s, the Forgetful", .name$);
+ mesq l("What was I doing before...? I forgot!");
+ next;
+ ForgetfulNPC(.name$, CLASS_PHYSICAL);
+ close;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+
+}
+
diff --git a/npc/027-1/ezra.txt b/npc/027-1/ezra.txt
new file mode 100644
index 0000000..b16a42c
--- /dev/null
+++ b/npc/027-1/ezra.txt
@@ -0,0 +1,23 @@
+// TMW2 Script
+// Author:
+// Jesusalva
+// Description:
+// Forgetful
+
+027-1,135,25,0 script Ezra NPC_BLACKWIZARD,{
+ mesn l("%s, the Forgetful", .name$);
+ mesq l("What was I doing before...? I forgot!");
+ next;
+ ForgetfulNPC(.name$, CLASS_TRICKS);
+
+ mesn l("%s, the Forgetful", .name$);
+ mesq l("Do you know where my brother Enzo is? I forgot that too!");
+ close;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+
+}
+
diff --git a/npc/027-1/laura.txt b/npc/027-1/laura.txt
new file mode 100644
index 0000000..4684764
--- /dev/null
+++ b/npc/027-1/laura.txt
@@ -0,0 +1,395 @@
+// TMW2 Scripts.
+// Author:
+// Jesusalva
+// Description:
+// Magic School special class
+
+027-1,117,131,0 script Laura NPC_FEMALE,{
+ if (MGQUEST && getskilllv(TMW2_SKILLPERMIT) == 2 && MAGIC_LVL >= 3 && ST_TIER >= 1) goto L_T3_S0;
+
+ mesn;
+ mesq l("Hello, and welcome to the Magic Academy.");
+ next;
+ mesn;
+ mesq l("I love living here, but I wish people weren't locked inside the rooms all time.");
+ next;
+ switch (getskilllv(TMW2_SKILLPERMIT)) {
+ case 0:
+ if (MAGIC_LVL >= 1)
+ goto L_Tier1;
+ break;
+ case 1:
+ if (MAGIC_LVL >= 2)
+ goto L_Tier2;
+ break;
+ case 2:
+ if (MAGIC_LVL >= 3)
+ goto L_Tier3;
+ break;
+ case 3:
+ if (MAGIC_LVL >= 4)
+ goto L_Tier4;
+ break;
+ }
+ closeclientdialog;
+ goodbye;
+ close;
+
+////////////////
+/* First Tier */
+////////////////
+L_Tier1:
+ mesn;
+ mesq l("Also, I see you're a newly registered mage. Am I right?");
+ next;
+ if (askyesno() == ASK_NO) {
+ mesn;
+ mesq l("Alright. I wish you good luck in your studies.");
+ close;
+ }
+ mesn;
+ mesq l("Good. Did you knew you could register to the Special Class, in order to get an extra skill point?");
+ next;
+ mesn;
+ mesq l("We only require a small fee of %d %s, or %d %s, or %d %s if you are poor adventurer.",
+ 1, getitemlink(DivineApple),
+ 25, getitemlink(SnakeEgg),
+ 360, getitemlink(MaggotSlime));
+ next;
+ inventoryplace ScholarshipBadge, 1;
+ switch(select(
+ rif(countitem(DivineApple) >= 1, l("I got the apple.")),
+ rif(countitem(SnakeEgg) >= 25, l("I got the eggs.")),
+ rif(countitem(MaggotSlime) >= 360, l("I got the maggots slimes.")),
+ l("I will apply later."))) {
+
+ case 1:
+ delitem DivineApple, 1;
+ getexp $MANA_BLVL*100, $MANA_JLVL*10;
+ getitem ScholarshipBadge, 1; // NOT A BUG
+ break;
+ case 2:
+ delitem SnakeEgg, 25;
+ getexp $MANA_BLVL*100, $MANA_JLVL*10;
+ break;
+ case 3:
+ delitem MaggotSlime, 360;
+ break;
+ default:
+ close;
+ break;
+ }
+ skill TMW2_SKILLPERMIT, 1, 0;
+ getitem ScholarshipBadge, 1;
+ mes "";
+ mesn;
+ mesq l("Many thanks, your help has been invaluable. You now have an extra point, use it wisely.");
+ next;
+ mesn;
+ mesq l("Listen, as you're new here, I'll give you my %s. I won't give it again, understood? This is my personal gratitude. Come again!", getitemlink(ScholarshipBadge));
+ close;
+
+/////////////////
+/* Second Tier */
+/////////////////
+L_Tier2:
+ mesn;
+ mesq l("Maybe you're interested in the Special Class again? An extra magic skill point for a lot of items, what do ya say?");
+ next;
+ if (askyesno() == ASK_NO) {
+ mesn;
+ mesq l("Alright. I wish you good luck in your studies.");
+ close;
+ }
+ mesn;
+ mesq l("Great news! Then please bring me 1 @@, or 200 @@ @@ 20 @@.", getitemlink(DivineApple), getitemlink(SilkCocoon), b(l("and")), getitemlink(ChocolateMouboo));
+ next;
+ switch(select(
+ rif(countitem(DivineApple) >= 1, l("I got the apple.")),
+ rif(countitem(SilkCocoon) >= 200 && countitem(ChocolateMouboo) >= 20, l("I got the silk and chocolate.")),
+ l("I will apply later."))) {
+
+ case 1:
+ delitem DivineApple, 1;
+ break;
+ case 2:
+ delitem SilkCocoon, 200;
+ delitem ChocolateMouboo, 20;
+ break;
+ default:
+ close;
+ break;
+ }
+ skill TMW2_SKILLPERMIT, 2, 0;
+ getexp 30000, 1000; // Level cannot be lower than 35, use 40 as ref.
+ mes "";
+ mesn;
+ mes l("Many thanks, and once again, your help has been invaluable.");
+ mes l("You now have an extra point, use it wisely.");
+ close;
+
+/////////////////
+/* Third Tier */
+/////////////////
+L_Tier3:
+ ST_TIER=1;
+ mesn;
+ mesq l("Maybe you're interested in the Special Class again? An extra magic skill point, but this time in a dangerous journey, what do ya say?");
+ next;
+ if (nard_reputation() < 8) {
+ mesn;
+ mesc l("I advise you to do more quests on Tulimshar and Candor, otherwise, you will fail right at the end."), 1;
+ next;
+ }
+ if (askyesno() == ASK_NO) {
+ mesn;
+ mesq l("Alright. I wish you good luck in your studies.");
+ close;
+ }
+ mesn;
+ mesq l("I will prepare you a potion. But beware, that potion will only last 20 minutes. You should assign some intelligence points to succeed.");
+ next;
+ mesn;
+ mes l("If it expires, you'll need to do another. To bake it I need 1 @@, 10 @@ and an @@.", getitemlink(EverburnPowder), getitemlink(MaggotSlime), getitemlink(EmptyBottle));
+ mesc l("Have Maggot Slimes, Bug Legs, Mauve Herbs and Money, lots of them."), 1;
+ next;
+ select
+ rif(countitem(MaggotSlime) >= 10 && countitem(EverburnPowder) && countitem(EmptyBottle), l("I have everything.")),
+ l("I'm not ready.");
+ mes "";
+ if (@menu == 2) {
+ mesn;
+ mesq l("Yes, as you see, the costs are high. Prepare yourself.");
+ close;
+ }
+
+ if (TUTORIAL && nard_reputation() < 8) {
+ mesn col(l("Tutorial Tom"), 9);
+ mesc l("Unfortunately you're in tutorial mode, so I cannot let you go ahead knowing you'll fail. Please improve your reputation with Nard and then continue.");
+ close;
+ }
+ delitem EmptyBottle, 1;
+ delitem EverburnPowder, 1;
+ delitem MaggotSlime, 10;
+ ST_TIER=2;
+ QUEST_ELEVARTEMPO=gettimetick(2) + (60 * 20);
+ getexp 400, 0;
+ mesn;
+ mesc l("She mix the powder with the slime inside the bottle, and makes some weird mixture.");
+ next;
+ mesn;
+ mesc l("She pours something on it, you're not sure what. And then utters some magic words.");
+ next;
+ // Reset timer, this is the place where it should really happen.
+ QUEST_ELEVARTEMPO=gettimetick(2) + (60 * 20);
+ mesn;
+ mesq l("The potion is baked, and the time is now running! Read as fast as you can, don't miss details!");
+ next;
+ mesn;
+ mesq l("First thing is to get a @@. One from black market won't do, go to Halinarzo!", getitemlink(SunnyCrystal));
+ next;
+ mesn;
+ mesq l("Speak with ##BBarzil##b. Tell him it is for the Magic Academy. HURRY UP!");
+ close;
+
+// Logic handler
+L_T3_S0:
+ if (getskilllv(TMW2_SKILLPERMIT) == 2 && MAGIC_LVL >= 3 && ST_TIER == 1) goto L_Tier3;
+ if (gettimetick(2) > QUEST_ELEVARTEMPO) goto L_T3_Fail;
+
+ if (getskilllv(TMW2_SKILLPERMIT) == 2 && MAGIC_LVL >= 3 && ST_TIER == 2) goto L_T3_S2;
+ if (getskilllv(TMW2_SKILLPERMIT) == 2 && MAGIC_LVL >= 3 && ST_TIER == 3) goto L_T3_S3;
+ if (getskilllv(TMW2_SKILLPERMIT) == 2 && MAGIC_LVL >= 3 && ST_TIER == 4) goto L_T3_S4;
+ if (getskilllv(TMW2_SKILLPERMIT) == 2 && MAGIC_LVL >= 3 && ST_TIER == 5) goto L_T3_S5;
+ if (getskilllv(TMW2_SKILLPERMIT) == 2 && MAGIC_LVL >= 3 && ST_TIER == 6) goto L_T3_S6;
+ if (getskilllv(TMW2_SKILLPERMIT) == 2 && MAGIC_LVL >= 3 && ST_TIER <= 9) goto L_T3_S7;
+ if (getskilllv(TMW2_SKILLPERMIT) == 2 && MAGIC_LVL >= 3 && ST_TIER == 10) goto L_T3_Final;
+ mesc l("Error, error, L_T3_S0 General Error, REPORT ME");
+ close;
+
+L_T3_S2:
+ mesn;
+ mesq l("Hurry up! Bring a @@ from Barzil in Halinarzo!! You only have @@ left!", getitemlink(SunnyCrystal), FuzzyTime(QUEST_ELEVARTEMPO,2,2));
+ close;
+
+L_T3_S3:
+ if (countitem(SunnyCrystal) == 0) {
+ mesn;
+ mesq l("Where's the Sunny Crystal? Hurry up, you only have @@ left!", FuzzyTime(QUEST_ELEVARTEMPO,2,2));
+ }
+ delitem SunnyCrystal, 1;
+ ST_TIER=4;
+ getexp 250, 0;
+ mesn;
+ mesq l("Good, you did it!");
+ next;
+ mesn;
+ mesc l("*chants more words, while the crystal hovers the potion*");
+ next;
+
+L_T3_S4:
+ mesn;
+ mesq l("I will need many Mauve Herbs! Do you have them with you? If you don't have enough, we'll lose everything! You need at most @@!", BaseLevel+40);
+ select
+ rif(countitem(MauveHerb), l("Yes, I have herbs. I assume the risks.")),
+ l("No I don't have herbs. I'll be back.");
+
+ if (@menu == 2)
+ close;
+
+ if (gettimetick(2) > QUEST_ELEVARTEMPO) goto L_T3_Fail;
+ .@req=rand2(BaseLevel-20, BaseLevel+40);
+ // Minimum is 40, max is unknown, defaults to 100
+
+ mesn;
+ mesq l("I need @@ Herbs!", .@req);
+ //next; // If you comment this next, you'll allow players to logout and prevent penalty.
+ mes "";
+
+ if (countitem(MauveHerb) < .@req) goto L_T3_Fail;
+ delitem MauveHerb, .@r;
+ ST_TIER=5;
+ getexp .@r*3, 0;
+ //getitem MagicPotion, 1;
+
+ mesc l("You quickly give her the herbs, and she skillfully mix them on a potion.");
+ next;
+ // You'll get a random amount of time, based on spent herbs
+ // Usually, 10~73 sec, being 73 sec = 1m13s
+ QUEST_ELEVARTEMPO=QUEST_ELEVARTEMPO+rand2(10,.@r-27);
+
+L_T3_S5:
+ mesn;
+ mesq l("Good! Last step! West of Hurnscald, there is a magic fountain.");
+ next;
+ mesn;
+ mesq l("Talk to the Fountain. Pour the potion on it. I advise you to put all your points on int if possible.");
+ next;
+ mesn;
+ mesq l("Hurry up, you'll run out of time in @@!", FuzzyTime(QUEST_ELEVARTEMPO,2,2));
+ close;
+
+L_T3_S6:
+ ST_TIER=7;
+ mesn;
+ mesq l("You did it! You're now on the last stage of this BORING and LONG quest!");
+ next;
+
+L_T3_S7:
+ mesn;
+ mesq l("Jesusaves wrote a grimorie, with ancient secrets of our world.");
+ next;
+ mesn;
+ mesq l("Captain Nard have it. Fetch it with him! Quick, you only have @@ left!", FuzzyTime(QUEST_ELEVARTEMPO,2,2));
+ close;
+
+L_T3_Final:
+ skill TMW2_SKILLPERMIT, 3, 0;
+ getexp 120000, 0; // Yes, 120k experience points. Waw.
+ mesc l(".:: Congratulations! ::."), 2;
+ mesc l("You have completed the Jesusaves Grimorium Quest!"), 2;
+ next;
+ mesn;
+ mesq l("Keep the Grimorie with you. It's a rare book which holds data from all others. The book shall guide your advances!");
+ next;
+ mesn;
+ mesq lg("Yes, courageous and worthy adventurer. You did well!");
+ next;
+ mesn;
+ mesc l("*sigh*");
+ mesq l("Now I can turn in my report to Professor Volrtaw... I should not have stayed behind the classes.");
+ close;
+
+/// Fail handlers
+L_T3_Fail:
+ if (ST_TIER == 3) {
+ if (countitem(SunnyCrystal) > 0) {
+ delitem SunnyCrystal, 1;
+ } else {
+ mesn;
+ mesc l("WARNING. YOU ARE CHEATING THE SUNNY CRYSTAL QUEST."), 1;
+ next;
+ mesn;
+ mesc l("YOU WILL BE PENALIZED WITH 60% OF HEALTH."), 1;
+ mesc l("IF YOU DIE, YOU'LL SUFFER THE EXP PENALTY."), 1;
+ percentheal -60, -100;
+ close;
+ }
+ }
+
+ if (ST_TIER == 10) {
+ if (countitem(JesusalvaGrimorium) > 0) {
+ delitem JesusalvaGrimorium, 1;
+ } else {
+ mesn;
+ mesc l("WARNING. YOU ARE CHEATING THE GRIMORIE QUEST."), 1;
+ next;
+ mesn;
+ mesc l("YOU WILL BE PENALIZED WITH 70% OF HEALTH."), 1;
+ mesc l("IF YOU DIE, YOU'LL SUFFER THE EXP PENALTY."), 1;
+ percentheal -70, -100;
+ close;
+ }
+ }
+
+ mesc l(".:: Mission Failed ::."), 1;
+ mesc l("You ran out of time."), 1;
+ mes "";
+ mes l("You should have gotten here @@.", FuzzyTime(QUEST_ELEVARTEMPO,0,2));
+ ST_TIER=1;
+ close;
+
+L_Tier4:
+ if (!ACADEMIC_RANK) {
+ mesn;
+ mesq l("Oh hello again. This time I need you to be enrolled here, for this, you need to either get a good rank at the Magic Olympics or by contributing to the world's knowledge. Talk to headmaster if you need help.");
+ close;
+ }
+ mesn;
+ mesq l("%s! I see you are a(n) %s here, very good!", strcharinfo(0), academicrank());
+ next;
+ mesn;
+ mesq l("Still interested in extra credit? Now that you're a(n) %s, you can sign this perfectly normal and standard %s, and by helping us out, by helping ME out, you'll gain the extra credit. What do you say? Not a bad deal, right?", academicrank(), b(l("Non Disclosure Agreemeent")));
+ next;
+ mesc l("Sign the non-disclosure agreement?");
+ if (askyesno() == ASK_NO) close;
+ mesn;
+ mesq l("Perfect! So now that you swore secrecy, you can help me! Thing is... there was... a %s!", col(l("murder"), 1));
+ next;
+ mesn;
+ mesq l("You have access to the storehouse now, right? Well, that's where it happened!");
+ next;
+ mesn;
+ mesc l("*sighs*");
+ mesq l("And obviously, Professor Volrtaw assigned me to investigate! Look at me, do I look like an investigator to you? But, he told me I could pick any student to help me! And I choose you!");
+ next;
+ mesn;
+ mesq l("Please be a pal and help me! I'll be in a dire situation if you don't! Besides, you also want the extra credit, so it is a win-win situation!");
+ next;
+ mesn;
+ mesq l("You will find a statue different from the others. It is where the game balance was murdered and bugs added instead! No, not really - this is just a placeholder. Not cool!");
+ // Reward is 550k exp for this arc (investigate, interrogate, etc)
+ // Next T5 arc will give 2 million exp points (find the PoN)
+ // Then there'll be no more arcs nor extra credits
+ // You'll gain the "Summon Princess of Night skill"
+ // And a permanent MP boost. PoN takes 1h to expire
+ // Real effect depends on your decision in Elenium Mines
+ // Sparing the girl will boost PoN considerably.
+ setq1 General_NightInRed, 1;
+ close;
+
+/// Core code
+OnInit:
+ .@npcId = getnpcid(.name$);
+ setunitdata(.@npcId, UDT_HEADTOP, FancyHat);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, SorcererRobe);
+ //setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes);
+ //setunitdata(.@npcId, UDT_WEAPON, JeansShorts);
+ setunitdata(.@npcId, UDT_HAIRSTYLE, any(8,11,20));
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 5);
+
+ .sex=G_FEMALE;
+ .distance=5;
+ end;
+}
+
diff --git a/npc/027-1/statue.txt b/npc/027-1/statue.txt
new file mode 100644
index 0000000..dc21ef3
--- /dev/null
+++ b/npc/027-1/statue.txt
@@ -0,0 +1,26 @@
+// TMW-2 Script
+// Author:
+// Jesusalva
+// Description:
+// These statues are of great honor to whoever have their name written in them!
+
+027-1,57,115,0 script Hero Statue#027-1 NPC_STATUE_ANDREI,{
+
+ mes l("In honor of %s, the greatest hero this world has even seen.", b("Andrei Sakar"));
+ mes "";
+ if ($MOST_HEROIC$ != "") {
+ mes l("In honor of %s, for their great deeds of recent bravery in face of impending doom.", $MOST_HEROIC$);
+ mes "";
+ }
+ mes l("In honor of %s, founder of this academy, whom built this academy WITH HIS OWN HANDS, WITH BLOOD SWEAT AND TEARS.", b("Jesusalva"));
+ mes "";
+ mes l("Also in honor of the other two sages, %s and %s. And finally, notable mention for the noble %s, %s and %s, for sponsoring this Academy.", b("Saulc"), b("Crazyfefe"), b("Micksha"), b("omatt"), b(rand_sponsor()));
+
+ close;
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 4;
+ end;
+}
+
diff --git a/npc/027-1/students.txt b/npc/027-1/students.txt
new file mode 100644
index 0000000..cf3e124
--- /dev/null
+++ b/npc/027-1/students.txt
@@ -0,0 +1,45 @@
+// TMW2 Scripts
+// Author:
+// Jesusalva
+// Description:
+// Random NPC (HF = Human Female)
+
+027-1,132,112,0 script Student#A01 NPC_ACADEMY_HF,{
+
+studenttalk();
+close;
+
+OnTimer1000:
+ domovestep();
+ end;
+
+OnInit:
+ initpath "move", 132, 112,
+ "dir", DOWN, 0,
+ "wait", 20, 0,
+ "move", 132, 122,
+ "dir", DOWN, 0,
+ "wait", 20, 0,
+ "dir", UP, 0,
+ "wait", 1, 0,
+ "move", 132, 102,
+ "dir", DOWN, 0,
+ "wait", 20, 0,
+ "dir", LEFT, 0,
+ "wait", 1, 0,
+ "move", 115, 102,
+ "dir", DOWN, 0,
+ "wait", 20, 0,
+ "move", 112, 112,
+ "dir", DOWN, 0,
+ "wait", 20, 0,
+ "dir", RIGHT, 0,
+ "wait", 2, 0;
+
+ initialmove;
+ initnpctimer;
+
+ .sex = G_FEMALE;
+ .distance = 5;
+ end;
+}
diff --git a/npc/027-1/students2.txt b/npc/027-1/students2.txt
new file mode 100644
index 0000000..82357b9
--- /dev/null
+++ b/npc/027-1/students2.txt
@@ -0,0 +1,136 @@
+// TMW2 Scripts
+// Author:
+// jak1
+// Description:
+// Random NPC (HF = Human Female)
+
+027-1,134,121,0 script Student#A02 NPC_ACADEMY_HF,{
+
+studenttalk();
+close;
+
+OnTimer1000:
+ domovestep();
+ end;
+
+OnInit:
+ initpath "wait", 1, 0,
+ "move", 134, 121,
+ "dir", DOWN, 0,
+ "wait", 2, 0,
+ "move", 131, 123,
+ "wait", 2, 0,
+ "move", 124, 121,
+ "wait", 1, 0,
+ "class", NPC_HIDDEN, 0,
+ "wait", 2, 0,
+ "dir", DOWN, 0,
+ "class", NPC_ACADEMY_HF, 0,
+ "wait", 1, 0,
+ "move", 121, 123,
+ "wait", 2, 0,
+ "move", 114, 121,
+ "wait", 1, 0,
+ "class", NPC_HIDDEN, 0,
+ "wait", 2, 0,
+ "dir", DOWN, 0,
+ "class", NPC_ACADEMY_HF, 0,
+ "wait", 1, 0,
+ "move", 111, 123,
+ "wait", 2, 0,
+ "move", 103, 121,
+ "wait", 1, 0,
+ "class", NPC_HIDDEN, 0,
+ "wait", 2, 0,
+ "dir", DOWN, 0,
+ "class", NPC_ACADEMY_HF, 0,
+ "wait", 2, 0,
+ "move", 111, 117,
+ "wait", 2, 0,
+ "move", 104, 111,
+ "wait", 1, 0,
+ "class", NPC_HIDDEN, 0,
+ "wait", 2, 0,
+ "dir", DOWN, 0,
+ "class", NPC_ACADEMY_HF, 0,
+ "wait", 1, 0,
+ "move", 111, 113,
+ "wait", 2, 0,
+ "move", 114, 111,
+ "wait", 1, 0,
+ "class", NPC_HIDDEN, 0,
+ "wait", 2, 0,
+ "dir", DOWN, 0,
+ "class", NPC_ACADEMY_HF, 0,
+ "wait", 1, 0,
+ "move", 121, 113,
+ "wait", 2, 0,
+ "move", 124, 111,
+ "wait", 1, 0,
+ "class", NPC_HIDDEN, 0,
+ "wait", 2, 0,
+ "dir", DOWN, 0,
+ "class", NPC_ACADEMY_HF, 0,
+ "wait", 1, 0,
+ "move", 131, 113,
+ "wait", 1, 0,
+ "move", 134, 111,
+ "wait", 1, 0,
+ "class", NPC_HIDDEN, 0,
+ "wait", 2, 0,
+ "dir", DOWN, 0,
+ "class", NPC_ACADEMY_HF, 0,
+ "wait", 1, 0,
+ "move", 131, 103,
+ "wait", 1, 0,
+ "move", 134, 101,
+ "wait", 1, 0,
+ "class", NPC_HIDDEN, 0,
+ "wait", 2, 0,
+ "dir", DOWN, 0,
+ "class", NPC_ACADEMY_HF, 0,
+ "wait", 1, 0,
+ "move", 131, 103,
+ "wait", 1, 0,
+ "move", 124, 101,
+ "wait", 1, 0,
+ "class", NPC_HIDDEN, 0,
+ "wait", 2, 0,
+ "dir", DOWN, 0,
+ "class", NPC_ACADEMY_HF, 0,
+ "wait", 1, 0,
+ "move", 121, 103,
+ "wait", 1, 0,
+ "move", 114, 101,
+ "wait", 1, 0,
+ "class", NPC_HIDDEN, 0,
+ "wait", 2, 0,
+ "dir", DOWN, 0,
+ "class", NPC_ACADEMY_HF, 0,
+ "wait", 1, 0,
+ "move", 111, 103,
+ "wait", 1, 0,
+ "move", 103, 101,
+ "wait", 1, 0,
+ "class", NPC_HIDDEN, 0,
+ "wait", 2, 0,
+ "dir", DOWN, 0,
+ "class", NPC_ACADEMY_HF, 0,
+ "wait", 1, 0,
+ "move", 111, 103,
+ "wait", 1, 0,
+ "move", 111, 113,
+ "wait", 1, 0,
+ "move", 121, 113,
+ "wait", 1, 0,
+ "move", 131, 113,
+ "wait", 1, 0,
+ "move", 131, 123;
+
+ initialmove;
+ initnpctimer;
+
+ .sex = G_FEMALE;
+ .distance = 5;
+ end;
+}
diff --git a/npc/027-1/wizard.txt b/npc/027-1/wizard.txt
new file mode 100644
index 0000000..3551544
--- /dev/null
+++ b/npc/027-1/wizard.txt
@@ -0,0 +1,33 @@
+// TMW2 Script
+// Author:
+// Jesusalva
+// Description:
+// Wizard at Magic Academy Entrance
+
+027-1,44,91,0 script Purple Wizard NPC_PURPLE_WIZARD_F,{
+ mesn;
+ mesq l("Hello. I was assigned to guard the ranged training grounds of the mystic forest.");
+ next;
+ mesn;
+ mesq l("It is a dangerous area, so we only allow students enrolled at the academy to participate.");
+ if (!ACADEMIC_RANK && !is_sponsor())
+ close;
+ next;
+ mesn;
+ mesq l("Do you want to go there? The Red Wizard may be able to offer you training.");
+ next;
+ select
+ l("Not yet."),
+ l("Yes please.");
+ mes "";
+ closeclientdialog;
+ if (@menu == 2)
+ warp "017-0", 249, 228;
+ close;
+
+OnInit:
+ .distance = 3;
+ .sex = G_FEMALE;
+ end;
+}
+