Files
Client/Server/RylServerProject/RylServerLibrary/Network/Packet/PacketStruct/ServerPacket.h
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +09:00

295 lines
6.0 KiB
C

#ifndef _DBAGENT_TO_LOGIN_
#define _DBAGENT_TO_LOGIN_
#include <DB/DBDefine.h>
#include <Network/Packet/PacketBase.h>
#include <Network/Packet/PacketStruct/DataPacket.h>
#pragma pack(1)
// 핑 패킷 ( 클라이언트 -> 서버로 5초마다.. 서버 - 서버간 통신도, 연결하는 쪽에서 Ping을 준다. )
typedef struct PktSyP* LPPktSyP;
struct PktSyP : public PktBase
{
unsigned long m_dwTickTime;
};
// 서비스 로그인 요청 패킷
typedef struct PktSL* LPPktSL;
struct PktSL : public PktBase
{
unsigned long m_dwServerID;
IN_ADDR m_Address;
};
// 서비스 로그인 응답 패킷
typedef struct PktSLAck* LPPktSLAck;
struct PktSLAck : public PktBase
{
enum { PATCH_ADDRESS_LENGTH = 100 };
unsigned __int64 m_dlItemUID;
unsigned long m_dwServerID;
unsigned long m_dwClientVer;
unsigned long m_dwCheckSum;
char m_PatchAddress[PATCH_ADDRESS_LENGTH];
};
// 서비스 버전 업데이트 정보
typedef struct PktSVU* LPPktSVU;
struct PktSVU : public PktBase
{
enum { PATCH_ADDRESS_LENGTH = 100 };
unsigned long m_dwServerID;
IN_ADDR m_ServerAddr;
unsigned long m_dwClientVer;
unsigned long m_dwCheckSum;
char m_PatchAddress[PATCH_ADDRESS_LENGTH];
};
// 채널 업데이트 정보
typedef struct PktSCInfo* LPPktSCInfo;
struct PktSCInfo : public PktBase
{
enum { MAX_CHANNEL_NUM = 5 };
unsigned long m_dwServerID;
unsigned char m_cChannelNum;
unsigned short m_usChannelClientNum[MAX_CHANNEL_NUM];
};
// ---------------------------------------------------------------------------
// 패치 정보 관련 패킷
// 패치 정보 요청 패킷
typedef struct PktSPI* LPPktSPI;
struct PktSPI : public PktBase
{
unsigned long m_dwServerID;
};
// 패치 서버 응답 패킷
typedef struct PktSPIAck* LPPktSPIAck;
struct PktSPIAck : public PktBase
{
enum { PATCH_ADDRESS_LENGTH = 100 };
unsigned long m_dwClientVer;
char m_PatchAddress[PATCH_ADDRESS_LENGTH];
};
// ---------------------------------------------------------------------------
// Zone 관련 패킷
// 서버존 선택
typedef struct PktSZ* LPPktSZ;
struct PktSZ : public PktBase
{
unsigned short m_cChannel;
unsigned char m_cZone;
};
// 서버존 선택 Ack
typedef struct PktSZAck* LPPktSZAck;
struct PktSZAck : public PktBase
{
unsigned long m_dwServerID;
sockaddr_in m_GameServerTCPAddr;
};
// 서버존 이동
typedef struct PktSZMv* LPPktSZMv;
struct PktSZMv : public PktBase
{
POS m_NewPos;
char m_cZone;
char m_cChannel;
};
// 서버존 선택 Ack
typedef struct PktSZMvAck* LPPktSZMvAck;
struct PktSZMvAck : public PktBase
{
enum { MAX_CHANNEL_NUM = 5 };
unsigned short m_wChannelNum[MAX_CHANNEL_NUM];
unsigned char m_cZone;
};
typedef struct PktSZMvD* LPPktSZMvD;
struct PktSZMvD : public PktDD
{
unsigned long m_dwUserID;
char m_cZone;
char m_cChannel;
POS m_NewPos;
};
typedef struct PktSZMvDAck* LPPktSZMvDAck;
struct PktSZMvDAck : public PktDD
{
enum
{
MAX_CHANNEL_NUM = 5
};
enum PktSZMvDAckErr
{
FAIL_INVALID_ZONE = 3,
FAIL_INVALID_CHAR = 5,
FAIL_PERSONNEL_OVER = 6,
FAIL_LIMIT_LEVEL = 7
};
unsigned char m_cZone;
unsigned short m_wChannelNum[MAX_CHANNEL_NUM];
};
// 서버 주소 얻기
typedef struct PktSA* LPPktSA;
struct PktSA : public PktDD
{
unsigned long m_dwUserID; // 유저 아이디
char m_cZone; // 존 번호
char m_cChannel; // 채널 번호
};
// 서버 주소 얻기 Ack
typedef struct PktSAAck* LPPktSAAck;
struct PktSAAck : public PktDD
{
enum PktSAAckErr
{
NO_SERVER_ERR = 0,
SERVER_ERROR = 1,
FAIL_USER_LIMIT = 4
};
unsigned long m_dwServerID;
IN_ADDR m_GameAddress;
};
// ---------------------------------------------------------------------------
// 유저 관련
// 유저 테이블 업데이트
typedef struct PktUUT *LPPktUUT;
struct PktUUT : public PktBase
{
enum UpdateType
{
UpdateUIDTableNone = 0, // 없음
UpdateUIDTableUserLogin = 1, // 유저 로그인
UpdateUIDTableUserLogout = 2, // 유저 로그아웃
UpdateUIDTableUserMove = 3, // 유저 이동
UpdateUIDTableCharLogin = 4, // 캐릭터 로그인
UpdateUIDTableCharLogout = 5, // 캐릭터 로그아웃
UpdateUIDTableCharMove = 6, // 캐릭터 이동
UpdateUIDTableBillingCheck = 7, // 빌링 체크
MAX_UPDATE_TYPE = 8
};
enum Err
{
DISCONNECT_USER = 1
};
enum
{
// edith 2008.03.17 ID,PASS 길이조정
MaxAccountLen = 24,
MaxPasswordLen = 36
};
unsigned char m_cCmd;
char m_strAccount[MaxAccountLen];
// edith 2008.01.15 패스워드 추가작업
char m_strPassword[MaxPasswordLen];
IN_ADDR m_IPAddress;
unsigned long m_dwSessionID;
unsigned long m_dwServerID;
unsigned long m_dwUserID;
unsigned long m_dwCharID;
};
typedef struct PktUUTAck *LPPktUUTAck;
struct PktUUTAck : public PktBase
{
unsigned char m_cCmd;
unsigned long m_dwUserID;
unsigned long m_dwFlag; // Success(=0)
int m_nPlayTime; // 현재 남은 시간 (일, 분)
unsigned long m_dwCRMIndex1; // 피시방 ID(0이면 개인유저)
char m_cstrBillingType; // D, T(N: 무료계정)
};
// 유저 죽이기.
typedef struct PktUK* LPPktUK;
struct PktUK : public PktBase
{
unsigned long m_dwUserID;
unsigned long m_dwCharID;
unsigned long m_dwServerID;
};
// 빌링 타임아웃 공지. (Billing Timeout Notify)
typedef struct PktBTN* LPPktBTN;
struct PktBTN : public PktBase
{
unsigned long m_dwUserID;
unsigned long m_dwCharID;
unsigned long m_dwServerID;
unsigned char m_cRemainMinute; // 남은 분..
unsigned char m_cBillingType; // 'D' 정액제 'T' 정량제
};
// 한게임 통합빌링 경고 메시지
typedef struct PktHanBTN* LPPktHanBTN;
struct PktHanBTN : public PktBase
{
enum
{
MAX_HAN_BTN = 70
};
unsigned long m_dwIP;
unsigned long m_dwUID;
unsigned long m_dwCID;
char m_szAccount[PktUUT::MaxAccountLen];
char m_szMsg[MAX_HAN_BTN];
};
// 한게임 통합빌링 접속 끊기 메시지(계정명 및, IP로)
typedef struct PktHanUserKill* LPPktHanUserKill;
struct PktHanUserKill : public PktBase
{
enum
{
DISCONN_ALL_IP = 0xFFFFFFFF
};
unsigned long m_dwIP;
char m_szAccount[PktUUT::MaxAccountLen];
};
#pragma pack()
#endif