From 36d03e27f61e96b5736e7e0b7ffa896631931080 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Thu, 30 Dec 2021 18:31:06 -0300 Subject: Pirate Treasure Map - Part I --- db/quest_db.conf | 4 +++ db/re/item_db.conf | 3 +- npc/015-3/_config.txt | 11 +++++++ npc/015-3/_import.txt | 1 + npc/015-3/arkim.txt | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++ npc/015-8/_import.txt | 1 + npc/015-8/logic.txt | 26 ++++++++++++++++ npc/018-1/george.txt | 20 ++++++++++++ 8 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 npc/015-3/_config.txt create mode 100644 npc/015-8/logic.txt 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; -- cgit v1.2.3-60-g2f50