诸暨麻将添加redis
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 
 
 

133 satır
3.6 KiB

  1. #pragma once
  2. #include "Stdafx.h"
  3. #include "GameLogic.h"
  4. #include "GameClientView.h"
  5. #include "DirectSound.h"
  6. //////////////////////////////////////////////////////////////////////////
  7. //游戏对话框
  8. class CGameClientEngine : public CGameFrameEngine
  9. {
  10. //用户变量
  11. protected:
  12. WORD m_wBankerUser; //庄家用户
  13. WORD m_wCurrentUser; //当前用户
  14. BYTE m_cbUserAction; //玩家动作
  15. LONG m_lSiceCount; //
  16. TCHAR m_szAccounts[GAME_PLAYER][32];
  17. //托管变量
  18. protected:
  19. bool m_bStustee; //托管标志
  20. WORD m_wTimeOutCount; //超时次数
  21. //堆立变量
  22. protected:
  23. WORD m_wHeapHand; //堆立头部
  24. WORD m_wHeapTail; //堆立尾部
  25. BYTE m_cbHeapCardInfo[4][2]; //堆牌信息
  26. //扑克变量
  27. protected:
  28. BYTE m_cbLeftCardCount; //剩余数目
  29. BYTE m_cbCardIndex[MAX_INDEX]; //手中扑克
  30. //组合扑克
  31. protected:
  32. BYTE m_cbWeaveCount[GAME_PLAYER]; //组合数目
  33. tagWeaveItem m_WeaveItemArray[GAME_PLAYER][4]; //组合扑克
  34. //出牌信息
  35. protected:
  36. WORD m_wOutCardUser; //出牌用户
  37. BYTE m_cbOutCardData; //出牌扑克
  38. BYTE m_cbDiscardCount[GAME_PLAYER]; //丢弃数目
  39. BYTE m_cbDiscardCard[GAME_PLAYER][55]; //丢弃记录
  40. //控件变量
  41. protected:
  42. CGameLogic m_GameLogic; //游戏逻辑
  43. CGameClientView m_GameClientView; //游戏视图
  44. CDirectSound m_DirectSound; //出牌和发牌声音
  45. //函数定义
  46. public:
  47. //构造函数
  48. CGameClientEngine();
  49. //析构函数
  50. virtual ~CGameClientEngine();
  51. //常规继承
  52. private:
  53. //初始函数
  54. virtual bool OnInitGameEngine();
  55. //重置框架
  56. virtual bool OnResetGameEngine();
  57. //时钟删除
  58. virtual bool OnEventGameClockKill(WORD wChairID);
  59. //时间消息
  60. virtual bool OnEventGameClockInfo(WORD wChairID, UINT nElapse, WORD wClockID);
  61. //旁观状态
  62. virtual bool OnEventLookonMode(VOID * pData, WORD wDataSize);
  63. //网络消息
  64. virtual bool OnEventGameMessage(WORD wSubCmdID, VOID * pBuffer, WORD wDataSize);
  65. //游戏场景
  66. virtual bool OnEventSceneMessage(BYTE cbGameStatus, bool bLookonOther, VOID * pBuffer, WORD wDataSize);
  67. //消息处理
  68. protected:
  69. //游戏开始
  70. bool OnSubGameStart(const void * pBuffer, WORD wDataSize);
  71. //用户出牌
  72. bool OnSubOutCard(const void * pBuffer, WORD wDataSize);
  73. //发牌消息
  74. bool OnSubSendCard(const void * pBuffer, WORD wDataSize);
  75. //操作提示
  76. bool OnSubOperateNotify(const void * pBuffer, WORD wDataSize);
  77. //操作结果
  78. bool OnSubOperateResult(const void * pBuffer, WORD wDataSize);
  79. //游戏结束
  80. bool OnSubGameEnd(const void * pBuffer, WORD wDataSize);
  81. //用户托管
  82. bool OnSubTrustee(const void * pBuffer,WORD wDataSize);
  83. //
  84. bool OnSubUserChiHu( const void *pBuffer,WORD wDataSize );
  85. //
  86. bool OnSubGangScore( const void *pBuffer, WORD wDataSize );
  87. //辅助函数
  88. protected:
  89. //播放声音
  90. void PlayCardSound(WORD wChairID,BYTE cbCardData);
  91. //播放声音
  92. void PlayActionSound(WORD wChairID,BYTE cbAction);
  93. //出牌判断
  94. bool VerdictOutCard(BYTE cbCardData);
  95. //扣除扑克
  96. void DeductionTableCard(bool bHeadCard);
  97. //显示控制
  98. bool ShowOperateControl(BYTE cbUserAction, BYTE cbActionCard);
  99. //消息映射
  100. protected:
  101. //开始消息
  102. LRESULT OnStart(WPARAM wParam, LPARAM lParam);
  103. //出牌操作
  104. LRESULT OnOutCard(WPARAM wParam, LPARAM lParam);
  105. //扑克操作
  106. LRESULT OnCardOperate(WPARAM wParam, LPARAM lParam);
  107. //拖管控制
  108. LRESULT OnStusteeControl(WPARAM wParam, LPARAM lParam);
  109. //第二次摇色子消息
  110. LRESULT OnSiceTwo(WPARAM wParam, LPARAM lParam);
  111. //摇色子结束消息
  112. LRESULT OnSiceFinish(WPARAM wParam, LPARAM lParam);
  113. DECLARE_MESSAGE_MAP()
  114. };
  115. //////////////////////////////////////////////////////////////////////////