Files
2022-10-26 12:25:11 +08:00

259 lines
7.6 KiB
C

#pragma once
#include <PacketStruct.h>
#include <SunAuth/AuthProtocol.h>
#include "./../PacketStruct_ServerCommon.h"
#pragma pack(push,1)
// 서버 선택 - GameAgent 검증 및 미리 알림
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, AG_AUTH_NEWCLIENT_TO_GAMEAGENT_SYN)
DWORD m_dwAuthUserID;
DWORD m_dwUserGuid;
#if defined(__CH1305_090303_ACCOUNT_ID_LENGTH_EXTENTION__) || defined(_ACCOUNT_ID_LENGTH_EXTENTION_)
char m_szID[ID_MAX_LEN + 1];
#else
char m_szID[ID_MAX_LEN];
#endif
char m_szClientIP[IP_MAX_LEN];
CHANGE_PCROOM_STATUS m_BillingType; // CHANGE_PCROOM_STATUS::eStatus reuse by _PCBANG_POLICY_CHANGE_POST_EXPIRED
char m_szBillingInfo[INFO_MAX_LEN];
DWORD m_dwReservedValue; // PC방 UID(0 = 일반사용자, 1 ~ PC방)
BYTE m_AuthUserType; //eAUTH_USER_TYPE(0:일반, 1:한게임유저)
BYTE m_serialKey[32];
BYTE m_MD5Key[kCryptStringSize];
BYTE m_userCode[3];
#ifdef _TIRED_CHECK
BYTE m_byAge; // 사용자 연령 (게임 서버에서 피로도 측정으로 사용)
BYTE m_byRealNameAuth; // 실명 인증 사용자 식별 (0 : 비실명 , 1 : 실명)
#endif
#ifdef _JP_0_20100723_GAMECHU_AUTHFLOW_
GAMECHUUSN gamechu_usn_; //게임츠 GUID
#endif
#ifdef _NA_20100307_BETAKEY_SYSTEM
BETAKEY betakey_;
#endif
PACKET_INTERNAL_CLOSE
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, GA_AUTH_NEWCLIENT_TO_GAMEAGENT_ACK)
DWORD m_dwAuthUserID;
BYTE m_byResult;
#if defined(__CH1305_090303_ACCOUNT_ID_LENGTH_EXTENTION__) || defined(_ACCOUNT_ID_LENGTH_EXTENTION_)
char m_szID[ID_MAX_LEN + 1];
#else
char m_szID[ID_MAX_LEN];
#endif
PACKET_INTERNAL_CLOSE
// PC LOGIN, LOGOUT CMD From GameAgent
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, GA_AUTH_PC_LOGIN_CMD)
DWORD m_dwAuthUserID;
#if defined(__CH1305_090303_ACCOUNT_ID_LENGTH_EXTENTION__) || defined(_ACCOUNT_ID_LENGTH_EXTENTION_)
char m_szAccountID[ID_MAX_LEN + 1];
#else
char m_szAccountID[ID_MAX_LEN];
#endif
PACKET_INTERNAL_CLOSE
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, GA_AUTH_PC_LOGOUT_CMD)
DWORD m_dwAuthUserID;
#if defined(__CH1305_090303_ACCOUNT_ID_LENGTH_EXTENTION__) || defined(_ACCOUNT_ID_LENGTH_EXTENTION_)
char m_szAccountID[ID_MAX_LEN + 1];
#else
char m_szAccountID[ID_MAX_LEN];
#endif
char m_szPCName[16];
WORD m_wPCLevel;
BYTE m_byPCClass;
BYTE m_byLogoutType;
PACKET_INTERNAL_CLOSE
// PC LOGOUT ASK To GameAgent
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, AG_AUTH_ASK_PC_LOGOUT_SYN)
DWORD m_dwAuthUserID;
#if defined(__CH1305_090303_ACCOUNT_ID_LENGTH_EXTENTION__) || defined(_ACCOUNT_ID_LENGTH_EXTENTION_)
char m_szID[ID_MAX_LEN + 1];
#else
char m_szID[ID_MAX_LEN];
#endif
DWORD m_dwUserGUID; // SUN -> GUID, The others -> Reserved
RTT_DROP_REASON m_dwLogoutCode;
PACKET_INTERNAL_CLOSE
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, GA_AUTH_ASK_PC_LOGOUT_ACK)
DWORD m_dwAuthUserID;
BYTE m_byResult;
#ifdef _NA000000_091005_EXTENDED_LOG_
char m_CharName[MAX_CHARNAME_LENGTH + 1];
BYTE m_CharClass;
LEVELTYPE m_CharLevel;
#endif
PACKET_INTERNAL_CLOSE
// 빌링 마감을 GmaeAgent에 알림
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, AG_AUTH_BILLING_ALARM_SYN)
DWORD m_dwAuthUserID;
DWORD m_dwRestTerm; // 남은 시간 (sec)
PACKET_INTERNAL_CLOSE
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, GA_AUTH_BILLING_ALARM_ACK)
DWORD m_dwAuthUserID;
BYTE m_byResult; // OK(1)
PACKET_INTERNAL_CLOSE
//==================================================================================================
//_PCBANG_POLICY_CHANGE_POST_EXPIRED
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, AU_AUTH_BILLING_CHANGE_CONTROL_SYN)
AGENTID game_agent_id_; // AuthServer <-> AuthAgent
CHANGE_PCROOM_STATUS status_; //CHANGE_PCROOM_STATUS::eStatus
DWORD pc_room_id_; // AgentServer는 status_와 조합해서 reserved value설정을 변경한다.
DWORD user_key_;
DWORD auth_user_key_;
// Status - eStatus_None | eStatus_PcRoom | eStatus_PcRoomExpired
// pc_room_id - 0 !0 !0
// ResValue in agent 0 pc_room_id 0
PACKET_INTERNAL_CLOSE
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, AU_AUTH_BILLING_CHANGE_CONTROL_ACK)
enum eResult {
eResult_Success,
eResult_Fail, // Unknown fail
eResult_CantFindUser,
};
AGENTID game_agent_id_; // AuthServer <-> AuthAgent
DWORD user_key_;
eResult result_;
PACKET_INTERNAL_CLOSE
//_PCBANG_POLICY_CHANGE_POST_EXPIRED
//==================================================================================================
// PC Name과 UserCount NTF From GameAgent
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, GA_AUTH_PC_NAME_NTF)
DWORD m_dwAuthUserID;
#if defined(__CH1305_090303_ACCOUNT_ID_LENGTH_EXTENTION__) || defined(_ACCOUNT_ID_LENGTH_EXTENTION_)
char m_szAccountID[ID_MAX_LEN + 1];
#else
char m_szAccountID[ID_MAX_LEN];
#endif
char m_szPCName[PC_MAX_LEN];
#ifdef _NA000000_091005_EXTENDED_LOG_
BYTE m_CharClass;
LEVELTYPE m_CharLevel;
#endif
PACKET_INTERNAL_CLOSE
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, GA_AUTH_USER_COUNT_NTF)
WORD m_wUserCount;
PACKET_INTERNAL_CLOSE
#ifdef __NA001334_090420_SERVER_SELECT_FACILITY__
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, AU_AUTH_SERVER_SELECT_SYN)
enum eRequest {
eRequest_QueryStart,//AU_AUTH_SERVER_SELECT_ACK
eRequest_Cancel, //notify
eRequest_Count,
};
AGENTID m_GameAgentID;
DWORD m_AuthUserID;
eRequest m_Request;
PACKET_INTERNAL_CLOSE
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, AU_AUTH_SERVER_SELECT_ACK)
enum eResult {
eResult_Success,
eResult_DefaultFail,
// etc. error result
//eResult_~~
eResult_Count,
};
AGENTID m_GameAgentID;
DWORD m_AuthUserID;
BYTE m_Result;
nsPacket::ReAuthTokenStream m_ReAuthToken;
inline WORD GetSize() const {
if(m_Result == eResult_Success)
return sizeof(*this);
return sizeof(*this) - sizeof(m_ReAuthToken);
}
PACKET_INTERNAL_CLOSE
#endif
//#ifdef __NA000000_SHOP_USERID_50_PASSING_PROC__
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, AU_AUTH_COMMON_QUERY_USER_ID_SYN)
AGENTID game_agent_id_;
BYTE action_type_; //< enum eCHARNAME_QUERY_ACTION_TYPE (assert(eCHARNAME_ACTION_DEFAULT))
BOOLEAN result_;
QueryUserIdInfo user_info_;
inline void Clear() {
game_agent_id_ = 0;
action_type_ = 0;
result_ = 0;
ZeroMemory(&user_info_, sizeof(user_info_));
};
inline WORD GetSize() const {
return sizeof(*this);
}
PACKET_INTERNAL_CLOSE
PACKET_INTERNAL_INHERITED_OPEN(CATEGORY_AUTH, AU_AUTH_COMMON_QUERY_USER_ID_ACK,
MSG_AU_AUTH_COMMON_QUERY_USER_ID_SYN)
inline WORD GetSize() const {
return sizeof(*this);
}
PACKET_INTERNAL_INHERITED_CLOSE
//#endif //__NA000000_SHOP_USERID_50_PASSING_PROC__
// AgentServer -> AuthAgent
// NOTE: f101030.1L, change the specification to accept multi-agent on same ip address
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, AU_AUTH_CONNECTOR_CHANGE_CONFIG_SYN)
uint16_t listen_port_;
//
inline WORD GetSize() const {
return sizeof(*this);
}
PACKET_INTERNAL_CLOSE;
// _NA_002455_20110328_AUTH_HEART_BEAT
// AgentServer -> AuthAgent Heartbeat 전송
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, AU_AUTH_HEART_BEAT_SYN)
inline WORD GetSize() const
{
return sizeof(*this);
}
PACKET_INTERNAL_CLOSE;
// _NA_002455_20110328_AUTH_HEART_BEAT
// AuthAgent -> AgentServer Heartbeat 응답
PACKET_INTERNAL_OPEN(CATEGORY_AUTH, AU_AUTH_HEART_BEAT_ACK)
inline WORD GetSize() const
{
return sizeof(*this);
}
PACKET_INTERNAL_CLOSE;
#pragma pack(pop)