Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

315 рядки
9.0 KiB

  1. local message=MJFramework.MJFrameworkClassImprot("mj.luaScript.Protocol.MJMessage")
  2. message.XiaPiao=defClass("XiaPiao"
  3. -- 飘风
  4. , defVar("nPiaoNum", VT_Int, 0)
  5. )
  6. message.XiaPiaoResponse=defClass("XiaPiaoResponse"
  7. -- 用户ID
  8. , defVar("nUserId", VT_Int, 0)
  9. -- 飘风
  10. , defVar("nPiaoNum", VT_Int, 0)
  11. )
  12. --重连回复桌面牌
  13. message.RecoverOperateCard = defClass("RecoverOperateCard"
  14. -- 用户id
  15. , defVar("nUserId", VT_Int, -1)
  16. -- 桌面组合牌
  17. , defVar("operates", VT_Vector(message.OperateCard1), {})
  18. )
  19. message.XiaPiaoTime=defClass("XiaPiaoTime"
  20. -- 飘风剩余时间
  21. , defVar("nPiaoLeftTime", VT_Int, 0)
  22. )
  23. -- 玩家的牌桌信息
  24. message.playerInfo = defClass("playerInfo"
  25. --用户的USER ID
  26. , defVar("nUserId", VT_Int, 0)
  27. --用户的TABLE ID
  28. , defVar("nSeatId", VT_UChar, 0)
  29. --用户的游戏状态标识
  30. , defVar("nPlayerFlag", VT_UChar, 0)
  31. --玩家解散状态 0:初始状态, 1:发起解散 2: 同意解散 3:不同意解散
  32. , defVar("nDisbandStatus", VT_UChar, 255)
  33. --是否在线 0:离线 1:在线
  34. , defVar("nOnlineStatus", VT_UChar, 255)
  35. --用户信息
  36. , defVar("userInfo", VT_String, "")
  37. --当前局分数
  38. , defVar("nTurnScore", VT_String, -1)
  39. --总分
  40. , defVar("nTotalMoney", VT_String, -1)
  41. --听牌状态,1听牌状态,0不听牌
  42. , defVar("nTingStatus", VT_UChar, 0)
  43. --是否可以操作,用于闹钟 此用户是否可以操作,0:不可以 1: 可以
  44. -- , defVar("isCanOperate", VT_UChar, 255)
  45. -- -- 弃胡玩家弃胡状态 0: 无弃胡 1:待弃胡 2: 已弃胡 (当玩家需要出牌且此值为1时则展示弃胡按钮提示玩家是否弃胡)
  46. -- , defVar("nQiHuStatus", VT_Short, 0)
  47. -- 桌面组合牌
  48. ,defVar("gruoupCards",VT_Vector(message.OperateCard),{})
  49. --玩家手牌
  50. ,defVar("handCards",VT_Vector(message.Card),{})
  51. --桌面弃牌
  52. ,defVar("outCards",VT_Vector(message.Card),{})
  53. --飘风
  54. -- ,defVar("nPiaoNum", VT_Short, -1)
  55. )
  56. -- --断线重连
  57. message.GameReconnection = defClass("GameReconnection"
  58. -- 用户房间号
  59. , defVar("gameId", VT_Short, 0)
  60. -- 用户房间号
  61. , defVar("nShowTableId", VT_Int, 0)
  62. -- 房间最大人数
  63. , defVar("nMaxPlayCount", VT_Int, 0)
  64. -- 用户房主
  65. , defVar("nRoomOwnedUid", VT_Int, 0)
  66. -- 总的局数
  67. , defVar("nTotalGameNum", VT_Short, 0)
  68. --底注
  69. , defVar("nBaseChips", VT_Int, 0)
  70. -- 游戏信息
  71. , defVar("strGameInfo", VT_String, "")
  72. -- 当前局数
  73. , defVar("nGameStartCount", VT_Short, 0)
  74. -- 游戏状态
  75. , defVar("nStatus", VT_UChar, 0)
  76. -- 庄家座位
  77. , defVar("nBankSeatId", VT_UChar, 0)
  78. -- 我的座位
  79. , defVar("nMySeatId", VT_UChar, 0)
  80. -- 是否有人发起解散
  81. , defVar("bUserDisbandGame", VT_UChar, 0)
  82. -- 解散剩余时间,没人发起解散,此值为0
  83. , defVar("nDismissStateTime", VT_Int, 0)
  84. --
  85. -- , defVar("userCount", VT_Short, 0)
  86. -- -- 牌桌信息
  87. -- , defVar("usersInfo",VT_Vector())
  88. ,defVar("playerInfos", VT_VectorToMap(message.playerInfo, "nUserId"))
  89. -- --剩余的底牌
  90. ,defVar("leaveCards",VT_Vector(message.Card))
  91. --天胡的庄家\翻牌者\出牌者的seatId(可通过状态判断具体的角色)
  92. ,defVar("outCardUserId",VT_Int,0)
  93. -- --亮出的牌(庄家的天胡的操作状态时showCard == 0)
  94. -- ,defVar("showCard",VT_UChar,0)
  95. -- --自己的操作码
  96. -- ,defVar("mainOpCode",VT_Short,0)
  97. -- --是否已经操作过 0表示没用,非0表示已经提交了操作
  98. -- ,defVar("isSubmitOp",VT_UChar,255)
  99. -- -- 摸牌显示 为空操作的玩家是否能够看到牌,0;不能 1:能
  100. -- , defVar("showCardFlag", VT_UChar, -1)
  101. -- --[[
  102. -- state:
  103. -- GAME_STATUS_WAIT_OUT_CARDS
  104. -- ]]
  105. --出牌者的seatId
  106. ,defVar("outCardSeatId",VT_UChar,255)
  107. -- --出牌者上一次的操作
  108. -- ,defVar("lastOperate",VT_Short,-1)
  109. -- --出牌者上一次操作了虾米牌
  110. ,defVar("lastOpCard",VT_UChar,255)
  111. --操作列表
  112. ,defVar("operates",VT_Vector(message.OperateCard),{})
  113. --出牌ID
  114. ,defVar("needOutCardId",VT_Int,0)
  115. --上次出的牌
  116. ,defVar("lastOutCardId",VT_Int,0)
  117. --上次出的牌
  118. ,defVar("lastOutCard",VT_UChar,0)
  119. --
  120. ,defVar("stopFlag",VT_UChar,255)
  121. --结算信息
  122. ,defVar("strResultInfo",VT_String,"")
  123. --结算玩家列表
  124. ,defVar("resultInfos",VT_Vector(message.PlayerResultInfo))
  125. --操作统计
  126. ,defVar("opsCntMapString",VT_String,"")
  127. --分数统计
  128. ,defVar("soreCntMapString",VT_String,"")
  129. --飘风列表
  130. ,defVar("playerPiaoInfos",VT_Vector(message.XiaPiaoResponse),{})
  131. --额外信息
  132. ,defVar("extJson", VT_String, "")
  133. --桌面组合牌
  134. ,defVar("tableGroupCards",VT_Vector(message.RecoverOperateCard))
  135. --洗牌消耗数量
  136. ,defVar("shuffleNum", VT_Int, 2)
  137. -- --[[
  138. -- state:
  139. -- GAME_STATUS_AUTO_DISCSRD
  140. -- ]]
  141. -- --弃牌者的seatId
  142. -- ,defVar("disCardSeatId",VT_UChar,255)
  143. -- --要弃的牌(即别人出的牌或翻的牌)
  144. -- ,defVar("disCard",VT_UChar,255)
  145. -- --一局结束原因
  146. -- ,defVar("stopFlag",VT_UChar,255)
  147. -- --赢家uid, -1则表示黄局 (对于黄局下面4个字段是无用的)
  148. -- ,defVar("winUserId",VT_Int,255)
  149. -- --点炮胡时,表示为点炮用户,赔包子时为吃包子用户,自摸胡时此值无意义
  150. -- ,defVar("dianPaoUserId",VT_Int,255)
  151. -- --胡数
  152. -- ,defVar("huShu",VT_UChar,255)
  153. -- --胡的类型(如地胡、抬炮胡等)
  154. -- ,defVar("huType",VT_Short,255)
  155. -- --倍数
  156. -- ,defVar("multiNum",VT_UChar,255)
  157. -- --醒牌
  158. -- ,defVar("xingCard",VT_UChar,255)
  159. -- --醒的倍数
  160. -- ,defVar("xingCardNum",VT_UChar,255)
  161. -- --胡的牌
  162. -- ,defVar("huCard",VT_UChar,255)
  163. -- --听牌张数
  164. -- ,defVar("tingCards",VT_Vector(TingCard),{})
  165. -- --解散总时间
  166. -- ,defVar("nDismissToTalTime",VT_Short,0)
  167. )
  168. -----------------------------------------------------------
  169. -- 快速开始请求
  170. --[[
  171. FAST_START_REQ_TYPE_START = 1, //请求开始游戏
  172. FAST_START_REQ_TYPE_AGREE = 2, //同意开始游戏
  173. FAST_START_REQ_TYPE_DISAGREE = 3, //拒绝开始游戏
  174. FAST_START_REQ_TYPE_INIT = 4,
  175. FAST_START_REQ_TYPE_NEW_OR_OUT = 5, //有人进来或者退出
  176. FAST_START_REQ_TYPE_TIMEOUT = 6,
  177. --]]
  178. message.FastStartRequest = defClass("FastStartRequest"
  179. , defVar("tp", VT_UChar, 0)
  180. )
  181. -- 快速开始请求结果
  182. --[[
  183. FAST_START_GAME_RET_SUCC = 0, //成功
  184. FAST_START_GAME_RET_NOT_ENOUGH = 1, //人数不够
  185. FAST_START_GAME_OTHER_REQ = 2, //其他人已请求
  186. FAST_START_GAME_RET_ENOUGH = 3, //人数已满
  187. FAST_START_GAME_RET_INVALID = 4, //非法操作
  188. --]]
  189. message.FastStartRequestResult = defClass("FastStartRequestResult"
  190. , defVar("result", VT_Short, -1)
  191. )
  192. -- 服务器广播快速开始状态
  193. message.FastPlayer = defClass("FastPlayer"
  194. , defVar("nUserId", VT_Int, 0)
  195. , defVar("nStatus", VT_UChar, 0)
  196. )
  197. message.FastStartStatus = defClass("FastStartStatus"
  198. , defVar("nUserId", VT_Int, 0)
  199. , defVar("nStatus", VT_Short, 0)
  200. , defVar("pList", VT_Vector(message.FastPlayer), {})
  201. , defVar("timeOut", VT_Short, 0)
  202. )
  203. -- 游戏快速开始
  204. message.FastSuccessPlayer = defClass("FastSuccessPlayer"
  205. , defVar("nUserId", VT_Int, 0)
  206. , defVar("nSeatId", VT_UChar, 0)
  207. )
  208. message.UpdateSeatIds = defClass("UpdateSeatIds"
  209. , defVar("pList", VT_Vector(message.FastSuccessPlayer), {})
  210. )
  211. -- 同步托管倒计时
  212. message.UpdateDirectionTime = defClass("UpdateDirectionTime"
  213. , defVar("nTime", VT_Int, 0)
  214. )
  215. -- 托管状态
  216. message.HostingRequest = defClass("HostingRequest"
  217. , defVar("nUserId", VT_Int, 0)
  218. -- 1:是托管状态, 0取消托管
  219. , defVar("status", VT_Short,0)
  220. )
  221. --
  222. message.UserPass = defClass("UserPass"
  223. , defVar("nUserId", VT_Int, 0)
  224. )
  225. message.XiaojuPlayerInfo=defClass("GameXiaoJuResponse"
  226. --玩家的id
  227. , defVar("nUserId", VT_Int, 0)
  228. --当前局分数
  229. , defVar("nTurnScore", VT_String, 0)
  230. --总分
  231. , defVar("nTotalMoney", VT_String, 0)
  232. --番数
  233. , defVar("fanshu", VT_Int, 0)
  234. --玩家本局输赢情况 0不胡不输 1胡,2点炮或者输
  235. , defVar("result", VT_UChar, 0)
  236. -- 胡牌牌类型-7对胡、平胡,0为输或者不胡不输
  237. , defVar("huType", VT_Short, 0)
  238. -- 桌面组合牌
  239. ,defVar("gruoupCards",VT_Vector(message.OperateCard),{})
  240. --玩家手牌
  241. ,defVar("handCards",VT_Vector(message.Card),{})
  242. --桌面弃牌
  243. ,defVar("outCards",VT_Vector(message.Card),{})
  244. )
  245. message.GameXiaoJuResponse = defClass("GameXiaoJuResponse"
  246. -- 一局结束的原因
  247. , defVar("stopFlag", VT_UChar, -1)
  248. -- 房间信息
  249. , defVar("strGameInfo", VT_String, "")
  250. --结算信息
  251. , defVar("strResultInfo",VT_String,"")
  252. --玩家信息
  253. , defVar("playerInfos",VT_Vector(message.XiaojuPlayerInfo),{})
  254. --是否大局结束,结束是1
  255. , defVar("isGameOver", VT_Short, 0)
  256. --操作统计
  257. ,defVar("opsCntMapString",VT_String,"")
  258. --分数统计
  259. ,defVar("soreCntMapString",VT_String,"")
  260. )
  261. -- --总结算玩家列表
  262. message.DaJuPlayerInfo = defClass("DaJuPlayerInfo"
  263. --玩家Uid
  264. , defVar("nUserId", VT_Int, 0)
  265. --总输赢分数
  266. , defVar("nTotalScore", VT_String, 0)
  267. --json格式,暂无数据,后续扩展
  268. , defVar("nTotalInfo", VT_String, 0)
  269. )
  270. message.GameDaJuResponse = defClass("GameDaJuResponse"
  271. --多少个玩家
  272. , defVar("nTotalPlayerInfos", VT_VectorToMap(message.DaJuPlayerInfo,"nUserId"))
  273. )
  274. return message