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.

494 lines
14 KiB

  1. local message=MJFramework.MJFrameworkClassImprot("mj.luaScript.Protocol.MJMessage")
  2. message.TingCard = defClass("TingCard"
  3. --玩家选中的牌值
  4. , defVar("card", VT_UChar, -1)
  5. --数量
  6. , defVar("count", VT_UChar, -1)
  7. --番数
  8. , defVar("fanshu", VT_Int, 0)
  9. )
  10. message.TingCardResult = defClass("TingCardResult"
  11. --听牌类型 0为普通听牌类型,1为全听,全听时不会具体听牌
  12. , defVar("tingType", VT_UChar, -1)
  13. --听牌列表
  14. , defVar("tingCards",VT_Vector(message.TingCard),{})
  15. )
  16. --服务器通知庄家是否可以爆牌
  17. message.BankerBaoPai = defClass("BankerBaoPai"
  18. ,defVar("nUserId",VT_Int ,-1)
  19. )
  20. --请求爆牌
  21. message.BaoPaiRequest=defClass("BaoPaiRequest"
  22. ,defVar("isBaoPai",VT_UChar ,0)
  23. )
  24. --服务器广播爆牌
  25. message.BaoPaiResponse = defClass("BaoPaiResponse"
  26. --哪个玩家爆牌
  27. ,defVar("nUserId",VT_Int ,-1)
  28. ,defVar("isBaoPai",VT_Short ,0)
  29. )
  30. message.PushCard = defClass("PushCard"
  31. --出的牌
  32. , defVar("outCard", VT_UChar,0)
  33. --听牌列表
  34. , defVar("tingCards",VT_Vector(message.TingCard),{})
  35. )
  36. message.OutCardTingInfo = defClass("OutCardTingInfo"
  37. , defVar("pushTing",VT_Vector(message.PushCard),{})
  38. )
  39. message.OperateRequest= defClass("OperateRequest"
  40. -- 牌类型
  41. , defVar("opType", VT_Short, 0)
  42. -- 操作的牌
  43. , defVar("opCard", VT_UChar, 0)
  44. -- 操作牌中红中的个数
  45. , defVar("redNum", VT_UChar, 0)
  46. )
  47. --鬼麻将红中可以吃碰杠
  48. message.OperateCard = defClass("OperateCard"
  49. , defVar("opType", VT_Short, 0)
  50. -- 操作的牌
  51. , defVar("opCard", VT_UChar, 0)
  52. -- 操作牌中红中的个数
  53. , defVar("redNum", VT_UChar, 0)
  54. -- 操作牌中是否含有红中 0表示无 1有 2左侧,例如吃2,3吃1
  55. , defVar("isUseRed", VT_Short, 0)
  56. )
  57. --新加一个带来源的类
  58. message.OperateCard1 = defClass("OperateCard1"
  59. -- 牌类型
  60. , defVar("opType", VT_Short, 0)
  61. -- 操作的牌
  62. , defVar("opCard", VT_UChar, 0)
  63. -- 操作牌中红中的个数
  64. , defVar("redNum", VT_UChar, 0)
  65. -- 操作牌中是否含有红中 0表示无 1有 2左侧,例如吃2,3吃1
  66. , defVar("isUseRed", VT_Short, 0)
  67. -- 来源ID
  68. , defVar("fromUserId", VT_Int, -1)
  69. )
  70. message.PlayerHandCards= defClass("PlayerHandCards"
  71. -- 用户uid
  72. , defVar("nUserId", VT_Int, 0)
  73. --根据听牌状态判断是否可以爆牌
  74. , defVar("isTing", VT_Short, 0)
  75. -- 庄家第一张摸的牌
  76. -- , defVar("nbankFirstGrabCard", VT_UChar, 0)
  77. -- 牌值类型列表
  78. , defVar("handCards", VT_Vector(message.Card), {})
  79. )
  80. message.GameSendCardResponse = defClass("GameSendCardResponse"
  81. -- 用户uid
  82. -- , defVar("nUserId", VT_Int, 0)
  83. -- 庄家第一张摸的牌
  84. -- , defVar("nbankFirstGrabCard", VT_UChar, 0)
  85. -- 牌值类型列表
  86. , defVar("playerCards", VT_Vector(message.PlayerHandCards), {})
  87. )
  88. --发牌
  89. message.BankerOutCard = defClass("BankerOutCard"
  90. -- 用户uid
  91. , defVar("nUserId", VT_Int, 0)
  92. -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1
  93. , defVar("nSeatId", VT_UChar, 0)
  94. -- 是否尾部发牌,0为否 1为是
  95. , defVar("isTail", VT_UChar, 0)
  96. , defVar("nLeaveCardNum", VT_Short, 0)
  97. --
  98. , defVar("card", VT_UChar, 0)
  99. -- 庄家操作列表
  100. , defVar("operates", VT_Vector(message.OperateCard), {})
  101. --共多少手牌出牌后形成听牌状态
  102. , defVar("pushCardTing",VT_Vector(message.PushCard))
  103. )
  104. -- --玩家出牌成功
  105. message.OutCardSuccess = defClass("OutCardSuccess"
  106. -- 出牌用户id
  107. , defVar("nUserId", VT_Int, -1)
  108. -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1
  109. , defVar("nSeatId", VT_UChar, -1)
  110. -- 出的牌
  111. , defVar("card", VT_UChar, -1)
  112. -- 可以的操作ma
  113. -- , defVar("mainOpCode", VT_Short, -1)
  114. -- 玩家操作
  115. , defVar("operates", VT_Vector(message.OperateCard), {})
  116. )
  117. -- --发送操作码成功
  118. message.OperationCodeSuccess = defClass("OperationCodeSuccess"
  119. -- 操作者的id
  120. , defVar("nUserId", VT_Int, -1)
  121. -- 牌类型
  122. , defVar("opType", VT_Short, 0)
  123. -- 操作的牌
  124. , defVar("opCard", VT_UChar, 0)
  125. -- -- 操作的牌(只有天胡时 opCard才为0)
  126. -- , defVar("card", VT_UChar, 0)
  127. -- 表明操作者他是否要出牌
  128. , defVar("isNeedOutCard", VT_UChar, 0)
  129. -- 被操作者座位Id
  130. , defVar("fromSeatId", VT_UChar, -1)
  131. --使用的红中数量
  132. , defVar("redNum", VT_UChar, 0)
  133. )
  134. -- 玩家的牌桌信息
  135. message.playerInfo = defClass("playerInfo"
  136. --用户的USER ID
  137. , defVar("nUserId", VT_Int, 0)
  138. --用户的TABLE ID
  139. , defVar("nSeatId", VT_UChar, 0)
  140. --用户的游戏状态标识
  141. , defVar("nPlayerFlag", VT_UChar, 0)
  142. --玩家解散状态 0:初始状态, 1:发起解散 2: 同意解散 3:不同意解散
  143. , defVar("nDisbandStatus", VT_UChar, 255)
  144. --是否在线 0:离线 1:在线
  145. , defVar("nOnlineStatus", VT_UChar, 255)
  146. --用户信息
  147. , defVar("userInfo", VT_String, "")
  148. --当前局分数
  149. , defVar("nTurnScore", VT_String, -1)
  150. --总分
  151. , defVar("nTotalMoney", VT_String, -1)
  152. --番数
  153. , defVar("fanshu", VT_Int, -1)
  154. --听牌状态,1听牌状态,0不听牌
  155. --, defVar("nTingStatus", VT_UChar, 0)
  156. --是否可以操作,用于闹钟 此用户是否可以操作,0:不可以 1: 可以
  157. -- , defVar("isCanOperate", VT_UChar, 255)
  158. -- -- 弃胡玩家弃胡状态 0: 无弃胡 1:待弃胡 2: 已弃胡 (当玩家需要出牌且此值为1时则展示弃胡按钮提示玩家是否弃胡)
  159. -- , defVar("nQiHuStatus", VT_Short, 0)
  160. -- 桌面组合牌
  161. ,defVar("gruoupCards",VT_Vector(message.OperateCard1),{})
  162. --玩家手牌
  163. ,defVar("handCards",VT_Vector(message.Card),{})
  164. --桌面弃牌
  165. ,defVar("outCards",VT_Vector(message.Card),{})
  166. ,defVar("isDj",VT_UChar,0)
  167. ,defVar("isHz",VT_UChar,0)
  168. ,defVar("dpCount",VT_Short,0)
  169. ,defVar("dpOrder",VT_Short,0)
  170. --爆牌
  171. ,defVar("isBaoPai",VT_Short,0)
  172. --是否可以爆牌
  173. ,defVar("canBaoPai",VT_Short,0)
  174. )
  175. message.PlayerResultInfo = defClass("PlayerResultInfo"
  176. --玩家的id
  177. , defVar("nUserId", VT_Int, 0)
  178. --1胡牌 2听叫 0默认
  179. , defVar("userStatus", VT_UChar, 0)
  180. -- 胡牌牌类型-7对胡、平胡,0为输或者不胡不输
  181. , defVar("huType", VT_Short, 0)
  182. --胡的牌
  183. , defVar("huCard", VT_UChar, 0)
  184. --胡牌顺序
  185. , defVar("huOrder", VT_UChar, 0)
  186. --胡牌类型 点炮 or 自摸
  187. , defVar("result", VT_Short, 0)
  188. --谁点炮
  189. , defVar("dpSeatId", VT_UChar, -1)
  190. --根次数
  191. , defVar("genCount", VT_UChar, 0)
  192. --喜钱
  193. , defVar("isXiQian", VT_UChar, 0)
  194. --[[--番数
  195. , defVar("fanshu", VT_Int, 0)
  196. --玩家本局输赢情况 0不胡不输 1胡,2点炮或者输
  197. , defVar("result", VT_UChar, 0)--]]
  198. --
  199. -- --玩家总的分数
  200. -- , defVar("nTotalMoney", VT_Int, 0)
  201. -- --玩家碰,吃,哨,串,招个数
  202. -- , defVar("tableWeaveCard", VT_Vector(weaveCardList))
  203. -- --玩家手牌信息
  204. -- , defVar("handCard", VT_Vector(weaveCardList))
  205. -- --玩家弃牌信息
  206. -- , defVar("desertedArea", VT_Vector(BroadcastStopRoundGiveUpCardCount))
  207. )
  208. -- --断线重连
  209. message.GameReconnection = defClass("GameReconnection"
  210. -- 用户房间号
  211. , defVar("gameId", VT_Short, 0)
  212. -- 用户房间号
  213. , defVar("nShowTableId", VT_Int, 0)
  214. -- 房间最大人数
  215. , defVar("nMaxPlayCount", VT_Int, 0)
  216. -- 用户房主
  217. , defVar("nRoomOwnedUid", VT_Int, 0)
  218. -- 总的局数
  219. , defVar("nTotalGameNum", VT_Short, 0)
  220. --底注
  221. , defVar("nBaseChips", VT_Int, 0)
  222. -- 游戏信息
  223. , defVar("strGameInfo", VT_String, "")
  224. -- 当前局数
  225. , defVar("nGameStartCount", VT_Short, 0)
  226. -- 游戏状态
  227. , defVar("nStatus", VT_UChar, 0)
  228. -- 庄家座位
  229. , defVar("nBankSeatId", VT_UChar, 0)
  230. -- 我的座位
  231. , defVar("nMySeatId", VT_UChar, 0)
  232. -- 是否有人发起解散
  233. , defVar("bUserDisbandGame", VT_UChar, 0)
  234. -- 解散剩余时间,没人发起解散,此值为0
  235. , defVar("nDismissStateTime", VT_Int, 0)
  236. --
  237. -- , defVar("userCount", VT_Short, 0)
  238. -- -- 牌桌信息
  239. -- , defVar("usersInfo",VT_Vector())
  240. ,defVar("playerInfos", VT_VectorToMap(message.playerInfo, "nUserId"))
  241. -- --剩余的底牌
  242. ,defVar("leaveCards",VT_Vector(message.Card))
  243. --天胡的庄家\翻牌者\出牌者的seatId(可通过状态判断具体的角色)
  244. ,defVar("outCardUserId",VT_Int,0)
  245. -- --亮出的牌(庄家的天胡的操作状态时showCard == 0)
  246. -- ,defVar("showCard",VT_UChar,0)
  247. -- --自己的操作码
  248. -- ,defVar("mainOpCode",VT_Short,0)
  249. -- --是否已经操作过 0表示没用,非0表示已经提交了操作
  250. -- ,defVar("isSubmitOp",VT_UChar,255)
  251. -- -- 摸牌显示 为空操作的玩家是否能够看到牌,0;不能 1:能
  252. -- , defVar("showCardFlag", VT_UChar, -1)
  253. -- --[[
  254. -- state:
  255. -- GAME_STATUS_WAIT_OUT_CARDS
  256. -- ]]
  257. --出牌者的seatId
  258. ,defVar("outCardSeatId",VT_UChar,255)
  259. -- --出牌者上一次的操作
  260. -- ,defVar("lastOperate",VT_Short,-1)
  261. -- --出牌者上一次操作了虾米牌
  262. ,defVar("lastOpCard",VT_UChar,255)
  263. --操作列表
  264. ,defVar("operates",VT_Vector(message.OperateCard),{})
  265. --出牌ID
  266. ,defVar("isNeedOutCard",VT_UChar,0)
  267. --上次出的牌
  268. --,defVar("lastOutCardId",VT_Int,0)
  269. --上次出的牌
  270. --,defVar("lastOutCard",VT_UChar,0)
  271. --游戏结束标志 0正常结束 7黄庄 8长时间自动解散 9解散游戏
  272. ,defVar("stopFlag",VT_UChar,255)
  273. --结算信息
  274. --,defVar("strResultInfo",VT_String,"")
  275. --胡牌玩家列表
  276. ,defVar("resultInfos",VT_VectorToMap(message.PlayerResultInfo,"nUserId"))
  277. --操作统计
  278. ,defVar("opsCntMapString",VT_String,"")
  279. --听牌状态
  280. ,defVar("tingStatus",VT_UChar,0)
  281. --听牌信息
  282. ,defVar("tingCard",VT_Vector(message.PushCard),{})
  283. --[[--分数统计
  284. ,defVar("soreCntMapString",VT_String,"")--]]
  285. ,defVar("extJson", VT_String, "")
  286. --跑分、杠分等明细
  287. --,defVar("detailInfo",VT_String,"")
  288. --出牌ID
  289. ,defVar("needOutCardId",VT_Int,0)
  290. --是否可以出红中
  291. ,defVar("isOutHongZhong",VT_UChar,0)
  292. --洗牌消耗数量
  293. ,defVar("shuffleNum", VT_Int, 2)
  294. -- 是否由电竞SDK创建的房间
  295. , defVar("isEapCreate", VT_Int, 0)
  296. -- 电竞倒计时时间
  297. , defVar("EapTime", VT_Int, 0)
  298. )
  299. --通知胡牌
  300. message.HuRespone = defClass("HuRespone"
  301. ,defVar("nUserId",VT_Int,0)
  302. --自摸还是点炮胡
  303. ,defVar("huType",VT_Short,0)
  304. --番数
  305. ,defVar("fanshu",VT_UChar,0)
  306. --牌类型
  307. ,defVar("paiType",VT_UChar,0)
  308. --胡的牌
  309. ,defVar("huCard",VT_UChar,0)
  310. --是否抢杠胡 1是 0否
  311. ,defVar("isQiangGng",VT_UChar,0)
  312. --是否杠上炮 1是 0否
  313. ,defVar("isGspHu",VT_UChar,0)
  314. --是否杠上开花
  315. ,defVar("isGskhHu",VT_UChar,0)
  316. --点炮玩家
  317. ,defVar("dpId",VT_Int,0)
  318. --胡顺序
  319. ,defVar("huOrder",VT_UChar,0)
  320. --抢杠胡为红中补杠时,红中代替真实值
  321. ,defVar("redRealCard",VT_UChar,0)
  322. )
  323. message.XiaojuPlayerInfo=defClass("XiaojuPlayerInfo"
  324. --玩家的id
  325. , defVar("nUserId", VT_Int, 0)
  326. --当前局分数
  327. , defVar("nTurnScore", VT_String, 0)
  328. --总分
  329. , defVar("nTotalMoney", VT_String, 0)
  330. --番数
  331. , defVar("fanshu", VT_Int, 0)
  332. --1胡牌 2听叫 0默认
  333. , defVar("userStatus", VT_UChar, 0)
  334. -- 胡牌牌类型-7对胡、平胡,0为输或者不胡不输
  335. , defVar("huType", VT_Short, 0)
  336. -- 桌面组合牌
  337. , defVar("gruoupCards",VT_Vector(message.OperateCard1),{})
  338. --玩家手牌
  339. , defVar("handCards",VT_Vector(message.Card),{})
  340. --桌面弃牌
  341. , defVar("outCards",VT_Vector(message.Card),{})
  342. --胡的牌
  343. , defVar("huCard", VT_UChar, 0)
  344. --胡牌顺序
  345. , defVar("huOrder", VT_UChar, 0)
  346. --胡牌类型 点炮 or 自摸
  347. , defVar("result", VT_Short, 0)
  348. --点炮次数
  349. , defVar("dpCount", VT_Short, 0)
  350. --谁点炮
  351. , defVar("dpSeatId", VT_UChar, -1)
  352. --点炮顺序
  353. , defVar("dpOrder", VT_Short, 0)
  354. --是否大叫
  355. , defVar("isDj", VT_UChar, 0)
  356. --是否花猪
  357. , defVar("isHz", VT_UChar, 0)
  358. --归次数
  359. , defVar("genCount", VT_UChar, 0)
  360. --喜钱
  361. , defVar("isXiQian", VT_UChar, 0)
  362. )
  363. message.GameXiaoJuResponse = defClass("GameXiaoJuResponse"
  364. -- 一局结束的原因
  365. , defVar("stopFlag", VT_UChar, -1)
  366. -- 房间信息
  367. , defVar("strGameInfo", VT_String, "")
  368. --玩家信息
  369. , defVar("allPlayerInfo",VT_VectorToMap(message.XiaojuPlayerInfo,"nUserId"))
  370. --是否大局结束,结束是1
  371. , defVar("isGameOver", VT_Short, 0)
  372. --操作统计
  373. ,defVar("opsCntMapString",VT_String,"")
  374. )
  375. -- --总结算玩家列表
  376. message.DaJuPlayerInfo = defClass("DaJuPlayerInfo"
  377. --玩家Uid
  378. , defVar("nUserId", VT_Int, 0)
  379. --总输赢分数
  380. , defVar("nTotalScore", VT_String, 0)
  381. --json格式,暂无数据,后续扩展
  382. --, defVar("nTotalInfo", VT_String, 0)
  383. ,defVar("roomCard",VT_Int,0)
  384. )
  385. message.DaJuPlayerCostInfo = defClass("DaJuPlayerInfo"
  386. --玩家Uid
  387. , defVar("nUserId", VT_Int, 0)
  388. , defVar("costCard",VT_Short,0)
  389. )
  390. message.GameDaJuResponse = defClass("GameDaJuResponse"
  391. --多少个玩家
  392. , defVar("nTotalPlayerInfos", VT_VectorToMap(message.DaJuPlayerInfo,"nUserId"))
  393. --房卡消耗
  394. , defVar("costCardInfos", VT_VectorToMap(message.DaJuPlayerCostInfo,"nUserId"))
  395. --解散状态
  396. , defVar("stopFlag",VT_Short,0)
  397. --解散状态
  398. ,defVar("strDisbandStatus",VT_String,"")
  399. --结束时间
  400. ,defVar("nEndTime",VT_Long,os.time())
  401. )
  402. message.WaitOperate= defClass("WaitOperate"
  403. --玩家Uid
  404. , defVar("nUserId", VT_Int, 0)
  405. -- 牌类型
  406. , defVar("opType", VT_Short, 0)
  407. )
  408. --断碰断杠操作
  409. message.QiangDuanOperates = defClass("QiangDuanOperates"
  410. ,defVar("operates",VT_Vector(message.OperateCard),{})
  411. )
  412. --是否可以打
  413. message.OutRedCardInfo = defClass("OutRedCardInfo"
  414. --0 可以出 1 不可以
  415. , defVar("isOut", VT_UChar, -1)
  416. )
  417. -- -- 用户在桌子上坐下成功协议
  418. message.SitDownSuccessResponse = defClass("SitDownSuccessResponse"
  419. -- 用户房间号
  420. , defVar("gameId", VT_Short, 0)
  421. -- 用户房间号
  422. , defVar("nShowTableId", VT_Int, 0)
  423. -- 房间最大人数
  424. , defVar("nMaxPlayCount", VT_Int, 0)
  425. -- 用户房主
  426. , defVar("nRoomOwnedUid", VT_Int, 0)
  427. -- 总的局数
  428. , defVar("nTotalGameNum", VT_Short, 0)
  429. -- 底注
  430. , defVar("nBaseChips", VT_Int, 0)
  431. -- 房间信息
  432. , defVar("strGameInfo", VT_String, "")
  433. -- 玩家数量
  434. -- , defVar("nPlayerCount", VT_Short, "")
  435. -- 用户
  436. , defVar("memberList", VT_VectorToMap(message.RoomMemberInfo, "nUserId"))
  437. -- 是否由电竞SDK创建的房间
  438. , defVar("isEapCreate", VT_Int, 0)
  439. -- 电竞倒计时时间
  440. , defVar("EapTime", VT_Int, 0)
  441. )
  442. return message