2024-12-21 10:04:04 +08:00
# pragma once
# include "DNUserItem.h"
# include "DNUserQuest.h"
# include "DNCheatCommand.h"
# include "DNGMCommand.h"
# include "DNSchedule.h"
# include "DNUserSendManager.h"
# include "../../GameCommon/DNNotifierCommon.h"
# include "DnItemCompounder.h"
/*---------------------------------------------------------------------------------------
CDNUserBase
Village : : UserSession <EFBFBD> <EFBFBD> Game : : UserSession <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> κ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̰ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ó <EFBFBD> <EFBFBD>
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ΰ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ° <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƽ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .
Mission , Appellation , Item , Quest <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ŭ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ˾ Ƽ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ~
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
class CDNParty ;
class CDNFriend ;
class CDNIsolate ;
class CDNMissionSystem ;
class CDNEventSystem ;
class CDNAppellation ;
class CDNGesture ;
class CDNRestraint ;
class CDNDBConnection ;
class CDNEffectRepository ;
class CDNTimeEventSystem ;
class CDNCommonVariable ;
# if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
class CReputationSystemRepository ;
# endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
# ifdef _GPK
# include "CryptPacket.h"
class CCryptoKey ;
# endif
# if defined( PRE_ADD_SECONDARY_SKILL )
class CSecondarySkillRepository ;
# endif // #if defined( PRE_ADD_SECONDARY_SKILL )
class CDNUserEventHandler ;
# if defined (PRE_ADD_BESTFRIEND)
class CDNBestFriend ;
# endif
# if defined( PRE_PRIVATECHAT_CHANNEL )
class CDNPrivateChaChannel ;
# endif
# if defined( PRE_ADD_STAMPSYSTEM )
class CDNStampSystem ;
# endif // #if defined( PRE_ADD_STAMPSYSTEM )
class CDNUserBase : public CDNUserSendManager , public CDNSchedule
{
public :
enum eTick
{
eTickNpcTalk = 0 , // CS_NPCTALK <20> <> û<EFBFBD> <C3BB> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ŵ
eTickCnt ,
} ;
enum eCheckPapering
{
eChatPapering = 0 ,
eGesturePapering ,
eCheckPaperingAmount = 2 ,
} ;
// <20> <> Ŷ<EFBFBD> <C5B6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ѹ<EFBFBD> <D1B9> <EFBFBD> Copy <20> ϱ <EFBFBD> <20> <> <EFBFBD> ؼ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ȹ<EFBFBD> <C8B9> <EFBFBD> .
struct TPvPLadderScoreInfoByJobServer
{
TPvPLadderScoreInfoByJobServer ( ) : bInit ( true ) { }
bool bInit ;
TPvPLadderScoreInfoByJob Data ;
} ;
struct TDatabaseMessageSequence
{
char cMainCmd ;
char cSubCmd ;
DWORD dwAddTime ;
} ;
protected :
UINT m_nAccountDBID ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ̵<EFBFBD>
INT64 m_biCharacterDBID ; // ij<> <C4B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ̵<EFBFBD>
UINT m_nSessionID ;
WCHAR m_wszAccountName [ IDLENMAX ] ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ̸<EFBFBD>
char m_szAccountName [ IDLENMAX ] ; // <20> <> <EFBFBD> <EFBFBD> char<61> <72> (<28> <> <EFBFBD> <EFBFBD> <20> Ƿε<C7B7> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ<EFBFBD> ϱ <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ƽ <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ;;)
char m_szCharacterName [ NAMELENMAX ] ;
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_nPcBangBonusExp ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ʹ <EFBFBD> <CDB4> ̽<EFBFBD> <20> ˻<EFBFBD> <CBBB> ϴµ<CFB4> <20> <> <EFBFBD> <EFBFBD> <20> κ<EFBFBD> <CEBA> ̶<EFBFBD> <20> <> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> صΰ<D8B5> ã<> <C3A3> <20> κ<EFBFBD> <CEBA> <EFBFBD> <20> <> <EFBFBD> δ<EFBFBD> .
int m_iHackAbuseDBValue ;
int m_iHackAbuseDBCallCount ;
int m_iHackPlayRestraintValue ;
int m_iHackResetRestraintValue ;
int m_nHackAbuseCharacterCntWithoutMe ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ij<EFBFBD> <C4B3> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ɸ<EFBFBD> ij<> <C4B3> <EFBFBD> <EFBFBD> ī<> <C4AB> Ʈ
# if defined(PRE_ADD_ANTI_CHAT_SPAM)
bool m_bSpammer ;
# endif
int m_nWorldSetID ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̵<EFBFBD>
BYTE m_cVillageID ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ̵<EFBFBD>
int m_nChannelID ;
USHORT m_wGameID ;
int m_nRoomID ;
bool m_bLoadUserData ;
CDNDBConnection * m_pDBCon ;
BYTE m_cDBThreadID ;
TChracterLevel m_OwnCharacterLevelList [ CHARCOUNTMAX ] ;
TUserData m_UserData ;
TKeySetting m_KeySetting ;
TPadSetting m_PadSetting ;
TMasterSystemData m_MasterSystemData ;
TProfile m_Profile ;
TPvPLadderScoreInfo m_PvPLadderScoreInfo ;
TPvPLadderScoreInfoByJobServer m_PvPLadderScoreInfoByJob ;
TPvPGhoulScores m_PvPTotalGhoulScores ; // <20> <> ü <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
TPvPGhoulScores m_PvPAddGhoulScores ; // <20> <> <EFBFBD> Ǵ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
TUnionReputePointInfo m_UnionReputePointInfo ;
int m_nGuildWarRewardFestivalPoint ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Ʈ
int m_nGuildWarRewardGuildPoint ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Ʈ
__int64 m_biGuildWarFestivalPoint ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Ʈ
short m_wGuildWarScheduleID ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
CDNUserItem * m_pItem ;
CDNUserQuest * m_pQuest ;
CDNCheatCommand * m_pCheatCommand ;
CDNGMCommand * m_pGMCommand ;
CDNFriend * m_pFriend ;
CDNIsolate * m_pIsolate ;
CDNMissionSystem * m_pMissionSystem ;
CDNEventSystem * m_pEventSystem ;
CDNAppellation * m_pAppellation ;
CDNRestraint * m_pRestraint ;
# if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
CReputationSystemRepository * m_pReputationSystem ;
# endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
# if defined( PRE_ADD_SECONDARY_SKILL )
CSecondarySkillRepository * m_pSecondarySkillRepository ;
# endif // #if defined( PRE_ADD_SECONDARY_SKILL )
# if defined (PRE_ADD_BESTFRIEND)
CDNBestFriend * m_pBestFriend ;
# endif
CDNGesture * m_pGesture ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ̶<EFBFBD> <CCB6> 簡 <20> ߰<EFBFBD> <DFB0> Ǹ<EFBFBD> <20> 츱<EFBFBD> <ECB8B1> <EFBFBD> <EFBFBD>
CDNTimeEventSystem * m_pTimeEventSystem ;
CDNUserEventHandler * m_pUserEventHandler ;
CDNCommonVariable * m_pCommonVariable ;
std : : vector < TalkParam > m_TalkParamList ;
TALK_PARAGRAPH m_LastTalkParagraph ; // api_npc_NextScript <20> <> <20> <> <EFBFBD> <EFBFBD> <20> Ҷ<EFBFBD> <D2B6> <EFBFBD> <20> ѹ<EFBFBD> <D1B9> <EFBFBD> m_LastTalkParagraph üũ<C3BC> <C5A9> <20> <> ŵ<EFBFBD> Ѵ <EFBFBD>
bool m_bSkipParagraphCheck ;
// next_talk <20> <> next_script <20> <> npc <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ´ <EFBFBD> <C2B4> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> .
// <20> <> ũ<EFBFBD> <C5A9> Ʈ <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <DFBB> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> npc <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ̶<EFBFBD> <CCB6> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> üũ<C3BC> ϴ<EFBFBD> <20> <>
bool m_bCalledNpcResponse ;
bool m_bIsNpcTalk ;
UINT m_nExchangeTargetSessionID ; // <20> ŷ<EFBFBD> <C5B7> ϴ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ǿ<EFBFBD> <C7BE> ̵<EFBFBD>
UINT m_nExchangeSenderSID ; // <20> ŷ<EFBFBD> <C5B7> <EFBFBD> û <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ̵<EFBFBD>
UINT m_nExchangeReceiverSID ; // <20> ŷ<EFBFBD> <C5B7> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ̵<EFBFBD>
DWORD m_dwLastMessageTick ;
BYTE m_cLastMainCmd ;
BYTE m_cLastSubCmd ;
int m_nCashBalance ; // ij<> <C4B3> (total)
# if defined(_US)
int m_nNxAPrepaid ; // not refund balance
int m_nNxACredit ; // m_biCashBalance - m_biNxAPrepaid
# endif // #if defined(_US)
bool m_bHide ; // <20> <EFBFBD> <EEBFB5> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (?)
//<2F> ϴ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ʈ<EFBFBD> <C6AE> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
bool m_bNeedUpdateOption ;
TGameOptions m_GameOption ;
bool m_bIsSetSecondAuthPW ; // 2<> <32> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> й<EFBFBD> ȣ <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
bool m_bIsSetSecondAuthLock ; // 2<> <32> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Lock <20> <> <EFBFBD> <EFBFBD>
# if defined(_CH)
char m_cFCMState ; // eFCMState
int m_nFCMOnlineMin ; // online <20> ð<EFBFBD> (<28> <> )
# endif // _CH
bool m_bSecurityUpdate ;
# if defined(_HSHIELD)
AHNHS_CLIENT_HANDLE m_hHSClient ; // [Ȯ<> <C8AE> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ] Ŭ<> <C5AC> <EFBFBD> ̾<EFBFBD> Ʈ <20> <> <EFBFBD> <EFBFBD> <20> <> ü
DWORD m_dwCheckLiveTick ; // live check
DWORD m_dwHShieldResponseTick ; // CRC<52> <43> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> üũ
# endif // #if defined(_HSHIELD)
# if defined(_GPK)
DWORD m_dwCheckGPKTick ; // live check
DWORD m_dwRecvGPKTick ;
volatile bool m_bRespondErr ;
# endif // #if defined(_GPK)
bool m_bFriendBonus ;
int m_iRemoteEnchantItemID ;
int m_iRemoteItemCompoundItemID ;
public :
# if defined(_KR) || defined(_US)
UINT m_nNexonSN ;
# endif // #if defined(_KR)
UINT m_nVehicleObjectID ;
DNNotifier : : Repository m_NotifierRepository ;
# if defined(PRE_ADD_MISSION_COUPON)
int m_nExpiredPetID ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̴<EFBFBD> <20> Ⱓ<EFBFBD> <E2B0A3> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> -> OnPetExpired <20> ̼<EFBFBD> ȣ <> <20> <> <EFBFBD> <EFBFBD>
# endif
short m_sUserWindowState ; // UI<55> <49> <EFBFBD> <EFBFBD> (?) <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ϴ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ΰ<EFBFBD> (bit<69> <74> <EFBFBD> <EFBFBD> )
int m_nShopID ; // shop id <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϱ <EFBFBD>
# if defined(PRE_ADD_REMOTE_OPENSHOP)
bool m_bRemoteShopOpen ;
# endif // #if defined(PRE_ADD_REMOTE_OPENSHOP)
int m_nCutSceneID ; // <20> ÷<EFBFBD> <C3B7> <EFBFBD> <EFBFBD> ϰ<EFBFBD> <CFB0> ִ<EFBFBD> <20> ƾ<EFBFBD> <20> <> <EFBFBD> ̵<EFBFBD> (<28> ӽ<EFBFBD> )
int m_nClickedNpcID ; // Ŭ<> <C5AC> <EFBFBD> <EFBFBD> npcid
UINT m_nClickedNpcObjectID ; // Ŭ<> <C5AC> <EFBFBD> <EFBFBD> Npc OjbectID
bool m_bAdult ; // <20> <EFBFBD> <EEB8A5> <EFBFBD> <EFBFBD> <20> ƴ<EFBFBD> <C6B4> <EFBFBD> (<28> Ƿε<C7B7> )
char m_cAge ; // <20> <> <EFBFBD> <EFBFBD> (Nexon<6F> <6E> <EFBFBD> <EFBFBD> )
BYTE m_cDailyCreateCount ; // <20> <> <EFBFBD> <EFBFBD> ij<> <C4B3> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƚ<> <C8BD>
int m_nPrmInt1 ; // <20> Ķ<EFBFBD> <C4B6> <EFBFBD> <EFBFBD> <EFBFBD> 1(<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ٸ<EFBFBD> <D9B8> <EFBFBD> )
char m_cLastServerType ; // <20> ֱ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> Ÿ<> <C5B8> (eServerType / 0 : <20> α <EFBFBD> <CEB1> <EFBFBD> , 2 : <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , 3 : <20> <> <EFBFBD> <EFBFBD> )
bool m_bCharOutLog ; // true<75> <65> FinalUser <20> ϸ鼭 <20> α <CEB1> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 090326
bool m_bCertified ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ϸ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> (QUERY_CHECKAUTH <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> false <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ؾ<EFBFBD> <20> <> )
DWORD m_dwCertifyingTick ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ð<EFBFBD> üũ(<28> <> <EFBFBD> <EFBFBD> üũ <20> <> û <20> <> CHECKAUTHLIMITTERM <20> <> <EFBFBD> <EFBFBD> <20> ȿ<EFBFBD> ó<> <C3B3> <EFBFBD> Ǿ<EFBFBD> <C7BE> <EFBFBD> <20> <> )(<28> <> Ƽ <EFBFBD> <C6BC> <EFBFBD> <EFBFBD> üũ(PVP <20> <> <EFBFBD> <EFBFBD> ???))
INT64 m_biCertifyingKey ; // <20> <> <EFBFBD> <EFBFBD> Ű
# 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_bReConnectUserReward ;
GameQuitReward : : RewardType : : eType m_eUserGameQuitRewardType ;
# endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
# if defined(_ID)
char m_szMacAddress [ MACADDRLENMAX ] ;
char m_szKey [ KREONKEYMAX ] ;
DWORD m_dwKreonCN ;
# endif
# if defined(_GPK)
int m_nCodeIndex ;
const unsigned char * m_pCode ;
int m_nCodeLen ;
# endif // _GPK
// nexon pcbang
WCHAR m_wszVirtualIp [ IPLENMAX ] ;
char m_szVirtualIp [ IPLENMAX ] ;
BYTE m_szMID [ MACHINEIDMAX ] ;
DWORD m_dwGRC ;
# ifdef PRE_ADD_GACHA_JAPAN
int m_nGachaponShopID ;
# endif // PRE_ADD_GACHA_JAPAN
mutable DWORD m_dwTick [ eTickCnt + 1 ] ; // ƽ ī<> <C4AB> Ʈ(<28> <> <20> <> ü<EFBFBD> <C3BC> Ư<> <C6AF> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 찡 <20> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ͽ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> )
char m_cLastStageClearRank ; // <20> <> <EFBFBD> <EFBFBD> <20> ֱ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> Ϸ<EFBFBD> <20> <> ũ(SSS : 0 / SS : 1 / S : 2 / A : 3 / B : 4 / C : 5 / D : 6)
TGuildSelfView m_GuildSelfView ; // <20> <> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> )
bool m_bVoiceAvailable ; //<2F> <> <EFBFBD> ̽<EFBFBD> ê<EFBFBD> <C3AA> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
# ifdef _USE_VOICECHAT
UINT m_nVoiceChannelID ; //<2F> <> <EFBFBD> ̽<EFBFBD> ä<EFBFBD> ο <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
BYTE m_cIsTalking ;
int m_nVoiceJoinType ;
UINT m_nVoiceMutedList [ PARTYCOUNTMAX ] ;
# endif
DWORD m_dwNpcTalkLastIndexHashCode ; // NPC <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ε<EFBFBD> <CEB5> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
DWORD m_dwNpcTalkLastTargetHashCode ; // NPC <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
BYTE m_cVIPRebirthCoin ;
bool m_bVIP ;
int m_nVIPTotalPoint ; // <20> <> VIP <20> <> <EFBFBD> <EFBFBD> Ʈ
__time64_t m_tVIPEndDate ; // VIP <20> Ⱓ <20> <> <20> <> <EFBFBD> <EFBFBD>
bool m_bVIPAutoPay ; // <20> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD>
int m_nVIPBonusExp ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ʹ <EFBFBD> <CDB4> ̽<EFBFBD> <20> ˻<EFBFBD> <CBBB> ϴµ<CFB4> <20> <> <EFBFBD> <EFBFBD> <20> κ<EFBFBD> <CEBA> ̶<EFBFBD> <20> <> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> صΰ<D8B5> ã<> <C3A3> <20> κ<EFBFBD> <CEBA> <EFBFBD> <20> <> <EFBFBD> δ<EFBFBD> .
int m_nExpandNestClearCount ;
# if defined(PRE_ADD_TSCLEARCOUNTEX)
int m_nExpandTreasureStageClearCount ;
# endif // #if defined(PRE_ADD_TSCLEARCOUNTEX)
bool m_bIntroducer ; // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> θ<EFBFBD> <CEB8> <EFBFBD> <20> <> õ<EFBFBD> <C3B5>
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
DWORD m_dwCheckPaperingRemainTime [ eCheckPaperingAmount ] ;
std : : list < DWORD > m_listRecentCheckTime [ eCheckPaperingAmount ] ;
CDNEffectRepository * m_pEffectRepository ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ȱ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
DWORD m_dwResellItemTick ;
# if defined(PRE_FIX_74387)
bool m_bNowResellItem ;
# endif
DWORD m_dwCheckTcpPing ;
std : : pair < DWORD , UINT > m_pairTcpPing ; // <Tick/Count>
bool m_bSaleAbortListSended ;
Shop : : Type : : eCode m_ShopType ;
bool m_bFinalize ;
std : : vector < TDatabaseMessageSequence > m_vDBMessageSequencer ;
# if defined( PRE_ADD_LIMITED_SHOP )
# if defined( PRE_FIX_74404 )
std : : list < LimitedShop : : LimitedItemData > m_LimitedShopBuyedItemList ;
# else // #if defined( PRE_FIX_74404 )
std : : map < int , LimitedShop : : LimitedItemData > m_LimitedShopBuyedItem ;
# endif // #if defined( PRE_FIX_74404 )
# endif // #if defined( PRE_ADD_LIMITED_SHOP )
# if defined( PRE_ADD_TOTAL_LEVEL_SKILL )
int m_nTotalLevelSKillLevel ; // <20> <> <EFBFBD> շ<EFBFBD> <D5B7> <EFBFBD>
int m_nTotalLevelSKillData [ TotalLevelSkill : : Common : : MAXSLOTCOUNT ] ; // <20> <> <EFBFBD> ս <EFBFBD> ų
bool m_bTotalLevelSkillCashSlot [ TotalLevelSkill : : Common : : MAXSLOTCOUNT ] ; // ij<> ý<EFBFBD> <C3BD> <EFBFBD>
INT64 m_nTotalLevelSkillCashSlot [ TotalLevelSkill : : Common : : MAXSLOTCOUNT ] ; // ij<> ý<EFBFBD> <C3BD> <EFBFBD>
# endif
# if defined( PRE_ADD_NEWCOMEBACK )
int m_nComebackAppellation ;
# endif
# ifdef PRE_ADD_JOINGUILD_SUPPORT
BYTE m_cGuildJoinLevel ; //<2F> <> <EFBFBD> 尡<EFBFBD> <E5B0A1> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> ѹ<EFBFBD> )
bool m_bWasRewardedGuildMaxLevel ; //<2F> <> <EFBFBD> 忡<EFBFBD> <E5BFA1> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> Ҵ<DEBE> <D2B4> <EFBFBD> <20> ÷<EFBFBD> <C3B7> <EFBFBD>
bool m_bPartyBegginerGuild ; //<2F> <> Ƽ <EFBFBD> <C6BC> <EFBFBD> ¿<EFBFBD> <C2BF> <EFBFBD> <20> ʺ<EFBFBD> <CABA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
# endif //#ifdef PRE_ADD_JOINGUILD_SUPPORT
# if defined(_KRAZ)
bool m_bShutdownDetach ;
TShutdownData m_ShutdownData ;
# endif // #if defined(_KRAZ)
# if defined(PRE_RECEIVEGIFTALL)
int m_nReceiveGiftPageCount ;
std : : vector < INT64 > m_VecReceiveGiftResultList ;
# endif // #if defined(PRE_RECEIVEGIFTALL)
# if defined( PRE_ADD_STAMPSYSTEM )
CDNStampSystem * m_pStampSystem ;
# endif // #if defined( PRE_ADD_STAMPSYSTEM )
# if defined(PRE_ADD_CP_RANK)
char m_cStageClearBestRank ;
int m_nStageClearBestCP ;
# endif //#if defined(PRE_ADD_CP_RANK)
# if defined( PRE_ADD_NEW_MONEY_SEED )
INT64 m_nSeedPoint ;
# endif
public :
CDNUserBase ( void ) ;
virtual ~ CDNUserBase ( void ) ;
void FinalizeEvent ( ) ;
void SetDBConInfo ( CDNDBConnection * pCon , BYTE cThreadID ) { m_pDBCon = pCon ; m_cDBThreadID = cThreadID ; }
bool GetLoadUserData ( ) { return m_bLoadUserData ; }
void SetSecurityUpdateFlag ( bool bFlag ) { m_bSecurityUpdate = bFlag ; }
bool GetSecurityUpdateFlag ( ) { return m_bSecurityUpdate ; }
const TPvPLadderScoreInfo * GetPvPLadderScoreInfoPtr ( ) { return & m_PvPLadderScoreInfo ; }
const TPvPLadderScoreInfoByJobServer * GetPvPLadderScoreInfoPtrByJob ( ) { return & m_PvPLadderScoreInfoByJob ; }
const TUnionReputePointInfo * GetUnionReputePointInfoPtr ( ) { return & m_UnionReputePointInfo ; }
virtual void GuildWarReset ( ) ;
inline short GetGuildWarScheduleID ( ) { return m_wGuildWarScheduleID ; } ;
inline void SetGuildWarScheduleID ( short wScheduleID ) { m_wGuildWarScheduleID = wScheduleID ; } ;
inline __int64 GetGuildWarFestivalPoint ( ) { return m_biGuildWarFestivalPoint ; } ;
inline void SetGuildWarFestivalPoint ( __int64 biGuildWarFestivalPoint ) { m_biGuildWarFestivalPoint = biGuildWarFestivalPoint ; } ;
inline int GetGuildWarRewardFestivalPoint ( ) { return m_nGuildWarRewardFestivalPoint ; } ;
inline void SetGuildWarRewardFestivalPoint ( int nGuildWarRewardFestivalPoint ) { m_nGuildWarRewardFestivalPoint = nGuildWarRewardFestivalPoint ; } ;
inline int GetGuildWarRewardGuildPoint ( ) { return m_nGuildWarRewardGuildPoint ; } ;
inline void SetGuildWarRewardGuildPoint ( int nGuildWarRewardGuildPoint ) { m_nGuildWarRewardGuildPoint = nGuildWarRewardGuildPoint ; } ;
void DelGuildWarFestivalPoint ( INT64 biPoint ) ;
//UserData
virtual bool LoadUserData ( TASelectCharacter * pSelect ) ;
# if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
virtual bool LoadReputation ( TAGetListNpcFavor * pA ) ;
# endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
virtual bool SaveUserData ( ) ;
virtual void DoUpdate ( DWORD dwCurTick ) ;
virtual void CashMessageProcess ( int nMainCmd , int nSubCmd , char * pData , int nLen ) ;
virtual void DBMessageProcess ( int nMainCmd , int nSubCmd , char * pData , int nLen ) ;
//DBMessage
virtual void OnDBRecvAuth ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvCharInfo ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvEtc ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvQuest ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvMission ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvSkill ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvFriend ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvIsolate ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvPvP ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvDarkLair ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvGuild ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvMail ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvMarket ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvItem ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvCash ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvMsgadjustment ( int nSubCmd , char * pData ) { }
# if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
virtual void OnDBRecvReputation ( int nSubCmd , char * pData ) ;
# endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
virtual void OnDBRecvMasterSystem ( int nSubCmd , char * pData ) ;
# if defined( PRE_ADD_SECONDARY_SKILL )
virtual void OnDBRecvSecondarySkill ( int nSubCmd , char * pData ) ;
# endif // #if defined( PRE_ADD_SECONDARY_SKILL )
virtual void OnDBRecvFarm ( int nSubCmd , char * pData ) ;
virtual void OnDBRecvGuildRecruit ( int nSubCmd , char * pData ) ;
# if defined (PRE_ADD_DONATION)
virtual void OnDBRecvDonation ( int nSubCmd , char * pData ) { }
# endif // #if defined (PRE_ADD_DONATION)
# if defined( PRE_PARTY_DB )
virtual void OnDBRecvParty ( int nSubCmd , char * pData ) ;
# endif // #if defined( PRE_PARTY_DB )
# if defined (PRE_ADD_BESTFRIEND)
virtual void OnDBRecvBestFriend ( int nSubCmd , char * pData ) ;
# endif
# if defined( PRE_PRIVATECHAT_CHANNEL )
virtual void OnDBRecvPrivateChatChannel ( int nSubCmd , char * pData ) ;
# endif
# if defined( PRE_ALTEIAWORLD_EXPLORE )
virtual void OnDBRecvAlteiaWorld ( int nSubCmd , char * pData ) ;
# endif
# if defined( PRE_ADD_STAMPSYSTEM )
virtual void OnDBRecvStampSystem ( int nSubCmd , char * pData ) ;
# endif // #if defined( PRE_ADD_STAMPSYSTEM )
# if defined(PRE_ADD_DWC)
virtual void OnDBRecvDWC ( int nSubCmd , char * pData ) ;
# endif
//UserMessage
virtual int OnRecvCharMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvItemMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvItemGoodsMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvTradeMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvCashShopMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvQuestMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvSystemMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvFriendMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvIsolateMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvGameOptionMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvRadioMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvGuildMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvEtcMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvChatRoomMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvMasterSystemMessage ( int nSubCmd , char * pData , int nLen ) ;
# if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
virtual int OnRecvReputationMessage ( int nSubCmd , char * pData , int nLen ) ;
# endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
# if defined( PRE_ADD_SECONDARY_SKILL )
virtual int OnRecvSecondarySkillMessage ( int nSubCmd , char * pData , int nLen ) ;
# endif // #if defined( PRE_ADD_SECONDARY_SKILL )
virtual int OnRecvGestureMessage ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvPlayerCustomEventUI ( int nSubCmd , char * pData , int nLen ) ;
virtual int OnRecvGuildRecruitMessage ( int nSubCmd , char * pData , int nLen ) ;
# if defined (PRE_ADD_DONATION)
virtual int OnRecvDonation ( int nSubCmd , char * pData , int nLen ) ;
# endif // #if defined (PRE_ADD_DONATION)
# if defined (PRE_ADD_BESTFRIEND)
virtual int OnRecvBestFriendMessage ( int nSubCmd , char * pData , int nLen ) ;
# endif
# if defined( PRE_PRIVATECHAT_CHANNEL )
virtual int OnRecvPrivateChatChannelMessage ( int nSubCmd , char * pData , int nLen ) ;
# endif
# if defined( PRE_ALTEIAWORLD_EXPLORE )
virtual int OnRecvWorldAlteiaMessage ( int nSubCmd , char * pData , int nLen ) ;
# endif // #if defined( PRE_ALTEIAWORLD_EXPLORE )
# if defined(PRE_ADD_DWC)
virtual int OnRecvDWCMessage ( int nSubCmd , char * pData , int nLen ) ;
# endif
# if defined(PRE_ADD_CHAT_MISSION)
virtual int OnRecvMissionMessage ( int nSubCmd , char * pData , int nLen ) ;
# endif
CDNDBConnection * GetDBConnection ( ) { return m_pDBCon ; }
BYTE GetDBThreadID ( ) { return m_cDBThreadID ; }
bool CheckDBConnection ( ) ;
TCharacterStatus * GetStatusData ( ) { return & m_UserData . Status ; }
TPvPGroup * GetPvPData ( ) { return & m_UserData . PvP ; }
TQuestGroup * GetQuestData ( ) { return & m_UserData . Quest ; }
TMissionGroup * GetMissionData ( ) { return & m_UserData . Mission ; }
TAppellationGroup * GetAppellationData ( ) { return & m_UserData . Appellation ; }
TSkillGroup * GetSkillData ( bool bEntireData = false ) ;
TTimeEventGroup * GetTimeEventData ( ) { return & m_UserData . TimeEvent ; }
CDNTimeEventSystem * GetTimeEventSystem ( ) { return m_pTimeEventSystem ; }
CDNUserItem * GetItem ( ) { return m_pItem ; }
CDNUserQuest * GetQuest ( ) { return m_pQuest ; }
CDNIsolate * GetIsolate ( ) { return m_pIsolate ; }
CDNMissionSystem * GetMissionSystem ( ) { return m_pMissionSystem ; }
CDNEventSystem * GetEventSystem ( ) { return m_pEventSystem ; }
CDNAppellation * GetAppellation ( ) { return m_pAppellation ; }
CDNGMCommand * GetGMCommand ( ) { return m_pGMCommand ; }
CDNFriend * GetFriend ( ) { return m_pFriend ; }
CDNCheatCommand * GetCheatCommand ( ) { return m_pCheatCommand ; }
CDNRestraint * GetRestraint ( ) { return m_pRestraint ; }
CDNEffectRepository * GetEffectRepository ( ) { return m_pEffectRepository ; }
# if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
CReputationSystemRepository * GetReputationSystem ( ) { return m_pReputationSystem ; }
# endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
# if defined( PRE_ADD_SECONDARY_SKILL )
CSecondarySkillRepository * GetSecondarySkillRepository ( ) { return m_pSecondarySkillRepository ; }
# endif // #if defined( PRE_ADD_SECONDARY_SKILL )
const TMasterSystemData * GetMasterSystemData ( ) { return & m_MasterSystemData ; }
# if defined (PRE_ADD_BESTFRIEND)
CDNBestFriend * GetBestFriend ( ) { return m_pBestFriend ; }
void CloseBestFirend ( ) ;
# endif // #if defined (PRE_ADD_BESTFRIEND)
UINT GetVehicleObjectID ( ) { return m_nVehicleObjectID ; }
# if defined(PRE_ADD_MISSION_COUPON)
void SetExpiredPetID ( int nValue ) { m_nExpiredPetID = nValue ; }
int GetExpiredPetID ( ) { return m_nExpiredPetID ; }
# endif
int GetWorldSetID ( ) { return m_nWorldSetID ; }
BYTE GetVillageID ( ) { return m_cVillageID ; }
int GetChannelID ( ) { return m_nChannelID ; }
void SetRoomID ( int nRoomID ) { m_nRoomID = nRoomID ; }
virtual int GetRoomID ( ) { return m_nRoomID ; }
void SetGameID ( USHORT wGameID ) { m_wGameID = wGameID ; }
USHORT GetGameID ( ) { return m_wGameID ; }
int GetAccountLevel ( ) { return m_UserData . Status . cAccountLevel ; }
bool IsCheckFirstVillage ( ) { return m_UserData . Status . IsCheckFirstVillage ; }
void SetCheckFirstVillage ( bool bFlag ) { m_UserData . Status . IsCheckFirstVillage = bFlag ; }
int GetDefaultBody ( ) { return m_UserData . Status . nDefaultBody ; }
int GetDefaultLeg ( ) { return m_UserData . Status . nDefaultLeg ; }
int GetDefaultHand ( ) { return m_UserData . Status . nDefaultHand ; }
int GetDefaultFoot ( ) { return m_UserData . Status . nDefaultFoot ; }
# if defined(PRE_ADD_DWC)
bool IsDWCCharacter ( ) { return GetAccountLevel ( ) = = AccountLevel_DWC ; }
# endif
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 SetAccountName ( WCHAR * pAccountName ) ;
WCHAR * GetAccountName ( ) { return m_wszAccountName ; }
char * GetAccountNameA ( ) { return m_szAccountName ; }
WCHAR * GetCharacterName ( ) { return m_UserData . Status . wszCharacterName ; }
char * GetCharacterNameA ( ) { return m_szCharacterName ; }
char GetClassID ( ) { return m_UserData . Status . cClass ; }
void SetCharacterName ( const WCHAR * pwszName ) ;
void SetLastVillageGateNo ( char cGateNo ) { m_UserData . Status . cLastVillageGateNo = cGateNo ; }
char GetLastVillageGateNo ( ) { return m_UserData . Status . cLastVillageGateNo ; }
int GetLastVillageMapIndex ( ) { return m_UserData . Status . nLastVillageMapIndex ; }
void SetLastSubVillageMapIndex ( int nMapIndex ) { m_UserData . Status . nLastSubVillageMapIndex = nMapIndex ; }
int GetLastSubVillageMapIndex ( ) { return m_UserData . Status . nLastSubVillageMapIndex ; }
int GetPosX ( ) { return m_UserData . Status . nPosX ; }
int GetPosY ( ) { return m_UserData . Status . nPosY ; }
int GetPosZ ( ) { return m_UserData . Status . nPosZ ; }
virtual void SetMapIndex ( int nMapIndex ) ;
virtual void SetLastMapIndex ( int nMapIndex ) ;
int GetMapIndex ( ) { return m_UserData . Status . nMapIndex ; }
# if defined(PRE_FIX_74387)
void SetNowResellItem ( bool bNowResellItem ) { m_bNowResellItem = bNowResellItem ; }
# endif
# if defined(PRE_ADD_EXPUP_ITEM)
virtual void ChangeExp ( int nChangeExp , int nLogCode , INT64 biFKey , bool bAbsolute = false ) ; // changeexp<78> <70> ŭ <20> <> <EFBFBD> ϰų<CFB0> <20> <> <EFBFBD> ֱ<EFBFBD> (+, -<2D> <> <20> Ἥ) -> nLogCode<64> <65> <20> <> <EFBFBD> <EFBFBD> biFKey<65> <79> <EFBFBD> <EFBFBD> <20> ־<EFBFBD> <D6BE> ش<EFBFBD> (eCharacterExpChangeCode<64> <65> <EFBFBD> <EFBFBD> )
# else
virtual void ChangeExp ( int nChangeExp , int nLogCode , INT64 biFKey ) ; // changeexp<78> <70> ŭ <20> <> <EFBFBD> ϰų<CFB0> <20> <> <EFBFBD> ֱ<EFBFBD> (+, -<2D> <> <20> Ἥ) -> nLogCode<64> <65> <20> <> <EFBFBD> <EFBFBD> biFKey<65> <79> <EFBFBD> <EFBFBD> <20> ־<EFBFBD> <D6BE> ش<EFBFBD> (eCharacterExpChangeCode<64> <65> <EFBFBD> <EFBFBD> )
# endif
virtual void SetExp ( UINT nExp , int nLogCode , INT64 biFKey , bool bDBSave ) ; // exp<78> <70> ŭ <20> <> <20> <> <EFBFBD> <EFBFBD>
unsigned int GetExp ( ) { return m_UserData . Status . nExp ; }
virtual void SetLevel ( BYTE cLevel , int nLogCode , bool bDBSave ) ;
unsigned char GetLevel ( ) ;
virtual void SetUserJob ( BYTE cJob ) ;
BYTE GetUserJob ( ) { return m_UserData . Status . cJob ; }
// Coin
bool AddCoin ( INT64 nCoin , int nLogCode , INT64 biFKey , bool bSend = true ) ;
bool DelCoin ( INT64 nCoin , int nLogCode , INT64 biFKey , bool bSend = true ) ;
INT64 GetCoin ( ) ;
bool CheckEnoughCoin ( INT64 nCheckCoin ) ; // nCheckCoin<69> <6E> ŭ <20> <> <EFBFBD> <EFBFBD> <20> ִ<EFBFBD> <D6B4> <EFBFBD> ...
bool CheckMaxCoin ( INT64 nCheckCoin ) ; // 42<34> <32> <EFBFBD> <EFBFBD> <20> ѱ<EFBFBD> <D1B1> <EFBFBD> <EFBFBD> ʴ<EFBFBD> <CAB4> <EFBFBD>
void SetWarehouseCoin ( INT64 nCoin ) ; // nCoin<69> <6E> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
void AddWarehouseCoin ( INT64 nCoin , int nLogCode , INT64 biFKey ) ;
void DelWarehouseCoin ( INT64 nCoin , int nLogCode , INT64 biFKey ) ;
INT64 GetWarehouseCoin ( ) ;
bool CheckEnoughWarehouseCoin ( INT64 nCheckCoin ) ; // nCheckCoin<69> <6E> ŭ <20> <> <EFBFBD> <EFBFBD> <20> ִ<EFBFBD> <D6B4> <EFBFBD> ...
bool CheckMaxWarehouseCoin ( INT64 nCheckCoin ) ; // 42<34> <32> <EFBFBD> <EFBFBD> <20> ѱ<EFBFBD> <D1B1> <EFBFBD> <20> ʴ<EFBFBD> <CAB4> <EFBFBD>
// SkillPoint
void SetSkillPoint ( USHORT nPoint , char cSkillPage ) ;
void ChangeSkillPoint ( unsigned short nPoint , int nSkillID , bool bDBSave , int nLogCode , char cSkillPage = DualSkill : : Type : : MAX ) ;
void SetCheatSkillPoint ( unsigned short nPoint , int nSkillID ) ; // setsp ġƮŰ <20> <> <EFBFBD> <EFBFBD>
USHORT GetSkillPoint ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> õ<EFBFBD> <20> <> ųƮ<C5B3> <C6AE> <20> <> <EFBFBD> <EFBFBD> Ʈ
USHORT GetSkillPoint ( int nSkillPageIndex ) ; //Ư<> <C6AF> <20> <> ųƮ<C5B3> <C6AE> <20> <> <EFBFBD> <EFBFBD> Ʈ
float GetAvailSkillPointRatioByJob ( int nSkillID ) ;
// Fatigue
void SetCheatMaxFatigue ( ) ;
void SetCheatFatigue ( int nFatigue , int nWeeklyFatigue , int nPCBangFatigue , int nEventFatigue , int nVIPFatigue ) ;
virtual void SetDefaultMaxFatigue ( bool bSend = true ) ;
virtual void SetDefaultMaxWeeklyFatigue ( bool bSend = true ) ;
# if defined(PRE_ADD_VIP)
void SetDefaultVIPFatigue ( ) ; // VIP<49> <50> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> Ƿε<C7B7> <20> <> <EFBFBD> <EFBFBD>
# endif // #if defined(PRE_ADD_VIP)
void SetDefaultPCBangFatigue ( ) ;
virtual void SetFatigue ( int nFatigue , int nWeeklyFatigue , int nPCBangFatigue , int nEventFatigue , int nVIPFatigue , bool bDBSave = true ) ;
virtual void DecreaseFatigue ( int nGap ) ;
virtual void IncreaseFatigue ( int nGap ) ;
int GetFatigue ( ) { return m_UserData . Status . wFatigue ; }
int GetWeeklyFatigue ( ) { return m_UserData . Status . wWeeklyFatigue ; }
int GetPCBangFatigue ( ) ;
int GetVIPFatigue ( ) ;
int GetEventFatigue ( ) { return m_UserData . Status . wEventFatigue ; }
int GetMaxEventFatigue ( ) ;
void ResetEventFatigue ( int nResetTime ) ;
int GetAllFatigue ( ) ;
void AddCashRebirthCoin ( int nRebirthCount ) ;
virtual void SetDefaultMaxRebirthCoin ( bool bSend = true ) ;
void SetDefaultPCBangRebirthCoin ( ) ;
void SetRebirthCoin ( int nRebirthCoin , int nPCBangRebirthCoin , int nRebirthCashCoin ) ;
void AddRebirthCoin ( int nRebirthCoin , int nRebirthCashCoin ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> Ȱ<EFBFBD> <C8B0> <20> <> <EFBFBD> <EFBFBD>
bool CheckRebirthCoin ( int nRebirthCoin , int nRebirthCashCoin ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> Ȱ<EFBFBD> <C8B0> <20> <> <EFBFBD> 밡<EFBFBD> <EBB0A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> üũ
bool DecreaseRebirthCoin ( int nGap ) ;
int GetPCBangRebirthCoin ( ) ;
BYTE GetRebirthCoin ( ) { return m_UserData . Status . cRebirthCoin ; }
USHORT GetRebirthCashCoin ( ) { return m_UserData . Status . wCashRebirthCoin ; }
BYTE GetVIPRebirthCoin ( ) ;
int GetTotalRebirthCoin ( ) ;
short GetMarketRegisterCount ( ) { return m_UserData . Status . wMarketRegisterCount ; }
int GetMarketSellSuccess ( ) { return m_UserData . Status . nMarketSellSuccess ; }
int GetMarketSellFailure ( ) { return m_UserData . Status . nMarketSellFailure ; }
int GetMarketRegisterTax ( ) { return m_UserData . Status . nMarketRegisterTax ; }
int GetMarketSellTax ( ) { return m_UserData . Status . nMarketSellTax ; }
// Color
void SetHairColor ( DWORD dwColor ) { m_UserData . Status . dwHairColor = dwColor ; }
DWORD GetHairColor ( ) { return m_UserData . Status . dwHairColor ; }
void SetEyeColor ( DWORD dwColor ) { m_UserData . Status . dwEyeColor = dwColor ; }
DWORD GetEyeColor ( ) { return m_UserData . Status . dwEyeColor ; }
void SetSkinColor ( DWORD dwColor ) { m_UserData . Status . dwSkinColor = dwColor ; }
DWORD GetSkinColor ( ) { return m_UserData . Status . dwSkinColor ; }
bool ChangeDyeColor ( int nItemType , int * pTypeParam ) ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
void BroadcastChangeColor ( int nItemType , DWORD dwColor ) ;
// QuickSlot
virtual int AddQuickSlot ( BYTE cSlotIndex , BYTE cSlotType , INT64 nID ) ;
virtual int DelQuickSlot ( BYTE cSlotIndex ) ;
# if !defined(PRE_DELETE_DUNGEONCLEAR)
// Dungeon
int GetDungeonLevelIndex ( int nMapTableID , bool * bExist ) ;
virtual bool CheckDungeonEnterLevel ( int nMapTableID ) ;
virtual void CalcDungeonEnterLevel ( int nMapTableID , char & cOpenHard , char & cOpenVeryHard ) ;
// Dungeon Clear
void SetDungeonClear ( int nSlotIndex , int nMapIndex , int nType ) ;
void SetDungeonClearType ( int nSlotIndex , int nType ) ;
int GetDungeonClearMapIndex ( int nSlotIndex ) ;
char GetDungeonClearType ( int nSlotIndex ) ;
# endif // #if !defined(PRE_DELETE_DUNGEONCLEAR)
// Nest Clear
void AddNestClear ( int nMapIndex ) ;
char GetNestClearTotalCount ( int nMapIndex ) ;
TNestClearData * GetNestClearCount ( int nMapIndex ) ;
void InitNestClear ( bool bSend ) ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ý<EFBFBD> <C3BD> <EFBFBD>
void InitLadderGradePoint ( bool bSend ) ;
int GetGlyphDelayTime ( ) { return m_UserData . Status . nGlyphDelayTime ; }
int GetGlyphRemainTime ( ) { return m_UserData . Status . nGlyphRemainTime ; }
void SetViewCashEquipBitmap ( char cEquipIndex , bool bFlag ) ;
char * GetViewCashEquipBitmap ( ) ;
bool IsExistViewCashEquipBitmap ( char cEquipIndex ) ;
// Mission
int GetSelectAppellation ( ) { return m_UserData . Appellation . nSelectAppellation ; }
int GetCoverAppellation ( ) { return m_UserData . Appellation . nCoverAppellation ; }
# if defined(PRE_ADD_PVPLEVEL_MISSION)
void SetPvPLevel ( BYTE cLevel , bool bCallEvent = true ) ;
# endif
// Cash
int DelCashRebirthCoin ( int nGap ) ;
void AddPetal ( int nReserve ) ;
void DelPetal ( int nReserve ) ;
void SetPetal ( int nReserve ) ;
int GetPetal ( ) { return m_UserData . Status . nPetal ; }
// Tick
DWORD GetTick ( eTick pTick ) const ;
VOID SetTick ( eTick pTick ) const ;
VOID SetTick ( eTick pTick , DWORD dwVal ) const ;
VOID ResetTick ( eTick pTick ) const ;
BOOL IsTick ( eTick pTick ) const ;
bool GetAdult ( ) const { return m_bAdult ; }
bool IsCertified ( ) { return m_bCertified ; }
INT64 GetCertifyingKey ( ) { return m_biCertifyingKey ; }
DWORD GetCertifyingTick ( ) { return m_dwCertifyingTick ; }
char GetAge ( ) const { return m_cAge ; }
BYTE GetDailyCreateCount ( ) const { return m_cDailyCreateCount ; }
int GetPrmInt1 ( ) const { return m_nPrmInt1 ; }
eServerType GetLastServerType ( ) const { return ( static_cast < eServerType > ( m_cLastServerType ) ) ; }
std : : vector < TalkParam > & GetTalkParamList ( ) { return m_TalkParamList ; }
TALK_PARAGRAPH & GetLastTalkParagraph ( ) { return m_LastTalkParagraph ; }
bool & GetSkipParagraphCheck ( ) { return m_bSkipParagraphCheck ; }
bool GetCalledNpcResponse ( ) { return m_bCalledNpcResponse ; }
bool IsNpcTalk ( ) { return m_bIsNpcTalk ; }
void SetCalledNpcResponse ( bool bCalledNpcResponse , bool bIsNpcTalk ) { m_bCalledNpcResponse = bCalledNpcResponse ; m_bIsNpcTalk = bIsNpcTalk ; }
//GameOptions
const TGameOptions * GetGameOption ( ) { return & m_GameOption ; }
bool IsAcceptAbleOption ( INT64 nCharacterDBID , UINT nAccountDBID , int nCheckType ) ;
void SetLastStageClearRank ( char cLastStageClearRank ) { m_cLastStageClearRank = cLastStageClearRank ; }
char GetLastStageClearRank ( ) const { return m_cLastStageClearRank ; }
// Exchange
void SetExchangeTargetSessionID ( UINT nSessionID ) ;
UINT GetExchangeTargetSessionID ( ) { return m_nExchangeTargetSessionID ; }
void ClearExchangeInfo ( ) ; // exchange<67> <65> <EFBFBD> õ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ŭ<> <C5AC> <EFBFBD> <EFBFBD>
//gesture
bool HasGesture ( int nGestureID ) ;
CDNGesture * GetGesture ( ) { return m_pGesture ; }
bool CheckPapering ( eCheckPapering eType ) ;
void GetPartyMemberInfo ( SPartyMemberInfo & Info ) ;
void SetFriendBonus ( bool bFlag ) { m_bFriendBonus = bFlag ; }
bool GetFriendBonus ( ) { return m_bFriendBonus ; }
# if defined(_CH)
void SetFCMOnlineMin ( int nOnlineMin , bool bSend ) ;
char GetFCMState ( ) { return m_cFCMState ; }
int GetFCMOnlineMin ( ) { return m_nFCMOnlineMin ; }
bool CheckSndaAuthFlag ( eChSndaAuthFlag pSndaAuthFlag ) const { return ( ( static_cast < DWORD > ( m_nPrmInt1 ) & pSndaAuthFlag ) ? ( true ) : ( false ) ) ; }
# endif // _CH
# if defined(_HSHIELD)
void SendMakeRequest ( ) ;
# endif // _HSHIELD
virtual void SetHide ( bool bHide ) { }
bool GetHide ( ) { return m_bHide ; }
// Schedule
virtual void OnScheduleEvent ( ScheduleEventEnum ScheduleEvent , ScheduleStruct * pStruct , bool bInitialize ) ;
const TGuildUID & GetGuildUID ( ) const { return ( m_GuildSelfView . GuildUID ) ; }
TGuildSelfView & GetGuildSelfView ( ) { return m_GuildSelfView ; }
const TGuildSelfView & GetGuildSelfView ( ) const { return m_GuildSelfView ; }
virtual void SetGuildSelfView ( const TGuildView & pGuildView ) ;
virtual void SetGuildSelfView ( const TGuildSelfView & pGuildSelfView ) ;
virtual void ResetGuildSelfView ( ) ;
virtual void RefreshGuildSelfView ( ) ;
void AddGuildPoint ( char cPointType , int nPointValue , int nMissionID = 0 ) ;
# ifdef _USE_VOICECHAT
bool GetVoiceAvailable ( ) { return m_bVoiceAvailable ; }
bool IsMutedUser ( UINT nMuteID ) ;
void SetVoiceMute ( UINT nMuteID , bool bMute ) ;
bool JoinVoiceChannel ( UINT nVoiceChannelID , const char * pIP , TPosition * pPos , int nRotate , bool bForceSet = false , bool bMutePass = false ) ;
void LeaveVoiceChannel ( ) ;
void MakeMute ( ) ;
bool VoiceMuteOnetoOne ( UINT nMuteAccountDBID , bool bMute ) ;
bool VoiceComplaintRequest ( UINT nComplaineeAccountDBID , const char * pCategory , const char * pSubject , const char * pMsg ) ;
bool SetVoicePos ( int nX , int nY , int nZ , int nRotate ) ;
bool IsTalking ( BYTE * pTalking ) ;
# endif
void PCBangResult ( MAPCBangResult * pResult ) ;
void SetPCBang ( bool bPCBang ) ;
void SetPCBangGrade ( char cGrade ) ;
bool IsPCBang ( ) { return m_bPCBang ; }
int GetPcBangBonusExp ( ) { return m_nPcBangBonusExp ; }
char GetPCBangGrade ( ) { return m_cPCBangGrade ; }
void RefreshPCBangMissionList ( ) ;
bool IsVIP ( ) { return m_bVIP ; }
__time64_t GetVIPEndDate ( ) { return m_tVIPEndDate ; } // VIP <20> Ⱓ <20> <> <20> <> <EFBFBD> <EFBFBD>
bool IsVIPAutoPay ( ) { return m_bVIPAutoPay ; } // <20> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD>
int GetVIPBonusExp ( ) { return m_nVIPBonusExp ; }
int GetVIPTotalPoint ( ) { return m_nVIPTotalPoint ; } // <20> <> VIP <20> <> <EFBFBD> <EFBFBD> Ʈ
void SetVIPTotalPoint ( int nPoint ) ;
bool bIsSetSecondAuthPW ( ) { return m_bIsSetSecondAuthPW ; }
bool bIsSetSecondAuthLock ( ) { return m_bIsSetSecondAuthLock ; }
// Cash<73> ܾ<EFBFBD>
int GetCashBalance ( ) { return m_nCashBalance ; }
void SetCashBalance ( int nBalance ) ;
void DelCashBalance ( int nCash ) ;
void DelCashByPaymentRules ( int nBalance , char cPaymentRules ) ;
# if defined(PRE_ADD_CASH_REFUND)
void AddCashBalance ( int nCash ) ;
# endif
bool CheckEnoughCashByPaymentRules ( int nBalance , char cPaymentRules ) ;
bool CheckEnoughCashBalance ( int nBalance ) ; // nCheckCash<73> <68> ŭ <20> <> <EFBFBD> <EFBFBD> <20> ִ<EFBFBD> <D6B4> <EFBFBD> ...
bool CheckEnoughPetal ( int nPetal ) ;
# if defined(_US)
int GetNxAPrepaid ( ) { return m_nNxAPrepaid ; }
void SetNxAPrepaid ( int nCash ) ;
void DelNxAPrepaid ( int nCash ) ;
bool CheckEnoughNxAPrepaid ( int nCash ) ;
int GetNxACredit ( ) { return m_nNxACredit ; }
void SetNxACredit ( int nCash ) ;
void DelNxACredit ( int nCash ) ;
bool CheckEnoughNxACredit ( int nCash ) ;
bool CheckNxACreditUsableLevel ( int nItemSN ) ;
# endif // #if defined(_US)
bool IsValidPacketByNpcClick ( ) ; // npc<70> <63> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> Ŷ<EFBFBD> <C5B6> <20> <> ȿ<EFBFBD> <C8BF> <EFBFBD> <EFBFBD> <20> ˻<EFBFBD>
void MakeGiftByQuest ( int nQuestID , int * nRewardItemList ) ;
# ifdef _GPK
void SetCheckGPKTick ( DWORD nTick ) { m_dwCheckGPKTick = nTick ; } // live check
void SetRecvGPKTick ( DWORD nTick ) { m_dwRecvGPKTick = nTick ; } // live check
DWORD GetGPKRecvTick ( ) { return m_dwRecvGPKTick ; }
void SetGPKRespondErr ( bool bFlag ) { m_bRespondErr = bFlag ; }
bool GetGPKRespondErr ( ) { return m_bRespondErr ; }
# endif
TProfile * GetProfile ( ) { return & m_Profile ; }
void OnMasterSystemEvent ( MasterSystem : : EventType : : eCode EventCode ) ;
bool bIsMasterApplicationPenalty ( ) ;
void ModifyCompleteQuest ( ) ;
void ResetRepeatQuest ( ) ;
void NotifyGuildMemberLevelUp ( char cLevel ) ;
int GetGuildWareAllowCount ( ) ;
int GetGuildRoleType ( ) ;
void ExtendGuildWareAllowCount ( int nTotalSize ) ;
void UpdatePeriodQuest ( int nWorldID , int nPeriodQuestType , std : : vector < int > & vTotalQuestIDs ) ;
void CheckResetPeriodQuest ( const TAGetPeriodQuestDate * pPacket ) ;
void MarkingPeriodQuest ( ) ;
void SetDefaultMaxDailyPeriodQuest ( ScheduleStruct * pStruct ) ;
void SetDefaultMaxWeeklyPeriodQuest ( ScheduleStruct * pStruct ) ;
void ResetPeriodQuest ( int nType ) ;
void ProcessPeriodQuest ( DWORD dwCurTick ) ;
bool m_bPeriodQuestSchedule [ PERIODQUEST_RESET_MAX ] ;
DWORD m_dwPeriodQuestTick [ PERIODQUEST_RESET_MAX ] ;
int GetDungeonClearCount ( ) { return m_UserData . Status . nDungeonClearCount ; }
void SetDungeonClearCount ( int nCount ) { m_UserData . Status . nDungeonClearCount = nCount ; }
void IncreaseDungeonClearCount ( ) { m_UserData . Status . nDungeonClearCount + + ; }
void SetEtcPointList ( const TAGetListEtcPoint * pPacket ) ;
void SetEtcPointEach ( int nType , INT64 biLeftPoint ) ;
void AddEtcPoint ( BYTE cType , int nPlusPoint ) ;
void UseEtcPoint ( BYTE cType , int nUsePoint ) ;
int GetPvPUserState ( ) { return 0 ; }
void SetRemoteEnchantItemID ( int iItemID ) { m_iRemoteEnchantItemID = iItemID ; }
int GetRemoteEnchantItemID ( ) { return m_iRemoteEnchantItemID ; }
bool bIsRemoteEnchant ( ) { return m_iRemoteEnchantItemID > 0 ; }
int ParseEnchant ( CSEnchantItem * pPacket , int nLen ) ;
int ParseEnchantComplete ( CSEnchantItem * pPacket , int nLen ) ;
int ParseEnchantCancel ( int nLen ) ;
void SetRemoteItemCompoundItemID ( int iItemID ) { m_iRemoteItemCompoundItemID = iItemID ; }
int GetRemoteItemCompoundItemID ( ) { return m_iRemoteItemCompoundItemID ; }
bool bIsRemoteItemCompound ( ) { return m_iRemoteItemCompoundItemID > 0 ; }
int ParseItemCompound ( CSItemCompoundOpenReq * pPacket , int nLen ) ;
int ParseItemCompoundComplete ( CSCompoundItemReq * pPacket , int nLen ) ;
int ParseItemCompoundCancel ( CSItemCompoundCancelReq * pPacket , int nLen ) ;
# if defined( PRE_ADD_VIP_FARM )
bool bIsFarmVip ( ) ;
# endif // #if defined( PRE_ADD_VIP_FARM )
int GetHackAbuseDBValue ( ) const { return m_iHackAbuseDBValue ; }
int GetHackAbuseDBCallCount ( ) const { return m_iHackAbuseDBCallCount ; }
int GetHackPlayRestraintValue ( ) const { return m_iHackPlayRestraintValue ; }
int GetHackResetRestraintValue ( ) const { return m_iHackResetRestraintValue ; }
int GetHackCharacterCntWithoutMe ( ) const { return m_nHackAbuseCharacterCntWithoutMe ; }
# if defined(PRE_ADD_ANTI_CHAT_SPAM)
void SetSpammer ( bool bSpammer ) { m_bSpammer = bSpammer ; } ;
bool GetSpammer ( ) { return m_bSpammer ; } ;
# endif
# if defined(PRE_ADD_MUTE_USERCHATTING)
bool IsMuteChatting ( ) ;
# endif // #if defined(PRE_ADD_MUTE_USERCHATTING)
bool ModCommonVariableData ( CommonVariable : : Type : : eCode Type , INT64 biValue , __time64_t tDate = 0 ) ;
bool GetCommonVariableDataValue ( CommonVariable : : Type : : eCode Type , INT64 & biValue ) ;
bool IncCommonVariableData ( CommonVariable : : Type : : eCode Type , __time64_t tDate = 0 ) ;
void UpdateAttendanceEventData ( bool bSendResult ) ;
bool CheckAttendanceEventDone ( int iOngoingDay ) ;
int GetDateGap ( __time64_t tLastModifyDate ) ;
virtual bool bIsCheckPing ( ) = 0 ;
virtual void WritePingLog ( ) = 0 ;
void AddGhoulScore ( GhoulMode : : PointType : : eCode Type ) ;
void ClearAddGhoulScore ( ) ;
inline int GetAddGhoulScore ( GhoulMode : : PointType : : eCode Type ) { return m_PvPAddGhoulScores . nPoint [ Type ] ; } ;
inline int GetTotalGhoulScore ( GhoulMode : : PointType : : eCode Type ) { return m_PvPTotalGhoulScores . nPoint [ Type ] ; } ;
int GetMaxLevelCharacterCount ( ) ;
int GetLevelCharacterCount ( int nLevel ) ;
void NextTalk ( UINT nNpcObjectID , WCHAR * wszTalkIndex , WCHAR * wszTarget , std : : vector < TalkParam > & talkParam ) ;
void SetShopType ( Shop : : Type : : eCode ShopType ) { m_ShopType = ShopType ; }
Shop : : Type : : eCode GetShopType ( ) { return m_ShopType ; }
void SetSkillPage ( char cPage ) { m_UserData . Status . cSkillPage = cPage ; }
char GetSkillPage ( ) { return m_UserData . Status . cSkillPage ; }
// <20> ߰<EFBFBD>
void AddWindowState ( eWindowState AddState ) ;
// <20> <> <EFBFBD> <EFBFBD>
void SetWindowState ( eWindowState SetState ) ;
// <20> <> <EFBFBD> °<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> Ǿ<EFBFBD> <20> ִ<EFBFBD> <D6B4> <EFBFBD> .
bool IsWindowState ( eWindowState InclusionState ) const ;
// None<6E> <65> <20> <> <EFBFBD> 쿡<EFBFBD> <ECBFA1> State<74> ߰<EFBFBD>
bool IsNoneWindowStateAdd ( eWindowState AddState ) ;
// None<6E> <65> <20> <> <EFBFBD> 쿡<EFBFBD> <ECBFA1> State <20> <> <EFBFBD> <EFBFBD>
bool IsNoneWindowStateSet ( eWindowState SetState ) ;
// <20> <> <EFBFBD> °<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> Ǿ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> None <20> <> <EFBFBD> <EFBFBD>
void IsWindowStateNoneSet ( eWindowState InclusionState ) ;
void SetNoneWindowState ( ) ;
bool IsNoneWindowState ( ) const ;
virtual TPARTYID GetPartyID ( ) = 0 ;
bool DeleteWarpVillageItemByUse ( INT64 nItemSerial ) ;
bool AddDataBaseMessageSequence ( char cMainCmd , char cSubCmd ) ;
void DelDataBaseMessageSequence ( char cMainCmd , char cSubCmd ) ;
bool CheckDataBaseMessageSequence ( char cMainCmd , char cSubCmd ) ;
void SendLevelupEventMail ( int nLevel , int nClass , int nJob ) ;
# if defined( PRE_ADD_LIMITED_SHOP )
void ResetLimitedShopDailyCount ( ) ;
void ResetLimitedShopWeeklyCount ( ) ;
# if defined( PRE_FIX_74404 )
int GetLimitedShopBuyedItem ( int nShopID , int nItemID ) ;
void AddLimitedShopBuyedItem ( int nShopID , int nItemID , int nBuyCount , int nResetCycle , bool bDBSend = true ) ;
# else // #if defined( PRE_FIX_74404 )
int GetLimitedShopBuyedItem ( int nItemID ) ;
void AddLimitedShopBuyedItem ( int nItemID , int nBuyCount , int nResetCycle , bool bDBSend = true ) ;
# endif // #if defined( PRE_FIX_74404 )
void DelLimitedShopBuyedItem ( int eResetCycle ) ;
# endif
# if defined( PRE_PRIVATECHAT_CHANNEL )
int CheckInvalidChannelName ( WCHAR * wszName ) ;
INT64 GetPrivateChannelID ( ) { return m_UserData . Status . nPrivateChatChannel ; }
void SetPrivateChannelID ( INT64 nChannelID ) { m_UserData . Status . nPrivateChatChannel = nChannelID ; }
void SendPrivateChatChannel ( CDNPrivateChaChannel * pPrivateChatChannel ) ;
# endif
# if defined( PRE_ADD_TOTAL_LEVEL_SKILL )
bool AddTotalLevelSkillData ( BYTE cSlotIndex , int nSkillID , bool isInitialize = false ) ;
int GetTotalLevelSkillLevel ( ) { return m_nTotalLevelSKillLevel ; }
void AddTotalLevelSkillLevel ( int nAdd ) { m_nTotalLevelSKillLevel + = nAdd ; }
int * GetTotalLevelSkillData ( ) { return m_nTotalLevelSKillData ; }
void SetTotalLevelSkillCashSlot ( int nIndex , INT64 ExpireDate ) { m_nTotalLevelSkillCashSlot [ nIndex ] = ExpireDate ; m_bTotalLevelSkillCashSlot [ nIndex ] = true ; }
INT64 GetTotalLevelSkillCashSlot ( int nIndex ) { return m_nTotalLevelSkillCashSlot [ nIndex ] ; }
bool bIsTotalLevelSkillCashSlot ( int nIndex ) { return m_bTotalLevelSkillCashSlot [ nIndex ] ; }
void ResetTotalLevelSkillMedalCount ( ) ;
int GetTotalLevelSkillMedalCount ( ) ;
void AddTotalLevelSkillMedalCount ( int nMedalCount ) ;
float GetTotalLevelSkillEffect ( TotalLevelSkill : : Common : : eVillageEffectType eType ) ;
int GetintTotalLevelSkillEffect ( TotalLevelSkill : : Common : : eVillageEffectType eType ) ;
# endif
# if defined( PRE_ADD_NEWCOMEBACK )
int GetComebackAppellation ( ) { return m_nComebackAppellation ; }
# endif
# ifdef PRE_ADD_BEGINNERGUILD
bool CheckBegginerGuild ( ) { return m_bPartyBegginerGuild ; }
# endif //#ifdef PRE_ADD_BEGINNERGUILD
# if defined( PRE_ADD_STAMPSYSTEM )
CDNStampSystem * GetStampSystem ( ) { return m_pStampSystem ; }
# endif // #if defined( PRE_ADD_STAMPSYSTEM )
# if defined(PRE_ADD_GAMEQUIT_REWARD)
GameQuitReward : : RewardType : : eType GetUserGameQuitRewardType ( ) { return m_eUserGameQuitRewardType ; }
void SetUserGameQuitRewardType ( GameQuitReward : : RewardType : : eType eType ) { m_eUserGameQuitRewardType = eType ; }
bool SetGameQuitRewardItem ( TLevelupEvent : : eEventType eType , DBDNWorldDef : : AddMaterializedItem : : eCode eLogType ) ;
# endif
# if defined(PRE_ADD_CP_RANK)
char GetStageClearBestRank ( ) { return m_cStageClearBestRank ; }
int GetStageClearBestCP ( ) { return m_nStageClearBestCP ; }
# endif //#if defined(PRE_ADD_CP_RANK)
# if defined( PRE_ADD_NEW_MONEY_SEED )
void SetSeedPoint ( INT64 nSeedPoint ) ;
void AddSeedPoint ( INT64 nSeedPoint ) ;
void DelSeedPoint ( INT64 nSeedPoint ) ;
INT64 GetSeedPoint ( ) { return m_nSeedPoint ; }
bool CheckEnoughSeed ( int nPetal ) ;
# endif
//=========================================================================
// Private Function
//=========================================================================
private :
int _MakeItemCompoundErrorCode ( CDnItemCompounder : : S_OUTPUT & Output ) ;
int _CmdSetQuestNotifier ( const CSGameOptionQuestNotifier * pPacket ) ;
int _CmdSetMissionNotifier ( const CSGameOptionMissionNotifier * pPacket ) ;
int DelFatigue ( int nGap ) ;
int DelWeeklyFatigue ( int nGap ) ;
int DelPCBangFatigue ( int nGap ) ;
int DelEventFatigue ( int nGap ) ;
int DelVIPFatigue ( int nGap ) ;
int DelRebirthCoin ( int nGap ) ;
int DelPCBangRebirthCoin ( int nGap ) ;
int DelVIPRebirthCoin ( int nGap ) ;
void _MakeGiftVIPMonthItemByItemSN ( int nItemSN ) ;
int _OnCashBalanceInquiry ( ) ;
int _OnCashShopOpen ( ) ;
int _OnCashBuy ( CSCashShopBuy * pCashShop ) ;
int _OnCashPackageBuy ( CSCashShopPackageBuy * pCashShop ) ;
# if defined(PRE_ADD_CADGE_CASH)
int _OnCashCadge ( CSCashShopCadge * pCashShop ) ;
# endif // #if defined(PRE_ADD_CADGE_CASH)
int _OnCashGift ( CSCashShopGift * pCashShop ) ;
int _OnCashPackageGift ( CSCashShopPackageGift * pCashShop ) ;
int _OnCashCheckReceiver ( CSCashShopCheckReceiver * pCashShop ) ;
int _OnCashCoupon ( CSCashShopCoupon * pCashShop ) ;
# if defined(PRE_ADD_VIP)
int _OnCashVIPBuy ( CSVIPBuy * pCashShop ) ;
int _OnCashVIPGift ( CSVIPGift * pCashShop ) ;
# endif // #if defined(PRE_ADD_VIP)
# if defined(_VILLAGESERVER) && defined(PRE_ADD_CASH_REFUND)
int _OnMoveCashInven ( CSMoveCashInven * pCashShop ) ;
int _OnCashRefund ( CSCashRefund * pCashShop ) ;
# endif // #if defined(PRE_ADD_CASH_REFUND)
int OnRecvWarpVillageList ( const CSWarpVillageList * pPacket ) ;
int OnRecvWarpVillage ( const CSWarpVillage * pPacket ) ;
# if defined( PRE_ADD_NOTIFY_ITEM_COMPOUND )
void SetCompoundNotify ( const CSCompoundNotify * pPacket ) ;
# endif
# if defined(_KRAZ)
void _CheckShutdown ( ) ;
# endif // #if defined(_KRAZ)
int _CheckSaleCoupon ( int nSaleCouponSN , INT64 biSaleCouponSerial , int nBuyItemSN ) ;
} ;