诸暨麻将添加redis
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 
 

231 rader
8.6 KiB

  1. syntax = "proto3";
  2. package SparrowMaJiang;
  3. //出牌命令 200-1
  4. message PB_CS_C_OutCard{
  5. uint32 cbCardData = 1; //扑克数据
  6. };
  7. //操作命令 200-3
  8. message PB_CS_C_OperateCard{
  9. uint64 cbOperateCode = 1; //操作代码
  10. uint32 cbOperateCard = 2; //操作扑克
  11. repeated uint32 cbCaiShenCard = 3; //存财神牌
  12. };
  13. //用户托管 200-4
  14. message PB_CS_C_Trustee{
  15. uint32 bTrustee = 1; //是否托管
  16. };
  17. //包台 200-5
  18. message PB_CS_C_BAO{
  19. uint32 cbTaiNum = 1; //包台 255 表示放弃包台
  20. };
  21. //选财 200-7
  22. message PB_CS_C_Magic{
  23. uint32 cbMagicFirst = 1; //财神1
  24. uint32 cbMagicSenced = 2; //财神2 0 表示该财神不需要
  25. };
  26. //定财神 200-8
  27. message PB_CS_C_MagicDing{
  28. uint32 isdingcai = 1; //1定 0 取消
  29. };
  30. //游戏开始 200-100
  31. message PB_CS_S_GameStart{
  32. uint32 wBankerUser = 1; //庄家用户,
  33. uint64 wCurrentUser = 2; //就是当前用户
  34. uint64 cbUserAction = 3; //用户动作(0:没操作,0x08:碰牌,0x10:杠,0x80:自摸等)
  35. repeated uint32 ActionCard = 4; //动作所对应的牌
  36. repeated uint32 cbCardData = 5; //扑克列表
  37. repeated uint32 cbSiceLaiZi = 6; //色子1,2,皮子,癞子
  38. uint32 cbLeftCardCount = 7; //剩余牌
  39. uint32 cbTotalCardCount = 8; //总麻将数
  40. uint32 cbOptTime = 9; //操作时间(秒)
  41. uint32 cbCurrPlay = 10; //当前局数
  42. repeated uint32 cbSliceCheckBankUser = 11;
  43. };
  44. //出牌命令 200-101
  45. message PB_CS_S_OutCard{
  46. uint32 wOutCardUser = 1; //出牌用户,座位号
  47. uint32 bOptType = 2; //操作类型(0,表示普通出牌,1,表示癞子杠)
  48. uint32 cbOutCardData = 3; //出牌扑克
  49. };
  50. //发送扑克 200-102
  51. message PB_CS_S_SendCard{
  52. uint32 cbCardData = 1; //发牌扑克数据
  53. uint64 cbActionMask = 2; //动作掩码(0:没操作,0x08:碰牌,0x10:杠,0x80:自摸)
  54. repeated uint32 cbActionCard = 3; //操作扑克(杠的时候才有数据,多杠时,补杠,暗杠才有数据)
  55. uint32 wCurrentUser = 4; //当前用户
  56. uint32 bTail = 5; //末尾发牌(0:正常发牌,1:末尾)
  57. uint32 bLeftCardCount = 6; //剩余牌数
  58. };
  59. message pb_bTingCardData{
  60. repeated uint32 bTingCardDatas = 1;
  61. };
  62. //听牌数据单独协议 200-103
  63. message PB_CS_S_TingCard{
  64. uint32 bPaiQuan = 1; //1表示 当前不是自己的牌权,但是已经听了
  65. uint32 bOutCardCout = 2; //可以打出的牌就听牌的个数
  66. repeated uint32 bOutCardData = 3; //具体打哪几张牌
  67. repeated uint32 bTingCardCount = 4; //相对应打出牌可听牌个数,索引表示第几张,值是对应对应的听牌个数
  68. repeated pb_bTingCardData bTingCardData= 5;//具体听牌数据,一维索引表示打出牌的第几个,二维索引表示听牌的第几个,值表示牌数据
  69. };
  70. //操作提示 200-104
  71. message PB_CS_S_OperateNotify{
  72. uint32 wResumeUser = 1; //还原用户
  73. uint64 cbActionMask = 2; //动作掩码()
  74. uint32 cbActionCard = 3; //动作扑克
  75. };
  76. //操作命令 200-105
  77. message PB_CS_S_OperateResult{
  78. uint32 wOperateUser = 1; //操作用户
  79. uint32 wProvideUser = 2; //供应用户
  80. uint64 cbOperateCode = 3; //操作代码
  81. uint32 cbOperateCard = 4; //操作扑克
  82. repeated uint32 cbCaiShenCard = 5; //存财神牌
  83. uint64 cbActionMask = 6; //动作
  84. repeated uint32 cbActionCard = 7; //动作牌值
  85. };
  86. message pb_cbCardData{
  87. repeated uint32 cbCardDatas = 1;
  88. };
  89. //游戏结束 200-106
  90. message PB_CS_S_GameEnd{
  91. uint32 bOptType = 1; //操作类型(1胡牌结束,2黄庄,3解散)1
  92. uint32 bWanJiaId = 2; //玩家座位号 3
  93. uint32 wDianpao = 3; //点炮玩家 5
  94. uint32 HuPaiCard = 4; //胡的牌 6
  95. repeated pb_cbCardData cbCardData = 5; //玩家手牌值 62
  96. repeated uint64 cbWanJiaScore = 6; //玩家目前所拥有积分 78
  97. repeated uint32 bZimo = 7; //每位玩家胡牌次数 82
  98. uint32 bFinish = 8; //是否结束本轮。0表示否,1表示是 83
  99. uint32 dwOwnerID = 9; //房主ID 87
  100. uint32 bLeftCardCount = 10; //剩余牌数 88
  101. repeated uint32 bLeftCardDada = 11; //剩余牌值 142 为了应对 3人 2人麻将 修改数组 3人96 2人109
  102. uint32 playGameNum = 12; //打到第几局了 143
  103. repeated uint64 lGameScoreDetail = 13; //195流水详情 204
  104. };
  105. //用户托管 200-107
  106. message PB_CS_S_Trustee{
  107. uint32 bTrustee = 1; //是否托管
  108. uint32 wChairID = 2; //托管用户
  109. };
  110. //积分变动 200-110
  111. message PB_CS_S_GangScore{
  112. uint32 wChairId = 1; //用户
  113. uint64 cbOperateCode = 2; //操作代码
  114. repeated uint64 lGangScore = 3; //单局 积分变动情况
  115. repeated uint64 cbWanJiaScore = 4; //玩家目前所拥有积分
  116. };
  117. //通知包台 200-120
  118. message PB_CS_S_BAO_NOTICE{
  119. uint32 m_wChairID = 1; //选包玩家
  120. uint32 minBao = 2; //可选最小包台数
  121. };
  122. //玩家包台广播 200-121
  123. message PB_CS_S_BAO_CHOICE{
  124. uint32 m_wChairID = 1; //包玩家
  125. uint32 baochoice = 2; //包台 255 表示不包
  126. };
  127. //包结果 200-122
  128. message PB_CS_S_BAO_RESULT{
  129. uint32 m_wChairID = 1; //包家
  130. uint32 baoTai = 2; //台数
  131. uint32 cbMagicCount = 3; //需要选择财神个数 0 1 2
  132. uint64 actionMask = 4; //无财时 直接可以庄家出牌 需要发送庄家有的操作 仅庄家可见
  133. repeated uint32 gangCard = 5;
  134. };
  135. //财神结果 200-123
  136. message PB_CS_S_Magic_RESULT{
  137. uint32 cbMagicFirst = 1; //财神1
  138. uint32 cbMagicSenced = 2; //财神2 0 表示该财神不需要
  139. uint64 actionMask = 3; //庄家出牌 需要发送庄家有的操作 仅庄家可见
  140. repeated uint32 gangCard = 4;
  141. };
  142. //定财神返回结果 200-124
  143. message PB_CS_S_DING_CAI_RESULT{
  144. uint32 cbResult = 1; //定财神返回结果 1 有财 2无财神 0 取消
  145. uint32 cbIsWCHu = 2;
  146. repeated uint32 caiCards = 3;////可以被定为财神的牌 最高位用于标示是否可以独选
  147. };
  148. // 通知抢杠胡 200-125
  149. message PB_CS_S_NOTIFY_QIANGGH{
  150. uint32 wResumeUser = 1; //还原用户
  151. uint64 cbActionMask = 2; //动作掩码
  152. uint32 cbActionCard = 3; //动作扑克
  153. repeated uint32 caiCards = 4;
  154. };
  155. message pb_GameConfig{
  156. uint32 wSubGameID = 1; // 30 翻财神 31 包麻将
  157. uint32 wDiScore = 2; //底分
  158. uint32 wFanFei = 3; //房费(0房间创建者,1打牌者平摊)
  159. uint32 wIpLimit = 4; //IP限制(0限制,1不限制);
  160. uint32 wPlayCountRule = 5; //一次玩的局数(8局?16局?)
  161. uint32 RoomId = 6; //房间ID
  162. uint32 IsOwner = 7; //是否房主
  163. uint32 wHadPlayCount = 8; //当前局数
  164. string sPrivateTableID = 9;
  165. uint32 bDuoLai = 10; //包麻将 使用此变量,作为是否计算 大牌分数
  166. uint32 wFengDing = 11; //封顶分数
  167. uint32 tmp1 = 12; //备用字段 //0,4人 | 1,,3人 |2,2人
  168. uint32 tmp2 = 13; //备
  169. };
  170. //组合子项
  171. message pb_WeaveItem{
  172. uint32 cbWeaveKind = 1; //组合类型
  173. uint32 cbCenterCard = 2; //中心扑克
  174. uint32 cbPublicCard = 3; //公开标志
  175. uint32 wProvideUser = 4; //供应用户
  176. repeated uint32 cbMargicOffset = 5; //如果有财神参与组合,财神的位置 1-4 ,该位置存储实际是那张财神的index
  177. };
  178. message pb_WeaveItemArray{
  179. repeated pb_WeaveItem WeaveItem = 2;
  180. };
  181. message pb_cbDiscardCard{
  182. repeated uint32 cbDiscardCard = 1;
  183. };
  184. //旁观者断线重连 200-200
  185. message PB_CS_S_PangGuan{
  186. pb_GameConfig gameConfig = 1;
  187. repeated uint64 lUserTmpScore = 2; //临时积分。本轮玩家的积分
  188. //游戏变量
  189. uint32 GameStatus = 3; //0等待开始,1游戏中
  190. uint32 cbTotalCardCount = 4; //游戏总牌数
  191. uint32 cbLeftCardCount = 5; //单局游戏剩余牌数
  192. uint32 wBankerUser = 6; //本局游戏庄家
  193. repeated uint32 lSiZi = 7; //色子1,2,皮子,癞子
  194. //当前状态
  195. uint32 wCurrentUser = 8; //当前用户
  196. repeated uint32 bPutCardData = 9; //最后一张牌打出的人和牌值
  197. repeated uint32 cbDiscardCount = 10; //丢弃数目
  198. repeated pb_cbDiscardCard cbDiscardCard = 11; //丢弃记录
  199. repeated uint32 cbCardCount = 12; //每个玩家扑克数目
  200. //组合扑克
  201. repeated uint32 cbWeaveCount = 13; //组合数目
  202. repeated pb_WeaveItemArray WeaveItemArray = 14; //组合扑克
  203. uint32 dwOwnerID = 15; //房主ID
  204. uint32 totalOptTime = 16; //总操作时间10秒
  205. uint32 leftOptTime = 17; //还剩多少时间0
  206. };