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>
124 lines
3.7 KiB
C++
124 lines
3.7 KiB
C++
#ifndef _CHAR_LOGIN_OUT_PACKET_H_
|
|
#define _CHAR_LOGIN_OUT_PACKET_H_
|
|
|
|
// CharLoginOutPacket.h
|
|
#include <winsock2.h>
|
|
#include <windows.h>
|
|
|
|
#include <DB/DBDefine.h>
|
|
|
|
#include <GameGuardLib/ggsrv.h>
|
|
#include <Network/Packet/PacketBase.h>
|
|
|
|
#include "CharLoginOutPacketStruct.h"
|
|
|
|
// 전방 참조
|
|
class CSession;
|
|
|
|
#pragma pack(1)
|
|
|
|
typedef struct PktDBUpdate* LPPktDBUpdate;
|
|
struct PktDBUpdate : public PktBase
|
|
{
|
|
unsigned __int64 m_dlItemSerial; // 가장 마지막으로 업데이트한 아이템 시리얼
|
|
unsigned long m_dwSessionID; // 세션 ID
|
|
unsigned long m_dwUserID; // 유저 ID
|
|
unsigned long m_dwCharID; // 캐릭터 ID
|
|
unsigned long m_dwRequestKey; // DB요청 키
|
|
|
|
char m_szAccountName[CHAR_INFOST::MAX_ACCOUNT_LEN]; // 접속 계정명
|
|
|
|
IN_ADDR m_Address; // 주소
|
|
|
|
unsigned char m_cAdminLevel; // 운영자 레벨
|
|
|
|
unsigned char m_cAdminFlag;
|
|
|
|
// WORK_LIST 2.4 계정 국적을 게임서버의 캐릭터가 가지도록 구현
|
|
unsigned char m_cAccountNation; // 계정 국적 (추가하면서 패딩값을 삭제했음)
|
|
|
|
unsigned char m_cNameChangeCount; // 이름 바꿀 수 있는 횟수
|
|
|
|
unsigned char m_cGuildWarFlag; // 길드 전쟁 참여 플래그
|
|
unsigned char m_cRealmWarFlag; // 국가 전쟁 참여 플래그
|
|
unsigned char m_cTacticsFlag; // 욥병 플래그.
|
|
|
|
unsigned char m_cRealmPoint; // 국가 전쟁 훈장공헌 포인트.
|
|
|
|
unsigned short m_TypeCode; // 업데이트 타입
|
|
|
|
unsigned short m_usUpdate[DBUpdateData::MAX_UPDATE_DB]; // 업데이트 데이터 크기
|
|
|
|
unsigned int m_PlayTime; // 게임을 연속 몇분이나 했는지 (중국판을 위한 패킷)
|
|
long m_PremiumTime; // 프리미엄 서비스를 위한 정보
|
|
int m_PremiumType; // 프리미엄 서비스를 위한 정보
|
|
};
|
|
|
|
// 캐릭터 로그인 (Char Login)
|
|
typedef struct PktCLi* LPPktCLi;
|
|
struct PktCLi : public PktBase
|
|
{
|
|
unsigned long m_dwUserID;
|
|
unsigned long m_dwCharID;
|
|
unsigned long m_dwSessionID;
|
|
};
|
|
|
|
// 캐릭터 로그인 Ack (1 = 서버 에러, 2 = 데이터 얻기 실패)
|
|
typedef struct PktCLiAck* LPPktCLiAck;
|
|
struct PktCLiAck : public PktBase
|
|
{
|
|
enum { MAX_ADDRESS_LEN = 16 };
|
|
|
|
sockaddr_in m_GameServerUDPAddr; // 더 이상 사용하징 않음 (UDP Removed 2004/09/24)
|
|
sockaddr_in m_ChatServerTCPAddr; // 더 이상 사용하징 않음 (ChatServer Connection Removed 2004/09/24)
|
|
|
|
unsigned long m_dwUID;
|
|
unsigned long m_dwServerID;
|
|
unsigned long m_dwServerTime;
|
|
|
|
bool m_bPeaceMode; // 반전/전투 모드
|
|
bool m_bCheckRelation; // 신청/ 신청 받음 길드 관계 체크
|
|
|
|
unsigned char m_cNameChangeCount; // 이름 변경 가능한 횟수
|
|
|
|
unsigned char m_cAdminFlag; // GM 모델 관련.
|
|
|
|
unsigned char m_cGuildWarFlag; // 길드 전쟁 참여 플래그
|
|
unsigned char m_cRealmWarFlag; // 국가 전쟁 참여 플래그
|
|
unsigned char m_cRealmPoint; // 국가 전쟁 공헌훈장 포인트.
|
|
unsigned char m_cTacticsFlag; // 용병 플레그.
|
|
|
|
unsigned short m_usUpdate[DBUpdateData::MAX_UPDATE_DB];
|
|
|
|
unsigned int m_PlayTime; // 게임을 연속 몇분이나 했는지 (중국판을 위한 패킷)
|
|
long m_PremiumTime; // 프리미엄 서비스를 위한 정보
|
|
int m_PremiumType; // 프리미엄 서비스를 위한 정보
|
|
};
|
|
|
|
typedef struct PktCSAuth* LPPktCSAuth;
|
|
struct PktCSAuth : public PktBase
|
|
{
|
|
unsigned long m_dwCharID; // 캐릭터 아이디
|
|
unsigned long m_AuthCodeType; // 인증코드 타입. 타입에 맞지 않는 값이 있으면 접속 해제. (1혹은 2)
|
|
|
|
unsigned long m_dwAuthCode; // 인증 코드 (게임 가드)
|
|
GG_AUTH_DATA m_AuthCode2; // 인증 코드2 (게임 가드)
|
|
};
|
|
|
|
// 캐릭터 로그아웃 (Char Logout)
|
|
typedef struct PktCLo* LPPktCLo;
|
|
struct PktCLo : public PktBase
|
|
{
|
|
unsigned long m_dwCharID; // 캐릭터 아이디
|
|
};
|
|
|
|
// 캐릭터 로그아웃 (Char Logout)
|
|
typedef struct PktCLoAck* LPPktCLoAck;
|
|
struct PktCLoAck : public PktBase
|
|
{
|
|
unsigned long m_dwCharID; // 캐릭터 아이디
|
|
};
|
|
|
|
#pragma pack()
|
|
|
|
#endif |