诸暨麻将添加redis
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

245 linhas
8.8 KiB

  1. #ifndef MATCH_SERVICE_HEAD_HEAD_FILE
  2. #define MATCH_SERVICE_HEAD_HEAD_FILE
  3. //////////////////////////////////////////////////////////////////////////////////
  4. //平台定义
  5. #include "..\..\GlobalDef\Platform.h"
  6. //消息定义
  7. #include "..\..\MessageDef\CMD_Commom.h"
  8. #include "..\..\MessageDef\CMD_Correspond.h"
  9. #include "..\..\MessageDef\CMD_GameServer.h"
  10. //平台文件
  11. #include "..\..\SharedControl\ServiceCore\ServiceCoreHead.h"
  12. #include "..\..\ServerControl\GameService\GameServiceHead.h"
  13. #include "..\..\ServerControl\KernelEngine\KernelEngineHead.h"
  14. //////////////////////////////////////////////////////////////////////////////////
  15. //导出定义
  16. //导出定义
  17. #ifndef MATCH_SERVICE_CLASS
  18. #ifdef MATCH_SERVICE_DLL
  19. #define MATCH_SERVICE_CLASS _declspec(dllexport)
  20. #else
  21. #define MATCH_SERVICE_CLASS _declspec(dllimport)
  22. #endif
  23. #endif
  24. //模块定义
  25. #ifndef _DEBUG
  26. #define MATCH_SERVICE_DLL_NAME TEXT("MatchService.dll") //组件名字
  27. #else
  28. #define MATCH_SERVICE_DLL_NAME TEXT("MatchServiceD.dll") //组件名字
  29. #endif
  30. //////////////////////////////////////////////////////////////////////////////////
  31. //类型声明
  32. class CLockTimeMatch;
  33. //////////////////////////////////////////////////////////////////////////////////
  34. //比赛参数
  35. struct tagMatchManagerParameter
  36. {
  37. //配置参数
  38. tagGameMatchOption * pGameMatchOption; //比赛配置
  39. tagGameServiceOption * pGameServiceOption; //服务配置
  40. tagGameServiceAttrib * pGameServiceAttrib; //服务属性
  41. //内核组件
  42. ITimerEngine * pITimerEngine; //时间引擎
  43. IDBCorrespondManager * pICorrespondManager; //数据引擎
  44. ITCPNetworkEngineEvent * pTCPNetworkEngine; //网络引擎
  45. //服务组件
  46. IAndroidUserManager * pIAndroidUserManager; //机器管理
  47. IServerUserManager * pIServerUserManager; //用户管理
  48. IMainServiceFrame * pIMainServiceFrame; //服务框架
  49. IServerUserItemSink * pIServerUserItemSink; //用户接口
  50. };
  51. //排行信息
  52. struct tagMatchRankInfo
  53. {
  54. WORD wRankID; //比赛名次
  55. DWORD dwUserID; //用户标识
  56. SCORE lMatchScore; //比赛分数
  57. SCORE lRewardGold; //奖励金币
  58. DWORD dwRewardIngot; //奖励元宝
  59. DWORD dwRewardExperience; //奖励经验
  60. };
  61. //////////////////////////////////////////////////////////////////////////////////
  62. #ifdef _UNICODE
  63. #define VER_IMatchServiceManager INTERFACE_VERSION(1,1)
  64. static const GUID IID_IMatchServiceManager = { 0xd513eace, 0xb67d, 0x43d9, 0x0097, 0xfa, 0xd8, 0xa7, 0x9d, 0x31, 0x39, 0x9b };
  65. #else
  66. #define VER_IMatchServiceManager INTERFACE_VERSION(1,1)
  67. static const GUID IID_IMatchServiceManager = { 0x7d381e8a, 0x8c10, 0x4443, 0x00b5, 0xad, 0x75, 0x4b, 0xe5, 0x50, 0xc5, 0x53 };
  68. #endif
  69. //比赛服务器管理接口
  70. interface IMatchServiceManager : public IUnknownEx
  71. {
  72. //控制接口
  73. public:
  74. //停止服务
  75. virtual bool StopService() = NULL;
  76. //启动服务
  77. virtual bool StartService() = NULL;
  78. //管理接口
  79. public:
  80. //创建比赛
  81. virtual bool CreateGameMatch(BYTE cbMatchType) = NULL;
  82. //绑定桌子
  83. virtual bool BindTableFrame(ITableFrame * pTableFrame, WORD wChairID) = NULL;
  84. //初始化接口
  85. virtual bool InitMatchInterface(tagMatchManagerParameter & MatchManagerParameter) = NULL;
  86. //系统事件
  87. public:
  88. //时间事件
  89. virtual bool OnEventTimer(DWORD dwTimerID, WPARAM dwBindParameter) = NULL;
  90. //数据库事件
  91. virtual bool OnEventDataBase(WORD wRequestID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize) = NULL;
  92. //网络事件
  93. public:
  94. //比赛事件
  95. virtual bool OnEventSocketMatch(WORD wSubCmdID, VOID * pData, WORD wDataSize, IServerUserItem * pIServerUserItem, DWORD dwSocketID) = NULL;
  96. //用户接口
  97. public:
  98. //用户登录
  99. virtual bool OnEventUserLogon(IServerUserItem * pIServerUserItem) = NULL;
  100. //用户登出
  101. virtual bool OnEventUserLogout(IServerUserItem * pIServerUserItem) = NULL;
  102. //进入事件
  103. virtual bool OnEventEnterMatch(DWORD dwSocketID, VOID* pData, DWORD dwUserIP, bool bIsMobile) = NULL;
  104. //用户参赛
  105. virtual bool OnEventUserJoinMatch(IServerUserItem * pIServerUserItem, BYTE cbReason, DWORD dwSocketID) = NULL;
  106. //用户退赛
  107. virtual bool OnEventUserQuitMatch(IServerUserItem * pIServerUserItem, BYTE cbReason, WORD *pBestRank = NULL, DWORD dwContextID = INVALID_WORD) = NULL;
  108. //接口信息
  109. public:
  110. //用户接口
  111. virtual IUnknownEx * GetServerUserItemSink() = NULL;
  112. };
  113. //////////////////////////////////////////////////////////////////////////////////
  114. #ifdef _UNICODE
  115. #define VER_IGameMatchItem INTERFACE_VERSION(1,1)
  116. static const GUID IID_IGameMatchItem = { 0xd513eace, 0xb67d, 0x43d9, 0x0097, 0xfa, 0xd8, 0xa7, 0x9d, 0x31, 0x39, 0x9b };
  117. #else
  118. #define VER_IGameMatchItem INTERFACE_VERSION(1,1)
  119. static const GUID IID_IGameMatchItem = { 0x7d381e8a, 0x8c10, 0x4443, 0x00b5, 0xad, 0x75, 0x4b, 0xe5, 0x50, 0xc5, 0x53 };
  120. #endif
  121. //游戏比赛接口
  122. interface IGameMatchItem : public IUnknownEx
  123. {
  124. //控制接口
  125. public:
  126. //启动通知
  127. virtual void OnStartService() = NULL;
  128. //管理接口
  129. public:
  130. //绑定桌子
  131. virtual bool BindTableFrame(ITableFrame * pTableFrame, WORD wTableID) = NULL;
  132. //初始化接口
  133. virtual bool InitMatchInterface(tagMatchManagerParameter & MatchManagerParameter) = NULL;
  134. //系统事件
  135. public:
  136. //时间事件
  137. virtual bool OnEventTimer(DWORD dwTimerID, WPARAM dwBindParameter) = NULL;
  138. //数据库事件
  139. virtual bool OnEventDataBase(WORD wRequestID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize) = NULL;
  140. //网络事件
  141. public:
  142. //比赛事件
  143. virtual bool OnEventSocketMatch(WORD wSubCmdID, VOID * pData, WORD wDataSize, IServerUserItem * pIServerUserItem, DWORD dwSocketID) = NULL;
  144. //信息接口
  145. public:
  146. //用户登录
  147. virtual bool OnEventUserLogon(IServerUserItem * pIServerUserItem) = NULL;
  148. //用户登出
  149. virtual bool OnEventUserLogout(IServerUserItem * pIServerUserItem) = NULL;
  150. //进入事件
  151. virtual bool OnEventEnterMatch(DWORD dwSocketID, VOID* pData, DWORD dwUserIP, bool bIsMobile) = NULL;
  152. //用户参赛
  153. virtual bool OnEventUserJoinMatch(IServerUserItem * pIServerUserItem, BYTE cbReason, DWORD dwSocketID) = NULL;
  154. //用户退赛
  155. virtual bool OnEventUserQuitMatch(IServerUserItem * pIServerUserItem, BYTE cbReason, WORD *pBestRank = NULL, DWORD dwContextID = INVALID_WORD) = NULL;
  156. };
  157. //////////////////////////////////////////////////////////////////////////////////
  158. #ifdef _UNICODE
  159. #define VER_IMatchEventSink INTERFACE_VERSION(1,1)
  160. static const GUID IID_IMatchEventSink = { 0x9d49ab20, 0x472c, 0x4b3a, 0x00bc, 0xb4, 0x92, 0xfe, 0x8c, 0x41, 0xcd, 0xaa };
  161. #else
  162. #define VER_IMatchEventSink INTERFACE_VERSION(1,1)
  163. static const GUID IID_IMatchEventSink = { 0x91cf29a0, 0x04d3, 0x48da, 0x0083, 0x36, 0x64, 0xb2, 0xda, 0x6a, 0x21, 0xdb };
  164. #endif
  165. //游戏事件
  166. interface IMatchEventSink :public IUnknownEx
  167. {
  168. //游戏开始
  169. virtual bool OnEventGameStart(ITableFrame *pITableFrame, WORD wChairCount) = NULL;
  170. //游戏结束
  171. virtual bool OnEventGameEnd(ITableFrame *pITableFrame, WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason) = NULL;
  172. //用户坐下
  173. virtual bool OnActionUserSitDown(WORD wTableID, WORD wChairID, IServerUserItem * pIServerUserItem, bool bLookonUser) = NULL;
  174. //用户起来
  175. virtual bool OnActionUserStandUp(WORD wTableID, WORD wChairID, IServerUserItem * pIServerUserItem, bool bLookonUser) = NULL;
  176. //用户同意
  177. virtual bool OnActionUserOnReady(WORD wTableID, WORD wChairID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize) = NULL;
  178. };
  179. ///////////////////////////////////////////////////////////////////////////
  180. #ifdef _UNICODE
  181. #define VER_ITableFrameHook INTERFACE_VERSION(1,1)
  182. static const GUID IID_ITableFrameHook = { 0xe9f19de8, 0xfccb, 0x42bd, 0x0099, 0x85, 0xac, 0xe9, 0x26, 0xf3, 0xc4, 0x2b };
  183. #else
  184. #define VER_ITableFrameHook INTERFACE_VERSION(1,1)
  185. static const GUID IID_ITableFrameHook = { 0x94a90d45, 0x570e, 0x41d6, 0x009f, 0x20, 0x01, 0x8d, 0x68, 0x16, 0xd5, 0x0f };
  186. #endif
  187. //桌子钩子接口
  188. interface ITableFrameHook : public IUnknownEx
  189. {
  190. //管理接口
  191. public:
  192. //设置接口
  193. virtual bool SetMatchEventSink(IUnknownEx * pIUnknownEx) = NULL;
  194. //初始化
  195. virtual bool InitTableFrameHook(IUnknownEx * pIUnknownEx) = NULL;
  196. //游戏事件
  197. public:
  198. //游戏开始
  199. virtual bool OnEventGameStart(ITableFrame *pITableFrame, WORD wChairCount) = NULL;
  200. //游戏结束
  201. virtual bool OnEventGameEnd(ITableFrame *pITableFrame, WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason) = NULL;
  202. };
  203. //////////////////////////////////////////////////////////////////////////////////
  204. //游戏服务
  205. DECLARE_MODULE_HELPER(MatchServiceManager, MATCH_SERVICE_DLL_NAME, "CreateMatchServiceManager")
  206. //////////////////////////////////////////////////////////////////////////////////
  207. #endif