summaryrefslogtreecommitdiff
path: root/npc/019-2
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/019-2
downloadserverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/019-2')
-rw-r--r--npc/019-2/_import.txt9
-rw-r--r--npc/019-2/_mobs.txt8
-rw-r--r--npc/019-2/_warps.txt4
-rw-r--r--npc/019-2/angela.txt141
-rw-r--r--npc/019-2/guards.txt165
-rw-r--r--npc/019-2/harry.txt15
-rw-r--r--npc/019-2/ship.txt18
-rw-r--r--npc/019-2/sign.txt23
8 files changed, 383 insertions, 0 deletions
diff --git a/npc/019-2/_import.txt b/npc/019-2/_import.txt
new file mode 100644
index 0000000..a9e9c04
--- /dev/null
+++ b/npc/019-2/_import.txt
@@ -0,0 +1,9 @@
+// Map 019-2: Nivalis Port
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/019-2/_mobs.txt",
+"npc/019-2/_warps.txt",
+"npc/019-2/angela.txt",
+"npc/019-2/guards.txt",
+"npc/019-2/harry.txt",
+"npc/019-2/ship.txt",
+"npc/019-2/sign.txt",
diff --git a/npc/019-2/_mobs.txt b/npc/019-2/_mobs.txt
new file mode 100644
index 0000000..061fe05
--- /dev/null
+++ b/npc/019-2/_mobs.txt
@@ -0,0 +1,8 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 019-2: Nivalis Port mobs
+019-2,60,59,5,2 monster White Slime 1094,2,90000,30000
+019-2,73,53,42,36 monster Fluffy 1022,10,60000,30000
+019-2,97,72,8,37 monster Wind Fairy 1185,1,75000,30000
+019-2,70,104,36,21 monster Iced Fluffy 1041,7,60000,30000
+019-2,72,41,31,26 monster Pollet 1219,4,120000,30000
+019-2,75,35,7,7 monster White Slime 1094,2,90000,30000
diff --git a/npc/019-2/_warps.txt b/npc/019-2/_warps.txt
new file mode 100644
index 0000000..85925ec
--- /dev/null
+++ b/npc/019-2/_warps.txt
@@ -0,0 +1,4 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 019-2: Nivalis Port warps
+019-2,37,55,0 warp #019-2_37_55 0,0,020-1,106,55
+019-2,76,24,0 warp #019-2_76_24 0,0,021-1,212,299
diff --git a/npc/019-2/angela.txt b/npc/019-2/angela.txt
new file mode 100644
index 0000000..0455bda
--- /dev/null
+++ b/npc/019-2/angela.txt
@@ -0,0 +1,141 @@
+// TMW2 scripts.
+// Authors:
+// The Mana World Team
+// Jesusalva
+// Description:
+// Elf, main quest is rescuing Cindy (she's kidnapped by Yetis every once in a while)
+// Once you complete her quest (requires some scheduling which the Yeti King provides),
+// you'll gain some needed Reputation Points to be able to cross Frostia Gates.
+// Note this is counted with other Frostia quests to reduce the toll of entering Frostia
+// (With high Frostia reputations, you get rid of the tax and high honors, but this
+// also raise/blocks Orc Village Entrance. Because if you haven't noticed, there's a
+// delicate equilibrium between Elves and Orcs.)
+//
+// Globally Controled Quest. Sometimes, she's here. Other times, this NPC is
+// disabled and the one inside the house is active. That's done with a walk
+// animation.
+//
+// Related Quests: Nivalis Well, Celestia Quest, Frostia Quest
+// Main Quest: Cindy Quest
+// Reward: Something awesome, probably.
+// Advised Level: Groups of level 80 players.
+//
+// Quest Variable: NivalisQuest_Cindy
+// 0: Quest Not Started
+// 1: Angela assigned the quest
+// 2: Yeti instructions were received
+// 3: Yeti quest complete, received instructions
+// 4: Checkpoint
+// 5: Cindy was rescued!
+//
+// Global Variable: $@CINDY_STATE
+// 0: Status is clean (she'll be kidnapped next interation)
+// %1: Cindy still wasn't rescued
+// %2: A party is fighting currently (the division value is the difficulty level, and affects minimum level)
+// >1500000000: Cindy is safely at home (until this date +%s)
+
+019-2,75,25,0 script Angela#Outside NPC_ELF_F,{
+ if ($@CINDY_STATE > gettimetick(2))
+ goto L_Safe;
+ if (BaseLevel < 60) { hello; end; }
+ if ($@CINDY_STATE % 2 == 1) goto L_Worried;
+ if (getq(NivalisQuest_Cindy) == 0) goto L_Start;
+ mesn;
+ mesq l("Please find my lovely daughter!");
+ if (getq(NivalisQuest_Cindy) == 1 && getq(NivalisQuest_Well) < 2 && @yetiagro) {
+ next;
+ select
+ l("I will, don't worry."),
+ l("She isn't on that cave.");
+ mes "";
+ if (@menu == 2) {
+ mesn;
+ mesq l("Do you have mental issues? I mean, of course there is a secret passage there!");
+ next;
+ mesn;
+ mesq l("I think the switches may open it, but I couldn't flip them.");
+ next;
+ mesn;
+ mesq l("I guess you'll need an Yeti for that, but those on the cave are murderous.");
+ CINDY_PLAYER_STRUCK=true;
+ next;
+ mesn;
+ mesq l("Besides, I'm not an Yeti expert. I don't understand how these creatures think, nor do I care! I only want Cindy back home safely!!");
+ if (TUTORIAL)
+ mesc l("Don't we know any Yeti specialist? Maybe Celestia?");
+ }
+ }
+ close;
+
+L_Safe:
+ mesn;
+ mesq l("Ah, what a wonderful day.");
+ close;
+
+L_Worried:
+ mesn;
+ mesq l("The group of warriors which went into the cave to rescue my precious Cindy still haven't returned... I'm worried with them, too...");
+ close;
+
+L_Start:
+ mesn;
+ mesq l("My daughter! My precious Cindy, why it had to be you?!");
+ next;
+ mesn;
+ mesq l("Please, help my precious! Save her! Oh, my precious Cindy...");
+ next;
+ mesn col(l("Rescuing Cindy Quest"),1);
+ mesc l("You are about to accept a high-risk quest. You cannot complete it alone."), 1;
+ mesc l("Help the distressed woman to save her daughter? ALL PLAYERS are penalized with failures."), 1;
+ select
+ l("[Decline Quest]"),
+ l("[Accept Quest]");
+ mes "";
+ if (@menu == 1) {
+ mesn strcharinfo(0);
+ mesq lg("Sorry 'mam, I forgot courage on my other set of pants. This one doesn't have enough defense for it.");
+ close;
+ }
+ mesn;
+ mesq l("Awful Yetis kidnapped my daughter, and brought her to the cave. Please save her!");
+ next;
+ mesn;
+ mesq l("Ah, but don't distress them if you can't save her! My precious daughter life is more important than anything!");
+ next;
+ mesn;
+ mesq l("I'll reward you and your friends in an appropriate way, but if you endanger her... Oh, my poor Cindy...");
+ next;
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(80);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(80);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(80);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(80);
+ restorecam;
+ mes "";
+ mesc l("[Quest Accepted]"), 1;
+ mesc l("Rescue Cindy from the Ice Labyrinth and the evil Yetis. This is a global, multiplayer quest."), 1;
+ mesc l("Advised party size: From 3 and above");
+ channelmes("#world", strcharinfo(0) + " said to be brave enough to help Angela rescuing her daughter!");
+ setq NivalisQuest_Cindy, 1;
+ close;
+
+
+OnInit:
+ .@npcId = getnpcid(.name$);
+ setunitdata(.@npcId, UDT_HEADTOP, KnitHat);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, TneckSweater);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes);
+ setunitdata(.@npcId, UDT_WEAPON, CottonSkirt);
+ setunitdata(.@npcId, UDT_HAIRSTYLE, any(7,8,9,10,11,12,13,19,20));
+ setunitdata(.@npcId, UDT_HAIRCOLOR, rand(0,20));
+
+ .sex = G_FEMALE;
+ .distance = 5;
+ end;
+}
+
+
+
diff --git a/npc/019-2/guards.txt b/npc/019-2/guards.txt
new file mode 100644
index 0000000..3f7e350
--- /dev/null
+++ b/npc/019-2/guards.txt
@@ -0,0 +1,165 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Protect Nivalis
+// Q_NivalisLibday
+// Day, Score, Temporary Time;
+
+019-2,44,54,0 script Guard#019-2.1 NPC_GUARD1,{
+ .@q=getq(Q_NivalisLibday);
+
+ if ($NIVALIS_LIBDATE) {
+ mesn;
+ mesq l("Nivalis was liberated @@ ago.", FuzzyTime($NIVALIS_LIBDATE));
+ close;
+ } else if ($NLIB_DAY > 0) {
+ if ($NLIB_DAY >= 7) goto L_MK;
+ if (.@q == $NLIB_DAY) goto L_Delay;
+ if (BaseLevel < 30) goto L_Noob;
+ if (BaseLevel >= 30) goto L_Veteran;
+ close;
+ } else if (is_admin()) { // NOTE: This is an override label
+ mesc "Initiate Nivalis Liberation Day?", 1;
+ mesc "Event will last 7 days.", 1;
+ if ($NLIB_SEQDAY)
+ mesc "The event is currently set to happen in "+($NLIB_SEQDAY-gettimeparam(GETTIME_DAYOFMONTH))+" days.";
+ else
+ mesc b("Liberation Day is NOT scheduled to happen."), 1;
+ select
+ "Not yet.",
+ "Yes",
+ "No";
+ if (@menu == 2) {
+ closeclientdialog;
+ goto OnNLibStart;
+ }
+ close;
+ } else {
+ legiontalk; end;
+ }
+ end;
+
+OnNLibStart:
+ addmapmask "019-3", MASK_MATTACK;
+ $NLIB_DAY=1;
+ $NLIB_HIGHTIME=0;
+ $NLIB_HIGHNAME$="";
+ setmapflagnosave("019-3", "000-1", 22, 22);
+ setmapflagnosave("020-1", "000-1", 22, 22);
+ setmapflagnosave("023-2", "000-1", 22, 22);
+ setmapflag("019-3",mf_bexp,25);
+ setmapflag("020-1",mf_bexp,150);
+ disablenpc "#019-1_70_21";
+ disablenpc "#019-2_37_55";
+ disablenpc "#020-1_70_128";
+ disablenpc "#020-1_107_55";
+ enablenpc "Lightbringer#NLib";
+ kamibroadcast("Nivalis Liberation Day has started.");
+ $NLIB_SEQDAY=false;
+ end;
+
+// Event Selectors
+L_Noob:
+ mesn;
+ mesq l("Hey, you! We need help to get rid from some remaining monsters at Nivalis City.");
+ mesq l("No need to kill the Fluffies, though.");
+ next;
+ mesn;
+ mesq l("Are you up for the challenge?");
+ if (askyesno() == ASK_YES) {
+ // Begin quest. Logout/Death will cause loss of the current day.
+ setq1 Q_NivalisLibday, $NLIB_DAY;
+ @nlib_wave=0;
+ @nlib_time=300; // This makes sure that wave 1 will start.
+ addtimer(5000, "#NLib_Siege::OnLoop");
+ warp "020-1", rand(69,82), rand(78, 91);
+ }
+ close;
+
+L_Veteran:
+ mesn;
+ mesq l("Hey, you! We need help to find the Monster King.");
+ next;
+ mesn;
+ mesq l("Could you head deep in the woods and track him down?");
+ if (askyesno() == ASK_YES) {
+ // Control if you already found the Monster King
+ @QNL3=0;
+ // Begin quest. Logout/Death will cause loss of the current day.
+ setq1 Q_NivalisLibday, $NLIB_DAY;
+ setq3 Q_NivalisLibday, gettimetick(2);
+ warp "019-3", any(128, 129, 130, 131, 132), any(24, 25, 26, 27);
+ doevent("Guard#019-3.1::OnBegin");
+ closedialog;
+ }
+ close;
+
+L_MK:
+ if (gettime(3) != 18 && !$@GM_OVERRIDE) {
+ mesn;
+ mesq l("Today at 18:30 UTC we are going to attack the Monster King by surprise. There will be no delays, so be there.");
+ } else {
+ mesn;
+ mesq l("Do you want to go against the Monster King now? The event will start 18:30 UTC sharply.");
+ if (askyesno() == ASK_YES) {
+ // Control if you already found the Monster King
+ @QNL3=0;
+ // Begin quest. Logout/Death will cause loss of the current day.
+ setq1 Q_NivalisLibday, $NLIB_DAY;
+ setq3 Q_NivalisLibday, gettimetick(2);
+ warp "019-3", any(128, 129, 130, 131, 132), any(24, 25, 26, 27);
+ doevent("Guard#019-3.1::OnAdvise");
+ closedialog;
+ }
+ }
+ close;
+
+// Misc
+L_Delay:
+ mesn;
+ mesq l("You already helped us today. Come back tomorrow.");
+ next;
+ mesc l("Do you want to cross to the other side? You'll need to find the sea to return here if you do."), 1;
+ next;
+ if (askyesno() == ASK_YES)
+ warp "019-1", 70, 30;
+ close;
+
+OnInit:
+ if ($NLIB_DAY)
+ addmapmask "019-3", MASK_MATTACK;
+
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+
+OnHour00:
+ if ($NLIB_DAY)
+ $NLIB_DAY+=1;
+ // Begin Nivalis Liberation Day
+ if ($NLIB_SEQDAY == gettimeparam(GETTIME_DAYOFMONTH))
+ goto OnNLibStart;
+ end;
+
+OnClock1800:
+ if ($NLIB_DAY == 7) {
+ kamibroadcast("All players, Nivalis Liberation Day starting in ##Bhalf hour##b.");
+ kamibroadcast("Failing this event will change the game world FOREVER and in an IRREVERSIBLE way.");
+ }
+ end;
+
+OnClock1825:
+ if ($NLIB_DAY == 7)
+ announce "All players, Nivalis Liberation Day starting in five minutes.", bc_all | bc_npc;
+ end;
+
+OnClock1830:
+ if ($NLIB_DAY != 7)
+ end;
+ setmapflag("023-2",mf_bexp,200);
+ setmapflag("023-2",mf_nopenalty);
+ donpcevent("The Monster King#NLib::OnBegin");
+ end;
+}
+
diff --git a/npc/019-2/harry.txt b/npc/019-2/harry.txt
new file mode 100644
index 0000000..bafc00a
--- /dev/null
+++ b/npc/019-2/harry.txt
@@ -0,0 +1,15 @@
+// TMW2 scripts.
+// Author:
+// Saulc
+// Jesusalva
+// Description:
+// Harry gives the player latest news on the world
+
+019-2,92,116,0 script Harry NPC_JOURNALMAN,{
+ Journalman(.name$);
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+}
diff --git a/npc/019-2/ship.txt b/npc/019-2/ship.txt
new file mode 100644
index 0000000..b51633c
--- /dev/null
+++ b/npc/019-2/ship.txt
@@ -0,0 +1,18 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// This script controls access to Ships, fixing variables.
+
+019-2,120,113,0 script NivalShip NPC_HIDDEN,0,0,{
+
+OnTouch:
+ EnterTown("Nival");
+ goto L_Warp;
+
+L_Warp:
+ warp "016-1@"+LOCATION$, 21, 26;
+ closedialog;
+ close;
+}
+
diff --git a/npc/019-2/sign.txt b/npc/019-2/sign.txt
new file mode 100644
index 0000000..eb663bf
--- /dev/null
+++ b/npc/019-2/sign.txt
@@ -0,0 +1,23 @@
+// TMW2 Script.
+// Author:
+// Jesusalva
+// Description:
+// Random Sign nobody bothers reading.
+// I just got lazy. Maybe I'll sell these two houses for 1000000 GP each... :drolls:
+
+019-2,95,108,0 script Sign#019295108 NPC_NO_SPRITE,{
+ if (!$NIVALIS_LIBDATE) {
+ mesc l("WARNING: Nivalis is currently under siege from the Monster King himself."), 3;
+ next;
+ mesc l("The Alliance Advanced Outposts are closed for maintenance. Group in front of the town entrance!");
+ } else {
+ mesc l("Welcome to Nivalis, the frozen town.");
+ mesc l("The Alliance Advanced Outposts have been abandoned and locked after the Liberation day.");
+ }
+ close;
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 3;
+ end;
+}