From 0f1ee36794a63479f0f2f7898a968782e0dad768 Mon Sep 17 00:00:00 2001 From: tolelom <98kimsungmin@naver.com> Date: Fri, 20 Mar 2026 11:00:51 +0900 Subject: [PATCH] =?UTF-8?q?Fix:=20=EB=B3=B4=EC=8A=A4=20=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EB=93=9C=20=EC=9E=85=EC=9E=A5=20=EC=8B=A4=ED=8C=A8=20=EC=8B=9C?= =?UTF-8?q?=20=EA=B5=AC=EC=B2=B4=EC=A0=81=20=EC=82=AC=EC=9C=A0=20=EC=A0=84?= =?UTF-8?q?=EB=8B=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit IntoBossRaidPacket에 Reason 필드 추가. 파티 없음, 파티장 아님, API 실패 등 실패 사유를 클라이언트에 전달하여 유저에게 안내. Co-Authored-By: Claude Opus 4.6 (1M context) --- MMOTestServer/MMOserver/Game/GameServer.cs | 6 +++--- MMOTestServer/MMOserver/Packet/PacketBody.cs | 8 ++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/MMOTestServer/MMOserver/Game/GameServer.cs b/MMOTestServer/MMOserver/Game/GameServer.cs index 5fa6e92..c88cfb2 100644 --- a/MMOTestServer/MMOserver/Game/GameServer.cs +++ b/MMOTestServer/MMOserver/Game/GameServer.cs @@ -1269,7 +1269,7 @@ public class GameServer : ServerBase { Log.Warning("[GameServer] INTO_BOSS_RAID 파티 없음 HashKey={Key}", hashKey); SendTo(peer, PacketSerializer.Serialize((ushort)PacketCode.INTO_BOSS_RAID, - new IntoBossRaidPacket { RaidId = packet.RaidId, IsSuccess = false })); + new IntoBossRaidPacket { RaidId = packet.RaidId, IsSuccess = false, Reason = "파티에 속해있지 않습니다." })); return; } @@ -1278,7 +1278,7 @@ public class GameServer : ServerBase { Log.Warning("[GameServer] INTO_BOSS_RAID 파티장 아님 HashKey={Key} LeaderId={LeaderId}", hashKey, party.LeaderId); SendTo(peer, PacketSerializer.Serialize((ushort)PacketCode.INTO_BOSS_RAID, - new IntoBossRaidPacket { RaidId = packet.RaidId, IsSuccess = false })); + new IntoBossRaidPacket { RaidId = packet.RaidId, IsSuccess = false, Reason = "파티장만 보스 레이드를 시작할 수 있습니다." })); return; } @@ -1303,7 +1303,7 @@ public class GameServer : ServerBase { SendTo(peer, PacketSerializer.Serialize((ushort)PacketCode.INTO_BOSS_RAID, - new IntoBossRaidPacket { RaidId = -1, IsSuccess = false })); + new IntoBossRaidPacket { RaidId = -1, IsSuccess = false, Reason = "보스 레이드 방을 배정받지 못했습니다. 잠시 후 다시 시도해주세요." })); Log.Debug("[GameServer] INTO_BOSS_RAID HashKey={Key} PartyId={PartyId} AssignedRaidMapId={RaidId} Failed", hashKey, party.PartyId, -1); diff --git a/MMOTestServer/MMOserver/Packet/PacketBody.cs b/MMOTestServer/MMOserver/Packet/PacketBody.cs index babf7c6..f24c926 100644 --- a/MMOTestServer/MMOserver/Packet/PacketBody.cs +++ b/MMOTestServer/MMOserver/Packet/PacketBody.cs @@ -827,6 +827,14 @@ public class IntoBossRaidPacket get; set; } + + // 실패 사유 (서버 -> 클라, IsSuccess == false 시) + [ProtoMember(5)] + public string Reason + { + get; + set; + } } // PARTY_CHANGE_MAP (클라 -> 서버 전용)