诸暨麻将添加redis
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 
 

926 wiersze
39 KiB

  1. #ifndef ATTEMPER_ENGINE_SINK_HEAD_FILE
  2. #define ATTEMPER_ENGINE_SINK_HEAD_FILE
  3. #pragma once
  4. #include "Stdafx.h"
  5. #include "TableFrame.h"
  6. #include "InitParameter.h"
  7. #include "ServerListManager.h"
  8. #include "DataBasePacket.h"
  9. #include "DistributeManager.h"
  10. #include "SensitiveWordsFilter.h"
  11. #include <unordered_map>
  12. #include <memory>
  13. #include "RedisHead.h"
  14. //////////////////////////////////////////////////////////////////////////////////
  15. //连接类型
  16. #define CLIENT_KIND_FALSH 1 //网页类型
  17. #define CLIENT_KIND_MOBILE 2 //手机类型
  18. #define CLIENT_KIND_COMPUTER 3 //电脑类型
  19. #define PRIVATE_TABLE_MIN_ID 1000 //私有房间的最小ID
  20. //系统消息
  21. struct tagSystemMessage
  22. {
  23. DWORD dwLastTime; //发送时间
  24. DBR_GR_SystemMessage SystemMessage; //系统消息
  25. };
  26. //数组说明
  27. typedef CWHArray<CTableFrame *> CTableFrameArray; //桌子数组
  28. typedef CWHArray<tagSystemMessage *> CSystemMessageArray; //系统消息
  29. typedef CWHArray<tagTaskParameter *> CTaskParameterArray; //任务数组
  30. typedef CMap<DWORD, DWORD, DWORD, DWORD &> CKickUserItemMap; //踢人映射
  31. typedef CMap<WORD, WORD, tagTaskParameter *, tagTaskParameter *> CTaskParameterMap;
  32. //////////////////////////////////////////////////////////////////////////////////
  33. //调度钩子
  34. class CAttemperEngineSink : public IAttemperEngineSink, public IMainServiceFrame, public IServerUserItemSink
  35. {
  36. //友元定义
  37. friend class CServiceUnits;
  38. friend class CHttpClient;
  39. //状态变量
  40. protected:
  41. static DWORD m_DwordThead;
  42. time_t m_lastRankListTime;
  43. char* m_pRankListData;
  44. DWORD m_pRankListDataSize;
  45. bool m_bCollectUser; //汇总标志
  46. bool m_bNeekCorrespond; //协调标志
  47. DWORD m_dwCorrespondNum; //协调计数
  48. TagUpData m_Data; //统计数据
  49. int m_Service; //服务状态 1提供服务 0 主动不提供服务 <0 被攻击被动不提供服务
  50. ST_JCDATA m_JC; //监测ID
  51. //控制变量
  52. protected:
  53. DWORD m_dwIntervalTime; //间隔时间
  54. DWORD m_dwLastDisposeTime; //处理时间
  55. //绑定信息
  56. protected:
  57. tagBindParameter * m_pNormalParameter; //绑定信息
  58. CCriticalSection m_CriticalSection; //同步对象
  59. //tagBindParameter * m_pAndroidParameter; //绑定信息
  60. //配置信息
  61. protected:
  62. CInitParameter * m_pInitParameter; //配置参数
  63. tagGameParameter * m_pGameParameter; //配置参数
  64. tagGameMatchOption * m_pGameMatchOption; //比赛配置
  65. tagGameServiceAttrib * m_pGameServiceAttrib; //服务属性
  66. tagGameServiceOption * m_pGameServiceOption; //服务配置
  67. BOOL m_BCreate; //允许创建房间
  68. BOOL m_BAddCreate; //允许加入房间
  69. BOOL m_BCreate_Hua; //允许创建花牌房间
  70. WORD m_wShuffleZuan; //洗牌所需钻石
  71. //配置数据
  72. protected:
  73. //CMD_GR_ConfigColumn m_DataConfigColumn; //列表配置
  74. //CMD_GR_ConfigProperty m_DataConfigProperty; //道具配置
  75. //会员参数
  76. protected:
  77. WORD m_wMemberCount; //会员数目
  78. tagMemberParameter m_MemberParameter[10]; //会员参数
  79. //任务参数
  80. protected:
  81. WORD m_wTaskCount; //任务数目
  82. tagTaskParameter m_TaskParameter[TASK_MAX_COUNT]; //任务参数
  83. ///+++场馆列表
  84. protected:
  85. std::vector<tagVenueInfo> m_vecVenueInfo; //++场馆列表
  86. //bool OnTCPNetworkGetVenueInfoList(VOID * pData, WORD wDataSize, DWORD dwSocketID); ///+++拉取场馆信息列表
  87. //bool OnTCPNetworkGetVenueGameSvr(VOID * pData, WORD wDataSize, DWORD dwSocketID); ///+++拉取金币场服务器
  88. //bool isVenueServer(); ///+++是否为金币场服务器
  89. //tagVenueInfo getVenueInfo(WORD wVenueID);
  90. tagCheckinReward m_checkinReward[LEN_WEEK]; //签到奖励 [7天签到奖励的配置信息]
  91. //组件变量
  92. protected:
  93. std::list<unsigned short> m_privateTableIDPool;
  94. ///在超时情况下需要清空,牌局打完的情况下也需要清空。
  95. std::unordered_map<DWORD, JN_GR_RoomListGroup> m_UserID_2_PriTableIDGROUP; //创建者ID 转 私有桌子ID结构组
  96. std::unordered_map<DWORD, JN_GR_RoomListBig> m_PrivateRoomAll; //所有服务器私有房间信息
  97. std::unordered_map<DWORD, CMD_CS_C_UserEnter> m_OnLineUserAll; //所有服务器用户信息
  98. std::unordered_map<std::wstring,DWORD> m_PriTableID_2_TableID; //私有桌子id 转换为普通ID
  99. std::unordered_map<DWORD, std::shared_ptr<CTableFrame>> m_TableFrameArray; //桌子数组
  100. CServerUserManager m_ServerUserManager; //用户管理
  101. //CAndroidUserManager m_AndroidUserManager; //机器管理
  102. //CUserTaskManager m_UserTaskManager; //任务管理
  103. //CGamePropertyManager m_GamePropertyManager; //道具管理
  104. CDistributeManager m_DistributeManage; //分组管理
  105. //CKickUserItemMap m_KickUserItemMap; //踢人管理
  106. CSystemMessageArray m_SystemMessageActive; //系统消息
  107. CSystemMessageArray m_SystemMessageBuffer; //消息缓冲
  108. //CSensitiveWordsFilter m_WordsFilter; //脏字过滤
  109. public:
  110. CServerListManager m_ServerListManager; //列表管理
  111. //距离记录
  112. CMap<DWORD, DWORD, LONGLONG, LONGLONG> m_MapUserIDJuli;
  113. //组件接口
  114. protected:
  115. ITimerEngine * m_pITimerEngine; //时间引擎
  116. IAttemperEngine * m_pIAttemperEngine; //调度引擎
  117. ITCPSocketService * m_pITCPSocketService; //网络服务
  118. ITCPNetworkEngine * m_pITCPNetworkEngine; //网络引擎
  119. IGameServiceManager * m_pIGameServiceManager; //服务管理
  120. std::shared_ptr<RedisBase> m_RedisClient;//redis
  121. //比赛服务
  122. public:
  123. //IMatchServiceManager * m_pIMatchServiceManager; //比赛管理
  124. //数据引擎
  125. public:
  126. IDataBaseEngine * m_pIRecordDataBaseEngine; //数据引擎
  127. IDataBaseEngine * m_pIKernelDataBaseEngine; //数据引擎
  128. IDBCorrespondManager * m_pIDBCorrespondManager; //数据协调
  129. //函数定义
  130. public:
  131. //构造函数
  132. CAttemperEngineSink();
  133. //析构函数
  134. virtual ~CAttemperEngineSink();
  135. //基础接口
  136. public:
  137. //释放对象
  138. virtual VOID Release() { return; }
  139. //接口查询
  140. virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
  141. //异步接口
  142. public:
  143. //启动事件
  144. virtual bool OnAttemperEngineStart(IUnknownEx * pIUnknownEx);
  145. //停止事件
  146. virtual bool OnAttemperEngineConclude(IUnknownEx * pIUnknownEx);
  147. //事件接口
  148. public:
  149. //控制事件
  150. virtual bool OnEventControl(WORD wIdentifier, VOID * pData, WORD wDataSize);
  151. //自定事件
  152. virtual bool OnEventAttemperData(WORD wRequestID, VOID * pData, WORD wDataSize);
  153. //内核事件
  154. public:
  155. //时间事件
  156. virtual bool OnEventTimer(DWORD dwTimerID, WPARAM wBindParam);
  157. //数据库事件
  158. virtual bool OnEventDataBase(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize);
  159. //连接事件
  160. public:
  161. //连接事件
  162. virtual bool OnEventTCPSocketLink(WORD wServiceID, INT nErrorCode);
  163. //关闭事件
  164. virtual bool OnEventTCPSocketShut(WORD wServiceID, BYTE cbShutReason);
  165. //读取事件
  166. virtual bool OnEventTCPSocketRead(WORD wServiceID, TCP_Command Command, VOID * pData, WORD wDataSize);
  167. ///+++场馆命令
  168. //bool OnTCPNetworkMainVenue(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  169. //网络事件
  170. public:
  171. //应答事件
  172. virtual bool OnEventTCPNetworkBind(DWORD dwClientAddr, DWORD dwSocketID);
  173. //关闭事件
  174. virtual bool OnEventTCPNetworkShut(DWORD dwClientAddr, DWORD dwActiveTime, DWORD dwSocketID);
  175. ///测试
  176. std::unordered_map<DWORD, DWORD> Socket_2_UserID; //Socket关联UserID
  177. //读取事件
  178. virtual bool OnEventTCPNetworkRead(TCP_Command Command, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  179. //消息接口
  180. public:
  181. //房间消息
  182. virtual bool SendRoomMessage(LPCTSTR lpszMessage, WORD wType);
  183. //游戏消息
  184. virtual bool SendGameMessage(LPCTSTR lpszMessage, WORD wType);
  185. //房间消息
  186. virtual bool SendRoomMessage(IServerUserItem * pIServerUserItem, LPCTSTR lpszMessage, WORD wType);
  187. //游戏消息
  188. virtual bool SendGameMessage(IServerUserItem * pIServerUserItem, LPCTSTR lpszMessage, WORD wType);
  189. //房间消息
  190. virtual bool SendRoomMessage(DWORD dwSocketID, LPCTSTR lpszMessage, WORD wType, bool bAndroid);
  191. //同步事件
  192. virtual bool OnTongBu(int Command, DWORD dwContextID, VOID * pData, WORD wDataSize);
  193. //网络接口
  194. public:
  195. //发送数据
  196. virtual bool SendData(BYTE cbSendMask, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
  197. //发送数据
  198. virtual bool SendData(DWORD dwSocketID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
  199. //发送数据
  200. virtual bool SendData(IServerUserItem * pIServerUserItem, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
  201. //群发数据
  202. virtual bool SendDataBatchToMobileUser(WORD wCmdTable, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize, IServerUserItem * pUserItem = NULL);
  203. //功能接口
  204. public:
  205. //插入用户
  206. virtual bool InsertDistribute(IServerUserItem * pIServerUserItem);
  207. //删除用户
  208. virtual bool DeleteDistribute(IServerUserItem * pIServerUserItem);
  209. //敏感词过滤
  210. virtual void SensitiveWordFilter(LPCTSTR pMsg, LPTSTR pszFiltered, int nMaxLen);
  211. //删除私有桌子
  212. virtual bool DeletePrivateTable(ITableFrame* pTableFrame);
  213. //用户接口
  214. public:
  215. //用户积分
  216. virtual bool OnEventUserItemScore(IServerUserItem * pIServerUserItem, BYTE cbReason);
  217. //用户状态
  218. virtual bool OnEventUserItemStatus(IServerUserItem * pIServerUserItem, WORD wOldTableID = INVALID_TABLE, WORD wOldChairID = INVALID_CHAIR, bool bSendState = false);
  219. //用户权限
  220. virtual bool OnEventUserItemRight(IServerUserItem *pIServerUserItem, DWORD dwAddRight, DWORD dwRemoveRight, BYTE cbRightKind);
  221. //删除用户的桌子列表中的数据
  222. bool DecUserTable(DWORD dwUser, DWORD dwTableID ,int TableCount);
  223. //发送我的房间的状态
  224. bool UpdataMyOwnRoom(IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize);
  225. //添加桌子局数通知
  226. bool UpdataTableJushu(DWORD PrivateTableID,DWORD CurrentJushu);
  227. std::shared_ptr<CTableFrame> GetTableFrame(DWORD wTableID)
  228. {
  229. auto iter = m_TableFrameArray.find(wTableID);
  230. if (iter == m_TableFrameArray.end())
  231. return nullptr;
  232. return iter->second;
  233. }
  234. std::shared_ptr<CTableFrame> GetPriTableFrame(std::wstring sPriTableID)
  235. {
  236. auto iter = m_PriTableID_2_TableID.find(sPriTableID);
  237. if (iter == std::end(m_PriTableID_2_TableID))
  238. return nullptr;
  239. auto iter2 = m_TableFrameArray.find(iter->second);
  240. if (iter2 == m_TableFrameArray.end())
  241. return nullptr;
  242. return iter2->second;
  243. }
  244. //数据事件
  245. protected:
  246. bool CheckConfig(tagGameConfig UserSitDown);
  247. //检验
  248. bool CheckConfigXueLiu(tagGameConfig UserSitDown);
  249. //字牌
  250. bool CheckConfigZiPai(tagGameConfig UserSitDown);
  251. //戳瞎子
  252. bool CheckConfigXiaZi(tagGameConfig UserSitDown);
  253. //登录成功
  254. bool OnDBLogonSuccessSend(DWORD dwContextID, VOID * pData, WORD wDataSize);
  255. //登录成功
  256. bool OnDBLogonSuccess(DWORD dwContextID, VOID * pData, WORD wDataSize);
  257. //登录失败
  258. bool OnDBLogonFailure(DWORD dwContextID, VOID * pData, WORD wDataSize);
  259. //获取游戏积分记录列表
  260. bool OnDBGetUserGameScoreList(DWORD dwContextID, VOID * pData, WORD wDataSize);
  261. //获取游戏积分记录详情
  262. bool OnDBGetUserGameScoreRecordDetail(DWORD dwContextID, VOID * pData, WORD wDataSize);
  263. //插入父节点房间的返回
  264. bool OnDBO_GR_GameScoreRecord_RESULT(DWORD dwContextID, VOID * pData, WORD wDataSize);
  265. //获取临时积分排行榜
  266. bool OnDBO_GR_GameTmpScoreRankListResult(DWORD dwContextID, VOID * pData, WORD wDataSize);
  267. //获取游戏回放数据
  268. bool OnDBGetUserGameScoreReplayRecord(DWORD dwContextID, VOID * pData, WORD wDataSize);
  269. //配置信息
  270. bool OnDBGameParameter(DWORD dwContextID, VOID * pData, WORD wDataSize);
  271. //列表信息
  272. //bool OnDBGameColumnInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  273. ////机器信息
  274. //bool OnDBGameAndroidInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  275. ////机器参数
  276. //bool OnDBGameAndroidParameter(DWORD dwContextID, VOID * pData, WORD wDataSize);
  277. //道具信息
  278. //bool OnDBGamePropertyInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  279. ////会员参数
  280. //bool OnDBGameMemberParameter(DWORD dwContextID, VOID * pData, WORD wDataSize);
  281. ////银行信息
  282. //bool OnDBUserInsureInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  283. ////银行成功
  284. //bool OnDBUserInsureSuccess(DWORD dwContextID, VOID * pData, WORD wDataSize);
  285. ////银行失败
  286. //bool OnDBUserInsureFailure(DWORD dwContextID, VOID * pData, WORD wDataSize);
  287. ////用户信息
  288. //bool OnDBUserInsureUserInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  289. ////开通结果
  290. //bool OnDBUserInsureEnableResult(DWORD dwContextID, VOID * pData, WORD wDataSize);
  291. //直接扣除元宝
  292. bool OnDBR_GR_USER_ZHIJIE_BEANS_RETURNSEND(DWORD dwContextID, VOID * pData, WORD wDataSize);
  293. //直接扣除元宝
  294. bool OnDBR_GR_USER_ZHIJIE_BEANS_RETURN(DWORD dwContextID, VOID * pData, WORD wDataSize);
  295. //从冻结中消耗元宝不需要通知客户
  296. bool OnDBR_GR_USER_REDUCE_BEANS_RETURN(DWORD dwContextID, VOID * pData, WORD wDataSize);
  297. //消耗元宝不需要通知客户
  298. bool OnDBR_GR_USER_REDUCE_BEANS_RETURNSEND(DWORD dwContextID, VOID * pData, WORD wDataSize);
  299. //冻结元宝结果通知客户
  300. bool OnDBR_GR_USER_LOCK_BEANS_RETURNSEND(DWORD dwContextID, VOID * pData, WORD wDataSize);
  301. //冻结元宝结果通知客户
  302. bool OnDBR_GR_USER_LOCK_BEANS_RETURN(DWORD dwContextID, VOID * pData, WORD wDataSize);
  303. //解冻元宝结果通知客户
  304. bool OnDBR_GR_USER_UNLOCK_BEANS_RETURN(DWORD dwContextID, VOID * pData, WORD wDataSize);
  305. //解冻元宝结果通知客户
  306. bool OnDBR_GR_USER_UNLOCK_BEANS_RETURNSEND(DWORD dwContextID, VOID * pData, WORD wDataSize);
  307. //获取刷新元宝
  308. bool OnDBO_GR_GetBearn(DWORD dwContextID, VOID * pData, WORD wDataSize);
  309. //手机重复绑定查询
  310. bool OnDBO_GR_GetVerifCode(DWORD dwContextID, VOID * pData, WORD wDataSize);
  311. //手机绑定查询
  312. bool OnDBO_GR_CheckIphoneQuery(DWORD dwContextID, VOID * pData, WORD wDataSize);
  313. //手机绑定
  314. bool OnDBO_GR_CheckIphone(DWORD dwContextID, VOID * pData, WORD wDataSize);
  315. //实名认证
  316. bool OnDBO_GR_CheckName(DWORD dwContextID, VOID * pData, WORD wDataSize);
  317. //实名认证查询
  318. bool OnDBO_GR_CheckNameQuery(DWORD dwContextID, VOID * pData, WORD wDataSize);
  319. //应答修改地址
  320. bool OnDBO_GR_UpdateAddr(DWORD dwContextID, VOID * pData, WORD wDataSize);
  321. //获取刷新元宝
  322. bool OnDBO_GR_GetBearnSEND(DWORD dwContextID, VOID * pData, WORD wDataSize);
  323. //任务列表
  324. //bool OnDBUserTaskList(DWORD dwContextID, VOID * pData, WORD wDataSize);
  325. //任务结束
  326. //bool OnDBUserTaskListEnd(DWORD dwContextID, VOID * pData, WORD wDataSize);
  327. //任务信息
  328. //bool OnDBUserTaskInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  329. //任务结果
  330. //bool OnDBUserTaskResult(DWORD dwContextID, VOID * pData, WORD wDataSize);
  331. //道具成功
  332. //bool OnDBPropertySuccess(DWORD dwContextID, VOID * pData, WORD wDataSize);
  333. //道具失败
  334. //bool OnDBPropertyFailure(DWORD dwContextID, VOID * pData, WORD wDataSize);
  335. //购买结果
  336. //bool OnDBPurchaseResult(DWORD dwContextID, VOID * pData, WORD wDataSize);
  337. //兑换结果
  338. //bool OnDBExChangeResult(DWORD dwContextID, VOID * pData, WORD wDataSize);
  339. //系统消息
  340. //bool OnDBSystemMessage(DWORD dwContextID, VOID * pData, WORD wDataSize);
  341. //加载敏感词
  342. //bool OnDBSensitiveWords(DWORD dwContextID, VOID * pData, WORD wDataSize);
  343. //加载完成
  344. //bool OnDBSystemMessageFinish(DWORD dwContextID, VOID * pData, WORD wDataSize);
  345. //分享奖励钻石结果
  346. bool OnDBShareAwardResult(DWORD dwContextID, VOID * pData, WORD wDataSize);
  347. //分享信息
  348. bool OnDBShareInfoResult(DWORD dwContextID, VOID * pData, WORD wDataSize);
  349. ///+++拉取胜局榜列表
  350. //BOOL OnDBTopWinList(DWORD dwContextID, VOID * pData, WORD wDataSize);
  351. ///+++钻石兑换金币列表
  352. //BOOL OnDBExchangeConfigList(DWORD dwContextID, VOID * pData, WORD wDataSize);
  353. ///+++查询破产信息结果
  354. //BOOL OnDBReliefInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  355. ///+++破产领取信息
  356. //BOOL OnDBGetRelief(DWORD dwContextID, VOID * pData, WORD wDataSize);
  357. //签到信息
  358. bool OnDBUserCheckInInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  359. //签到结果
  360. bool OnDBUserCheckInResult(DWORD dwContextID, VOID * pData, WORD wDataSize);
  361. //签到奖励的配置
  362. bool OnDBCheckInReward(DWORD dwContextID, VOID * pData, WORD wDataSize);
  363. //查询抽奖信息
  364. bool OnDBQueryLotteryInfoResult(DWORD dwContextID, VOID * pData, WORD wDataSize);
  365. //查询福利信息应答
  366. BOOL OnDBWelfareInfoResult(DWORD dwContextID, VOID * pData, WORD wDataSize);
  367. //俱乐部
  368. //列表
  369. bool OnDBGetClubList(DWORD dwContextID, VOID * pData, WORD wDataSize);
  370. //会员
  371. bool OnDBGetClubUser(DWORD dwContextID, VOID * pData, WORD wDataSize);
  372. //会员
  373. bool OnDBGetClubUserEx(DWORD dwContextID, VOID * pData, WORD wDataSize);
  374. //通知
  375. bool OnDBGetClubMessage(DWORD dwContextID, VOID * pData, WORD wDataSize);
  376. //记录
  377. bool OnDBGetClubRecord(DWORD dwContextID, VOID * pData, WORD wDataSize);
  378. //记录
  379. bool OnDBGetClubRecordEx(DWORD dwContextID, VOID * pData, WORD wDataSize);
  380. //创建
  381. bool OnDBCreateClub(DWORD dwContextID, VOID * pData, WORD wDataSize);
  382. //修改
  383. bool OnDBUpdateClub(DWORD dwContextID, VOID * pData, WORD wDataSize);
  384. //删除
  385. bool OnDBDeleteClub(DWORD dwContextID, VOID * pData, WORD wDataSize);
  386. //查看
  387. bool OnDBGetClub(DWORD dwContextID, VOID * pData, WORD wDataSize);
  388. //加入
  389. bool OnDBJoinClub(DWORD dwContextID, VOID * pData, WORD wDataSize);
  390. //退出
  391. bool OnDBQuitClub(DWORD dwContextID, VOID * pData, WORD wDataSize);
  392. //同意加入
  393. bool OnDBAgreeClub(DWORD dwContextID, VOID * pData, WORD wDataSize);
  394. //在线信息
  395. //bool OnDBGetClubOnLine(DWORD dwContextID, VOID * pData, WORD wDataSize);
  396. //在线信息
  397. bool OnDBGetClubOnLineEx(DWORD dwContextID, VOID * pData, WORD wDataSize);
  398. //通知
  399. bool OnDBNotifyClubUser(DWORD dwContextID, VOID * pData, WORD wDataSize);
  400. //特殊成员
  401. bool OnDBGetClubBlackUser(DWORD dwContextID, VOID * pData, WORD wDataSize);
  402. //协议
  403. bool OnDBGetClubProtocol(DWORD dwContextID, VOID * pData, WORD wDataSize);
  404. //同意协议
  405. bool OnDBAgreeClubProtocol(DWORD dwContextID, VOID * pData, WORD wDataSize);
  406. //群主信息
  407. bool OnDBGetClubHostInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  408. //自动创房
  409. bool OnDBAutoCreateTable(DWORD dwContextID, VOID * pData, WORD wDataSize);
  410. //公告
  411. bool OnDBGetClubNotice(DWORD dwContextID, VOID * pData, WORD wDataSize);
  412. //群主解散俱乐部房间
  413. bool OnDBGetClubDissolveRoom(DWORD dwContextID, VOID * pData, WORD wDataSize);
  414. //俱乐部战绩记录
  415. //bool OnDBGetClubCount_Exploits_Ack(DWORD dwContextID, VOID * pData, WORD wDataSize);
  416. //俱乐部局数排名
  417. bool OnDBGetClubPlaygames_Ack(DWORD dwContextID, VOID * pData, WORD wDataSize);
  418. //俱乐部积分排名
  419. bool OnDBGetClubIntegral_Ack(DWORD dwContextID, VOID * pData, WORD wDataSize);
  420. //打样
  421. bool OnDBGetClubSample(DWORD dwContextID, VOID * pData, WORD wDataSize);
  422. //连接处理
  423. protected:
  424. //注册事件
  425. bool OnTCPSocketMainRegister(WORD wSubCmdID, VOID * pData, WORD wDataSize);
  426. //列表事件
  427. bool OnTCPSocketMainServiceInfo(WORD wSubCmdID, VOID * pData, WORD wDataSize);
  428. //汇总事件
  429. bool OnTCPSocketMainUserCollect(WORD wSubCmdID, VOID * pData, WORD wDataSize);
  430. //管理服务
  431. bool OnTCPSocketMainManagerService(WORD wSubCmdID, VOID * pData, WORD wDataSize);
  432. //机器服务
  433. //bool OnTCPSocketMainAndroidService(WORD wSubCmdID, VOID * pData, WORD wDataSize);
  434. //中心服务器群发某人的房间的状态
  435. bool OnUpdataBodyOwnRoom(VOID * pData, WORD wDataSize);
  436. //更新其他服务器私人房间数据
  437. bool OnUpdataBodyOtherRoom(VOID * pData, WORD wDataSize);
  438. //网络事件
  439. protected:
  440. //用户处理
  441. bool OnTCPNetworkMainUser(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  442. //登录处理
  443. bool OnTCPNetworkMainLogon(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  444. //游戏处理
  445. bool OnTCPNetworkMainGame(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  446. //框架处理
  447. bool OnTCPNetworkMainFrame(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  448. //银行处理
  449. //bool OnTCPNetworkMainInsure(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  450. //任务处理
  451. //bool OnTCPNetworkMainTask(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  452. //兑换处理
  453. //bool OnTCPNetworkMainExchange(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  454. //管理处理
  455. bool OnTCPNetworkMainManage(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  456. //比赛命令
  457. //bool OnTCPNetworkMainMatch(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  458. //俱乐部命令
  459. bool OnTCPNetworkMainClub(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  460. //网络事件
  461. protected:
  462. //I D 登录
  463. bool OnTCPNetworkSubLogonUserID(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  464. //手机登录
  465. bool OnTCPNetworkSubLogonMobile(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  466. //帐号登录
  467. bool OnTCPNetworkSubLogonAccounts(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  468. //用户命令
  469. protected:
  470. ///---福利领取信息
  471. bool OnTCPNetworkWelfareInfo(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  472. ///---查询签到奖品
  473. bool OnTCPNetworkCheckinReward(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  474. ///---查询签到
  475. bool OnTCPNetworkCheckinQuery(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  476. ///---执行签到
  477. bool OnTCPNetworkCheckinDone(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  478. ///---胜局榜
  479. //bool OnTCPNetworkTopWinList(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  480. ///---查询破产补助信息
  481. //bool OnTCPNetworkQueryRelief(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  482. ///---领取破产补助
  483. //bool OnTCPNetworkGetRelief(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  484. ///---拉取好友房服务器
  485. //bool OnTCPNetworkPrivateGameSvr(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  486. //用户规则
  487. bool OnTCPNetworkSubUserRule(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  488. //用户旁观
  489. bool OnTCPNetworkSubUserLookon(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  490. //用户起立
  491. bool OnTCPNetworkSubUserStandUp(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  492. //用户创建私有房间第一步
  493. bool OnTCPNetworkSubUserCreateRoom(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  494. //用户创建私有房间第二步
  495. bool OnTCPNetworkSubUserCreateRoomEx(VOID * pData, WORD wDataSize,DWORD dwSocketID);
  496. //自动创建房间
  497. bool OnTCPNetworkSubUserCreateRoomEx2(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  498. //用户坐下请求
  499. bool OnTCPNetworkSubUserDown(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  500. //订单编号返回应答
  501. bool OnTCPNetworkSubUserGetDingdanCallBack(GETDUILIE Data, DWORD dwSocketID);
  502. //请求订单编号
  503. bool OnTCPNetworkSubUserGetDingdan(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  504. //新方式请求订单
  505. bool OnTCPNetworkSubUserGetDingdanNew(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  506. //用户解绑代理结果回调
  507. bool OnTCPNetworkSubUserUntieAgentCallBack(CString csTest, DWORD dwSocketID);
  508. //获取验证码
  509. bool OnTCPNetworkSubUserCheckVerifCode(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  510. //获取手机验证码,写个线程去调短信接口
  511. bool OnTCPNetworkSubUserCheckVerifCodeCallBack(CString csIphoneNum, CString VerfCode, DWORD dwSocketID);
  512. //绑定手机
  513. bool OnTCPNetworkSubUserCheckIphone(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  514. //绑定手机查询,闲聊也通过这个
  515. bool OnTCPNetworkSubUserCheckIphoneQuery(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  516. //绑定闲聊
  517. bool OnTCPNetworkSubUserXianLiao(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  518. //实名认证
  519. bool OnTCPNetworkSubUserCheckName(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  520. //实名认证
  521. bool OnTCPNetworkSubUserCheckNameQuery(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  522. //获取购买记录返回应答
  523. bool OnTCPNetworkSubUserGetDingdanListCallBack(CString csTest, DWORD dwSocketID);
  524. //获取购买记录
  525. bool OnTCPNetworkSubUserGetDingdanList(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  526. //绑定代理
  527. bool OnTCPNetworkSubUseBangDing(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  528. //绑定代理信息
  529. bool OnTCPNetworkSubUseGetDaiLiInfo(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  530. //绑定代理应答
  531. bool OnTCPNetworkSubUserBangDingCallBack(CString csTest, DWORD dwSocketID, DWORD dDaiLi);
  532. //房主请求解散
  533. bool OnTCPNetworkFangZhuJieSan(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  534. //请求元宝
  535. bool OnTCPNetworkGetBearn(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  536. //获取加入房间信息
  537. bool OnTCPNetworkSubUserJoinRoomInfo(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  538. //获取距离排名
  539. bool GetPaiMing(DWORD dUserID, LONGLONG JuLi, int& iPaiMing, int& iCount);
  540. //用户加入私有房间
  541. bool OnTCPNetworkSubUserJoinRoom(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  542. //获取游戏积分记录
  543. bool OnTCPSocketGetUserGameScoreRecordList(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  544. //获取游戏积分详情
  545. bool OnTCPSocketGetUserGameScoreRecordDetail(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  546. //获取游戏回放记录
  547. bool OnTCPSocketGetUserGameReplayRecord(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  548. //获取临时积分排行榜
  549. bool OnTCPSocketGetUserGameTempScoreRankList(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  550. //用户聊天
  551. bool OnTCPNetworkSubUserChat(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  552. //用户私聊
  553. bool OnTCPNetworkSubWisperChat(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  554. //用户表情
  555. bool OnTCPNetworkSubUserExpression(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  556. //用户表情
  557. bool OnTCPNetworkSubWisperExpression(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  558. //购买道具
  559. //bool OnTCPNetworkSubPropertyBuy(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  560. //使用道具
  561. //bool OnTCPNetwordSubSendTrumpet(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  562. //邀请用户
  563. //bool OnTCPNetworkSubUserInviteReq(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  564. //拒绝厌友
  565. // bool OnTCPNetworkSubUserRepulseSit(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  566. //踢出命令
  567. // bool OnTCPNetworkSubMemberKickUser(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  568. //请求用户信息
  569. bool OnTCPNetworkSubUserInfoReq(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  570. //请求更换位置
  571. bool OnTCPNetworkSubUserChairReq(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  572. //请求椅子用户信息
  573. bool OnTCPNetworkSubChairUserInfoReq(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  574. //戳瞎子需要多少元宝
  575. USHORT GetNeedPayCxz(WORD wPlayCountRule);
  576. //纸牌
  577. USHORT GetNeedPayZhiP(WORD wPlayCountRule);
  578. //此局总共需要多少元宝
  579. USHORT GetNeedPay(WORD wPlayCountRule);
  580. //此局总共需要多少元宝
  581. USHORT GetNeedPayEx(WORD wPlayCountRule);
  582. //分享奖励钻石(仅当天首次分享才有奖励)
  583. bool OnTCPNetworkShareAwardBean(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  584. bool OnTCPNetworkShareInfo(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  585. //银行命令
  586. protected:
  587. //查询银行
  588. //bool OnTCPNetworkSubQueryInsureInfo(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  589. //开通银行
  590. //bool OnTCPNetworkSubEnableInsureRequest(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  591. //存款请求
  592. //bool OnTCPNetworkSubSaveScoreRequest(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  593. //取款请求
  594. //bool OnTCPNetworkSubTakeScoreRequest(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  595. //转帐请求
  596. //bool OnTCPNetworkSubTransferScoreRequest(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  597. //查询用户请求
  598. //bool OnTCPNetworkSubQueryUserInfoRequest(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  599. //任务命令
  600. protected:
  601. //领取任务
  602. //bool OnTCPNetworkSubTakeTaskRequest(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  603. //领取奖励
  604. //bool OnTCPNetworkSubTaskRewardRequest(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  605. //加载任务
  606. //bool OnTCPNetworkSubLoadTaskInfoRequest(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  607. //兑换命令
  608. protected:
  609. //查询参数
  610. //bool OnTCPNetworkSubQueryExchangeInfo(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  611. //购买会员
  612. //bool OnTCPNetworkSubPurchaseMember(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  613. //兑换游戏币
  614. //bool OnTCPNetworkSubExchangeScore(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  615. //俱乐部命令
  616. protected:
  617. //列表
  618. bool OnTCPNetworkSubGetClubList(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  619. //会员
  620. bool OnTCPNetworkSubGetClubUser(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  621. //会员
  622. bool OnTCPNetworkSubGetClubUserEx(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  623. //通知
  624. bool OnTCPNetworkSubGetClubMessage(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  625. //记录
  626. bool OnTCPNetworkSubGetClubRecord(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  627. //创建
  628. bool OnTCPNetworkSubCreateClub(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  629. //修改
  630. bool OnTCPNetworkSubUpdateClub(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  631. //删除
  632. bool OnTCPNetworkSubDeleteClub(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  633. //查看
  634. bool OnTCPNetworkSubGetClub(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  635. //加入
  636. bool OnTCPNetworkSubJoinClub(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  637. //退出
  638. bool OnTCPNetworkSubQuitClub(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  639. //同意加入
  640. bool OnTCPNetworkSubAgreeClub(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  641. //在线信息
  642. //bool OnTCPNetworkSubGetClubOnLine(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  643. //在线信息
  644. bool OnTCPNetworkSubGetClubOnLineEx(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  645. //检测协议
  646. bool OnTCPNetworkSubGetClubProtocol(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  647. //同意协议
  648. bool OnTCPNetworkSubAgreeClubProtocol(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  649. //会员黑名单(管理员)
  650. bool OnTCPNetworkSubGetClubBlackUser(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  651. //公告
  652. bool OnTCPNetworkSubGetClubNotice(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  653. //桌子信息
  654. bool OnTCPNetworkSubGetClubTable(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  655. //群主解散俱乐部房间
  656. bool OnTCPNetworkSubDissolveRoom(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  657. //俱乐部统计战绩
  658. bool OnTCPNetworkSubGetClubCountExploits(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  659. //俱乐部统计对局数排名
  660. bool OnTCPNetworkSubGetClubCountPlaygames(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  661. //俱乐部统计积分数排名
  662. bool OnTCPNetworkSubGetClubCountIntegral(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  663. //打样
  664. bool OnTCPNetworkSubGetClubSample(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  665. //管理命令
  666. protected:
  667. //查询设置
  668. bool OnTCPNetworkSubQueryOption(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  669. //房间设置
  670. bool OnTCPNetworkSubOptionServer(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  671. //踢出用户
  672. //bool OnTCPNetworkSubManagerKickUser(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  673. //限制聊天
  674. //bool OnTCPNetworkSubLimitUserChat(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  675. //解散所有所有游戏中牌桌
  676. bool OnTCPNetworkSubKickAllUser();
  677. //发布消息
  678. bool OnTCPNetworkSubSendMessage(VOID * pData, WORD wDataSize);
  679. //解散游戏
  680. bool OnTCPNetworkSubDismissGame(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  681. //申请删除私有房间
  682. bool OnTCPNetworkSubDeletePrivateTableReq(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  683. //删除私有房间应答
  684. bool OnTCPNetworkSubDeletePrivateTableResp(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  685. //警告命令
  686. bool OnTCPNetworkSubWarningUser(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  687. //内部事件
  688. protected:
  689. //用户登录
  690. VOID OnEventUserLogon(IServerUserItem * pIServerUserItem, bool bAlreadyOnLine);
  691. //用户登出
  692. VOID OnEventUserLogout(IServerUserItem * pIServerUserItem, DWORD dwLeaveReason);
  693. //执行功能
  694. protected:
  695. //分配用户
  696. bool PerformDistribute();
  697. //解锁游戏币
  698. bool PerformUnlockScore(DWORD dwUserID, DWORD dwInoutIndex, DWORD dwLeaveReason);
  699. //版本检查
  700. bool PerformCheckVersion(DWORD dwPlazaVersion, DWORD dwFrameVersion, DWORD dwClientVersion, DWORD dwSocketID);
  701. //推进任务
  702. bool PerformTaskProgress(IServerUserItem * pIServerUserItem, tagUserTaskEntry * pUserTaskEntry, DWORD dwWinCount, DWORD dwLostCount, DWORD dwDrawCount);
  703. //切换连接
  704. bool SwitchUserItemConnect(IServerUserItem * pIServerUserItem, TCHAR szMachineID[LEN_MACHINE_ID], WORD wTargetIndex, BYTE cbDeviceType = DEVICE_TYPE_PC, WORD wBehaviorFlags = 0, WORD wPageTableCount = 0);
  705. //玩家自主申请解绑
  706. bool OnTCPNetworkSubUserUntieAgent(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  707. BOOL OnDBUserUntieAgent(DWORD dwContextID, VOID * pData, WORD wDataSize);
  708. //用户获得代理解绑相关信息
  709. bool OnTCPNetworkSubUserAgentInfo(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  710. BOOL OnDBUserAgentInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  711. //发送函数
  712. protected:
  713. //用户信息
  714. bool SendUserInfoPacket(IServerUserItem * pIServerUserItem, DWORD dwSocketID, bool bSendAndroidFalg = false);
  715. //辅助函数
  716. protected:
  717. //购前事件
  718. //bool OnEventPropertyBuyPrep(WORD cbRequestArea, WORD wPropertyIndex, IServerUserItem *pISourceUserItem, IServerUserItem *pTargetUserItem);
  719. //道具消息
  720. //bool SendPropertyMessage(DWORD dwSourceID, DWORD dwTargerID, WORD wPropertyIndex, WORD wPropertyCount);
  721. //道具效应
  722. //bool SendPropertyEffect(IServerUserItem * pIServerUserItem);
  723. //辅助函数
  724. protected:
  725. //登录失败
  726. bool SendLogonFailure(LPCTSTR pszString, LONG lErrorCode, DWORD dwSocketID);
  727. //银行失败
  728. bool SendInsureFailure(IServerUserItem * pIServerUserItem, LPCTSTR pszDescribe, LONG lErrorCode, BYTE cbActivityGame);
  729. //请求失败
  730. bool SendRequestFailure(IServerUserItem * pIServerUserItem, LPCTSTR pszDescribe, LONG lErrorCode);
  731. //道具失败
  732. //bool SendPropertyFailure(IServerUserItem * pIServerUserItem, LPCTSTR pszDescribe, LONG lErrorCode, WORD wRequestArea);
  733. //辅助函数
  734. public:
  735. //查找用户
  736. virtual IServerUserItem * SearchUserItem(DWORD dwUserID) { return m_ServerUserManager.SearchUserItem(dwUserID); }
  737. //绑定用户
  738. virtual IServerUserItem * GetBindUserItem(WORD wBindIndex);
  739. //绑定参数
  740. virtual tagBindParameter * GetBindParameter(WORD wBindIndex);
  741. //道具类型
  742. WORD GetPropertyType(WORD wPropertyIndex);
  743. //设置用户在ServerID中的游戏状态 ,1 牌桌游戏中,0为未游戏。
  744. bool SetUserServerID(IServerUserItem * pIServerUserItem, BYTE cbFlag, WORD ServerID);
  745. //向中心服务器群发某人的房间的状态
  746. bool UpdataBodyOwnRoomToServer(VOID * pData, WORD wDataSize);
  747. //发送某人的房间的状态
  748. bool UpdataBodyOwnRoom(IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize);
  749. //更新服务器服务状态
  750. bool UpdataServerStata(VOID * pData, WORD wDataSize);
  751. ITCPNetworkEngine * GetTCPNetworkEngine() { return m_pITCPNetworkEngine; }
  752. //辅助函数
  753. protected:
  754. //配置机器
  755. bool InitAndroidUser();
  756. //配置桌子
  757. bool InitTableFrameArray();
  758. //获取一个可用的私有桌子ID
  759. std::wstring GetNextPrivateRoomID(int idLen = 10);
  760. //创建私有桌子
  761. std::shared_ptr<CTableFrame> CreatePrivateTable(DWORD RoomID, WORD wGameType);
  762. //配置比赛
  763. //bool InitMatchServiceManager();
  764. //发送请求
  765. bool SendUIControlPacket(WORD wRequestID, VOID * pData, WORD wDataSize);
  766. //设置参数
  767. void SetMobileUserParameter(IServerUserItem * pIServerUserItem, BYTE cbDeviceType, WORD wBehaviorFlags, WORD wPageTableCount);
  768. //群发用户信息
  769. bool SendUserInfoPacketBatchToMobileUser(IServerUserItem * pIServerUserItem);
  770. //发可视用户信息
  771. bool SendViewTableUserInfoPacketToMobileUser(IServerUserItem * pIServerUserItem, DWORD dwUserIDReq);
  772. //手机立即登录
  773. bool MobileUserImmediately(IServerUserItem * pIServerUserItem);
  774. //购买道具
  775. //int OnPropertyBuy(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  776. //发送系统消息
  777. bool SendSystemMessage(CMD_GR_SendMessage * pSendMessage, WORD wDataSize);
  778. //辅助函数
  779. protected:
  780. //移除消息
  781. void RemoveSystemMessage();
  782. CString dwIP2csIP(DWORD dwIP);
  783. public:
  784. // 是否监测此用户
  785. virtual BOOL IsJC(DWORD UserID);
  786. // 更新通道
  787. int UpDataTongDao();
  788. ///统计该场的总人数
  789. //DWORD SumOnlineCount(WORD wVenueID);
  790. ///能否领取救济
  791. //bool CanGetRelief(IServerUserItem* pIServerUserItem, WORD venueID);
  792. public:
  793. std::vector<tagRouletteConfig> m_vecRouletteConfig; ///---转盘奖品配置数组
  794. ///+++大转盘命令
  795. bool OnTCPNetworkMainRoulette(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  796. ///奖品配置
  797. bool OnTCPNetworkMyRouletteConfig(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  798. ///转盘抽奖
  799. bool OnTCPNetworkRouletteLottery(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  800. /// 转盘抽奖
  801. bool _DoRouletteLottery(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  802. ///查询抽奖信息
  803. bool OnTCPNetworkLotteryInfo(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  804. ///查询抽奖历史记录
  805. bool OnTCPNetworkLotteryHis(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  806. ///手动领奖
  807. bool OnTCPNetworkLotteryAward(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  808. ///注册收件信息
  809. bool OnTCPNetworkLotteryAddress(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  810. //扫码更新钻石
  811. bool OnSetAddBingIDAndCurrency(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  812. bool OnDBUserZuanShi(DWORD dwContextID, VOID * pData, WORD wDataSize);
  813. ///+++大转盘奖品列表
  814. BOOL OnDBRouletteConfig(DWORD dwContextID, VOID * pData, WORD wDataSize);
  815. ///+++"我"的转盘信息
  816. BOOL OnDBMyRouletteInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  817. ///+++中奖历史
  818. BOOL OnDBLotteryHis(DWORD dwContextID, VOID * pData, WORD wDataSize);
  819. BOOL OnDBLotteryHisEx(DWORD dwContextID, VOID * pData, WORD wDataSize);
  820. ///+++轮盘抽奖
  821. BOOL OnDBRouletteLottery(DWORD dwContextID, VOID * pData, WORD wDataSize);
  822. //回调抽奖记录入库,更新领取标志
  823. bool OnTCPNetworkSubUserLotteryResultCallBack(WORD wLotteryID, DWORD dwSocketID);
  824. //手动领奖
  825. BOOL OnDBRouletteAward(DWORD dwContextID, VOID * pData, WORD wDataSize);
  826. //额外玩法 2018-10-31
  827. bool OnTCPNetworkSubUpdateAddClub(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  828. bool OnDBUpdateAddClub(DWORD dwContextID, VOID * pData, WORD wDataSize);
  829. bool OnDBGetAddClub(DWORD dwContextID, VOID * pData, WORD wDataSize);
  830. bool OnAutoCreateRoomToDB(DWORD dwClubID, DWORD dwUserID, WORD wWanFa);
  831. //分享战绩到闲聊
  832. bool OnDBFenXiangReCord(DWORD dwContextID, VOID * pData, WORD wDataSize);
  833. bool OnWlShuffleGameHandle(VOID * pData, WORD wDataSize, DWORD dwSocketID);
  834. bool OnWlShuffleGameHandleACK(DWORD dwContextID, VOID * pData, WORD wDataSize);
  835. bool OnWlShuffleGameDeductHandle(VOID * pData, WORD wDataSize);
  836. };
  837. //////////////////////////////////////////////////////////////////////////////////
  838. #endif