诸暨麻将添加redis
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1654 rivejä
54 KiB

  1. #ifndef GAME_SERVICE_HEAD_HEAD_FILE
  2. #define GAME_SERVICE_HEAD_HEAD_FILE
  3. //////////////////////////////////////////////////////////////////////////////////
  4. //MFC文件
  5. #include <Afxtempl.h>
  6. //平台定义
  7. #include "..\..\GlobalDef\Platform.h"
  8. //消息定义
  9. #include "..\..\MessageDef\CMD_Commom.h"
  10. #include "..\..\MessageDef\CMD_Correspond.h"
  11. #include "..\..\MessageDef\CMD_GameServer.h"
  12. //平台文件
  13. #include "..\..\SharedControl\ServiceCore\ServiceCoreHead.h"
  14. #include "..\..\ServerControl\KernelEngine\KernelEngineHead.h"
  15. #include <string>
  16. //////////////////////////////////////////////////////////////////////////////////
  17. //导出定义
  18. //导出定义
  19. #ifndef GAME_SERVICE_CLASS
  20. #ifdef GAME_SERVICE_DLL
  21. #define GAME_SERVICE_CLASS _declspec(dllexport)
  22. #else
  23. #define GAME_SERVICE_CLASS _declspec(dllimport)
  24. #endif
  25. #endif
  26. //模块定义
  27. #ifndef _DEBUG
  28. #define GAME_SERVICE_DLL_NAME TEXT("GameService.dll") //组件 DLL 名字
  29. #else
  30. #define GAME_SERVICE_DLL_NAME TEXT("GameServiceD.dll") //组件 DLL 名字
  31. #endif
  32. //////////////////////////////////////////////////////////////////////////////////
  33. //接口说明
  34. //用户接口
  35. interface IServerUserItem;
  36. interface IServerUserManager;
  37. interface IServerUserItemSink;
  38. //代打接口
  39. interface IAndroidUserItem;
  40. interface IAndroidUserManager;
  41. interface IAndroidUserItemSink;
  42. //桌子接口
  43. interface ITableFrame;
  44. interface ITableFrameSink;
  45. interface ITableUserAction;
  46. //服务接口
  47. interface IMainServiceFrame;
  48. interface IGameServiceManager;
  49. interface IGameServiceCustomRule;
  50. //////////////////////////////////////////////////////////////////////////////////
  51. //常量定义
  52. //群发掩码
  53. #define BG_MOBILE (BYTE)(0x01) //手机群发
  54. #define BG_COMPUTER (BYTE)(0x02) //电脑群发
  55. #define BG_ALL_CLIENT (BYTE)(0xFF) //全体群发
  56. //索引定义
  57. #define INDEX_SOCKET (WORD)(0x0000) //网络索引
  58. #define INDEX_ANDROID (WORD)(0x2000) //机器索引
  59. //创建函数
  60. #define GAME_SERVICE_CREATE_NAME "CreateGameServiceManager" //创建函数
  61. //////////////////////////////////////////////////////////////////////////////////
  62. //常量定义
  63. //机器动作
  64. #define ANDROID_WAITSTANDUP 0x01 //等待起立
  65. #define ANDROID_WAITLEAVE 0x02 //等待离开
  66. //结束原因
  67. #define GER_NORMAL 0x00 //常规结束
  68. #define GER_DISMISS 0x01 //游戏解散
  69. #define GER_USER_LEAVE 0x02 //用户离开
  70. #define GER_NETWORK_ERROR 0x03 //网络错误
  71. #define GER_DELETE_PRIVATE 0x04 //游戏删除
  72. #define GER_DELETE_GET 0x05 //请求解散
  73. //离开原因
  74. #define LER_NORMAL 0x00 //常规离开
  75. #define LER_SYSTEM 0x01 //系统原因
  76. #define LER_NETWORK 0x02 //网络原因
  77. #define LER_USER_IMPACT 0x03 //用户冲突
  78. #define LER_SERVER_FULL 0x04 //人满为患
  79. #define LER_SERVER_CONDITIONS 0x05 //条件限制
  80. //积分类型
  81. #define SCORE_TYPE_NULL 0x00 //无效积分
  82. #define SCORE_TYPE_WIN 0x01 //胜局积分
  83. #define SCORE_TYPE_LOSE 0x02 //输局积分
  84. #define SCORE_TYPE_DRAW 0x03 //和局积分
  85. #define SCORE_TYPE_FLEE 0x04 //逃局积分
  86. #define SCORE_TYPE_PRESENT 0x10 //赠送积分
  87. #define SCORE_TYPE_SERVICE 0x11 //服务积分
  88. #define SCORE_TYPE_START 0x12 //开始记录积分
  89. #define SCORE_TYPE_END 0x13 //结束记录积分
  90. //开始模式
  91. #define START_MODE_ALL_READY 0x00 //所有准备
  92. #define START_MODE_FULL_READY 0x01 //满人开始
  93. #define START_MODE_PAIR_READY 0x02 //配对开始
  94. #define START_MODE_TIME_CONTROL 0x10 //时间控制
  95. #define START_MODE_MASTER_CONTROL 0x11 //管理控制
  96. //分组选项
  97. #define DISTRIBUTE_ALLOW 0x01 //允许分组
  98. #define DISTRIBUTE_IMMEDIATE 0x02 //入座选项
  99. #define DISTRIBUTE_LAST_TABLE 0x04 //同桌选项
  100. #define DISTRIBUTE_SAME_ADDRESS 0x08 //地址选项
  101. //////////////////////////////////////////////////////////////////////////////////
  102. //时间标识
  103. //调度范围
  104. #define IDI_MAIN_MODULE_START 1 //起始标识
  105. #define IDI_MAIN_MODULE_FINISH 100000 //终止标识
  106. //机器范围
  107. #define IDI_REBOT_MODULE_START 100001 //起始标识
  108. #define IDI_REBOT_MODULE_FINISH 200000 //终止标识
  109. //比赛范围
  110. #define IDI_MATCH_MODULE_START 200001 //起始标识
  111. #define IDI_MATCH_MODULE_FINISH 300000 //结束标识
  112. //桌子范围
  113. #define IDI_TABLE_MODULE_START 1000000 //起始标识
  114. #define IDI_TABLE_MODULE_FINISH 327675000 //终止标识 ///---在原值(32767500)的基础上加大10倍
  115. //DWORD=0xFFFFFFFF=?4294967295?
  116. //////////////////////////////////////////////////////////////////////////////////
  117. //时间范围
  118. //游戏时间
  119. #define TIME_TABLE_SINK_RANGE 20 //标识范围
  120. #define TIME_TABLE_KERNEL_RANGE 30 //标识范围
  121. #define TIME_TABLE_MODULE_RANGE 500 //标识范围
  122. //////////////////////////////////////////////////////////////////////////////////
  123. //常量定义
  124. #define SCORE_RELIEF_VALUE 1000 ///+++用户金币破产阀值
  125. //常量定义
  126. #define RESERVE_USER_COUNT 0L //保留数目
  127. //////////////////////////////////////////////////////////////////////////////////
  128. //结构定义
  129. struct MyStructParameterEx
  130. {
  131. TCHAR szgameTypeCfg[256];
  132. TCHAR diJinCfg[256];
  133. TCHAR payTypeCfg[256];
  134. TCHAR juShuCfg[256];
  135. TCHAR payCoinCfg[256];
  136. TCHAR ipLimitCfg[256];
  137. TCHAR defaultDeskCfg[256];
  138. int idNum;
  139. //int IsFreePay;//用来表示这个玩法群主开发支付是否免费
  140. };
  141. //配置参数
  142. struct tagGameParameter
  143. {
  144. //汇率信息
  145. WORD wMedalRate; //奖牌汇率
  146. WORD wRevenueRate; //银行税收
  147. WORD wExchangeRate; //兑换比率
  148. //经验奖励
  149. DWORD dwWinExperience; //赢局经验
  150. //版本信息
  151. DWORD dwClientVersion; //客户版本
  152. DWORD dwServerVersion; //服务版本
  153. MyStructParameterEx msParameter[4]; // //
  154. };
  155. //服务属性
  156. struct tagGameServiceAttrib
  157. {
  158. //内核属性
  159. WORD wKindID; //名称号码
  160. WORD wChairCount; //椅子数目
  161. WORD wSupporType; //支持类型
  162. TCHAR szGameName[LEN_KIND]; //游戏名字
  163. //功能标志
  164. BYTE cbAndroidUser; //机器标志
  165. BYTE cbDynamicJoin; //动态加入
  166. BYTE cbOffLineTrustee; //断线代打
  167. //服务属性
  168. DWORD dwServerVersion; //游戏版本
  169. DWORD dwClientVersion; //游戏版本
  170. TCHAR szDataBaseName[32]; //游戏库名
  171. TCHAR szServerDLLName[LEN_PROCESS]; //进程名字
  172. TCHAR szClientEXEName[LEN_PROCESS]; //进程名字
  173. };
  174. //服务配置
  175. struct tagGameServiceOption
  176. {
  177. //挂接属性
  178. WORD wKindID; //挂接类型
  179. WORD wNodeID; //挂接节点
  180. WORD wSortID; //排列标识
  181. WORD wServerID; //房间标识
  182. //税收配置
  183. LONG lCellScore; //单位积分
  184. WORD wRevenueRatio; //税收比例
  185. SCORE lServiceScore; //服务费用
  186. //房间配置
  187. SCORE lRestrictScore; //限制积分
  188. SCORE lMinTableScore; //最低积分
  189. SCORE lMinEnterScore; //最低积分
  190. SCORE lMaxEnterScore; //最高积分
  191. //会员限制
  192. BYTE cbMinEnterMember; //最低会员
  193. BYTE cbMaxEnterMember; //最高会员
  194. //房间配置
  195. DWORD dwServerRule; //房间规则
  196. DWORD dwAttachUserRight; //附加权限
  197. //房间属性
  198. WORD wMaxPlayer; //最大数目
  199. WORD wTableCount; //桌子数目
  200. WORD wServerPort; //服务端口
  201. WORD wServerKind; //房间类别
  202. WORD wServerType; //房间类型
  203. TCHAR szServerName[LEN_SERVER]; //房间名称
  204. TCHAR szServerPasswd[LEN_PASSWORD]; //房间密码
  205. //分组设置
  206. BYTE cbDistributeRule; //分组规则
  207. WORD wMinDistributeUser; //最少人数
  208. WORD wDistributeTimeSpace; //分组间隔
  209. WORD wDistributeDrawCount; //分组局数
  210. WORD wMinPartakeGameUser; //最少人数
  211. WORD wMaxPartakeGameUser; //最多人数
  212. //连接设置
  213. TCHAR szDataBaseAddr[16]; //连接地址
  214. TCHAR szDataBaseName[32]; //数据库名
  215. //自定规则
  216. BYTE cbCustomRule[1024]; //自定规则
  217. ///+++金币场
  218. TCHAR szExtConfig[512]; //扩展配置(玩法配置)
  219. TCHAR szMinClientVer[LEN_SERVER]; //客户端版本要求
  220. WORD wGameID; //模块标识
  221. };
  222. //比赛配置
  223. struct tagGameMatchOption
  224. {
  225. //基本信息
  226. DWORD dwMatchID; //比赛标识
  227. DWORD dwMatchNO; //比赛场次
  228. BYTE cbMatchType; //比赛类型
  229. TCHAR szMatchName[32]; //比赛名称
  230. //比赛信息
  231. SCORE lMatchFee; //比赛费用
  232. BYTE cbMatchFeeType; //扣费类型
  233. BYTE cbMemberOrder; //会员等级
  234. //类型信息
  235. union unGameMatchType
  236. {
  237. //定时赛
  238. struct tagLockTimeMatch
  239. {
  240. //时间配置
  241. SYSTEMTIME MatchStartTime; //开始日期
  242. SYSTEMTIME MatchEndTime; //结束日期
  243. //比赛分数
  244. SCORE lMatchInitScore; //初始积分
  245. SCORE lMatchCullScore; //淘汰积分
  246. //比赛局数
  247. WORD wMatchPlayCount; //最少局数
  248. } LockTime;
  249. //即时赛
  250. struct tagImmediateMatch
  251. {
  252. //人数信息
  253. WORD wStartUserCount; //开赛人数
  254. WORD wAndroidUserCount; //机器数量
  255. //分数信息
  256. DWORD dwInitalBase; //初始基数
  257. DWORD dwInitalScore; //初始积分=0时 代表使用当前金币为比赛
  258. WORD wMinEnterGold; //初始积分=0时 必须多少倍金币才有报名条件
  259. //局数信息
  260. BYTE cbPlayCount; //游戏局数
  261. BYTE cbSwitchTableCount; //换桌局数(0为不换桌)
  262. WORD wPrecedeTimer; //优先坐下
  263. } Immediate;
  264. } MatchType;
  265. //奖励信息
  266. WORD wRewardCount; //奖励人数
  267. //游戏介绍
  268. TCHAR szMatchAwardContent[128]; //奖励内容
  269. TCHAR szMatchContent[512]; //比赛内容
  270. };
  271. //桌子参数
  272. struct tagTableFrameParameter
  273. {
  274. //内核组件
  275. ITimerEngine * pITimerEngine; //时间引擎
  276. IDataBaseEngine * pIRecordDataBaseEngine; //数据引擎
  277. IDataBaseEngine * pIKernelDataBaseEngine; //数据引擎
  278. //服务组件
  279. IMainServiceFrame * pIMainServiceFrame; //服务框架
  280. IAndroidUserManager * pIAndroidUserManager; //机器管理
  281. IGameServiceManager * pIGameServiceManager; //服务管理
  282. //配置变量
  283. tagGameParameter * pGameParameter; //配置参数
  284. tagGameServiceAttrib * pGameServiceAttrib; //桌子属性
  285. tagGameServiceOption * pGameServiceOption; //配置参数
  286. };
  287. //机器参数
  288. struct tagAndroidUserParameter
  289. {
  290. //服务配置
  291. bool bServiceContinue; //服务延续
  292. DWORD dwMinSitInterval; //坐下间隔
  293. DWORD dwMaxSitInterval; //坐下间隔
  294. //配置变量
  295. tagGameParameter * pGameParameter; //配置参数
  296. tagGameServiceAttrib * pGameServiceAttrib; //桌子属性
  297. tagGameServiceOption * pGameServiceOption; //配置参数
  298. //内核组件
  299. ITimerEngine * pITimerEngine; //时间引擎
  300. IServerUserManager * pIServerUserManager; //用户管理
  301. IGameServiceManager * pIGameServiceManager; //服务管理
  302. ITCPNetworkEngineEvent * pITCPNetworkEngineEvent; //事件接口
  303. };
  304. //////////////////////////////////////////////////////////////////////////////////
  305. //辅助结构
  306. struct tagTableRecordInfo
  307. {
  308. tagTableRecordInfo()
  309. {
  310. dwGameMemal = INVALID_DWORD;
  311. dwPlayGameTime = INVALID_DWORD;
  312. wRecordSize = 0;
  313. pReplayRecord = NULL;
  314. }
  315. DWORD dwGameMemal;
  316. DWORD dwPlayGameTime;
  317. WORD wRecordSize;
  318. void* pReplayRecord;
  319. };
  320. //积分信息
  321. struct tagScoreInfo
  322. {
  323. BYTE cbType; //积分类型
  324. SCORE lScore; //用户分数
  325. SCORE lGrade; //用户成绩
  326. SCORE lRevenue; //游戏税收
  327. };
  328. //变更信息
  329. struct tagVariationInfo
  330. {
  331. //积分信息
  332. SCORE lScore; //用户分数
  333. SCORE lGrade; //用户成绩
  334. SCORE lInsure; //用户银行
  335. SCORE lRevenue; //游戏税收
  336. //游戏信息
  337. DWORD dwWinCount; //胜利盘数
  338. DWORD dwLostCount; //失败盘数
  339. DWORD dwDrawCount; //和局盘数
  340. DWORD dwFleeCount; //逃跑盘数
  341. DWORD dwPlayTimeCount; //游戏时长
  342. //全局信息
  343. SCORE lIngot; //用户元宝
  344. DWORD dwExperience; //用户经验
  345. LONG lLoveLiness; //用户魅力
  346. };
  347. //游戏记录
  348. struct tagGameScoreRecord
  349. {
  350. //用户信息
  351. DWORD dwUserID; //用户标识
  352. TCHAR szUserName[LEN_NICKNAME]; //用户昵称
  353. WORD wChairID; //椅子号码
  354. BYTE cbAndroid; //机器标志
  355. //成绩信息
  356. SCORE lScore; //用户分数
  357. SCORE lGrade; //用户成绩
  358. SCORE lRevenue; //游戏税收
  359. //用户信息
  360. DWORD dwDBQuestID; //请求标识
  361. DWORD dwInoutIndex; //记录索引
  362. //附加信息
  363. DWORD dwUserMemal; //奖牌数目(癞子杠数)(胡牌方式)
  364. DWORD dwPlayTimeCount; //游戏时长
  365. TCHAR szHeadImg[256]; //头像
  366. };
  367. //用户规则
  368. struct tagUserRule
  369. {
  370. //规则标志
  371. bool bLimitSameIP; //效验地址
  372. bool bLimitWinRate; //限制胜率
  373. bool bLimitFleeRate; //限制逃率
  374. bool bLimitGameScore; //限制分数
  375. //规则属性
  376. WORD wMinWinRate; //最低胜率
  377. WORD wMaxFleeRate; //最高逃率
  378. LONG lMaxGameScore; //最高分数
  379. LONG lMinGameScore; //最低分数
  380. TCHAR szPassword[LEN_PASSWORD]; //桌子密码
  381. };
  382. //任务入口
  383. struct tagUserTaskInfo
  384. {
  385. WORD wTaskID; //任务标识
  386. BYTE cbTaskStatus; //任务状态
  387. WORD wTaskProgress; //任务进度
  388. DWORD dwResidueTime; //剩余时间
  389. DWORD dwLastUpdateTime; //更新时间
  390. };
  391. //任务入口
  392. struct tagUserTaskEntry
  393. {
  394. BYTE cbTaskStatus; //任务状态
  395. WORD wTaskProgress; //任务进度
  396. DWORD dwResidueTime; //剩余时间
  397. DWORD dwLastUpdateTime; //更新时间
  398. tagTaskParameter * pTaskParameter; //任务参数
  399. tagUserTaskEntry * pNextTaskEntry; //下一任务
  400. tagUserTaskEntry * pNextStatusEntry; //下一任务
  401. };
  402. //用户信息
  403. struct tagUserInfoPlus
  404. {
  405. //登录信息
  406. DWORD dwLogonTime; //登录时间
  407. DWORD dwInoutIndex; //进出标识
  408. //连接信息
  409. WORD wBindIndex; //绑定索引
  410. DWORD dwClientAddr; //连接地址
  411. TCHAR szMachineID[LEN_MACHINE_ID]; //机器标识
  412. //附加变量
  413. DWORD dwUserRight; //用户权限
  414. DWORD dwMasterRight; //管理权限
  415. SCORE lRestrictScore; //限制积分
  416. //辅助变量
  417. bool bMobileUser; //手机用户
  418. bool bAndroidUser; //机器用户
  419. TCHAR szPassword[LEN_MD5]; //桌子密码
  420. };
  421. //请求结果
  422. struct tagRequestResult
  423. {
  424. BYTE cbFailureCode; //失败原因
  425. TCHAR szFailureReason[128]; //失败原因
  426. };
  427. //桌子状况
  428. struct tagTableUserInfo
  429. {
  430. WORD wMinUserCount; //最少人数
  431. WORD wTableUserCount; //用户数目
  432. WORD wTableReadyCount; //准备数目
  433. WORD wTableAndroidCount; //机器数目
  434. };
  435. //机器状况
  436. struct tagAndroidUserInfo
  437. {
  438. WORD wFreeUserCount; //用户数目
  439. WORD wPlayUserCount; //用户数目
  440. WORD wSitdownUserCount; //用户数目
  441. IAndroidUserItem * pIAndroidUserFree[MAX_ANDROID]; //机器接口
  442. IAndroidUserItem * pIAndroidUserPlay[MAX_ANDROID]; //机器接口
  443. IAndroidUserItem * pIAndroidUserSitdown[MAX_ANDROID]; //机器接口
  444. };
  445. //服务信息
  446. struct tagAndroidService
  447. {
  448. DWORD dwSwitchTableInnings; //游戏局数
  449. };
  450. //帐号信息
  451. struct tagAndroidAccountsInfo
  452. {
  453. DWORD dwUserID; //机器标识
  454. TCHAR szPassword[LEN_PASSWORD]; //机器密码
  455. };
  456. //机器配置
  457. struct tagAndroidItemConfig
  458. {
  459. tagAndroidAccountsInfo AndroidAccountsInfo; //帐号信息
  460. tagAndroidParameter * pAndroidParameter; //机器参数
  461. };
  462. //比赛状态
  463. enum EN_MatchStatus
  464. {
  465. EN_NULL = 0,
  466. EN_OUT,
  467. };
  468. //////////////////////////////////////////////////////////////////////////////////
  469. #ifdef _UNICODE
  470. #define VER_IGameServiceManager INTERFACE_VERSION(1,1)
  471. static const GUID IID_IGameServiceManager = { 0xa975cceb, 0x0331, 0x4553, 0xa1, 0xe0, 0xa7, 0xc7, 0x7a, 0x7c, 0x4e, 0xfd };
  472. #else
  473. #define VER_IGameServiceManager INTERFACE_VERSION(1,1)
  474. static const GUID IID_IGameServiceManager = { 0x4b2b9d8f, 0xce1b, 0x44f3, 0xa5, 0x22, 0x65, 0x1a, 0x65, 0xc9, 0x0a, 0x25 };
  475. #endif
  476. //游戏接口
  477. interface IGameServiceManager : public IUnknownEx
  478. {
  479. //创建接口
  480. public:
  481. //创建桌子
  482. virtual VOID * CreateTableFrameSink(REFGUID Guid, DWORD dwQueryVer) = NULL;
  483. //创建机器
  484. virtual VOID * CreateAndroidUserItemSink(REFGUID Guid, DWORD dwQueryVer) = NULL;
  485. //创建数据
  486. virtual VOID * CreateGameDataBaseEngineSink(REFGUID Guid, DWORD dwQueryVer) = NULL;
  487. //参数接口
  488. public:
  489. //组件属性
  490. virtual bool GetServiceAttrib(tagGameServiceAttrib & GameServiceAttrib) = NULL;
  491. //调整参数
  492. virtual bool RectifyParameter(tagGameServiceOption & GameServiceOption) = NULL;
  493. //设置子游戏协议解析地址
  494. virtual PVOID GetDataString() = NULL;
  495. };
  496. //////////////////////////////////////////////////////////////////////////////////
  497. #ifdef _UNICODE
  498. #define VER_IGameServiceCustomRule INTERFACE_VERSION(1,1)
  499. static const GUID IID_IGameServiceCustomRule = { 0x74a43b7d, 0x7c29, 0x4fb8, 0xa5, 0x00, 0x8e, 0x8d, 0xff, 0x6e, 0x2a, 0xdd };
  500. #else
  501. #define VER_IGameServiceCustomRule INTERFACE_VERSION(1,1)
  502. static const GUID IID_IGameServiceCustomRule = { 0xc7ace01d, 0x75f8, 0x4af7, 0xb1, 0x80, 0xa8, 0x53, 0xcd, 0x2e, 0x0a, 0xb6 };
  503. #endif
  504. //配置接口
  505. interface IGameServiceCustomRule : public IUnknownEx
  506. {
  507. //获取配置
  508. virtual bool SaveCustomRule(LPBYTE pcbCustomRule, WORD wCustonSize) = NULL;
  509. //默认配置
  510. virtual bool DefaultCustomRule(LPBYTE pcbCustomRule, WORD wCustonSize) = NULL;
  511. //创建窗口
  512. virtual HWND CreateCustomRule(CWnd * pParentWnd, CRect rcCreate, LPBYTE pcbCustomRule, WORD wCustonSize) = NULL;
  513. };
  514. //////////////////////////////////////////////////////////////////////////////////
  515. #ifdef _UNICODE
  516. #define VER_IGameDataBaseEngine INTERFACE_VERSION(1,1)
  517. static const GUID IID_IGameDataBaseEngine = { 0x47dcd531, 0x2a19, 0x4c0a, 0x89, 0xb6, 0x9f, 0xd8, 0xe0, 0xa7, 0x85, 0xee };
  518. #else
  519. #define VER_IGameDataBaseEngine INTERFACE_VERSION(1,1)
  520. static const GUID IID_IGameDataBaseEngine = { 0x4310e733, 0xc49b, 0x4592, 0xa3, 0xb1, 0x73, 0x18, 0xd1, 0x53, 0x2f, 0x3e };
  521. #endif
  522. //游戏数据
  523. interface IGameDataBaseEngine : public IUnknownEx
  524. {
  525. //配置参数
  526. public:
  527. //自定配置
  528. virtual VOID * GetCustomRule() = NULL;
  529. //服务属性
  530. virtual tagGameServiceAttrib * GetGameServiceAttrib() = NULL;
  531. //服务配置
  532. virtual tagGameServiceOption * GetGameServiceOption() = NULL;
  533. //获取对象
  534. public:
  535. //获取对象
  536. virtual VOID * GetDataBase(REFGUID Guid, DWORD dwQueryVer) = NULL;
  537. //获取对象
  538. virtual VOID * GetDataBaseEngine(REFGUID Guid, DWORD dwQueryVer) = NULL;
  539. //功能接口
  540. public:
  541. //投递结果
  542. virtual bool PostGameDataBaseResult(WORD wRequestID, VOID * pData, WORD wDataSize) = NULL;
  543. };
  544. //////////////////////////////////////////////////////////////////////////////////
  545. #ifdef _UNICODE
  546. #define VER_IGameDataBaseEngineSink INTERFACE_VERSION(1,1)
  547. static const GUID IID_IGameDataBaseEngineSink = { 0x9b9111d9, 0x7a71, 0x41a1, 0xae, 0x78, 0xd4, 0xf3, 0x20, 0x08, 0x24, 0xdf };
  548. #else
  549. #define VER_IGameDataBaseEngineSink INTERFACE_VERSION(1,1)
  550. static const GUID IID_IGameDataBaseEngineSink = { 0xa6c5e2cc, 0x34c1, 0x422c, 0xa0, 0x1b, 0x54, 0xab, 0x68, 0xfa, 0xe6, 0x81 };
  551. #endif
  552. //数据接口
  553. interface IGameDataBaseEngineSink : public IUnknownEx
  554. {
  555. //配置接口
  556. virtual bool InitializeSink(IUnknownEx * pIUnknownEx) = NULL;
  557. //数据处理
  558. virtual bool OnGameDataBaseRequest(DWORD dwUserID, WORD wTableID, WORD wChairID);
  559. };
  560. //////////////////////////////////////////////////////////////////////////////////
  561. #ifdef _UNICODE
  562. #define VER_IServerUserItem INTERFACE_VERSION(1,1)
  563. static const GUID IID_IServerUserItem = { 0xcd43dce8, 0x1e12, 0x43be, 0x8b, 0x4f, 0x94, 0x95, 0x92, 0xa4, 0xf6, 0x19 };
  564. #else
  565. #define VER_IServerUserItem INTERFACE_VERSION(1,1)
  566. static const GUID IID_IServerUserItem = { 0xb5ce01a7, 0x5cd1, 0x4788, 0x94, 0x6c, 0xa1, 0xef, 0x5b, 0x30, 0x2c, 0xb7 };
  567. #endif
  568. //用户接口
  569. interface IServerUserItem : public IUnknownEx
  570. {
  571. //属性信息
  572. public:
  573. //用户索引
  574. virtual WORD GetBindIndex() = NULL;
  575. //用户地址
  576. virtual DWORD GetClientAddr() = NULL;
  577. //机器标识
  578. virtual LPCTSTR GetMachineID() = NULL;
  579. //登录信息
  580. public:
  581. //请求标识
  582. virtual DWORD GetDBQuestID() = NULL;
  583. //登录时间
  584. virtual DWORD GetLogonTime() = NULL;
  585. //记录索引
  586. virtual DWORD GetInoutIndex() = NULL;
  587. //用户信息
  588. public:
  589. //用户信息
  590. virtual tagUserInfo * GetUserInfo() = NULL;
  591. //用户规则
  592. virtual tagUserRule * GetUserRule() = NULL;
  593. //道具信息
  594. virtual tagUserProperty * GetUserProperty() = NULL;
  595. //时间信息
  596. virtual tagTimeInfo * GetTimeInfo() = NULL;
  597. //属性信息
  598. public:
  599. //用户性别
  600. virtual BYTE GetGender() = NULL;
  601. //用户标识
  602. virtual DWORD GetUserID() = NULL;
  603. //游戏标识
  604. virtual DWORD GetGameID() = NULL;
  605. //用户昵称
  606. virtual LPCTSTR GetNickName() = NULL;
  607. //状态接口
  608. public:
  609. //桌子号码
  610. virtual WORD GetTableID() = NULL;
  611. //桌子号码
  612. virtual WORD GetLastTableID() = NULL;
  613. //椅子号码
  614. virtual WORD GetChairID() = NULL;
  615. //设置椅子
  616. virtual VOID SetChairID(WORD chairID) = NULL;
  617. //用户状态
  618. virtual BYTE GetUserStatus() = NULL;
  619. //权限信息
  620. public:
  621. //用户权限
  622. virtual DWORD GetUserRight() = NULL;
  623. //管理权限
  624. virtual DWORD GetMasterRight() = NULL;
  625. //权限信息
  626. public:
  627. //用户权限
  628. virtual BYTE GetMemberOrder() = NULL;
  629. //管理权限
  630. virtual BYTE GetMasterOrder() = NULL;
  631. //积分信息
  632. public:
  633. //用户积分
  634. virtual SCORE GetUserScore() = NULL;
  635. //用户成绩
  636. virtual SCORE GetUserGrade() = NULL;
  637. //用户银行
  638. virtual SCORE GetUserInsure() = NULL;
  639. //托管信息
  640. public:
  641. //托管积分
  642. virtual SCORE GetTrusteeScore() = NULL;
  643. //锁定积分
  644. virtual SCORE GetFrozenedScore() = NULL;
  645. //积分信息
  646. public:
  647. //用户胜率
  648. virtual WORD GetUserWinRate() = NULL;
  649. //用户输率
  650. virtual WORD GetUserLostRate() = NULL;
  651. //用户和率
  652. virtual WORD GetUserDrawRate() = NULL;
  653. //用户逃率
  654. virtual WORD GetUserFleeRate() = NULL;
  655. //游戏局数
  656. virtual DWORD GetUserPlayCount() = NULL;
  657. //效验接口
  658. public:
  659. //对比帐号
  660. virtual bool ContrastNickName(LPCTSTR pszNickName) = NULL;
  661. //对比密码
  662. virtual bool ContrastLogonPass(LPCTSTR pszPassword) = NULL;
  663. //托管状态
  664. public:
  665. //判断状态
  666. virtual bool IsTrusteeUser() = NULL;
  667. //设置状态
  668. virtual VOID SetTrusteeUser(bool bTrusteeUser) = NULL;
  669. //游戏状态
  670. public:
  671. //连接状态
  672. virtual bool IsClientReady() = NULL;
  673. //设置连接
  674. virtual VOID SetClientReady(bool bClientReady) = NULL;
  675. //手机用户
  676. public:
  677. //控制状态
  678. virtual bool IsMobileUser() = NULL;
  679. //设置控制
  680. virtual VOID SetMobileUser(bool bMobileUser) = NULL;
  681. //控制用户
  682. public:
  683. //控制状态
  684. virtual bool IsAndroidUser() = NULL;
  685. //设置控制
  686. virtual VOID SetAndroidUser(bool bbMachineUser) = NULL;
  687. //比赛接口
  688. public:
  689. //报名数据
  690. virtual VOID * GetMatchData() = NULL;
  691. //报名数据
  692. virtual VOID SetMatchData(VOID * pMatchData) = NULL;
  693. //报名时间
  694. virtual DWORD GetSignUpTime() = NULL;
  695. //报名时间
  696. virtual VOID SetSignUpTime(DWORD dwSignUpTime) = NULL;
  697. //报名状态
  698. virtual BYTE GetSignUpStatus() = NULL;
  699. //报名状态
  700. virtual VOID SetSignUpStatus(BYTE cbSignUpStatus) = NULL;
  701. //记录接口
  702. public:
  703. //变更判断
  704. virtual bool IsVariation() = NULL;
  705. //查询记录
  706. virtual bool QueryRecordInfo(tagVariationInfo & UserRecordInfo) = NULL;
  707. //提取变更
  708. virtual bool DistillVariation(tagVariationInfo & UserVariationInfo) = NULL;
  709. //管理接口
  710. public:
  711. //设置状态
  712. virtual bool SetUserStatus(BYTE cbUserStatus, WORD wTableID, WORD wChairID, bool bSendState = false) = NULL;
  713. //写入积分
  714. virtual bool WriteUserScore(SCORE lScore, SCORE lGrade, SCORE lRevenue, SCORE lIngot, BYTE cbScoreType, DWORD dwPlayTimeCount, DWORD dwWinExperience) = NULL;
  715. //修改权限
  716. virtual VOID ModifyUserRight(DWORD dwAddRight, DWORD dwRemoveRight, BYTE cbRightKind = UR_KIND_GAME) = NULL;
  717. //冻结接口
  718. public:
  719. //冻结积分
  720. virtual bool FrozenedUserScore(SCORE lScore) = NULL;
  721. //解冻积分
  722. virtual bool UnFrozenedUserScore(SCORE lScore) = NULL;
  723. //修改接口
  724. public:
  725. //修改信息
  726. virtual bool ModifyUserProperty(SCORE lScore, LONG lLoveLiness) = NULL;
  727. //高级接口
  728. public:
  729. //解除绑定
  730. virtual bool DetachBindStatus() = NULL;
  731. //银行操作
  732. virtual bool ModifyUserInsure(SCORE lScore, SCORE lInsure, SCORE lRevenue) = NULL;
  733. //设置参数
  734. virtual bool SetUserParameter(DWORD dwClientAddr, WORD wBindIndex, TCHAR szMachineID[LEN_MACHINE_ID], bool bAndroidUser, bool bClientReady) = NULL;
  735. //手机定义
  736. public:
  737. //手机规则
  738. virtual WORD GetMobileUserRule() = NULL;
  739. //设置定义
  740. virtual VOID SetMobileUserRule(WORD wMobileUserRule) = NULL;
  741. //当前分页
  742. virtual WORD GetMobileUserDeskPos() = NULL;
  743. //当前分页
  744. virtual VOID SetMobileUserDeskPos(WORD wMobileUserDeskPos) = NULL;
  745. //分页桌数
  746. virtual WORD GetMobileUserDeskCount() = NULL;
  747. //分页桌数
  748. virtual VOID SetMobileUserDeskCount(WORD wMobileUserDeskCount) = NULL;
  749. //机器类型
  750. virtual WORD GetMobileUserMachineType() = NULL;
  751. //机器类型
  752. virtual VOID SetMobileUserMachineType(WORD machineType) = NULL;
  753. };
  754. //////////////////////////////////////////////////////////////////////////////////
  755. #ifdef _UNICODE
  756. #define VER_IServerUserService INTERFACE_VERSION(1,1)
  757. static const GUID IID_IServerUserService = { 0x2f4e25a9, 0xad87, 0x4a37, 0x98, 0x96, 0x5c, 0x50, 0xf9, 0x91, 0x05, 0x31 };
  758. #else
  759. #define VER_IServerUserService INTERFACE_VERSION(1,1)
  760. static const GUID IID_IServerUserService = { 0xcc4e885f, 0x3357, 0x4d68, 0xb2, 0x6b, 0x78, 0x8f, 0x4b, 0x3e, 0x64, 0xc3 };
  761. #endif
  762. //用户服务
  763. interface IServerUserService : public IUnknownEx
  764. {
  765. };
  766. //////////////////////////////////////////////////////////////////////////////////
  767. #ifdef _UNICODE
  768. #define VER_IServerUserItemSink INTERFACE_VERSION(1,1)
  769. static const GUID IID_IServerUserItemSink = { 0x415be3e4, 0xd48d, 0x4a77, 0x94, 0xb7, 0xd1, 0x05, 0xcd, 0xa3, 0x82, 0x81 };
  770. #else
  771. #define VER_IServerUserItemSink INTERFACE_VERSION(1,1)
  772. static const GUID IID_IServerUserItemSink = { 0x9d0cfe02, 0x0fe9, 0x4a8b, 0x97, 0x95, 0xac, 0x32, 0x67, 0x5a, 0xf8, 0xb1 };
  773. #endif
  774. //状态接口
  775. interface IServerUserItemSink : public IUnknownEx
  776. {
  777. //用户积分
  778. virtual bool OnEventUserItemScore(IServerUserItem * pIServerUserItem, BYTE cbReason) = NULL;
  779. //用户状态
  780. virtual bool OnEventUserItemStatus(IServerUserItem * pIServerUserItem, WORD wOldTableID = INVALID_TABLE, WORD wOldChairID = INVALID_CHAIR, bool bSendState = false) = NULL;
  781. //用户权限
  782. virtual bool OnEventUserItemRight(IServerUserItem *pIServerUserItem, DWORD dwAddRight, DWORD dwRemoveRight, BYTE cbRightKind) = NULL;
  783. };
  784. //////////////////////////////////////////////////////////////////////////////////
  785. #ifdef _UNICODE
  786. #define VER_IServerUserManager INTERFACE_VERSION(1,1)
  787. static const GUID IID_IServerUserManager = { 0xeb413ed6, 0x185b, 0x4ceb, 0xa8, 0xbd, 0x54, 0x74, 0x19, 0x89, 0x6a, 0x53 };
  788. #else
  789. #define VER_IServerUserManager INTERFACE_VERSION(1,1)
  790. static const GUID IID_IServerUserManager = { 0x77a3c4df, 0x1d95, 0x48c6, 0xac, 0x9d, 0x75, 0xd7, 0x6c, 0x2a, 0x3c, 0x0e };
  791. #endif
  792. //用户管理
  793. interface IServerUserManager : public IUnknownEx
  794. {
  795. //配置接口
  796. public:
  797. //设置接口
  798. virtual bool SetServerUserItemSink(IUnknownEx * pIUnknownEx) = NULL;
  799. //查找接口
  800. public:
  801. //枚举用户
  802. virtual IServerUserItem * EnumUserItem(WORD wEnumIndex) = NULL;
  803. //查找用户
  804. virtual IServerUserItem * SearchUserItem(DWORD dwUserID) = NULL;
  805. //查找用户
  806. virtual IServerUserItem * SearchUserItem(LPCTSTR pszNickName) = NULL;
  807. //统计接口
  808. public:
  809. //机器人数
  810. virtual DWORD GetAndroidCount() = NULL;
  811. //在线人数
  812. virtual DWORD GetUserItemCount() = NULL;
  813. //管理接口
  814. public:
  815. //删除用户
  816. virtual bool DeleteUserItem() = NULL;
  817. //删除用户
  818. virtual bool DeleteUserItem(IServerUserItem * pIServerUserItem) = NULL;
  819. //插入用户
  820. virtual bool InsertUserItem(IServerUserItem * * pIServerUserResult, tagUserInfo & UserInfo, tagUserInfoPlus & UserInfoPlus) = NULL;
  821. };
  822. //////////////////////////////////////////////////////////////////////////////////
  823. #ifdef _UNICODE
  824. #define VER_ITableFrame INTERFACE_VERSION(1,1)
  825. static const GUID IID_ITableFrame = { 0x2e577d5f, 0x1e01, 0x44ff, 0x9f, 0xf4, 0x01, 0x16, 0x23, 0x1b, 0x76, 0x15 };
  826. #else
  827. #define VER_ITableFrame INTERFACE_VERSION(1,1)
  828. static const GUID IID_ITableFrame = { 0x860cd1cf, 0x1a4f, 0x4e35, 0xb8, 0x0c, 0xd2, 0x46, 0xa4, 0xef, 0xfd, 0xfb };
  829. #endif
  830. //桌子接口
  831. interface ITableFrame : public IUnknownEx
  832. {
  833. //属性接口
  834. public:
  835. //++交换座位
  836. virtual bool SwapChair() = NULL;
  837. virtual bool GetPrivateTableID(TCHAR *pTableID, DWORD dLen) = NULL;
  838. //桌子号码
  839. virtual WORD GetTableID() = NULL;
  840. //游戏人数
  841. virtual WORD GetChairCount() = NULL;
  842. //修改最大人数
  843. virtual VOID SetChairCount(WORD wNewChairCount) = NULL;
  844. //空位置数目
  845. virtual WORD GetNullChairCount() = NULL;
  846. //配置参数
  847. public:
  848. //自定配置
  849. virtual VOID * GetCustomRule() = NULL;
  850. //服务属性
  851. virtual tagGameServiceAttrib * GetGameServiceAttrib() = NULL;
  852. //服务配置
  853. virtual tagGameServiceOption * GetGameServiceOption() = NULL;
  854. //配置接口
  855. public:
  856. //开始模式
  857. virtual BYTE GetStartMode() = NULL;
  858. //开始模式
  859. virtual VOID SetStartMode(BYTE cbStartMode) = NULL;
  860. //单元积分
  861. public:
  862. //单元积分
  863. virtual LONG GetCellScore() = NULL;
  864. //单元积分
  865. virtual VOID SetCellScore(LONG lCellScore) = NULL;
  866. //信息接口
  867. public:
  868. //锁定状态
  869. virtual bool IsTableLocked() = NULL;
  870. //游戏状态
  871. virtual bool IsGameStarted() = NULL;
  872. //游戏状态
  873. virtual bool IsDrawStarted() = NULL;
  874. //游戏状态
  875. virtual bool IsTableStarted() = NULL;
  876. //状态接口
  877. public:
  878. //获取状态
  879. virtual BYTE GetGameStatus() = NULL;
  880. //设置状态
  881. virtual VOID SetGameStatus(BYTE bGameStatus) = NULL;
  882. //控制接口
  883. public:
  884. //开始游戏
  885. virtual bool StartGame() = NULL;
  886. //解散游戏
  887. virtual bool DismissGame() = NULL;
  888. //结束游戏
  889. virtual bool ConcludeGame(BYTE cbGameStatus, bool bSendState = false) = NULL;
  890. //房主在未开始游戏前,请求解散牌桌
  891. virtual bool SetTableFree() = NULL;
  892. virtual bool DeletePrivateTableNow() = NULL;
  893. virtual DWORD GetPrivateTableOwnerID() = NULL;
  894. //此局一共需要多少元宝
  895. virtual USHORT GetNeedPay() = NULL;
  896. //直接扣除房卡
  897. virtual bool NowReduceBeans(DWORD dwUserID, UINT32 dwConsumeCurrency) = NULL;
  898. //消耗元宝
  899. virtual bool ReduceBeans(DWORD dwUserID, UINT32 dwConsumeCurrency) = NULL;
  900. //锁定元宝
  901. virtual bool LockBeans(DWORD dwUserID, UINT32 dwConsumeCurrency) = NULL;
  902. //解锁元宝
  903. virtual bool UnLockBeans(DWORD dwUserID, UINT32 dwConsumeCurrency) = NULL;
  904. //在桌子解散的情况下,按照约定处理房间创建者需要解锁的元宝
  905. virtual void UnAdminLockBeans() = NULL;
  906. //获取开始次数
  907. virtual WORD GetStartCount() = NULL;
  908. //获取创建者的连接
  909. virtual IServerUserItem* GetPrivateTableCreator() = NULL;
  910. //保存回放记录
  911. virtual bool SaveReplayRecord(void* pData, WORD wDataSize) = NULL;
  912. //写分接口
  913. public:
  914. //写入积分
  915. virtual bool WriteUserScore(WORD wChairID, tagScoreInfo & ScoreInfo, DWORD dwGameMemal = INVALID_DWORD, DWORD dwPlayGameTime = INVALID_DWORD) = NULL;
  916. //写入积分
  917. virtual bool WriteTableScore(tagScoreInfo ScoreInfoArray[], WORD wScoreCount) = NULL;
  918. //计算接口
  919. public:
  920. //计算税收
  921. virtual SCORE CalculateRevenue(WORD wChairID, SCORE lScore) = NULL;
  922. //消费限额
  923. virtual SCORE QueryConsumeQuota(IServerUserItem * pIServerUserItem) = NULL;
  924. //用户接口
  925. public:
  926. //寻找用户
  927. virtual IServerUserItem * SearchUserItem(DWORD dwUserID) = NULL;
  928. //游戏用户
  929. virtual IServerUserItem * GetTableUserItem(WORD wChairID) = NULL;
  930. //旁观用户
  931. virtual IServerUserItem * EnumLookonUserItem(WORD wEnumIndex) = NULL;
  932. //时间接口
  933. public:
  934. //设置时间
  935. virtual bool SetGameTimer(DWORD dwTimerID, DWORD dwElapse, DWORD dwRepeat, WPARAM dwBindParameter) = NULL;
  936. //删除时间
  937. virtual bool KillGameTimer(DWORD dwTimerID) = NULL;
  938. //网络接口
  939. public:
  940. //发送数据
  941. virtual bool SendTableData(WORD wChairID, WORD wSubCmdID) = NULL;
  942. //发送数据
  943. virtual bool SendTableData(WORD wChairID, WORD wSubCmdID, VOID * pData, WORD wDataSize, WORD wMainCmdID = MDM_GF_GAME) = NULL;
  944. //发送数据
  945. virtual bool SendLookonData(WORD wChairID, WORD wSubCmdID) = NULL;
  946. //发送数据
  947. virtual bool SendLookonData(WORD wChairID, WORD wSubCmdID, VOID * pData, WORD wDataSize) = NULL;
  948. //发送数据
  949. virtual bool SendUserItemData(IServerUserItem * pIServerUserItem, WORD wSubCmdID) = NULL;
  950. //发送数据
  951. virtual bool SendUserItemData(IServerUserItem * pIServerUserItem, WORD wSubCmdID, VOID * pData, WORD wDataSize) = NULL;
  952. //功能接口
  953. public:
  954. //发送消息
  955. virtual bool SendGameMessage(LPCTSTR lpszMessage, WORD wType) = NULL;
  956. //游戏消息
  957. virtual bool SendGameMessage(IServerUserItem * pIServerUserItem, LPCTSTR lpszMessage, WORD wType) = NULL;
  958. //房间消息
  959. virtual bool SendRoomMessage(IServerUserItem * pIServerUserItem, LPCTSTR lpszMessage, WORD wType) = NULL;
  960. //动作处理
  961. public:
  962. //起立动作
  963. virtual bool PerformStandUpAction(IServerUserItem * pIServerUserItem, bool bInitiative = false, bool bSendState = false) = NULL;
  964. //旁观动作
  965. virtual bool PerformLookonAction(IServerUserItem * pIServerUserItem) = NULL;
  966. //坐下动作
  967. virtual bool PerformSitDownAction(WORD wChairID, IServerUserItem * pIServerUserItem, LPCTSTR lpszPassword = NULL) = NULL;
  968. //发送在坐用户状态
  969. virtual bool SendUserInfoStat(IServerUserItem * pIServerUserItem) = NULL;
  970. //功能接口
  971. public:
  972. //发送场景
  973. virtual bool SendGameScene(IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize) = NULL;
  974. //比赛接口
  975. public:
  976. //设置接口
  977. virtual bool SetTableFrameHook(IUnknownEx * pIUnknownEx) = NULL;
  978. //获取接口
  979. virtual IUnknownEx * GetTableFrameHook() = NULL;
  980. };
  981. //////////////////////////////////////////////////////////////////////////////////
  982. #ifdef _UNICODE
  983. #define VER_ICompilationSink INTERFACE_VERSION(1,1)
  984. static const GUID IID_ICompilationSink = { 0x761A06DF, 0x2BCA, 0x4333, 0xAE, 0x96, 0xEF, 0x85, 0xBA, 0xB2, 0x45, 0xEB };
  985. #else
  986. #define VER_ICompilationSink INTERFACE_VERSION(1,1)
  987. static const GUID IID_ICompilationSink = { 0xA37F720F, 0x15CD, 0x41E4, 0xB8, 0x6C, 0xE0, 0xA7, 0xEC, 0xAB, 0x31, 0x89 };
  988. #endif
  989. //回调接口
  990. interface ICompilationSink : public IUnknownEx
  991. {
  992. //获取信息
  993. public:
  994. //获取信息
  995. virtual LPCTSTR GetCompilation() = NULL;
  996. };
  997. //////////////////////////////////////////////////////////////////////////////////
  998. #ifdef _UNICODE
  999. #define VER_ITableFrameSink INTERFACE_VERSION(1,1)
  1000. static const GUID IID_ITableFrameSink = { 0x9476b154, 0x8beb, 0x4f7e, 0xaf, 0x64, 0xd2, 0xb1, 0x1a, 0xda, 0x5e, 0xc4 };
  1001. #define VER_ITableFrameSinkOther INTERFACE_VERSION(1,2)
  1002. #define VER_ITableFrameSinkCxz INTERFACE_VERSION(1,3)
  1003. #define VER_ITableFrameSinkZhiPai INTERFACE_VERSION(1,4)
  1004. #else
  1005. #define VER_ITableFrameSink INTERFACE_VERSION(1,1)
  1006. static const GUID IID_ITableFrameSink = { 0x38a74df5, 0x6245, 0x46c7, 0xb6, 0xce, 0x53, 0xf9, 0xd5, 0xbf, 0x6d, 0xe6 };
  1007. #define VER_ITableFrameSinkOther INTERFACE_VERSION(1,1)
  1008. static const GUID IID_ITableFrameSinkOther = { 0x38a74df5, 0x6245, 0x46c7, 0xb6, 0xce, 0x53, 0xf9, 0xd5, 0xbf, 0x6d, 0xe6 };
  1009. #endif
  1010. //回调接口
  1011. interface ITableFrameSink : public IUnknownEx
  1012. {
  1013. //管理接口
  1014. public:
  1015. //复位接口
  1016. virtual VOID RepositionSink() = NULL;
  1017. //配置接口
  1018. virtual bool Initialization(IUnknownEx * pIUnknownEx) = NULL;
  1019. //查询接口
  1020. public:
  1021. //查询限额
  1022. virtual SCORE QueryConsumeQuota(IServerUserItem * pIServerUserItem) = NULL;
  1023. //最少积分
  1024. virtual SCORE QueryLessEnterScore(WORD wChairID, IServerUserItem * pIServerUserItem) = NULL;
  1025. //查询总得分
  1026. virtual int QueryTatolScore(WORD wChairID) = NULL;
  1027. //查询赖子数
  1028. virtual int QueryTatolLaiGang(WORD wChairID) = NULL;
  1029. //查询是否扣服务费
  1030. virtual bool QueryBuckleServiceCharge(WORD wChairID) = NULL;
  1031. //查询是否使用临时积分(临时积分:输赢都不计入用户积分)
  1032. virtual bool QueryUseTemporaryScore() = NULL;
  1033. //结束游戏
  1034. virtual bool ConcludeGame(BYTE cbGameStatus, bool bSendState = false) = NULL;
  1035. //删除私有桌子
  1036. virtual void DeletePrivateTable(bool bSendState = false) = NULL;
  1037. //游戏事件
  1038. public:
  1039. //配置游戏选项
  1040. virtual void SetGameConfig(VOID * pDataBuffer, WORD wDataSize, std::wstring sPrivateRoomId) = NULL;
  1041. //游戏开始
  1042. virtual bool OnEventGameStart() = NULL;
  1043. //游戏结束
  1044. virtual bool OnEventGameConclude(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason, bool bSendState = false) = NULL;
  1045. //virtual bool OnEventGameConclude(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason, bool bSendState = false, int nHuType = 0) = NULL;
  1046. //发送场景
  1047. virtual bool OnEventSendGameScene(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbGameStatus, bool bSendSecret) = NULL;
  1048. //事件接口
  1049. public:
  1050. //时间事件
  1051. virtual bool OnTimerMessage(DWORD dwTimerID, WPARAM dwBindParameter) = NULL;
  1052. //数据事件
  1053. virtual bool OnDataBaseMessage(WORD wRequestID, VOID * pData, WORD wDataSize) = NULL;
  1054. //积分事件
  1055. virtual bool OnUserScroeNotify(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason) = NULL;
  1056. //网络接口
  1057. public:
  1058. //游戏消息
  1059. virtual bool OnGameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize, IServerUserItem * pIServerUserItem) = NULL;
  1060. //框架消息
  1061. virtual bool OnFrameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize, IServerUserItem * pIServerUserItem) = NULL;
  1062. //比赛接口
  1063. public:
  1064. //设置基数
  1065. virtual void SetGameBaseScore(LONG lBaseScore) = NULL;
  1066. };
  1067. //////////////////////////////////////////////////////////////////////////////////
  1068. #ifdef _UNICODE
  1069. #define VER_ITableUserAction INTERFACE_VERSION(1,1)
  1070. static const GUID IID_ITableUserAction = { 0x0f9aa3f9, 0xdba4, 0x49cb, 0x88, 0x4f, 0xd9, 0x11, 0xaf, 0x24, 0xfb, 0x8d };
  1071. #else
  1072. #define VER_ITableUserAction INTERFACE_VERSION(1,1)
  1073. static const GUID IID_ITableUserAction = { 0xc97c060b, 0xcf0e, 0x40b7, 0x93, 0x30, 0x97, 0xa4, 0xf6, 0x8c, 0xca, 0x84 };
  1074. #endif
  1075. //用户动作
  1076. interface ITableUserAction : public IUnknownEx
  1077. {
  1078. //用户断线
  1079. virtual bool OnActionUserOffLine(WORD wChairID, IServerUserItem * pIServerUserItem) = NULL;
  1080. //用户重入
  1081. virtual bool OnActionUserConnect(WORD wChairID, IServerUserItem * pIServerUserItem) = NULL;
  1082. //用户坐下
  1083. virtual bool OnActionUserSitDown(WORD wChairID, IServerUserItem * pIServerUserItem, bool bLookonUser) = NULL;
  1084. //用户起来
  1085. virtual bool OnActionUserStandUp(WORD wChairID, IServerUserItem * pIServerUserItem, bool bLookonUser) = NULL;
  1086. //用户同意
  1087. virtual bool OnActionUserOnReady(WORD wChairID, IServerUserItem * pIServerUserItem, VOID * pData, WORD wDataSize) = NULL;
  1088. //游戏中途旁观进入
  1089. virtual bool PerformLookonLogin(IServerUserItem * pIServerUserItem) = NULL;
  1090. };
  1091. //////////////////////////////////////////////////////////////////////////////////
  1092. #ifdef _UNICODE
  1093. #define VER_ITableUserRequest INTERFACE_VERSION(1,1)
  1094. static const GUID IID_ITableUserRequest = { 0x7a810ebe, 0x3835, 0x41b5, 0xba, 0x7e, 0x02, 0x97, 0x8c, 0x13, 0x73, 0x50 };
  1095. #else
  1096. #define VER_ITableUserRequest INTERFACE_VERSION(1,1)
  1097. static const GUID IID_ITableUserRequest = { 0x7ad17e89, 0xcb5b, 0x472a, 0xac, 0xeb, 0x84, 0x4d, 0x4f, 0xa1, 0x4c, 0x38 };
  1098. #endif
  1099. //用户请求
  1100. interface ITableUserRequest : public IUnknownEx
  1101. {
  1102. //旁观请求
  1103. virtual bool OnUserRequestLookon(WORD wChairID, IServerUserItem * pIServerUserItem, tagRequestResult & RequestResult) = NULL;
  1104. //坐下请求
  1105. virtual bool OnUserRequestSitDown(WORD wChairID, IServerUserItem * pIServerUserItem, tagRequestResult & RequestResult) = NULL;
  1106. };
  1107. //////////////////////////////////////////////////////////////////////////////////
  1108. #ifdef _UNICODE
  1109. #define VER_IMainServiceFrame INTERFACE_VERSION(1,1)
  1110. static const GUID IID_IMainServiceFrame = { 0xef3efa64, 0x788b, 0x4299, 0x80, 0x99, 0xdd, 0xed, 0x08, 0xde, 0x57, 0xc1 };
  1111. #else
  1112. #define VER_IMainServiceFrame INTERFACE_VERSION(1,1)
  1113. static const GUID IID_IMainServiceFrame = { 0xbaaf5584, 0xf9b4, 0x41b6, 0xae, 0x6b, 0xef, 0x4d, 0x54, 0x41, 0xf8, 0x32 };
  1114. #endif
  1115. //绑定参数
  1116. struct tagBindParameter
  1117. {
  1118. //连接属性
  1119. DWORD dwSocketID; //网络标识
  1120. DWORD dwClientAddr; //连接地址
  1121. DWORD dwActiveTime; //激活时间
  1122. //版本信息
  1123. DWORD dwPlazaVersion; //广场版本
  1124. DWORD dwFrameVersion; //框架版本
  1125. DWORD dwProcessVersion; //进程版本
  1126. //用户属性
  1127. BYTE cbClientKind; //连接类型
  1128. IServerUserItem * pIServerUserItem; //用户接口
  1129. ///---add by yd 2017-8-4
  1130. tagBindParameter()
  1131. {
  1132. memset(this, 0x0, sizeof(tagBindParameter));
  1133. }
  1134. };
  1135. //服务框架
  1136. interface IMainServiceFrame : public IUnknownEx
  1137. {
  1138. //消息接口
  1139. public:
  1140. //房间消息
  1141. virtual bool SendRoomMessage(LPCTSTR lpszMessage, WORD wType) = NULL;
  1142. //游戏消息
  1143. virtual bool SendGameMessage(LPCTSTR lpszMessage, WORD wType) = NULL;
  1144. //房间消息
  1145. virtual bool SendRoomMessage(IServerUserItem * pIServerUserItem, LPCTSTR lpszMessage, WORD wType) = NULL;
  1146. //游戏消息
  1147. virtual bool SendGameMessage(IServerUserItem * pIServerUserItem, LPCTSTR lpszMessage, WORD wType) = NULL;
  1148. //房间消息
  1149. virtual bool SendRoomMessage(DWORD dwSocketID, LPCTSTR lpszMessage, WORD wType, bool bAndroid) = NULL;
  1150. //网络接口
  1151. public:
  1152. //发送数据
  1153. virtual bool SendData(BYTE cbSendMask, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize) = NULL;
  1154. //发送数据
  1155. virtual bool SendData(DWORD dwContextID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize) = NULL;
  1156. //发送数据
  1157. virtual bool SendData(IServerUserItem * pIServerUserItem, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize) = NULL;
  1158. //群发数据
  1159. virtual bool SendDataBatchToMobileUser(WORD wCmdTable, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize, IServerUserItem * pUserItem = NULL) = NULL;
  1160. //功能接口
  1161. public:
  1162. //插入分配
  1163. virtual bool InsertDistribute(IServerUserItem * pIServerUserItem) = NULL;
  1164. //删除用户
  1165. virtual bool DeleteDistribute(IServerUserItem * pIServerUserItem) = NULL;
  1166. //敏感词过滤
  1167. virtual void SensitiveWordFilter(LPCTSTR pMsg, LPTSTR pszFiltered, int nMaxLen) = NULL;
  1168. //删除私有桌子
  1169. virtual bool DeletePrivateTable(ITableFrame* pTableFram) = NULL;
  1170. //查找用户
  1171. virtual IServerUserItem * SearchUserItem(DWORD dwUserID) = NULL;
  1172. //绑定用户
  1173. virtual IServerUserItem * GetBindUserItem(WORD wBindIndex) = NULL;
  1174. //绑定参数
  1175. virtual tagBindParameter * GetBindParameter(WORD wBindIndex) = NULL;
  1176. // 是否监测此用户
  1177. virtual BOOL IsJC(DWORD UserID) = NULL;
  1178. };
  1179. //////////////////////////////////////////////////////////////////////////////////
  1180. #ifdef _UNICODE
  1181. #define VER_IAndroidUserItem INTERFACE_VERSION(1,1)
  1182. static const GUID IID_IAndroidUserItem = { 0xf6856fe1, 0xc93e, 0x4166, 0xbc, 0x92, 0xf7, 0x43, 0xad, 0x97, 0x1c, 0xa8 };
  1183. #else
  1184. #define VER_IAndroidUserItem INTERFACE_VERSION(1,1)
  1185. static const GUID IID_IAndroidUserItem = { 0xb1faa2f4, 0x9804, 0x4c6f, 0x9d, 0xfc, 0xb1, 0x0a, 0x08, 0x8a, 0x22, 0x69 };
  1186. #endif
  1187. //机器人接口
  1188. interface IAndroidUserItem : public IUnknownEx
  1189. {
  1190. //信息接口
  1191. public:
  1192. //获取 I D
  1193. virtual DWORD GetUserID() = NULL;
  1194. //桌子号码
  1195. virtual WORD GetTableID() = NULL;
  1196. //椅子号码
  1197. virtual WORD GetChairID() = NULL;
  1198. //状态函数
  1199. public:
  1200. //获取状态
  1201. virtual BYTE GetGameStatus() = NULL;
  1202. //设置状态
  1203. virtual VOID SetGameStatus(BYTE cbGameStatus) = NULL;
  1204. //配置信息
  1205. public:
  1206. //获取状态
  1207. virtual tagAndroidService * GetAndroidService() = NULL;
  1208. //获取配置
  1209. virtual tagAndroidParameter * GetAndroidParameter() = NULL;
  1210. //功能接口
  1211. public:
  1212. //获取自己
  1213. virtual IServerUserItem * GetMeUserItem() = NULL;
  1214. //游戏用户
  1215. virtual IServerUserItem * GetTableUserItem(WORD wChariID) = NULL;
  1216. //银行接口
  1217. public:
  1218. //存入游戏币
  1219. virtual bool PerformSaveScore(SCORE lScore) = NULL;
  1220. //提取游戏币
  1221. virtual bool PerformTakeScore(SCORE lScore) = NULL;
  1222. //网络接口
  1223. public:
  1224. //发送函数
  1225. virtual bool SendSocketData(WORD wSubCmdID) = NULL;
  1226. //发送函数
  1227. virtual bool SendSocketData(WORD wSubCmdID, VOID * pData, WORD wDataSize) = NULL;
  1228. //动作接口
  1229. public:
  1230. //机器动作
  1231. virtual bool JudgeAndroidActionAndRemove(WORD wAction) = NULL;
  1232. //功能接口
  1233. public:
  1234. //删除时间
  1235. virtual bool KillGameTimer(UINT nTimerID) = NULL;
  1236. //设置时间
  1237. virtual bool SetGameTimer(UINT nTimerID, UINT nElapse) = NULL;
  1238. //发送准备
  1239. virtual bool SendUserReady(VOID * pData, WORD wDataSize) = NULL;
  1240. //发送聊天
  1241. virtual bool SendChatMessage(DWORD dwTargetUserID, LPCTSTR pszChatString, COLORREF crFontColor) = NULL;
  1242. };
  1243. //////////////////////////////////////////////////////////////////////////////////
  1244. #ifdef _UNICODE
  1245. #define VER_IAndroidUserItemSink INTERFACE_VERSION(1,1)
  1246. static const GUID IID_IAndroidUserItemSink = { 0x0967632c, 0x93da, 0x4f7f, 0x98, 0xe4, 0x6f, 0x9f, 0xf2, 0xca, 0x7b, 0xc4 };
  1247. #else
  1248. #define VER_IAndroidUserItemSink INTERFACE_VERSION(1,1)
  1249. static const GUID IID_IAndroidUserItemSink = { 0x1e8a1918, 0x572b, 0x453b, 0xbc, 0x0b, 0x6b, 0x61, 0x70, 0xa3, 0x3c, 0xca };
  1250. #endif
  1251. //机器人接口
  1252. interface IAndroidUserItemSink : public IUnknownEx
  1253. {
  1254. //控制接口
  1255. public:
  1256. //重置接口
  1257. virtual bool RepositionSink() = NULL;
  1258. //初始接口
  1259. virtual bool Initialization(IUnknownEx * pIUnknownEx) = NULL;
  1260. //游戏事件
  1261. public:
  1262. //时间消息
  1263. virtual bool OnEventTimer(UINT nTimerID) = NULL;
  1264. //游戏消息
  1265. virtual bool OnEventGameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize) = NULL;
  1266. //游戏消息
  1267. virtual bool OnEventFrameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize) = NULL;
  1268. //场景消息
  1269. virtual bool OnEventSceneMessage(BYTE cbGameStatus, bool bLookonOther, VOID * pData, WORD wDataSize) = NULL;
  1270. //用户事件
  1271. public:
  1272. //用户进入
  1273. virtual VOID OnEventUserEnter(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser) = NULL;
  1274. //用户离开
  1275. virtual VOID OnEventUserLeave(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser) = NULL;
  1276. //用户积分
  1277. virtual VOID OnEventUserScore(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser) = NULL;
  1278. //用户状态
  1279. virtual VOID OnEventUserStatus(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser) = NULL;
  1280. };
  1281. //////////////////////////////////////////////////////////////////////////////////
  1282. #ifdef _UNICODE
  1283. #define VER_IUserTaskManagerSink INTERFACE_VERSION(1,1)
  1284. static const GUID IID_IUserTaskManagerSink = { 0xe71c3ecf, 0x490e, 0x4a32, 0xb4, 0x75, 0x2c, 0xba, 0x9b, 0x55, 0x26, 0xd4 };
  1285. #else
  1286. #define VER_IUserTaskManagerSink INTERFACE_VERSION(1,1)
  1287. static const GUID IID_IUserTaskManagerSink = { 0x1c721508, 0x81f8, 0x403f, 0xb5, 0xc9, 0x3e, 0xb3, 0xe3, 0xe5, 0xcd, 0xa9 };
  1288. #endif
  1289. //任务接口
  1290. interface IUserTaskManagerSink : public IUnknownEx
  1291. {
  1292. //任务参数
  1293. public:
  1294. //移除参数
  1295. virtual VOID RemoveTaskParameter() = NULL;
  1296. //查找参数
  1297. virtual tagTaskParameter * SearchTaskParameter(WORD wTaskID) = NULL;
  1298. //枚举参数
  1299. virtual tagTaskParameter * EnumTaskParameter(POSITION & Position) = NULL;
  1300. //添加参数
  1301. virtual bool AddTaskParameter(tagTaskParameter TaskParameter[], WORD wPatemterCount) = NULL;
  1302. //用户任务
  1303. public:
  1304. //移除任务
  1305. virtual VOID RemoveUserTask(DWORD dwUserID) = NULL;
  1306. //获取任务
  1307. virtual tagUserTaskEntry * GetUserTaskEntry(DWORD dwUserID) = NULL;
  1308. //获取任务
  1309. virtual tagUserTaskEntry * GetUserTaskEntry(DWORD dwUserID, BYTE cbTaskStatus) = NULL;
  1310. //设置任务
  1311. virtual VOID SetUserTaskInfo(DWORD dwUserID, tagUserTaskInfo UserTaskInfo[], WORD wTaskCount) = NULL;
  1312. };
  1313. //////////////////////////////////////////////////////////////////////////////////
  1314. #ifdef _UNICODE
  1315. #define VER_IAndroidUserManager INTERFACE_VERSION(1,1)
  1316. static const GUID IID_IAndroidUserManager = { 0x0c963240, 0xa798, 0x4e33, 0x81, 0x28, 0x97, 0x3d, 0x05, 0xe7, 0x7f, 0x89 };
  1317. #else
  1318. #define VER_IAndroidUserManager INTERFACE_VERSION(1,1)
  1319. static const GUID IID_IAndroidUserManager = { 0xba43054d, 0x924b, 0x4013, 0xb2, 0x6d, 0xa6, 0x91, 0xb6, 0x20, 0x23, 0xb2 };
  1320. #endif
  1321. //机器人接口
  1322. interface IAndroidUserManager : public IUnknownEx
  1323. {
  1324. //控制接口
  1325. public:
  1326. //启动服务
  1327. virtual bool StartService() = NULL;
  1328. //停止服务
  1329. virtual bool ConcludeService() = NULL;
  1330. //配置接口
  1331. public:
  1332. //配置组件
  1333. virtual bool InitAndroidUser(tagAndroidUserParameter & AndroidUserParameter) = NULL;
  1334. //移除参数
  1335. virtual bool RemoveAndroidParameter(DWORD dwBatchID) = NULL;
  1336. //添加参数
  1337. virtual bool AddAndroidParameter(tagAndroidParameter AndroidParameter[], WORD wParemeterCount) = NULL;
  1338. //插入机器
  1339. virtual bool InsertAndroidInfo(tagAndroidAccountsInfo AndroidAccountsInfo[], WORD wAndroidCount, DWORD dwBatchID) = NULL;
  1340. //管理接口
  1341. public:
  1342. //删除机器
  1343. virtual bool DeleteAndroidUserItem(DWORD dwAndroidID, bool bStockRetrieve) = NULL;
  1344. //查找机器
  1345. virtual IAndroidUserItem * SearchAndroidUserItem(DWORD dwUserID, DWORD dwContextID) = NULL;
  1346. //创建机器
  1347. virtual IAndroidUserItem * CreateAndroidUserItem(tagAndroidItemConfig & AndroidItemConfig) = NULL;
  1348. //事件接口
  1349. public:
  1350. //脉冲事件
  1351. virtual bool OnEventTimerPulse(DWORD dwTimerID, WPARAM dwBindParameter) = NULL;
  1352. //状态接口
  1353. public:
  1354. //机器数目
  1355. virtual WORD GetAndroidCount() = NULL;
  1356. //加载机器
  1357. virtual bool GetAndroidLoadInfo(DWORD & dwBatchID, DWORD & dwLoadCount) = NULL;
  1358. //用户状况
  1359. virtual WORD GetAndroidUserInfo(tagAndroidUserInfo & AndroidUserInfo, DWORD dwServiceMode) = NULL;
  1360. //网络接口
  1361. public:
  1362. //发送数据
  1363. virtual bool SendDataToClient(WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize) = NULL;
  1364. //发送数据
  1365. virtual bool SendDataToClient(DWORD dwAndroidID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize) = NULL;
  1366. //发送数据
  1367. virtual bool SendDataToServer(DWORD dwAndroidID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize) = NULL;
  1368. };
  1369. //////////////////////////////////////////////////////////////////////////////////
  1370. #ifdef _UNICODE
  1371. #define VER_IQueryServiceSink INTERFACE_VERSION(1,1)
  1372. static const GUID IID_IQueryServiceSink = { 0x0c963248, 0xa798, 0x4e33, 0x88, 0x28, 0x98, 0x3d, 0x05, 0xe7, 0x7f, 0x89 };
  1373. #else
  1374. #define VER_IQueryServiceSink INTERFACE_VERSION(1,1)
  1375. static const GUID IID_IQueryServiceSink = { 0xba43054d, 0x924b, 0x4013, 0xb2, 0x6d, 0xa6, 0x96, 0xb6, 0x26, 0x26, 0xb2 };
  1376. #endif
  1377. //查询接口
  1378. interface IQueryServiceSink : public IUnknownEx
  1379. {
  1380. //查询是否扣服务费
  1381. virtual bool QueryBuckleServiceCharge(WORD wChairID) = NULL;
  1382. };
  1383. //////////////////////////////////////////////////////////////////////////////////
  1384. #ifdef _UNICODE
  1385. #define VER_IDBCorrespondManager INTERFACE_VERSION(1,1)
  1386. static const GUID IID_IDBCorrespondManager = { 0x0c963248, 0xa796, 0x4e33, 0x86, 0x28, 0x98, 0x3d, 0x05, 0xe7, 0x7f, 0x89 };
  1387. #else
  1388. #define VER_IDBCorrespondManager INTERFACE_VERSION(1,1)
  1389. static const GUID IID_IDBCorrespondManager = { 0xba43154d, 0x924b, 0x4018, 0xb2, 0x6d, 0xa6, 0x96, 0xb6, 0x28, 0x26, 0xb2 };
  1390. #endif
  1391. //查询接口
  1392. interface IDBCorrespondManager : public IServiceModule
  1393. {
  1394. //配置接口
  1395. public:
  1396. //配置模块
  1397. virtual bool __cdecl InitDBCorrespondManager(IDataBaseEngine * pIDataBaseEngine) = NULL;
  1398. //控制事件
  1399. public:
  1400. //请求事件
  1401. virtual bool __cdecl PostDataBaseRequest(DWORD dwUserID, WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize, BYTE cbCache = FALSE) = NULL;
  1402. //同步事件
  1403. public:
  1404. //请求完成
  1405. virtual bool __cdecl OnPostRequestComplete(DWORD dwUserID, bool bSucceed) = NULL;
  1406. //定时事件
  1407. public:
  1408. //定时事件
  1409. virtual bool __cdecl OnTimerNotify() = NULL;
  1410. };
  1411. //////////////////////////////////////////////////////////////////////////////////
  1412. //包含文件
  1413. #ifndef GAME_SERVICE_DLL
  1414. #include "AndroidUserItem.h"
  1415. #include "UserTaskManager.h"
  1416. #include "ServerUserManager.h"
  1417. #include "AndroidUserManager.h"
  1418. #include "GamePropertyManager.h"
  1419. #endif
  1420. //游戏服务
  1421. DECLARE_MODULE_DYNAMIC(GameServiceManager)
  1422. DECLARE_MODULE_DYNAMIC(AndroidUserItemSink)
  1423. //////////////////////////////////////////////////////////////////////////////////
  1424. #endif