summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-12-30 18:31:06 -0300
committerJesusaves <cpntb1@ymail.com>2021-12-30 18:31:06 -0300
commit36d03e27f61e96b5736e7e0b7ffa896631931080 (patch)
treecad32d142cc95b9e774644356e711232e7c91524
parenta636815010c2f28b229ae048db5de1fea1f49c65 (diff)
downloadserverdata-36d03e27f61e96b5736e7e0b7ffa896631931080.tar.gz
serverdata-36d03e27f61e96b5736e7e0b7ffa896631931080.tar.bz2
serverdata-36d03e27f61e96b5736e7e0b7ffa896631931080.tar.xz
serverdata-36d03e27f61e96b5736e7e0b7ffa896631931080.zip
Pirate Treasure Map - Part I
-rw-r--r--db/quest_db.conf4
-rw-r--r--db/re/item_db.conf3
-rw-r--r--npc/015-3/_config.txt11
-rw-r--r--npc/015-3/_import.txt1
-rw-r--r--npc/015-3/arkim.txt86
-rw-r--r--npc/015-8/_import.txt1
-rw-r--r--npc/015-8/logic.txt26
-rw-r--r--npc/018-1/george.txt20
8 files changed, 151 insertions, 1 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf
index 94af84174..79d0e54ec 100644
--- a/db/quest_db.conf
+++ b/db/quest_db.conf
@@ -345,6 +345,10 @@ quest_db: (
Id: 107
Name: "HurnscaldQuest_LOFPass"
},
+{
+ Id: 108
+ Name: "HurnscaldQuest_PirateCave"
+},
// ID 111 to 130: Nivalis Quests
{
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index f0f04191d..dea11da00 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -1981,7 +1981,8 @@ item_db: (
KeepAfterUse: true
Refine: false
Script: <"
- dispbottom ("Error, contact pirate about this! or just blame Saulc");
+ dispbottom ("Illegible. We should ask a pirate about this.");
+ callfunc "compareandsetq", HurnscaldQuest_PirateCave, 0, 1;
">
},
{
diff --git a/npc/015-3/_config.txt b/npc/015-3/_config.txt
new file mode 100644
index 000000000..19625ca23
--- /dev/null
+++ b/npc/015-3/_config.txt
@@ -0,0 +1,11 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 015-3: Butterfly Caves conf
+
+015-3,24,36,0 script #015-3_24_36 NPC_CHEST,{
+ TreasureBox();
+ specialeffect(.dir == 0 ? 24 : 25, AREA, getnpcid()); // closed ? opening : closing
+ close;
+OnInit:
+ .distance=2;
+ end;
+}
diff --git a/npc/015-3/_import.txt b/npc/015-3/_import.txt
index 0b521a5d0..b733b05a3 100644
--- a/npc/015-3/_import.txt
+++ b/npc/015-3/_import.txt
@@ -1,5 +1,6 @@
// Map 015-3: Butterfly Caves
// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/015-3/_config.txt",
"npc/015-3/_mobs.txt",
"npc/015-3/_warps.txt",
"npc/015-3/arkim.txt",
diff --git a/npc/015-3/arkim.txt b/npc/015-3/arkim.txt
index 6087333cc..f39b33dea 100644
--- a/npc/015-3/arkim.txt
+++ b/npc/015-3/arkim.txt
@@ -14,6 +14,9 @@
// Controls your own progress helping Arkim - Your timer
015-3,170,169,0 script Arkim NPC_TERRY,{
+ function pmap_intro;
+ function pmap_wrong;
+ function pmap_right;
mesn;
mesq lg("Hello, young girl...", "Hello, young boy...");
next;
@@ -143,9 +146,92 @@ L_Research:
goto L_Research;
L_Assign:
+ // NOTE: Map will be destroyed after first time, MAKE SURE TO MEMORIZE.
+ // Or you'll need to find ANOTHER copy, but this one won't be burned.
+ if (getq(HurnscaldQuest_PirateCave) >= 2 && countitem(PirateTreasureMap)) {
+ mesc l("Should we ask about the %s before leaving?", getitemlink(PirateTreasureMap));
+ select
+ l("Ask."),
+ l("Don't ask.");
+ mes "";
+ if (@menu == 1) goto L_PirateMap;
+ }
GHQ_Assign(Bat, "Bat");
end;
+L_PirateMap:
+ .@q = getq(HurnscaldQuest_PirateCave);
+ if (.@q == 2) pmap_intro();
+ else if (.@q == 3) pmap_intro();
+ else if (.@q == 4) pmap_wrong();
+ // IMPLICIT FALLTHROUGH
+ if (.@q == 5) pmap_right();
+ close;
+
+function pmap_intro {
+ mesn;
+ mesq l("There's no one who knows Butterfly Caves better than me, child. These are MY caves, after all.");
+ next;
+ mesn;
+ mesc l("%s makes a confused face.", .name$);
+ mesq l("But your silly map must be wrong. These passages do not connect themselves like this, but this should not be an issue, as they're not relevant.");
+ next;
+ mesn;
+ mesq l("To reach this place... You just need to follow the path after the waterfall. Come back to me after that.");
+ compareandsetq HurnscaldQuest_PirateCave, 2, 3;
+ close;
+}
+
+function pmap_wrong {
+ mesn;
+ mesq l("Welcome back, children. So, how was your treasure hunt? Did you manage to find the path?");
+ next;
+ mesn strcharinfo(0);
+ select
+ l("NO!"),
+ l("Not at all!"),
+ l("You barely know these caves."),
+ l("You send me the wrong way.");
+ mes "";
+ mesn;
+ mesq l("Calm down, don't get mad! I was wrong in trusting this map, it is definitely faulty. Lemme see it again...");
+ if (!countitem(PirateTreasureMap)) close; // Last chance...
+ next;
+ mesn;
+ mesc l("%s eyebrow furrows, as he brings the map closer to a torch.", .name$);
+ mesq l("These paths are all wrong! What is the problem with this map?!");
+ next;
+ mesc l("The map starts getting darker with the heat of the flame, and curiously, new shapes starts to form...");
+ next;
+ mesn;
+ mesq l("Aha! So that's what it was! The map was hiding its secrets in drawings made with acid. An old technique... But a very useful one.");
+ next;
+ delitem PirateTreasureMap, 1;
+ setq HurnscaldQuest_PirateCave, 5;
+ getexp 0, 600;
+ mesc l("Suddenly, the map %s!", col(l("burst up in flames"), 1));
+ mesc l("Seems like Arkim held it too close to the flame...");
+ next;
+ mesn;
+ mes "\""+l("I have some good and some bad news for you.");
+ mes l("The good one, is that now I know the right path.");
+ mes l("The bad one, is that you'll have to guide yourself without the map.")+"\"";
+ next;
+ return;
+}
+
+function pmap_right {
+ mes ".:: " + l("Direction for Pirate Caves") + " ::.";
+ mes "1. "+l("Go through the waterfall path.");
+ mes "2. "+l("Use the abandoned passage to the north... Usually, no one uses it.");
+ mes "3. "+l("After that, follow the path until you reach a great chamber...");
+ mes "4. "+l("Then take the middle entrance.");
+ next;
+ mesn;
+ mesq l("I wish you good luck. I remember these caves... They're dangerous. Make sure to be prepared before venturing further.");
+ close;
+}
+
OnInit:
.sex=G_MALE;
.distance=5;
diff --git a/npc/015-8/_import.txt b/npc/015-8/_import.txt
index 27ea8907a..e71682db8 100644
--- a/npc/015-8/_import.txt
+++ b/npc/015-8/_import.txt
@@ -3,5 +3,6 @@
"npc/015-8/015-8_blackbox.txt",
"npc/015-8/_mobs.txt",
"npc/015-8/config.txt",
+"npc/015-8/logic.txt",
"npc/015-8/puzzle.txt",
"npc/015-8/sealedshrine.txt",
diff --git a/npc/015-8/logic.txt b/npc/015-8/logic.txt
new file mode 100644
index 000000000..04d3780be
--- /dev/null
+++ b/npc/015-8/logic.txt
@@ -0,0 +1,26 @@
+// TMW2 scripts.
+// Authors:
+// Diogo_RBG
+// Jesusalva
+// Description:
+// Pirate Caves gateway main logic
+// Adapted from TMW-BR for Moubootaur Legends
+
+015-3,128,161,0 script #0153WG1 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ compareandsetq HurnscaldQuest_PirateCave, 3, 4;
+ slide 166, 38;
+ end;
+}
+
+015-3,132,23,0 script #0153WG2 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ if (getq(HurnscaldQuest_PirateCave) >= 5) {
+ slide 98, 162;
+ }
+ end;
+}
+
+
diff --git a/npc/018-1/george.txt b/npc/018-1/george.txt
index 123089589..235151da9 100644
--- a/npc/018-1/george.txt
+++ b/npc/018-1/george.txt
@@ -49,6 +49,7 @@ L_Main:
rif(.@q == 3, l("Do you need any more help?")), L_RequestTwo,
rif(.@q == 4, l("About the items you asked me to collect...")), L_ProgressTwo,
rif(.@showShovel, l("Could you sell me a treasure map and a shovel?")), L_Shop,
+ rif(getq(HurnscaldQuest_PirateCave), l("About this pirate treasure map...")), L_PirateMap,
l("Nothing I guess"), L_Close;
// Context menu
@@ -198,6 +199,25 @@ L_Shop:
.@showShovel=false;
goto L_Main;
+L_PirateMap:
+ if (getq(HurnscaldQuest_PirateCave) >= 2) {
+ mesn l("George the Pirate");
+ mesq l("I'm not familiar with the Butterfly Caves. Try asking a local, maybe Arkim, they ought know the way.");
+ next;
+ goto L_Close;
+ }
+ mesn l("George the Pirate");
+ mesq l("Arr, that's a fine map ya got there! And these are definitely Hurnscald Caves, yarr!");
+ next;
+ mesn l("George the Pirate");
+ mesq l("However...");
+ next;
+ mesn l("George the Pirate");
+ mesq l("I'm not familiar with the Butterfly Caves. Try asking a local?");
+ setq HurnscaldQuest_PirateCave, 2;
+ next;
+ goto L_Close;
+
L_Close:
sailortalk;
closedialog;