diff --git a/ClientTester/EchoClientTester/Packet/PacketBody.cs b/ClientTester/EchoClientTester/Packet/PacketBody.cs index 5adae64..b58cb7d 100644 --- a/ClientTester/EchoClientTester/Packet/PacketBody.cs +++ b/ClientTester/EchoClientTester/Packet/PacketBody.cs @@ -114,6 +114,41 @@ public class PlayerInfo get; set; } + + [ProtoMember(10)] + public int Experience + { + get; + set; + } + + [ProtoMember(11)] + public int NextExp + { + get; + set; + } + + [ProtoMember(12)] + public float AttackPower + { + get; + set; + } + + [ProtoMember(13)] + public float AttackRange + { + get; + set; + } + + [ProtoMember(14)] + public float SprintMultiplier + { + get; + set; + } } // ============================================================ @@ -163,7 +198,7 @@ public class LoadGamePacket } [ProtoMember(3)] - public int MaplId + public int MapId { get; set; @@ -709,6 +744,103 @@ public class ChatPacket set; } } +// ============================================================ +// 맵 이동 +// ============================================================ + +// CHANGE_MAP (클라 -> 서버 & 서버 -> 클라) +[ProtoContract] +public class ChangeMapPacket +{ + [ProtoMember(1)] + public int MapId + { + get; + set; + } + + // 새 맵의 기존 플레이어 목록 (이동한 본인에게 전달) + [ProtoMember(2)] + public List Players + { + get; + set; + } = new List(); + + // 입장(true) / 퇴장(false) - 기존 맵 플레이어들에게 전달 + [ProtoMember(3)] + public bool IsAdd + { + get; + set; + } + + // 이동한 플레이어 정보 - 기존 맵 플레이어들에게 전달 + [ProtoMember(4)] + public PlayerInfo Player + { + get; + set; + } +} + +// INTO_BOSS_RAID +// 클라->서버: RaidId +// 서버->클라: RaidId + IsSuccess (파티장에게 결과 전달) +// 성공 시 파티원 전체에게 CHANGE_MAP 추가 전송 +[ProtoContract] +public class IntoBossRaidPacket +{ + // 입장할 보스 레이드 맵 Id + [ProtoMember(1)] + public int RaidId + { + get; + set; + } + + // 입장 성공 여부 (서버 -> 클라) + [ProtoMember(2)] + public bool IsSuccess + { + get; + set; + } + + [ProtoMember(3)] + public string Token + { + get; + set; + } + + [ProtoMember(4)] + public string Session + { + get; + set; + } +} + +// PARTY_CHANGE_MAP (클라 -> 서버 전용) +[ProtoContract] +public class PartyChangeMapPacket +{ + [ProtoMember(1)] + public int MapId + { + get; + set; + } + + [ProtoMember(2)] + public int PartyId + { + get; + set; + } +} + // ============================================================ // 파티 diff --git a/ClientTester/EchoClientTester/Packet/PacketHeader.cs b/ClientTester/EchoClientTester/Packet/PacketHeader.cs index 982f571..2a1e483 100644 --- a/ClientTester/EchoClientTester/Packet/PacketHeader.cs +++ b/ClientTester/EchoClientTester/Packet/PacketHeader.cs @@ -2,64 +2,73 @@ namespace ClientTester.Packet; public enum PacketCode : ushort { + // 초기 클라이언트 시작시 jwt토큰 받아옴 + ACC_TOKEN = 1, + + // 내 정보 로드 (서버 -> 클라) + LOAD_GAME = 2, + + // 모든 채널 로드 - jwt토큰 검증후 게임에 들어갈지 말지 (내 데이터도 전송) + // (서버 -> 클라) + LOAD_CHANNEL = 3, + + // 나 채널 접속 (클라 -> 서버) + INTO_CHANNEL = 4, + + // 파티 채널 접속 (클라 -> 서버) + INTO_CHANNEL_PARTY = 5, + + // 새로운 유저 채널 접속 (서버 -> 클라) / 유저 채널 나감 (서버 -> 클라) + UPDATE_CHANNEL_USER = 6, + + // 채널 나가기 (클라 -> 서버) + EXIT_CHANNEL = 7, + + // 맵 이동 + CHANGE_MAP = 8, + + // 단체로 맵 이동 + PARTY_CHANGE_MAP = 9, + + // 파티장이 보스 레이드(인스턴스 던전) 입장 신청 (클라 -> 서버) + INTO_BOSS_RAID = 10, + + // 플레이어 위치, 방향 (서버 -> 클라 \ 클라 -> 서버) + TRANSFORM_PLAYER = 11, + + // 플레이어 행동 업데이트 (서버 -> 클라 \ 클라 -> 서버) + ACTION_PLAYER = 12, + + // 플레이어 스테이트 업데이트 (서버 -> 클라 \ 클라 -> 서버) + STATE_PLAYER = 13, + + // NPC 위치, 방향 (서버 -> 클라) + TRANSFORM_NPC = 14, + + // NPC 행동 업데이트 (서버 -> 클라) + ACTION_NPC = 15, + + // NPC 스테이트 업데이트 (서버 -> 클라) + STATE_NPC = 16, + + // 데미지 UI 전달 (서버 -> 클라) + DAMAGE = 17, + + // 파티 생성/삭제, 파티원 추가/제거 (서버 -> 클라) + UPDATE_PARTY = 18, + + // 파티 참가/탈퇴/생성/해산 요청 (클라 -> 서버) + REQUEST_PARTY = 19, + + // 채팅 (클라 -> 서버 & 서버 -> 클라) - GLOBAL / PARTY / WHISPER + CHAT = 20, + // ECHO ECHO = 1000, // DUMMY 클라는 이걸로 jwt토큰 안받음 DUMMY_ACC_TOKEN = 1001, - // 초기 클라이언트 시작시 jwt토큰 받아옴 - ACC_TOKEN = 1, - - // 내 정보 로드 (서버 -> 클라) - LOAD_GAME, - - // 모든 채널 로드 - jwt토큰 검증후 게임에 들어갈지 말지 (내 데이터도 전송) - // (서버 -> 클라) - LOAD_CHANNEL, - - // 나 채널 접속 (클라 -> 서버) - INTO_CHANNEL, - - // 파티 채널 접속 (클라 -> 서버) - INTO_CHANNEL_PARTY, - - // 새로운 유저 채널 접속 (서버 -> 클라) / 유저 채널 나감 (서버 -> 클라) - UPDATE_CHANNEL_USER, - - // 채널 나가기 (클라 -> 서버) - EXIT_CHANNEL, - - // 플레이어 위치, 방향 (서버 -> 클라 \ 클라 -> 서버) - TRANSFORM_PLAYER, - - // 플레이어 행동 업데이트 (서버 -> 클라 \ 클라 -> 서버) - ACTION_PLAYER, - - // 플레이어 스테이트 업데이트 (서버 -> 클라 \ 클라 -> 서버) - STATE_PLAYER, - - // NPC 위치, 방향 (서버 -> 클라) - TRANSFORM_NPC, - - // NPC 행동 업데이트 (서버 -> 클라) - ACTION_NPC, - - // NPC 스테이트 업데이트 (서버 -> 클라) - STATE_NPC, - - // 데미지 UI 전달 (서버 -> 클라) - DAMAGE, - - // 파티 생성/삭제, 파티원 추가/제거 (서버 -> 클라) - UPDATE_PARTY, - - // 파티 참가/탈퇴/생성/해산 요청 (클라 -> 서버) - REQUEST_PARTY, - - // 채팅 (클라 -> 서버 & 서버 -> 클라) - GLOBAL / PARTY / WHISPER - CHAT, - // 요청 실패 응답 (서버 -> 클라) ERROR = 9999 } diff --git a/ClientTester/EchoClientTester/appsettings.json b/ClientTester/EchoClientTester/appsettings.json index f0ce186..8f0f278 100644 --- a/ClientTester/EchoClientTester/appsettings.json +++ b/ClientTester/EchoClientTester/appsettings.json @@ -1,6 +1,6 @@ { - "ServerIp": "localhost", - "ServerPort": 9500, + "ServerIp": "j14a301.p.ssafy.io", + "ServerPort": 40001, "ConnectionKey": "test", "ClientCount": 80 }