diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
commit | a7c45a192268da2601cef47a4cdba987ae2327ca (patch) | |
tree | c5fb5b97db109fe7106496dd96498c475881046b /npc/018-5 | |
download | serverdata-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.txt | 9 | ||||
-rw-r--r-- | npc/018-5/_mobs.txt | 12 | ||||
-rw-r--r-- | npc/018-5/_warps.txt | 9 | ||||
-rw-r--r-- | npc/018-5/soul_menhir.txt | 30 | ||||
-rw-r--r-- | npc/018-5/storage.txt | 31 | ||||
-rw-r--r-- | npc/018-5/teleporter.txt | 23 | ||||
-rw-r--r-- | npc/018-5/town.txt | 174 | ||||
-rw-r--r-- | npc/018-5/tree.txt | 66 |
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; +} + |