Files
Client/Server/RylServerProject/RylServerLibrary/Network/Packet/PacketStruct/ClientToAuthServer.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

326 lines
8.3 KiB
C

#ifndef _CLIENT_TO_AUTH_SERVER_PACKET_H_
#define _CLIENT_TO_AUTH_SERVER_PACKET_H_
#include <DB/DBDefine.h>
#include <Network/Packet/PacketBase.h>
#pragma pack(1)
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 사용자 인증 요청 (Client to AuthServer)
// - 계정 이름
// - 계정 패스워드
// - 클라이언트 버젼
//
// : 사용자 계정으로 로그인하여 유저 아이디와 로그인 가능한 서버 리스트드을 얻는다.
//
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct PktAU* LPPktAU;
struct PktAU : public PktBase
{
enum
{
// edith 2008.03.17 ID,PASS 길이조정
ID_LEN = 24,
PASS_LEN = 36
};
char m_UserAccount[ID_LEN];
char m_UserPassword[PASS_LEN];
unsigned long m_dwSessionID;
unsigned long m_dwClientVer;
unsigned long m_dwCheckSum;
unsigned short m_usFlag;
};
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 일본쪽 사용자 인증 요청 (Client to AuthServer)
//
// : 사용자 계정으로 로그인하여 유저 아이디와 로그인 가능한 서버 리스트드을 얻는다.
//
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct PktJPAU* LPPktJPAU;
struct PktJPAU : public PktBase
{
enum { NAME_LEN = 16 };
char m_szUserAccount[NAME_LEN];
unsigned long m_dwUserID;
unsigned long m_dwSessionID;
unsigned long m_dwClientVer;
unsigned long m_dwCheckSum;
unsigned short m_usFlag;
};
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 사용자 인증 응답 (AuthServer to Client)
// - 유저 아이디
//
// : 사용자 계정으로 로그인하여 유저 아이디를 얻는다.
//
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct PktAUAck* LPPktAUAck;
struct PktAUAck : public PktBase
{
unsigned long m_dwUserID;
unsigned char m_cAgentServerType;
unsigned char m_cFirstLogin;
};
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 유저 로그인 (Client to AuthServer)
// - 유저 아이디
// - 체크섬
// - 명령
//
// : 유저 로그인 후에 캐릭터 셀렉트 관련 정보를 얻어온다.
//
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct PktULi* LPPktULi;
struct PktULi : public PktBase
{
enum LoginType
{
USERLOGIN_FIRST = 0, // 최초 로긴
USERLOGIN_CHAR_SELECT = 1 // 캐릭터 선택화면으로 이동
};
unsigned long m_dwUserID;
unsigned long m_dwCheckSum;
unsigned char m_cLoginType;
};
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 유저 로그인 Ack (AuthServer to Client)
// - 유저 아이디
// - 캐릭터 정보
//
// (1 = 서버 에러, 2 = 데이터 얻기 실패)
//
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct PktULiAck* LPPktULiAck;
struct PktULiAck : public PktBase
{
enum Const
{
MAX_CHAR_VIEW = 5
};
enum PktULiAckErr
{
FAIL_GET_DATA = 2
};
unsigned long m_dwSessionID;
unsigned long m_dwUserID;
CHAR_VIEW m_CharView[MAX_CHAR_VIEW];
sGuildData m_GuildData[MAX_CHAR_VIEW];
unsigned long m_dwTabFlag;
// WORK_LIST 2.1 계정 국적 추가
unsigned char m_cAccountNation; // 계정 국적
time_t m_dwCurrentTime; // 현재 시간
int m_nPlayTime; // BillingType이 정액이나 무료인 경우는 남은 날짜. 정량인 경우는 남은 시간(분)
unsigned short m_usAdminLevel; // 운영자 레벨.
unsigned char m_cBillingType; // D : 정액 T : 정량 N : 무료
unsigned char m_cBillingUser; // 0 : 개인 1 : 피시방
unsigned char m_cLoginType;
};
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 캐릭터 선택 ( Char Select )
// - 유저 아이디
// - 캐릭터 아이디
//
// : 캐릭터 선택 후 해당 캐릭터의 서버의 예약 포인터와 주소를 넘겨 받는다.
//
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct PktCS* LPPktCS;
struct PktCS : public PktBase
{
unsigned long m_dwUserID;
unsigned long m_dwCharID;
};
// 캐릭터 선택 Ack
typedef struct PktCSAck* LPPktCSAck;
struct PktCSAck : public PktBase
{
enum { MAX_CHANNEL_NUM = 5 };
unsigned char m_cZone; // 존
unsigned short m_wChannelNum[MAX_CHANNEL_NUM]; // 채널
};
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 캐릭터 생성 ( Char Create )
// - 유저 아이디
// - 슬롯 번호
// - 캐릭터 생성 데이터
// - 복장 (셔츠, 부츠, 무기)
//
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct PktCC* LPPktCC;
struct PktCC : public PktBase
{
unsigned long m_dwUserID;
unsigned long m_dwSlotNum;
CHAR_CREATE m_CreateChar;
};
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 캐릭터 생성 Ack
// - 캐릭터 아이디
// - 슬롯 번호
// - 캐릭터 데이터
//
// (1 = 서버 에러, 2 = 데이터 생성 실패, 3 = 존재하는 캐릭터 이름, 4 = 비어 있지 않은 슬롯,
// 5 = 적당하지 않은 이름, 6 = 잘못된 생성 데이터)
//
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct PktCCAck* LPPktCCAck;
struct PktCCAck : public PktBase
{
unsigned long m_dwCharID;
unsigned long m_dwSlotNum;
CHAR_VIEW m_CharView;
enum
{
SERVER_ERROR = 1,
FAIL_INSERT_DATA = 2,
EXIST_CHAR_NAME = 3,
EXIST_SLOT = 4,
WRONG_CHAR_NAME = 5,
WRONG_CHAR_DATA = 6,
SLANG_FILTERED = 7,
NULL_SESSION = 8,
VIEW_RELOAD_FAILED = 9,
SUPRESSED_CHAR_CREATE = 10
};
};
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 캐릭터 삭제 ( Char Delete )
// - 유저 아이디
// - 캐릭터 아이디
// - 슬롯 번호
// - 파티 아이디
// - 길드 아이디
//
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct PktCD* LPPktCD;
struct PktCD : public PktBase
{
unsigned long m_dwUserID;
unsigned long m_dwCharID;
unsigned long m_dwSlotNum;
unsigned char m_szPassword[STORE_INFO::MAX_PASS_LEN];
};
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 캐릭터 삭제 Ack
// - 유저 아이디
// - 슬롯 번호
//
// (1 = 서버 에러, 2 = 데이터 삭제 실패)
//
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct PktCDAck* LPPktCDAck;
struct PktCDAck : public PktBase
{
unsigned long m_dwUserID;
unsigned long m_dwSlotNum;
enum
{
SERVER_ERROR = 1,
FAIL_DELETE_DATA = 2,
BLOCKED_DELETE_DATA = 6,
FAIL_PASSWORD = 7
};
};
// WORK_LIST 2.1 계정 국적 추가
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 계정 국적 변경 ( Select Account Nation )
// - 유저 아이디
// - 계정 국적
//
// (1 = 서버 에러, 2 = 설정 실패)
//
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct PktSelectAccountNation* LPPktSelectAccountNation;
struct PktSelectAccountNation : public PktBase
{
unsigned long m_dwUserID;
unsigned char m_cType;
unsigned char m_cAccountNation;
enum eType
{
TYPE_SET = 1, // 값 셋팅
TYPE_CHANGE = 2 // 계정 국적 변경
};
enum { SERVER_ERROR = 1, FAIL_SET_NATION = 2 };
};
// WORK_LIST 2.3 계정 국적 변경 기능 구현
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 계정 국적 변경으로 인한 캐릭터들 결과 정보
// - 유저 아이디
// - CID, GID, Fame
//
// (1 = 서버 에러 )
//
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct PktNationChangeResult* LPPktNationChangeResult;
struct PktNationChangeResult : public PktBase
{
enum
{
MAX_CHAR_VIEW = 5
};
unsigned long m_dwUserID;
unsigned long m_dwGID[ MAX_CHAR_VIEW ];
unsigned long m_dwFame[ MAX_CHAR_VIEW ];
};
#pragma pack()
#endif