From 71d9baa1fa24a33e50da91ae0f5df6181b616f14 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 17 Jun 2019 23:19:23 -0300 Subject: 001-7 Puzzle --- npc/001-7/homunculus.txt | 25 +++++++++++++++++++++---- npc/023-3-1/logic.txt | 26 +++++--------------------- npc/024-16/king.txt | 5 +---- 3 files changed, 27 insertions(+), 29 deletions(-) (limited to 'npc') diff --git a/npc/001-7/homunculus.txt b/npc/001-7/homunculus.txt index 830d6ecf6..3961a29ed 100644 --- a/npc/001-7/homunculus.txt +++ b/npc/001-7/homunculus.txt @@ -39,15 +39,32 @@ OnTouch: percentheal -100, -100; return false; } - if (.@q < 15) { - dispbottom l("It seems to be sealed."); - end; + mesn l("Magically Sealed Gate"); + mesc l("The door is sealed. The riddle says: “I drink, I become, I am. Don't say my name, but say why you know me. For, I am the best in the world.”"); + if (!(.@q & 1)) { + mesc l("You have no idea what that means."), 1; + close; + } else { + mesc l("You know the answer can only be @@.", getitemlink(Coffee)), 3; + } + next; + mesn l("Magically Sealed Gate"); + if (!(.@q & 256)) { + mesc l("Even after breaking the first layer, a second layer keeps active. The first layer gets back to work shortly after. What have I missed or forgotten to do?"), 1; + close; + } else { + if (.@q != 511) + Exception("Invalid quest state: "+.@q, RB_DEFAULT|RB_SPEECH|RB_ISFATAL); + mesc l("Are you sure you want to proceed? You CANNOT COME BACK!"), 1; + if (askyesno() == ASK_NO) + close; } + closeclientdialog; .@mapn$="023-3-1"; + setq1 FrostiaQuest_Homunculus, 2; warp .@mapn$, any(45,46), 79; end; } -// Okay, we're done with basic warps 001-7,50,112,0 script Abandoned Fountain#MKH NPC_NO_SPRITE,{ .@q=getq2(FrostiaQuest_Homunculus); diff --git a/npc/023-3-1/logic.txt b/npc/023-3-1/logic.txt index 62ce7d33e..540c19c91 100644 --- a/npc/023-3-1/logic.txt +++ b/npc/023-3-1/logic.txt @@ -6,8 +6,9 @@ 023-3-1 mapflag zone MMO -023-3,39,59,0 script #Exit02331 NPC_HIDDEN,1,0,{ +023-3-1,45,27,0 script #Finish02331 NPC_HIDDEN,0,0,{ end; + OnTouch: .@n=getq(General_Narrator); .@q=getq2(FrostiaQuest_Homunculus); @@ -17,34 +18,17 @@ OnTouch: percentheal -100, -100; return false; } - if (.@n == 15) { - dispbottom lg("I'm not a coward! I must press forward!"); + if (.@q < 3) { + dispbottom l("The magic power outflowing in the room prevents you from leaving."); end; } - .@mapn$="001-7"; - warp .@mapn$, 59, 45; - end; -} - -023-3-1,45,27,0 script #Finish02331 NPC_HIDDEN,0,0,{ - end; - -OnTouch: - .@n=getq(General_Narrator); - .@q=getq2(FrostiaQuest_Homunculus); - // Cheater Detected - if (.@n < 13) { - warp "Save", 0, 0; - percentheal -100, -100; - return false; - } .@mapn$="023-3-2"; warp .@mapn$, any(39,40), 58; end; } -023-3,45,27,0 script #Leave02331 NPC_HIDDEN,1,0,{ +023-3-1,45,80,0 script #Exit02331 NPC_HIDDEN,1,0,{ end; OnTouch: .@n=getq(General_Narrator); diff --git a/npc/024-16/king.txt b/npc/024-16/king.txt index 3dc1e98a3..2e52ef0eb 100644 --- a/npc/024-16/king.txt +++ b/npc/024-16/king.txt @@ -92,10 +92,7 @@ L_Continue: L_Campaign: .@q=getq(FrostiaQuest_Homunculus); - // Logout/dead/etc. → Destroy the quest state - // Meaning you'll have to start over. To prevent logout-cheats. - if (.@q) - setq FrostiaQuest_Homunculus, .@q, 0, 0; + // We probably should apply you a penalty should you flee... no? // Debug functionality if (is_staff()) { -- cgit v1.2.3-60-g2f50