From a9dda898b1f0ba07f13a0add608b0273a4a8a247 Mon Sep 17 00:00:00 2001 From: Bradyn Glines Date: Mon, 12 Jan 2026 01:14:13 -0700 Subject: [PATCH 1/3] Enable "Enter Alone" button for tracked quest # Changes ## `Maple2\Maple2.Server.Game\PacketHandlers\QuestHandler.cs` * Added `HandleGoToDungeon` within `Handle` logic. --- Maple2.Server.Game/PacketHandlers/QuestHandler.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Maple2.Server.Game/PacketHandlers/QuestHandler.cs b/Maple2.Server.Game/PacketHandlers/QuestHandler.cs index 32da47721..bfe156762 100644 --- a/Maple2.Server.Game/PacketHandlers/QuestHandler.cs +++ b/Maple2.Server.Game/PacketHandlers/QuestHandler.cs @@ -63,6 +63,9 @@ public override void Handle(GameSession session, IByteReader packet) { case Command.GoToNpc: HandleGoToNpc(session, packet); break; + case Command.GoToDungeon: + HandleGoToDungeon(session, packet); + break; case Command.SkyFortress: HandleSkyFortressTeleport(session); break; @@ -192,6 +195,16 @@ private static void HandleGoToNpc(GameSession session, IByteReader packet) { : FieldEnterPacket.Error(MigrationError.s_move_err_default)); } + private void HandleGoToDungeon(GameSession session, IByteReader packet) { + int questId = packet.ReadInt(); + + if (!session.Quest.TryGetQuest(questId, out Quest? quest)) { + return; + } + + session.Dungeon.CreateDungeonRoom(quest.Metadata.GoToDungeon.MapId, false); + } + private void HandleMapleGuide(GameSession session, IByteReader packet) { int id = packet.ReadInt(); From b1dd1e7be0c7baefd5dcdfd74e0fc145f07b2959 Mon Sep 17 00:00:00 2001 From: Bradyn Glines Date: Mon, 12 Jan 2026 08:25:49 -0700 Subject: [PATCH 2/3] Update function to be static --- Maple2.Server.Game/PacketHandlers/QuestHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Maple2.Server.Game/PacketHandlers/QuestHandler.cs b/Maple2.Server.Game/PacketHandlers/QuestHandler.cs index bfe156762..ea5aeb28a 100644 --- a/Maple2.Server.Game/PacketHandlers/QuestHandler.cs +++ b/Maple2.Server.Game/PacketHandlers/QuestHandler.cs @@ -195,7 +195,7 @@ private static void HandleGoToNpc(GameSession session, IByteReader packet) { : FieldEnterPacket.Error(MigrationError.s_move_err_default)); } - private void HandleGoToDungeon(GameSession session, IByteReader packet) { + private static void HandleGoToDungeon(GameSession session, IByteReader packet) { int questId = packet.ReadInt(); if (!session.Quest.TryGetQuest(questId, out Quest? quest)) { From f8dd1baa2aa3bb620e8ee85b9d6d866c0f40e466 Mon Sep 17 00:00:00 2001 From: Bradyn Glines Date: Mon, 12 Jan 2026 09:48:37 -0700 Subject: [PATCH 3/3] Return if quest isn't started --- Maple2.Server.Game/PacketHandlers/QuestHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Maple2.Server.Game/PacketHandlers/QuestHandler.cs b/Maple2.Server.Game/PacketHandlers/QuestHandler.cs index ea5aeb28a..4a94bcd3f 100644 --- a/Maple2.Server.Game/PacketHandlers/QuestHandler.cs +++ b/Maple2.Server.Game/PacketHandlers/QuestHandler.cs @@ -198,7 +198,7 @@ private static void HandleGoToNpc(GameSession session, IByteReader packet) { private static void HandleGoToDungeon(GameSession session, IByteReader packet) { int questId = packet.ReadInt(); - if (!session.Quest.TryGetQuest(questId, out Quest? quest)) { + if (!session.Quest.TryGetQuest(questId, out Quest? quest) || quest.State != QuestState.Started) { return; }