48 lines
1 KiB
C++
48 lines
1 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <vector>
|
|
|
|
// 표준 헤더 크기: 2바이트 크기 + 2바이트 ID
|
|
#pragma pack(push, 1)
|
|
struct PacketHeader {
|
|
uint16_t size;
|
|
uint16_t id;
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
// 처리를 쉽게 하기 위한 단순 패킷 래퍼
|
|
struct Packet {
|
|
PacketHeader header;
|
|
// Payload 데이터 (벡터 또는 문자열)
|
|
std::vector<uint8_t> payload;
|
|
};
|
|
|
|
enum class PacketID : uint16_t {
|
|
Ping = 1,
|
|
// 로그인 요청 (PKT_CS_Login)
|
|
CS_Login = 10,
|
|
// 로그인 결과 응답 (PKT_SC_LoginResult)
|
|
SC_LoginResult = 11,
|
|
Chat = 20,
|
|
|
|
// 검 키우기 관련 패킷
|
|
// 강화 요청
|
|
CS_UpgradeSword = 30,
|
|
// 강화 결과 응답
|
|
SC_UpgradeResult = 31,
|
|
// 판매 요청
|
|
CS_SellSword = 35,
|
|
// 판매 결과 응답
|
|
SC_SellResult = 36,
|
|
// 랭킹 조회 요청
|
|
CS_RankingRequest = 40,
|
|
// 랭킹 리스트 응답
|
|
SC_RankingList = 41,
|
|
};
|
|
|
|
// 게임 규칙 관련 상수
|
|
namespace GameConfig {
|
|
const uint32_t MAX_SWORD_LEVEL = 20;
|
|
const uint64_t INITIAL_GOLD = 10000;
|
|
} // namespace GameConfig
|