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

模拟服务器

开发平台:

C/C++

  1. // GameStatistic.h: interface for the GameStatistic class.
  2. //游戏统计类
  3. //By Fellow
  4. //////////////////////////////////////////////////////////////////////
  5. #if !defined(GAMESTATISTIC_H)
  6. #define GAMESTATISTIC_H
  7. #include "DBTable.h"
  8. #include "S3DBInterface.h"
  9. #if _MSC_VER > 1000
  10. #pragma once
  11. #endif // _MSC_VER > 1000
  12. class TGameStatistic  
  13. {
  14. public://统计列表的数据结构
  15. struct TRoleList
  16. {
  17. char Name[32];
  18. //char Account[32];
  19. int Level;
  20. int Money;
  21. int Sect; //门派
  22. };
  23. struct TStatData
  24. {
  25. TRoleList MoneyStat[100]; //金钱最多排名列表(一百个玩家)
  26. TRoleList LevelStat[100]; //级别最多排名列表(一百个玩家)
  27. TRoleList MoneyStatBySect[11][10]; //各门派金钱最多排名列表[门派][玩家数]
  28. TRoleList LevelStatBySect[11][10]; //各门派级别最多排名列表[门派][玩家数]
  29. int SectPlayerNum[11]; //各个门派的玩家数
  30. int SectMoneyMost[11]; //财富排名前一百玩家中各门派所占比例数
  31. int SectLevelMost[11]; //级别排名前一百玩家中各门派所占比例数
  32. };
  33. private:
  34. ZDBTable* DBTable; //数据库
  35. enum StatType{stMoney, stLevel};//需要判断的类别(stMoney, stLevel)
  36. TRoleList* GetMin( //查找出列表中钱/级别(或其他)最少的一个元素
  37. TRoleList* const aRoleList, //列表
  38. const int n, //列表大小
  39. const StatType aType); //需要判断的类别(stMoney, stLevel)
  40. void ListSort( //对列表做特定的排序
  41. TRoleList* const aRoleList,
  42. const int n,
  43. const StatType aType);
  44. void RoleDataCopy(TRoleList* Desc, TRoleData* Source);//把RoleData有用的结构复制到RoleList结构中
  45. public:
  46. TGameStatistic(){DBTable = NULL;};
  47. TGameStatistic(ZDBTable * aTable){DBTable = aTable;};
  48. virtual ~TGameStatistic(){};
  49. void SetDBTable(ZDBTable * aTable){DBTable = aTable;};
  50. //操作
  51. bool AllStat(TStatData& aStatData);//全部统计
  52. };
  53. #endif // !defined(GAMESTATISTIC_H)