HostConnect.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:3k
源码类别:

模拟服务器

开发平台:

C/C++

  1. // HostConnect.h: interface for the CHostConnect class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_HOSTCONNECT_H__42803752_B2ED_4398_9FF8_BE05DC352F41__INCLUDED_)
  5. #define AFX_HOSTCONNECT_H__42803752_B2ED_4398_9FF8_BE05DC352F41__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "NetConnect.h"
  10. class CHostConnect : public CNetConnect  
  11. {
  12. public:
  13. CHostConnect(class CHostServer* pHostServer, unsigned long id);
  14. virtual ~CHostConnect();
  15. protected:
  16. virtual void RecvPackage(const void* pData, size_t size);
  17. private:
  18. void Proc0_Normal(const void* pData, size_t size);
  19. void Proc1_Normal_EnterGame(const void* pData, size_t size);
  20. void Proc1_Normal_LeaveGame(const void* pData, size_t size);
  21. void Proc0_Relay(const void* pData, size_t size);
  22. void Proc1_Relay_Data(const void* pData, size_t size);
  23. void Proc1_Relay_AskWay(const void* pData, size_t size);
  24. void Proc1_Relay_LoseWay(const void* pData, size_t size);
  25. void Proc2_Relay_AskWay_AccountRoleID(const void* pData, size_t size, BOOL acc);
  26. void Proc2_Relay_AskWay_MapID(const void* pData, size_t size);
  27. void Proc2_Relay_AskWay_GM(const void* pData, size_t size);
  28. void Proc0_PlayerCommunity(const void* pData, size_t size);
  29. void Proc1_PlayerCommunity_QueryChannelID(const void* pData, size_t size);
  30. void Proc1_PlayerCommunity_FreeChannelID(const void* pData, size_t size);
  31. void Proc1_PlayerCommunity_Subscribe(const void* pData, size_t size);
  32. protected:
  33. virtual void OnClientConnectCreate();
  34. virtual void OnClientConnectClose();
  35. virtual void PrepareRecvs();
  36. virtual void UnprepareRecvs();
  37. //track player
  38. private:
  39. struct ACCINFO
  40. {
  41. std::_tstring role;
  42. DWORD nameID;
  43. unsigned long param;
  44. };
  45. typedef std::map<std::_tstring, ACCINFO, _tstring_iless> ACCMAP;
  46. ACCMAP m_mapAcc;
  47. struct ROLEINFO
  48. {
  49. std::_tstring acc;
  50. DWORD nameID;
  51. unsigned long param;
  52. };
  53. typedef std::map<std::_tstring, ROLEINFO, _tstring_less> ROLEMAP;
  54. ROLEMAP m_mapRole;
  55. struct PARAMINFO
  56. {
  57. std::_tstring acc;
  58. std::_tstring role;
  59. DWORD nameID;
  60. };
  61. typedef std::map<unsigned long, PARAMINFO> PARAMMAP;
  62. PARAMMAP m_mapParam;
  63. CLockMRSW m_lockPlayer;
  64. public:
  65. BOOL FindPlayerByAcc(const std::_tstring& acc, std::_tstring* pRole, DWORD* pNameID, unsigned long* pParam, std::_tstring* pRealAcc = NULL);
  66. BOOL FindPlayerByRole(const std::_tstring& role, std::_tstring* pAcc, DWORD* pNameID, unsigned long* pParam, std::_tstring* pRealRole = NULL);
  67. BOOL FindPlayerByParam(unsigned long param, std::_tstring* pAcc, std::_tstring* pRole, DWORD* pNameID);
  68. //BOOL BroadOnPlayer(BOOL byAcc, DWORD fromIP, unsigned long fromRelayID, const void* pData, size_t size);
  69. public:
  70. size_t GetPlayerCount();
  71. };
  72. #endif // !defined(AFX_HOSTCONNECT_H__42803752_B2ED_4398_9FF8_BE05DC352F41__INCLUDED_)