#ifndef _GAME_CLIENT_DISPATCH_H_ #define _GAME_CLIENT_DISPATCH_H_ #include #include #include #include #include #include #include #include // edith 2009.08.11 °ÔÀÓ°¡µå 2.5 ¾÷±×·¹À̵å //#include #include #include "CheckSpeedHack.h" // Àü¹æ ÂüÁ¶ class CCharacter; class CGameClientDispatch; class CGameClientDispatchTable; class CGameClientDispatch : public CRylServerDispatch { public: enum { MAX_PACKET_DISPATCH_PER_PULSE = 10, }; typedef bool (*FnProcess)(CGameClientDispatch& GameClientDispatch, PktBase* lpPktBase); CGameClientDispatch(CSession& Session, CGameClientDispatchTable& GameClientDispatchTable); virtual ~CGameClientDispatch(); virtual bool Dispatch(void); virtual bool DispatchPacket(PktBase* lpPktBase); virtual void Connected(void); virtual void Disconnected(void); void Disconnect(void); // ----------------------------------------------------------------------------------------------------------- // °ÔÀÓ °¡µå ÀÎÁõ °ü·Ã ÀÎÅÍÆäÀ̽º // edith 2009.08.11 °ÔÀÓ°¡µå 2.5 ¾÷±×·¹À̵å // unsigned long GetAuthCode(void) { return m_CSAuth.GetAuthDword(); } // bool CheckAuthCode(unsigned long dwReturnCode) { return (TRUE == m_CSAuth.CheckAuthDword(dwReturnCode)); } // bool IsAuth(void) { return (0 != m_CSAuth.IsAuth()); } unsigned long GetAuthCode(void) { return 0; } bool GetAuthQuery(GG_AUTH_DATA** lpAuthData_Out); void SetAuthAnswer(const GG_AUTH_DATA& authData) { m_CSAuth2.m_AuthAnswer = authData; } bool CheckAuthAnswer(void); // edith 2009.08.11 °ÔÀÓ°¡µå 2.5 ¾÷±×·¹À̵å // unsigned long DecryptPacket(void* lpData, unsigned long dwLength) // { // return m_CSAuth.DecryptPacket(lpData, dwLength); // } void PrintGameGuardError(void); void PrintGameGuardError(unsigned long dwGGErrCode); // ----------------------------------------------------------------------------------------------------------- CCharacter* GetCharacter(void) { return m_lpCharacter; } void SetCharacter(CCharacter* lpCharacter); unsigned long GetUID(void) { return m_dwUID; } void SetUID(unsigned long dwUID) { m_dwUID = dwUID; } void SetMoveAddress(unsigned long dwMoveServerID, const INET_Addr& moveAddress) { m_dwMoveServerID = dwMoveServerID; m_MoveAddress = moveAddress; } INET_Addr& GetMoveAddress() { return m_MoveAddress; } unsigned long GetMoveServerID() { return m_dwMoveServerID; } unsigned long PopRequestKey(void); void PushRequestKey(unsigned long dwRequestKey); protected: // ³Ê¹« ¸¹Àº ÆÐŶÀÌ µé¾î¿ÔÀ» °æ¿ì, ÆÐŶ ³»¿ë¿¡ ´ëÇØ¼­ ·Î±×¸¦ ³²±â°Å³ª ÆÐŶÀ» »èÁ¦ÇÑ´Ù. virtual void ProcessTooManyPacket(CBufferQueue& bufferQueue); private: CCharacter* m_lpCharacter; // ¿¬°üµÈ ij¸¯ÅÍ unsigned long m_dwUID; // ij¸¯ÅÍ UID CGameClientDispatchTable& m_GameClientDispatchTable; // Dispatch Table std::deque m_DBRequestQueue; // DBRequestQueue CCheckPing m_CheckPing; // ÇΠüũ CSpeedHackCheck m_CheckSpeedHack; // ½ºÇ٠üũ // edith 2009.08.11 °ÔÀÓ°¡µå 2.5 ¾÷±×·¹À̵å // CCSAuth m_CSAuth; // GameGuard ÀÎÁõ CCSAuth2 m_CSAuth2; // GameGuard ÀÎÁõ2 INET_Addr m_MoveAddress; unsigned long m_dwMoveServerID; }; // ÆÐŶ ó¸® Å×À̺í class CGameClientDispatchTable : public CPacketDispatchTable { public: static CGameClientDispatchTable& GetInstance(); protected: CGameClientDispatchTable(); }; #endif