267 lines
10 KiB
C
267 lines
10 KiB
C
|
|
#pragma once
|
|||
|
|
|
|||
|
|
class CDNVillageConnection;
|
|||
|
|
class CDNGameConnection;
|
|||
|
|
|
|||
|
|
class CDNUser
|
|||
|
|
{
|
|||
|
|
private:
|
|||
|
|
UINT m_nSessionID;
|
|||
|
|
UINT m_nAccountDBID;
|
|||
|
|
INT64 m_biCharacterDBID;
|
|||
|
|
WCHAR m_wszAccountName[IDLENMAX];
|
|||
|
|
char m_szAccountName[IDLENMAX]; // <20>Ƿε<C7B7> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> char<61><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѱ<EFBFBD><D1B0><EFBFBD> <20><><EFBFBD><EFBFBD> 081211
|
|||
|
|
WCHAR m_wszCharacterName[NAMELENMAX];
|
|||
|
|
char m_szCharacterName[NAMELENMAX]; // <20>Ƿε<C7B7> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> char<61><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѱ<EFBFBD><D1B0><EFBFBD> <20><><EFBFBD><EFBFBD> 081211
|
|||
|
|
|
|||
|
|
int m_nLoginServerID; //
|
|||
|
|
BYTE m_cPreVillageID; // STATE_CHECKVILLAGE <20>϶<EFBFBD> <20>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD> VillageID ã<><C3A3>
|
|||
|
|
|
|||
|
|
BYTE m_cVillageID; // villageã<65><C3A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
USHORT m_nChannelID; // channel<65><6C> village<67><65> Set~
|
|||
|
|
|
|||
|
|
USHORT m_wGameID; // Game Conã<6E><C3A3><EFBFBD><EFBFBD>
|
|||
|
|
short m_nGameServerIdx; // ThreadIdx<64><78> Game<6D><65> Set~
|
|||
|
|
|
|||
|
|
eUserState m_eUserState; // <20><><EFBFBD>°<EFBFBD> (gameid, villageid <20><><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD> <20><><EFBFBD>°<EFBFBD><C2B0><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ٲ<EFBFBD><D9B2><EFBFBD>)
|
|||
|
|
ULONG m_nCheckStateTick;
|
|||
|
|
|
|||
|
|
char m_szIp[IPLENMAX]; // <20>Ƿε<C7B7><CEB5><EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD> ip 081211
|
|||
|
|
char m_szVirtualIp[IPLENMAX]; // <20>Ƿε<C7B7><CEB5><EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD> ip 081211
|
|||
|
|
bool m_bAdult; // <20><EFBFBD><EEB8A5><EFBFBD><EFBFBD> <20>ƴ<EFBFBD><C6B4><EFBFBD> (<28>Ƿε<C7B7> üũ<C3BC><C5A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
|
|||
|
|
bool m_bPCBang; // <20><><EFBFBD><EFBFBD> pcroom<6F><6D><EFBFBD>ٴ<EFBFBD> pcbang<6E><67> <20><><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
char m_cPCBangGrade;
|
|||
|
|
int m_nAccountLevel;
|
|||
|
|
#if defined(PRE_ADD_DWC)
|
|||
|
|
BYTE m_cCharacterAccountLevel;
|
|||
|
|
UINT m_nDWCTeamID;
|
|||
|
|
std::vector<INT64> m_VecDWCMemberCharacterDBIDList; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
// PvP
|
|||
|
|
UINT m_uiPvPIndex;
|
|||
|
|
USHORT m_usPvPTeam;
|
|||
|
|
UINT m_uiPvPUserState;
|
|||
|
|
|
|||
|
|
BYTE m_cPvPVillageID; // PvP<76><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ƿö<C6BF> <20><><EFBFBD>ƿ<EFBFBD> PvPVillage<67><65><EFBFBD><EFBFBD>
|
|||
|
|
USHORT m_nPvPVillageChannelID;
|
|||
|
|
bool m_bPvPFatigue; // <20>Ƿε<C7B7> <20>Ҹ<EFBFBD> On,Off
|
|||
|
|
#if defined(PRE_ADD_PVP_VILLAGE_ACCESS)
|
|||
|
|
LadderSystem::MatchType::eCode m_MatchType; // <20><><EFBFBD><EFBFBD> <20><>ġŸ<C4A1><C5B8> <20><><EFBFBD><EFBFBD>..
|
|||
|
|
#endif
|
|||
|
|
#ifdef PRE_ADD_COLOSSEUM_BEGINNER
|
|||
|
|
PvPCommon::RoomType::eRoomType m_ePvPChannelType;
|
|||
|
|
#endif //#ifdef PRE_ADD_COLOSSEUM_BEGINNER
|
|||
|
|
|
|||
|
|
#if defined(_CH)
|
|||
|
|
int m_nFCMOnlineMin; // online <20>ð<EFBFBD>(<28><>)
|
|||
|
|
#endif // #if defined(_CH)
|
|||
|
|
|
|||
|
|
#if defined(PRE_ADD_PVP_TOURNAMENT)
|
|||
|
|
BYTE m_cJob;
|
|||
|
|
#endif
|
|||
|
|
#if defined(PRE_ADD_GAMEQUIT_REWARD)
|
|||
|
|
GameQuitReward::RewardType::eType m_eUserGameQuitRewardType;
|
|||
|
|
#endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
|
|||
|
|
public:
|
|||
|
|
UINT m_nNexonUserNo;
|
|||
|
|
#if defined(_KR)
|
|||
|
|
INT64 m_biNexonSessionNo;
|
|||
|
|
|
|||
|
|
char m_cPCBangResult; // eAuthResult
|
|||
|
|
char m_cPCBangAuthorizeType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ip<69><70> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
char m_cPCBangOption; // <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><EFBFBD><DEBD><EFBFBD>
|
|||
|
|
int m_nPCBangArgument; // <20><>Ÿ <20><> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ÷<><C3B7> (ex. <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ᳯ¥ <20><><EFBFBD><EFBFBD>)
|
|||
|
|
bool m_bShutdowned;
|
|||
|
|
char m_cPolicyError;
|
|||
|
|
BYTE m_szMID[MACHINEIDMAX];
|
|||
|
|
DWORD m_dwGRC;
|
|||
|
|
int m_nShutdownTime;
|
|||
|
|
#endif // #if defined(_KR)
|
|||
|
|
|
|||
|
|
#if defined (_JP) && defined (WIN64)
|
|||
|
|
char m_szNHNNetCafeCode[NHNNETCAFECODEMAX]; // NetCafe<66><65> <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> <20>մϴ<D5B4>. <20>ʿ䰡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ƽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>
|
|||
|
|
char m_szNHNProdectCode[NHNNETCAFECODEMAX]; // NetCafe<66><65> Product<63>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>մϴ<D5B4>.
|
|||
|
|
#endif // #if defined (_JP) && defined (WIN64)
|
|||
|
|
|
|||
|
|
#if defined(_KRAZ)
|
|||
|
|
TShutdownData m_ShutdownData;
|
|||
|
|
#endif // #if defined(_KRAZ)
|
|||
|
|
|
|||
|
|
#if defined(PRE_ADD_SENDLOGOUT)
|
|||
|
|
bool m_bSendLogOut;
|
|||
|
|
CSyncLock m_SendLogOutLock;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#ifdef PRE_ADD_STEAM_USERCOUNT
|
|||
|
|
bool m_bSteamUser;
|
|||
|
|
#endif //#ifdef PRE_ADD_STEAM_USERCOUNT
|
|||
|
|
|
|||
|
|
ULONG m_nCreateTick; ///<2F><EFBFBD>Ʈ
|
|||
|
|
int m_nRoomID;
|
|||
|
|
|
|||
|
|
TPARTYID m_VillageCheckPartyID; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. <20><><EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD><CCB5><EFBFBD> <20>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.(üũ<C3BC><C5A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʿ<EFBFBD>)
|
|||
|
|
|
|||
|
|
int m_nRandomSeed;
|
|||
|
|
int m_nMapIndex;
|
|||
|
|
BYTE m_cGateNo;
|
|||
|
|
BYTE m_cGateSelect;
|
|||
|
|
|
|||
|
|
int m_nDungeonClearCount;
|
|||
|
|
|
|||
|
|
#if defined(PRE_ADD_MULTILANGUAGE)
|
|||
|
|
MultiLanguage::SupportLanguage::eSupportLanguage m_eSelectedLanguage;
|
|||
|
|
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
|
|||
|
|
#ifdef PRE_ADD_COMEBACK
|
|||
|
|
bool m_bComebackUser;
|
|||
|
|
#endif //#ifdef PRE_ADD_COMEBACK
|
|||
|
|
#if defined(PRE_ADD_GAMEQUIT_REWARD)
|
|||
|
|
bool m_bReConnectNewbieReward;
|
|||
|
|
void SetUserGameQuitRewardType(GameQuitReward::RewardType::eType eType){ m_eUserGameQuitRewardType = eType;}
|
|||
|
|
GameQuitReward::RewardType::eType GetUserGameQuitRewardType(){ return m_eUserGameQuitRewardType; }
|
|||
|
|
#endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
|
|||
|
|
#if defined(_ID)
|
|||
|
|
bool m_bBlockPcCafe; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PCī<43><C4AB>
|
|||
|
|
char m_szMacAddress[MACADDRLENMAX];
|
|||
|
|
char m_szKey[KREONKEYMAX];
|
|||
|
|
DWORD m_dwKreonCN;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if defined(PRE_ADD_REMOTE_QUEST)
|
|||
|
|
std::vector<int> m_AcceptWaitRemoteQuestList;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
CDNUser(void);
|
|||
|
|
~CDNUser(void);
|
|||
|
|
|
|||
|
|
#if defined(PRE_MOD_SELECT_CHAR)
|
|||
|
|
bool InitUser(LOMAAddUser *pPacket, int nServerID);
|
|||
|
|
bool InitUser(GAMAAddUserList *pPacket);
|
|||
|
|
bool InitUser(VIMAAddUserList *pPacket);
|
|||
|
|
#else // #if defined(PRE_MOD_SELECT_CHAR)
|
|||
|
|
void PreInit(int nServerID, UINT nAccountDBID, int nAccountLevel, const char * pszIP);
|
|||
|
|
void Init(UINT nAccountDBID, UINT nSessionID, INT64 biCharacterDBID, WCHAR *pwszCharacterName, WCHAR *pwszAccountName, USHORT nChannelID, bool bAdult, char *pszIp, char *pszVirtualIp);
|
|||
|
|
#endif // #if defined(PRE_MOD_SELECT_CHAR)
|
|||
|
|
|
|||
|
|
bool SetCheckVillageInfo(BYTE cVillageID, USHORT nChannelID);
|
|||
|
|
bool SetCheckGameInfo(USHORT nGameID, short nServerIdx);
|
|||
|
|
bool SetVillageInfo(BYTE cVillageID, USHORT nChannelID, bool bForce);
|
|||
|
|
bool SetGameInfo(USHORT nGameID, USHORT nServerIdx, bool bForce);
|
|||
|
|
void SetCheckReconnectLogin();
|
|||
|
|
|
|||
|
|
CDNVillageConnection* GetCurrentVillageConnection();
|
|||
|
|
CDNGameConnection* GetCurrentGameConnection();
|
|||
|
|
|
|||
|
|
#if defined(_CH) && defined(_FINAL_BUILD)
|
|||
|
|
void FCMIDOnline();
|
|||
|
|
void FCMIDOffline();
|
|||
|
|
|
|||
|
|
void SetFCMOnlineMin(int nOnlineMin); // online <20>ð<EFBFBD>(<28><>)
|
|||
|
|
inline int GetFCMOnlineMin() { return m_nFCMOnlineMin; }
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
void SetSessionID(UINT nSessionID) { m_nSessionID = nSessionID; }
|
|||
|
|
UINT GetSessionID() { return m_nSessionID; }
|
|||
|
|
void SetAccountDBID(UINT nAccountDBID) { m_nAccountDBID = nAccountDBID; }
|
|||
|
|
UINT GetAccountDBID() { return m_nAccountDBID; }
|
|||
|
|
void SetCharacterDBID(INT64 biCharacterDBID) { m_biCharacterDBID = biCharacterDBID; }
|
|||
|
|
INT64 GetCharacterDBID() { return m_biCharacterDBID; }
|
|||
|
|
|
|||
|
|
void SetCharacterName(const WCHAR *pwszCharacterName);
|
|||
|
|
WCHAR* GetCharacterName() { return m_wszCharacterName; }
|
|||
|
|
const char *GetChracterNameA() { return m_szCharacterName; }
|
|||
|
|
|
|||
|
|
void SetAccountName(const WCHAR *pwszAccountName);
|
|||
|
|
WCHAR* GetAccountName() { return m_wszAccountName; }
|
|||
|
|
const char* GetAccountNameA() { return m_szAccountName; }
|
|||
|
|
|
|||
|
|
void SetAdult(bool bAdult) { m_bAdult = bAdult; }
|
|||
|
|
bool IsAdult() { return m_bAdult; }
|
|||
|
|
void SetIp(char *pszIp);
|
|||
|
|
char* GetIp() { return m_szIp; }
|
|||
|
|
void SetVirtualIp(char *pszIp);
|
|||
|
|
char* GetVirtualIp() { return m_szVirtualIp; }
|
|||
|
|
void SetMapIndex(int nMapIndex) { m_nMapIndex = nMapIndex; }
|
|||
|
|
int GetMapIndex(){ return m_nMapIndex; }
|
|||
|
|
void SetLoginServerID(int nLoginID) { m_nLoginServerID = nLoginID; }
|
|||
|
|
int GetLoginServerID() { return m_nLoginServerID; }
|
|||
|
|
BYTE GetVillageID() { return m_cVillageID; }
|
|||
|
|
BYTE GetPreVillageID() { return m_cPreVillageID; }
|
|||
|
|
USHORT GetGameID() { return m_wGameID; }
|
|||
|
|
void SetChannelID(USHORT wChannelID) { m_nChannelID = wChannelID; }
|
|||
|
|
USHORT GetChannelID() { return m_nChannelID; }
|
|||
|
|
USHORT GetGameServerIdx() { return m_nGameServerIdx; }
|
|||
|
|
void SetUserState(eUserState eState) { m_eUserState = eState; }
|
|||
|
|
eUserState GetUserState() { return m_eUserState; }
|
|||
|
|
ULONG GetCheckStateTick() { return m_nCheckStateTick; }
|
|||
|
|
|
|||
|
|
eLocationState GetLocationState();
|
|||
|
|
|
|||
|
|
void SetPCGrade(char cGrade);
|
|||
|
|
void SetPCBang(bool bFlag);
|
|||
|
|
char GetPCBangGrade();
|
|||
|
|
inline bool IsPCBang() { return m_bPCBang; }
|
|||
|
|
inline int GetAccountLevel() { return m_nAccountLevel; }
|
|||
|
|
#if defined(PRE_ADD_DWC)
|
|||
|
|
void SetCharacterAccountLevel(BYTE cAccountLevel) { m_cCharacterAccountLevel = cAccountLevel; }
|
|||
|
|
inline BYTE GetCharacterAccountLevel() { return m_cCharacterAccountLevel; }
|
|||
|
|
UINT GetDWCTeamID(){return m_nDWCTeamID;}
|
|||
|
|
void SetDWCTeamInfo(VIMADWCTeamMemberList *pPacket);
|
|||
|
|
void GetDWCMemberList(std::vector<INT64> &vecMemberList);
|
|||
|
|
bool AddDWCMemberList(INT64 biCharacterDBID);
|
|||
|
|
bool DelDWCMemberList(INT64 biCharacterDBID);
|
|||
|
|
void ResetDWCInfo();
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if defined(_KR)
|
|||
|
|
void SetMachineID(BYTE *pszMID, DWORD dwGRC);
|
|||
|
|
#endif // #if defined(_KR)
|
|||
|
|
#if defined(_KRAZ)
|
|||
|
|
void SetShutdownData(TShutdownData &ShutdownData);
|
|||
|
|
#endif // #if defined(_KRAZ)
|
|||
|
|
// PvP
|
|||
|
|
bool bIsPvPVillage();
|
|||
|
|
bool bIsPvPLobby();
|
|||
|
|
bool bIsPvPGroupCaptain(){ return GetPvPUserState()&PvPCommon::UserState::GroupCaptain ? true : false; }
|
|||
|
|
BYTE GetPvPVillageID(){ return m_cPvPVillageID; }
|
|||
|
|
USHORT GetPvPVillageChannelID(){ return m_nPvPVillageChannelID; }
|
|||
|
|
void SetPvPVillageInfo(){ m_cPvPVillageID=m_cVillageID; m_nPvPVillageChannelID=m_nChannelID; }
|
|||
|
|
void SetPvPVillageInfo( const BYTE cVillageID, const USHORT unChannelID ){ m_cPvPVillageID=cVillageID; m_nPvPVillageChannelID=unChannelID; }
|
|||
|
|
UINT GetPvPIndex(){ return m_uiPvPIndex; }
|
|||
|
|
USHORT GetPvPTeam(){ return m_usPvPTeam; }
|
|||
|
|
UINT GetPvPUserState(){ return m_uiPvPUserState; }
|
|||
|
|
void SetPvPIndex( const UINT uiIndex ){ m_uiPvPIndex = uiIndex; }
|
|||
|
|
void SetPvPTeam( const USHORT usTeam ){ m_usPvPTeam = usTeam; }
|
|||
|
|
void SetPvPUserState( const UINT uiState ){ m_uiPvPUserState = uiState; }
|
|||
|
|
|
|||
|
|
bool bIsObserver(){ return m_usPvPTeam == PvPCommon::Team::Observer; }
|
|||
|
|
|
|||
|
|
int GetDungeonClearCount() {return m_nDungeonClearCount;}
|
|||
|
|
void SetDungeonClearCount(const int nCount) {m_nDungeonClearCount = nCount;}
|
|||
|
|
void SetPvPFatigue(bool bFatigue) { m_bPvPFatigue = bFatigue;};
|
|||
|
|
bool GetPvPFatiue() { return m_bPvPFatigue;};
|
|||
|
|
#if defined(PRE_ADD_PVP_VILLAGE_ACCESS)
|
|||
|
|
void SetLadderMatchType(LadderSystem::MatchType::eCode MatchType) { m_MatchType = MatchType; };
|
|||
|
|
LadderSystem::MatchType::eCode GetLadderMatchType() { return m_MatchType;};
|
|||
|
|
#endif
|
|||
|
|
#ifdef PRE_ADD_COLOSSEUM_BEGINNER
|
|||
|
|
void SetPvPChannelType(BYTE cType) { m_ePvPChannelType = static_cast<PvPCommon::RoomType::eRoomType>(cType); }
|
|||
|
|
PvPCommon::RoomType::eRoomType GetPvPChannelType() { return m_ePvPChannelType; }
|
|||
|
|
#endif //#ifdef PRE_ADD_COLOSSEUM_BEGINNER
|
|||
|
|
|
|||
|
|
#if defined(PRE_ADD_REMOTE_QUEST)
|
|||
|
|
void SetAcceptWaitRemoteQuest(int nAcceptWaitRemoteQuestCount, int *AcceptWaitRemoteQuestList);
|
|||
|
|
void GetAcceptWaitRemoteQuest(int *nAcceptWaitRemoteQuestCount, int *AcceptWaitRemoteQuestList);
|
|||
|
|
#endif
|
|||
|
|
#if defined(PRE_ADD_PVP_TOURNAMENT)
|
|||
|
|
void SetUserJob(BYTE cJob) { m_cJob = cJob; }
|
|||
|
|
BYTE GetUserJob() { return m_cJob; }
|
|||
|
|
#endif
|
|||
|
|
#if defined(PRE_ADD_GAMEQUIT_REWARD)
|
|||
|
|
void SetGameQuitUserReward(GameQuitReward::RewardType::eType eRewardType){ m_eUserGameQuitRewardType = eRewardType; }
|
|||
|
|
GameQuitReward::RewardType::eType GetGameQuitUserReward() { return m_eUserGameQuitRewardType; }
|
|||
|
|
#endif
|
|||
|
|
};
|