Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

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