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

模拟服务器

开发平台:

C/C++

  1. // KRoleInfomation.h: interface for the KRoleInfomation class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_KROLEINFOMATION_H__AECE97BE_EEC0_48CE_AFA1_C55FCFE87C3E__INCLUDED_)
  5. #define AFX_KROLEINFOMATION_H__AECE97BE_EEC0_48CE_AFA1_C55FCFE87C3E__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #define MAX_ROLEINFORMATION_SIZE 50000
  10. #define MAXSIZE_ROLENAME 100
  11. #include "windows.h"
  12. #pragma warning(disable:4786)
  13. #include "KRoleDBServer.h"
  14. #include <list>
  15. #include <map>
  16. using namespace std;
  17. //#define BYTE  unsigned char 
  18. //#define BOOL  int
  19. //#define DWORD unsigned long
  20. /*struct TCmdContent
  21. {
  22. unsigned short Cmd;
  23. unsigned long Size;
  24. unsigned char Buffer[1];
  25. };
  26.   
  27. struct TCmd:TCmdContent
  28. {
  29. unsigned long  nNetId;
  30. };
  31. */
  32. //using namespace RoleDBServer;
  33. //
  34. #define TCmd TProcessData 
  35. struct TGetRoleInfoFromDB
  36. {
  37. unsigned long nNetId;
  38. char szRoleName[MAXSIZE_ROLENAME];
  39. };
  40. class KRoleInfomation  
  41. {
  42. public:
  43. KRoleInfomation();
  44. virtual ~KRoleInfomation();
  45. void Clear(); //清除所有数据
  46. BYTE * GetRoleInfoBuffer(size_t & nRoleInfoSize);
  47. BOOL SetRoleInfoBuffer(BYTE * pRoleInfoBuffer, size_t nRoleInfoSize);
  48. BOOL CheckRoleInfoValid(const char * szRoleName); //验证Buffer数据是否为RoleName的数据
  49. BOOL CheckRoleInfoValid();
  50. int m_nSaveCmdCount; //从客户端获得的通知存档的次数
  51. int m_nSaveDBCount; //实际向数据库存档的次数
  52. int m_nLoadCmdCount; //从客户端获得的通知取档的次数
  53. DWORD m_nLastSaveTime;
  54. int m_nUnModifyTime;
  55. BOOL m_bModify; //是否更改了,也就是是否需要向数据库内存档
  56. private:
  57. BYTE m_RoleInfoBuffer[MAX_ROLEINFORMATION_SIZE];
  58. size_t m_nRoleInfoSize; //实际数据的长度
  59. };
  60. //按照角色登入的顺序存入的玩家列表,用于自动保存的顺序
  61. extern list<KRoleInfomation*> g_RoleInfoList;
  62. //以角色姓名作为关键名,存放玩家的列表,用于在客户端读取档快速检索
  63. extern map<std::string , KRoleInfomation * > g_RoleInfoMap;
  64. //存取档必须互斥!
  65. #endif // !defined(AFX_KROLEINFOMATION_H__AECE97BE_EEC0_48CE_AFA1_C55FCFE87C3E__INCLUDED_)