summaryrefslogtreecommitdiff
path: root/npc/018-5
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/018-5
downloadserverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/018-5')
-rw-r--r--npc/018-5/_import.txt9
-rw-r--r--npc/018-5/_mobs.txt12
-rw-r--r--npc/018-5/_warps.txt9
-rw-r--r--npc/018-5/soul_menhir.txt30
-rw-r--r--npc/018-5/storage.txt31
-rw-r--r--npc/018-5/teleporter.txt23
-rw-r--r--npc/018-5/town.txt174
-rw-r--r--npc/018-5/tree.txt66
8 files changed, 354 insertions, 0 deletions
diff --git a/npc/018-5/_import.txt b/npc/018-5/_import.txt
new file mode 100644
index 0000000..f9fc6b3
--- /dev/null
+++ b/npc/018-5/_import.txt
@@ -0,0 +1,9 @@
+// Map 018-5: Lilit Island
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/018-5/_mobs.txt",
+"npc/018-5/_warps.txt",
+"npc/018-5/soul_menhir.txt",
+"npc/018-5/storage.txt",
+"npc/018-5/teleporter.txt",
+"npc/018-5/town.txt",
+"npc/018-5/tree.txt",
diff --git a/npc/018-5/_mobs.txt b/npc/018-5/_mobs.txt
new file mode 100644
index 0000000..af1cd66
--- /dev/null
+++ b/npc/018-5/_mobs.txt
@@ -0,0 +1,12 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 018-5: Lilit Island mobs
+018-5,68,87,25,16 monster Water Fairy 1185,8,20000,40000
+018-5,66,84,25,18 monster Grass Snake 1169,8,10000,10000
+018-5,82,88,41,15 monster Wind Fairy 1185,8,40000,20000
+018-5,99,47,22,14 monster Nature Fairy 1186,6,30000,30000
+018-5,58,146,26,12 monster Mountain Snake 1123,6,120000,0,Shaabty::OnKillSnake
+018-5,58,83,18,22 monster Green Dragon 1195,4,60000,0
+018-5,100,52,21,18 monster Squirrel 1055,6,30000,30000
+018-5,102,88,22,14 monster Vanity Pixie 1215,2,320000,0
+018-5,86,96,18,10 monster Nulity Pixie 1218,1,320000,0
+018-5,60,76,15,17 monster Nulity Pixie 1218,1,240000,0
diff --git a/npc/018-5/_warps.txt b/npc/018-5/_warps.txt
new file mode 100644
index 0000000..833d880
--- /dev/null
+++ b/npc/018-5/_warps.txt
@@ -0,0 +1,9 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 018-5: Lilit Island warps
+018-5,99,82,0 warp #018-5_99_82 0,0,018-5-1,79,67
+018-5,97,68,0 warp #018-5_97_68 0,0,018-5-1,77,53
+018-5,117,56,0 warp #018-5_117_56 0,0,018-5-5,32,45
+018-5,83,48,0 warp #018-5_83_48 0,0,018-5-3,32,46
+018-5,60,146,0 warp #018-5_60_146 0,0,018-5-1,36,98
+018-5,114,54,0 warp #018-5_114_54 0,0,018-5-2,32,46
+018-5,110,46,0 warp #018-5_110_46 0,0,018-5-4,35,43
diff --git a/npc/018-5/soul_menhir.txt b/npc/018-5/soul_menhir.txt
new file mode 100644
index 0000000..37be422
--- /dev/null
+++ b/npc/018-5/soul_menhir.txt
@@ -0,0 +1,30 @@
+// TMW2 scripts.
+// Author:
+// Jesusalva
+// Description:
+// Soul Menhir
+
+018-5,111,52,0 script Soul Menhir#lil NPC_SOUL_MOSS,{
+ mesc l("This is a Soul Menhir, but seems more magical than the others.");
+ select
+ l("Look closer."),
+ l("I wanna return home...");
+ mes "";
+ if (@menu == 2) {
+ closeclientdialog;
+ teleporthome();
+ close;
+ }
+ @map$ = "018-5";
+ setarray @Xs, 110, 111, 112;
+ setarray @Ys, 53, 53, 53;
+ @x = 0;
+ @y = 0;
+ callfunc "SoulMenhir";
+ @map$ = "";
+ cleararray @Xs[0], 0, getarraysize(@Xs);
+ cleararray @Ys[0], 0, getarraysize(@Ys);
+ @x = 0;
+ @y = 0;
+ close;
+}
diff --git a/npc/018-5/storage.txt b/npc/018-5/storage.txt
new file mode 100644
index 0000000..cd843b7
--- /dev/null
+++ b/npc/018-5/storage.txt
@@ -0,0 +1,31 @@
+// TMW-2 Script.
+// Author:
+// Jesusalva
+
+018-5,108,44,0 script Storage Fairy NPC_FAIRY_C,{
+ if (getq(LoFQuest_EPISODE) == 7 &&
+ countitem(SnakeSkin)) {
+ mesc l("Deliver the %s to retrieve Miler's memeto?", getitemlink(SnakeSkin)), 1;
+ if (askyesno() == ASK_NO) {
+ clear;
+ } else {
+ inventoryplace DeathPotion, 1;
+ mesn;
+ mesq l("Now, isn't this lovely? I'll turn it into some pants for %s winter.", (season() == WINTER ? l("this") : l("next")));
+ next;
+ delitem SnakeSkin, 1;
+ getitem DeathPotion, 1;
+ setq LoFQuest_EPISODE, 8, 0;
+ mesn;
+ mesq l("Oh, Miler just prepared a %s for you. You can use it... Or give it to Henry in Nivalis Inn, and whisper \"The Shadow Tortuga won the race against the Panthom Lord\".", getitemlink(DeathPotion));
+ close;
+ }
+ }
+ Banker(.name$, "Lilit", 50000);
+ close;
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 5;
+ end;
+}
diff --git a/npc/018-5/teleporter.txt b/npc/018-5/teleporter.txt
new file mode 100644
index 0000000..8c8d318
--- /dev/null
+++ b/npc/018-5/teleporter.txt
@@ -0,0 +1,23 @@
+// TMW2 Script
+// Authors:
+// Jesusalva
+// Description:
+// Link portals to soul menhirs like the teleporters from old
+// The price is temporary. This feature got in because no ship in Nivalis Port
+// PS. Anise => “Aisen” Anagram
+
+
+018-5,89,45,0 script #WarpGateLilit NPC_NO_SPRITE,1,0,{
+ end;
+
+OnTouch:
+ TeleporterGate(TP_LILIT);
+ close;
+
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 1;
+ end;
+}
+
diff --git a/npc/018-5/town.txt b/npc/018-5/town.txt
new file mode 100644
index 0000000..9b99054
--- /dev/null
+++ b/npc/018-5/town.txt
@@ -0,0 +1,174 @@
+// TMW-2 Script
+// Author:
+// Jesusalva
+// Description:
+// Reset LOCATION$ when entering a town
+
+// .@q = LilitQuest_Access
+// 0 - Access not granted
+// 1 - Access granted
+// 2 - Tree Minigame complete.
+
+// This NPC have a 1x1 touch area.
+// If you logout, then relog, and try to fool it by moving - you'll be caught
+// and slided to the right position.
+018-5,97,69,0 script #LocLilit NPC_HIDDEN,1,1,{
+ end;
+
+OnTouch:
+ .@q=getq(LilitQuest_Access);
+ if (!.@q)
+ goto L_AccessDenied;
+ else
+ EnterTown("Lilit");
+ end;
+
+L_AccessDenied:
+ getmapxy(.@m$, .@x, .@y, 0);
+ // Cheater detected (either coming to or from Lilit), deploy countermeasures at once
+ if (.@x != 97 || .@y != 69) {
+ slide 97, 69;
+ atcommand("@jailfor 3mn "+strcharinfo(0));
+ dispbottom l("Cheater detected! You have a three minutes sentence to fulfill, now.");
+ end;
+ }
+ mesn ("???");
+ mesc l("You should not be here...");
+ next;
+ mesn ("???");
+ mesc l("Leave this place now, defiler...");
+ next;
+ mesc l("How will you respond?!"), 1;
+ select
+ l("Step forward"),
+ l("Step backward");
+ mes "";
+
+ // First option is a bad choice, but the only right choice.
+ if (@menu == 1) {
+ mesn ("???");
+ mesc l("DIE, FILTHY @@!", strtoupper(get_race()));
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ restorecam;
+ percentheal -30, -30;
+ next;
+ } else {
+ closeclientdialog;
+ warp "018-5-1", 77, 53;
+ end;
+ }
+
+ mesn ("???");
+ mesc l("Ho... I see you are a tough one...");
+ next;
+ mesn ("???");
+ mesc l("What brings you here, @@?", get_race());
+ next;
+ mesc l("How will you respond?!"), 1;
+ select
+ l("To help fairies"),
+ l("To explore these lands"),
+ l("To collect snake skin"),
+ l("To do quests"),
+ l("To aid those in need"),
+ l("Because I am awesome!"),
+ l("I don't know");
+ mes "";
+ mesn ("???");
+ mesc l("I don't care for your reasons.");
+ next;
+ mesn l("Yetifly the Mighty");
+ mesq l("I am the Yetifly, guardian of butter and fairies.");
+ next;
+ mesn l("Yetifly the Mighty");
+ mesc l("AND YOU ARE NOT WELCOME HERE!!"), 1;
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ restorecam;
+ next;
+ mesn l("Yetifly the Mighty");
+ mesq l("Unless, of course, if you can prove your strength, challenging me to a duel.");
+ next;
+ mesc l("How will you respond?!"), 1;
+ select
+ l("Bring it on!"),
+ l("Nah, I am a chicken.");
+ mes "";
+ if (@menu == 2) {
+ closeclientdialog;
+ if (rand(1,4) == 3)
+ slide 98, 83;
+ else
+ slide 61, 147;
+ dispbottom l("The Yetifly drops you off the cliff. Good job, noob.");
+ percentheal -10, 0;
+ end;
+ }
+ mesn l("Yetifly the Mighty");
+ mesq l("That wouldn't be fair to you, though. So, you don't need to defeat me.");
+ next;
+ mesn l("Yetifly the Mighty");
+ mesq l("So, you just need to survive for one minute, and I'll consider you are good enough.");
+ mesc l("Word of the wise: You can freely challenge the Yetifly later.", 2);
+ if (getskilllv(NV_TRICKDEAD)) mesc l("WARNING: Fake Death skill is disabled on the fight."), 1;
+ next;
+ mesc l("Click \"Next\" to begin the fight."), 1;
+ next;
+ closeclientdialog;
+
+ // Create instance.
+ .@ID=getcharid(0);
+ @MAP_NAME$="lilt@"+str(.@ID); // Max 4 chars for map name
+ .@INSTID = instance_create("lilt@a"+(.@ID), getcharid(3), IOT_CHAR);
+ .@instanceMapName$ = instance_attachmap("018-5-boss", .@INSTID, 0, @MAP_NAME$);
+
+ // Instance already exists, or something went wrong
+ if (.@instanceMapName$ == "") {
+ mesn l("Yetifly the Mighty");
+ mesc l("*put his glasses on*");
+ next;
+ mesn l("Yetifly the Mighty");
+ mesq l("Whaaaaaat, you are that noob from earlier! Vanish! Be gone! Don't bore me!");
+ next;
+ warp "018-5-1", 77, 53;
+ closeclientdialog;
+ close;
+ }
+
+ // Everything went right, create the instance, it expires after 2 minutes
+ instance_set_timeout(120, 120, .@INSTID);
+ instance_init(.@INSTID);
+
+ YETIFLY_INSTANCE=.@INSTID;
+ addtimer(1000, "#YetiFlyChallengeCtrl::OnWarn1");
+ warp @MAP_NAME$, 31, 41;
+ end;
+}
+
+// Double check
+018-5,99,64,0 script #LilitAccCtrl NPC_HIDDEN,1,1,{
+OnTouch:
+ .@q=getq(LilitQuest_Access);
+ if (!.@q) {
+ slide 97, 69;
+ atcommand("@jailfor 3mn "+strcharinfo(0));
+ dispbottom l("Cheater detected! You have a three minutes sentence to fulfill, now.");
+ }
+ end;
+}
+
diff --git a/npc/018-5/tree.txt b/npc/018-5/tree.txt
new file mode 100644
index 0000000..dc240b5
--- /dev/null
+++ b/npc/018-5/tree.txt
@@ -0,0 +1,66 @@
+// TMW2 scripts.
+// Author:
+// Jesusalva
+// Description:
+// Lilit's access
+
+018-5,100,52,0 script Great Tree NPC_NO_SPRITE,{
+ function gtLocked;
+ function gtFirstTime;
+ function gtAccessOK;
+
+ .@q = getq(LilitQuest_Access);
+
+ if (JobLevel < 40) gtLocked();
+ switch (.@q) {
+ case 2:
+ gtAccessOK(); break;
+ case 1:
+ gtFirstTime(); break;
+ default:
+ gtLocked();
+ }
+ close;
+
+function gtFirstTime {
+ if (getq(LoFQuest_Fairy) >= 3 &&
+ getq(LilitQuest_Shaabty) >= 4 &&
+ getq(LilitQuest_Ivanize) >= 2) {
+ mesn l("Yetifly the Mighty");
+ mesq l("%s... While you don't have the title of %s nor the flower of fae, nor have anything remotely important on your persona...", strcharinfo(0), b(l("Friend of the Fairies")));
+ next;
+ mesn l("Yetifly the Mighty");
+ mesq l("...I cannot fail to notice your deeds. Very well. Under my own authority, I authorize you to climb this holy tree.");
+ next;
+ mesn l("Yetifly the Mighty");
+ mesq l("We shall be waiting for your arrival.");
+ next;
+ closeclientdialog;
+ gtAccessOK();
+ return;
+ }
+ mesn l("Yetifly the Mighty");
+ mesq l("Your persistence is amusing. However, you're yet to acquire the title of %s.", b(l("Friend of the Fairies")));
+ next;
+ mesn l("Yetifly the Mighty");
+ mesq l("Bring me the proof of your devotion, and I shall arrange you an audience with the Queen.");
+ return;
+}
+
+function gtLocked {
+ mesn;
+ mesq l("The door is locked.");
+ close;
+}
+
+function gtAccessOK {
+ warp "018-7", 52, 33;
+ return;
+}
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 1;
+ end;
+}
+