Fix: 보스 레이드 입장 실패 시 구체적 사유 전달
IntoBossRaidPacket에 Reason 필드 추가. 파티 없음, 파티장 아님, API 실패 등 실패 사유를 클라이언트에 전달하여 유저에게 안내. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -827,6 +827,14 @@ public class IntoBossRaidPacket
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
// 실패 사유 (서버 -> 클라, IsSuccess == false 시)
|
||||
[ProtoMember(5)]
|
||||
public string Reason
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
// PARTY_CHANGE_MAP (클라 -> 서버 전용)
|
||||
|
||||
Reference in New Issue
Block a user