summaryrefslogtreecommitdiff
path: root/npc/019-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/019-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/019-1')
-rw-r--r--npc/019-1/_import.txt6
-rw-r--r--npc/019-1/_mobs.txt7
-rw-r--r--npc/019-1/_warps.txt6
-rw-r--r--npc/019-1/sign.txt21
-rw-r--r--npc/019-1/well.txt169
5 files changed, 209 insertions, 0 deletions
diff --git a/npc/019-1/_import.txt b/npc/019-1/_import.txt
new file mode 100644
index 0000000..0513ece
--- /dev/null
+++ b/npc/019-1/_import.txt
@@ -0,0 +1,6 @@
+// Map 019-1: Snow Field
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/019-1/_mobs.txt",
+"npc/019-1/_warps.txt",
+"npc/019-1/sign.txt",
+"npc/019-1/well.txt",
diff --git a/npc/019-1/_mobs.txt b/npc/019-1/_mobs.txt
new file mode 100644
index 0000000..25c4953
--- /dev/null
+++ b/npc/019-1/_mobs.txt
@@ -0,0 +1,7 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 019-1: Snow Field mobs
+019-1,70,67,52,48 monster Fluffy 1022,50,100000,30000
+019-1,61,73,52,48 monster White Slime 1094,20,100000,30000
+019-1,79,61,52,48 monster Wolvern 1037,12,60000,30000
+019-1,56,60,21,18 monster Santa Slime 1096,2,30000,30000
+019-1,115,52,19,16 monster Pollet 1219,2,200000,30000
diff --git a/npc/019-1/_warps.txt b/npc/019-1/_warps.txt
new file mode 100644
index 0000000..85492a9
--- /dev/null
+++ b/npc/019-1/_warps.txt
@@ -0,0 +1,6 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 019-1: Snow Field warps
+019-1,70,21,0 warp #019-1_70_21 3,0,020-1,70,127
+019-1,61,102,0 warp #019-1_61_102 3,0,019-4,95,28
+019-1,21,70,0 warp #019-1_21_70 0,1,019-6,256,69
+019-1,84,53,0 warp #019-1_84_53 0,0,019-1-1,33,41
diff --git a/npc/019-1/sign.txt b/npc/019-1/sign.txt
new file mode 100644
index 0000000..93599d6
--- /dev/null
+++ b/npc/019-1/sign.txt
@@ -0,0 +1,21 @@
+// TMW2 Script.
+// Author:
+// Jesusalva
+// Description:
+// Random Sign nobody bothers reading.
+
+019-1,67,30,0 script Sign#01916730 NPC_SWORDS_SIGN,{
+ if (!$NIVALIS_LIBDATE) {
+ mesc l("WARNING: Nivalis is currently under siege from the Monster King himself."), 3;
+ next;
+ mesc l("We've built this blockade to prevent this area from being overrun with monsters, but who knows for how long this will last.");
+ } else {
+ mesc l("The city is still under repairs, but town square is safe already."), 1;
+ }
+ close;
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 3;
+ end;
+}
diff --git a/npc/019-1/well.txt b/npc/019-1/well.txt
new file mode 100644
index 0000000..97a3e5d
--- /dev/null
+++ b/npc/019-1/well.txt
@@ -0,0 +1,169 @@
+// TMW2/LOF Script.
+// Author:
+// Jesusalva
+// Description:
+// Well connected to Terranite Cave. This is the water Nivalis townsfolk uses.
+
+019-1,110,101,0 script Well#Nivalis NPC_NO_SPRITE,{
+ // Begin here
+ .@q=getq(NivalisQuest_Well);
+ mesn l("The Self-Serving Ice Well!");
+ mesc l("Hello, my name is Mahid, and this well belongs to me!");
+ mesc l("You are allowed to fill your bottles, but BE SURE TO PAY!");
+ mesc l("Otherwise, ##BYOU'LL DIE.##b Have a nice day!");
+ next;
+ if (.@q == 1) {
+ mesn l("???");
+ mesq l("Hey, is somebody over there?");
+ mes "";
+ }
+
+ menu
+ l("Fill Water Bottles"), L_Bottle,
+ rif(.@q == 2, l("Jump inside!")), L_Reckless,
+ rif(.@q == 1, l("Steal bucket!")), L_Bucket,
+ rif(.@q != 1, l("Throw something inside!")), L_Throw,
+ l("Leave."), -;
+ close;
+
+// Jump to Terranite Cave (requires 55 vitality minimum)
+L_Reckless:
+ closedialog;
+ warp "015-6", 363, 109;
+ dispbottom l("Ouch! That was kinda reckless!");
+ percentheal -150+readparam2(bVit), 0;
+ close;
+
+// Easter Egg
+L_Bucket:
+ mes "";
+ percentheal -rand(10,20), 0;
+ mesn strcharinfo(0);
+ mesq l("Ouch, the bucket BITE me!");
+ close;
+
+// Main Quest
+L_Throw:
+ mes "##B" + l("Drag and drop an item from your inventory.") + "##b";
+
+ .@id = requestitem();
+
+ // If ID is invalid, there's not enough items, it is bound = Cannot bury
+ if (.@id < 1) {
+ mesc l("You give up.");
+ close;
+ }
+ if (countitem(.@id) < 1 || checkbound(.@id) || !getiteminfo(.@id, ITEMINFO_MAXCHANCE)) {
+ if (checkbound(.@id))
+ mesc l("You cannot drop this item!");
+ else if (!getiteminfo(.@id, ITEMINFO_MAXCHANCE))
+ mesc l("This item is too precious, you cannot part with it!");
+ else
+ mesc l("You give up.");
+ close;
+ }
+ // Delete item and spawn it at Terranite Cave (an Angry Yellow Slime might steal it)
+ delitem .@id, 1;
+ makeitem .@id, 1, "015-6", any(362,363), any(110, 112, 114);
+ // Now we check if quest must start
+ if (!.@q)
+ goto L_Quest;
+ // If not, report if it is safe to jump
+ if (readparam2(bVit) < 55)
+ mesc l("The item impact suggests you don't have enough vitality to jump inside."), 1;
+ else if (readparam2(bVit) < 75)
+ mesc l("The item impact suggests jumping inside will leave you badly wounded.");
+ else
+ mesc l("The item impact suggests jumping inside should be safe if you have enough life.");
+ close;
+
+// Quest Node
+L_Quest:
+ mesn l("???");
+ if (getiteminfo(.@id, ITEMINFO_WEIGHT) > 1000)
+ mesq l("Ouch! That's heavy!");
+ else if (getiteminfo(.@id, ITEMINFO_SELLPRICE) < 10)
+ mesq l("What cheap crap is this? It's not worth even 10 GP.");
+ else if (getiteminfo(.@id, ITEMINFO_TYPE) == IT_HEALING)
+ mesq l("Mhm, this looks healthy.");
+ else if (getiteminfo(.@id, ITEMINFO_TYPE) == IT_AMMO)
+ mesq l("Ammo? I prefer power gloves! That is useless for me!");
+ else
+ mesq l("Who is throwing stuff at me?!");
+ next;
+ select
+ l("Who are you?"),
+ l("How did you get down there?"),
+ l("Do you need help?"),
+ menuaction(l("Leave."));
+ mes "";
+ mesn;
+ switch (@menu) {
+ case 1: mesq l("I'll talk about who I am after leaving the well."); break;
+ case 2: mesq l("I don't remember. I guess somebody threw me here!"); break;
+ case 3: mesq l("I certainly can't get out on my own."); break;
+ default: mesq l("..Anyone there?"); close; break;
+ }
+ next;
+ do {
+ select
+ l("I'll call someone to aid you."),
+ l("Is it too deep?"),
+ l("Couldn't you climb the rope?"),
+ menuaction(l("Leave."));
+ mes "";
+ mesn;
+ switch (@menu) {
+ case 1: mesq l("Please do, my friend."); setq NivalisQuest_Well, 1; break;
+ case 2: mesq l("It's over a hundred meters in depth. There is some land here, but I'm afraid of Terranite."); break;
+ case 3: mesq l("I'm not crazy, the bucket is vicious and the rope won't withstand my weight."); break;
+ default: mesq l("..Anyone there?"); close; break;
+ }
+ } while (@menu != 1);
+ close;
+
+// Fill a water bottle
+L_Bottle:
+ mes "";
+ mesc l("Cost: @@ gp per bottle.", .price);
+ input .@count;
+
+ if (!.@count)
+ close;
+
+ .@gp = .@count * .price;
+
+ if (Zeny < .@gp) {
+ mesc l("Not enough money.");
+ close;
+ }
+
+ if (countitem(EmptyBottle) < .@count) {
+ mesc l("Not enough bottles.");
+ close;
+ }
+
+ inventoryplace IcedBottle, .@count, BottleOfWoodlandWater, .@count;
+ delitem EmptyBottle, .@count;
+
+ // Calculate how many iced bottles you'll get
+ .@iced=0;
+ for (.@i=0; .@i < .@count; .@i++) {
+ if (rand2(500) < 33)
+ .@iced++;
+ }
+
+ // Apply the results and have a happy day!
+ Zeny-=.@gp;
+ if (.@iced)
+ getitem IcedBottle, .@iced;
+ getitem BottleOfWoodlandWater, .@count-.@iced;
+ close;
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 3;
+
+ .price=60;
+ end;
+}