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.

509 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.PlayerOptScore = defClass("PlayerOptScore"
  49. ,defVar("uid", VT_Int, 0) -- 玩家id
  50. ,defVar("score", VT_String, 0) -- 当前操作输赢分数
  51. ,defVar("totalScore", VT_String, 0) -- 玩家总分数
  52. );
  53. --发送操作码成功
  54. message.OperationCodeSuccess = defClass("OperationCodeSuccess"
  55. -- 操作者的id
  56. , defVar("nUserId", VT_Int, -1)
  57. -- 牌类型
  58. , defVar("opType", VT_Short, 0)
  59. -- 操作的牌
  60. , defVar("opCard", VT_UChar, 0)
  61. -- 表明操作者他是否要出牌
  62. , defVar("isNeedOutCard", VT_UChar, 0)
  63. -- 被操作者座位Id
  64. , defVar("fromSeatId", VT_UChar, -1)
  65. -- 杠操作,只针对杠,方便多头杠显示
  66. , defVar("cardNum", VT_UChar, 0)
  67. -- 当前操作所得分数,为0时不显示
  68. , defVar("optScore", VT_Vector(message.PlayerOptScore), {})
  69. -- json 格式,包括明细所包括的各种
  70. , defVar("scoreInfo", VT_Vector(VT_String), {})
  71. )
  72. --鬼麻将红中可以吃碰杠
  73. message.OperateCard = defClass("OperateCard"
  74. -- 操作值
  75. , defVar("opType", VT_Short, 0)
  76. -- 操作的牌
  77. , defVar("opCard", VT_UChar, 0)
  78. -- 牌张数,只针对杠,显示多头杠用
  79. , defVar("cardNum", VT_UChar, 0)
  80. -- 保留字段
  81. , defVar("reserved", VT_Short, 0)
  82. -- 触发者
  83. , defVar("fromUserId", VT_Int, 0)
  84. )
  85. message.PlayerHandCards= defClass("PlayerHandCards"
  86. -- 用户uid
  87. , defVar("nUserId", VT_Int, 0)
  88. --根据听牌状态判断是否可以爆牌
  89. , defVar("isTing", VT_Short, 0)
  90. -- 庄家第一张摸的牌
  91. -- , defVar("nbankFirstGrabCard", VT_UChar, 0)
  92. -- 牌值类型列表
  93. , defVar("handCards", VT_Vector(message.Card), {})
  94. )
  95. message.GameSendCardResponse = defClass("GameSendCardResponse"
  96. -- 用户uid
  97. -- , defVar("nUserId", VT_Int, 0)
  98. -- 庄家第一张摸的牌
  99. -- , defVar("nbankFirstGrabCard", VT_UChar, 0)
  100. -- 牌值类型列表
  101. , defVar("playerCards", VT_Vector(message.PlayerHandCards), {})
  102. )
  103. --发牌
  104. message.BankerOutCard = defClass("BankerOutCard"
  105. -- 用户uid
  106. , defVar("nUserId", VT_Int, 0)
  107. -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1
  108. , defVar("nSeatId", VT_UChar, 0)
  109. -- 是否尾部发牌,0为否 1为是
  110. , defVar("isTail", VT_UChar, 0)
  111. , defVar("nLeaveCardNum", VT_Short, 0)
  112. --
  113. , defVar("card", VT_UChar, 0)
  114. -- 庄家操作列表
  115. , defVar("operates", VT_Vector(message.OperateCard), {})
  116. --共多少手牌出牌后形成听牌状态
  117. , defVar("pushCardTing",VT_Vector(message.PushCard))
  118. )
  119. -- --玩家出牌成功
  120. message.OutCardSuccess = defClass("OutCardSuccess"
  121. -- 出牌用户id
  122. , defVar("nUserId", VT_Int, -1)
  123. -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1
  124. , defVar("nSeatId", VT_UChar, -1)
  125. -- 出的牌
  126. , defVar("card", VT_UChar, -1)
  127. -- 可以的操作ma
  128. -- , defVar("mainOpCode", VT_Short, -1)
  129. -- 玩家操作
  130. , defVar("operates", VT_Vector(message.OperateCard), {})
  131. )
  132. message.HuCard = defClass("HuCard"
  133. ,defVar("huCard", VT_UChar)
  134. ,defVar("huType", VT_Short)
  135. ,defVar("dpSeatId", VT_Short)
  136. );
  137. -- 玩家的牌桌信息
  138. message.playerInfo = defClass("playerInfo"
  139. -- 用户的USER ID
  140. , defVar("nUserId", VT_Int, 0)
  141. -- 用户的TABLE ID
  142. , defVar("nSeatId", VT_UChar, 0)
  143. -- 用户的游戏状态标识
  144. , defVar("nPlayerFlag", VT_UChar, 0)
  145. -- 玩家解散状态 0:初始状态, 1:发起解散 2: 同意解散 3:不同意解散
  146. , defVar("nDisbandStatus", VT_UChar, 255)
  147. -- 是否在线 0:离线 1:在线
  148. , defVar("nOnlineStatus", VT_UChar, 255)
  149. -- 用户信息
  150. , defVar("userInfo", VT_String, "")
  151. -- 当前局分数
  152. , defVar("nTurnScore", VT_String, -1)
  153. -- 总分
  154. , defVar("nTotalMoney", VT_String, -1)
  155. -- --番数
  156. -- , defVar("fanshu", VT_Int, -1)
  157. -- 是否查叫
  158. ,defVar("isDj",VT_UChar,0)
  159. -- --点炮次数
  160. -- ,defVar("dpCount",VT_Short,0)
  161. -- --点炮顺序
  162. -- ,defVar("dpOrder",VT_Short,0)
  163. --是否可以爆牌
  164. ,defVar("canBaoPai",VT_UChar,255)
  165. -- 爆牌
  166. ,defVar("isBaoPai",VT_Short,0)
  167. -- 是否可以飘 1 操作过了 0没有操作过
  168. ,defVar("canPiao",VT_UChar,255)
  169. -- 飘
  170. ,defVar("isPiao",VT_Short,0)
  171. -- 保留字段
  172. ,defVar("reserve", VT_String, "")
  173. -- 操作牌
  174. ,defVar("operates", VT_Vector(message.OperateCard), {})
  175. -- --萝卜个数
  176. -- , defVar("luoboNum", VT_Short, 0)
  177. -- -- 杠信息
  178. -- , defVar("gangInfo", VT_String, "")
  179. -- --保留
  180. -- ,defVar("extJson",VT_String,"")
  181. -- -- 桌面组合牌
  182. -- ,defVar("gruoupCards",VT_Vector(message.OperateCard1),{})
  183. --玩家手牌
  184. ,defVar("handCards",VT_Vector(message.Card), {})
  185. --桌面弃牌
  186. ,defVar("outCards",VT_Vector(message.Card), {})
  187. -- 胡的牌
  188. ,defVar("huCards", VT_Vector(message.HuCard), {})
  189. -- json 格式,包括明细所包括的各种
  190. ,defVar("scoreInfo", VT_Vector(VT_String), {})
  191. )
  192. message.PlayerResultInfo = defClass("PlayerResultInfo"
  193. --玩家的id
  194. , defVar("nUserId", VT_Int, 0)
  195. --1胡牌 2听叫 0默认
  196. , defVar("userStatus", VT_UChar, 0)
  197. -- 胡牌牌类型-7对胡、平胡,0为输或者不胡不输
  198. , defVar("huType", VT_Int, 0)
  199. --胡的牌
  200. , defVar("huCard", VT_UChar, 0)
  201. --胡牌顺序
  202. , defVar("huOrder", VT_UChar, 0)
  203. --胡牌类型 点炮 or 自摸
  204. , defVar("result", VT_Short, 0)
  205. --谁点炮
  206. , defVar("dpSeatId", VT_UChar, -1)
  207. --根次数
  208. , defVar("genCount", VT_UChar, 0)
  209. --萝卜分
  210. , defVar("luoboScore", VT_Short, 0)
  211. --[[--番数
  212. , defVar("fanshu", VT_Int, 0)
  213. --玩家本局输赢情况 0不胡不输 1胡,2点炮或者输
  214. , defVar("result", VT_UChar, 0)--]]
  215. )
  216. message.SwapCard = defClass("SwapCard"
  217. ,defVar("nUserId", VT_Int, 0) --用户ID
  218. ,defVar("isSwapCard", VT_UChar, 0) --是否换过牌
  219. )
  220. -- --断线重连
  221. message.GameReconnection = defClass("GameReconnection"
  222. -- 用户房间号
  223. , defVar("gameId", VT_Short, 0)
  224. -- 用户房间号
  225. , defVar("nShowTableId", VT_Int, 0)
  226. -- 房间最大人数
  227. , defVar("nMaxPlayCount", VT_Int, 0)
  228. -- 用户房主
  229. , defVar("nRoomOwnedUid", VT_Int, 0)
  230. -- 总的局数
  231. , defVar("nTotalGameNum", VT_Short, 0)
  232. --底注
  233. , defVar("nBaseChips", VT_Int, 0)
  234. -- 游戏信息
  235. , defVar("strGameInfo", VT_String, "")
  236. -- 当前局数
  237. , defVar("nGameStartCount", VT_Short, 0)
  238. -- 游戏状态
  239. , defVar("nStatus", VT_UChar, 0)
  240. -- 庄家座位
  241. , defVar("nBankSeatId", VT_UChar, 0)
  242. -- 我的座位
  243. , defVar("nMySeatId", VT_UChar, 0)
  244. -- 是否有人发起解散
  245. , defVar("bUserDisbandGame", VT_UChar, 0)
  246. -- 解散剩余时间,没人发起解散,此值为0
  247. , defVar("nDismissStateTime", VT_Int, 0)
  248. -- 牌桌信息
  249. ,defVar("playerInfos", VT_VectorToMap(message.playerInfo, "nUserId"))
  250. -- --剩余的底牌
  251. ,defVar("leaveCards",VT_Vector(message.Card))
  252. --天胡的庄家\翻牌者\出牌者的seatId(可通过状态判断具体的角色)
  253. ,defVar("outCardUserId",VT_Int,0)
  254. --出牌者的seatId
  255. ,defVar("outCardSeatId",VT_UChar,255)
  256. -- --出牌者上一次操作了虾米牌
  257. ,defVar("lastOpCard",VT_UChar,255)
  258. --操作列表
  259. ,defVar("operates",VT_Vector(message.OperateCard),{})
  260. --出牌ID
  261. ,defVar("isNeedOutCard",VT_UChar,0)
  262. --游戏结束标志 0正常结束 7黄庄 8长时间自动解散 9解散游戏
  263. ,defVar("stopFlag",VT_UChar,255)
  264. -- --胡牌玩家列表
  265. -- ,defVar("resultInfos",VT_VectorToMap(message.PlayerResultInfo,"nUserId"))
  266. -- --操作统计
  267. -- ,defVar("opsCntMapString",VT_String,"")
  268. --听牌状态
  269. ,defVar("tingStatus",VT_UChar,0)
  270. --听牌信息
  271. ,defVar("tingCard",VT_Vector(message.PushCard),{})
  272. --[[--分数统计
  273. ,defVar("soreCntMapString",VT_String,"")--]]
  274. ,defVar("extJson", VT_String, "")
  275. --跑分、杠分等明细
  276. --,defVar("detailInfo",VT_String,"")
  277. --出牌ID
  278. ,defVar("needOutCardId",VT_Int,0)
  279. --萝卜牌
  280. ,defVar("luoboCards",VT_Vector(VT_UChar),{})
  281. --是否换过牌
  282. ,defVar("SwapCard",VT_Vector(message.SwapCard),{})
  283. --洗牌消耗数量
  284. ,defVar("shuffleNum", VT_Int, 2)
  285. )
  286. --通知胡牌
  287. message.HuResponse = defClass("HuResponse"
  288. ,defVar("nUserId",VT_Int,0)
  289. --自摸还是点炮胡
  290. ,defVar("huType",VT_Short,0)
  291. --番数
  292. ,defVar("fanshu",VT_UChar,0)
  293. --牌类型
  294. ,defVar("paiType",VT_Int,0)
  295. --胡的牌
  296. ,defVar("huCard",VT_UChar, 0)
  297. --是否抢杠胡 1是 0否
  298. ,defVar("isQiangGng",VT_UChar,0)
  299. --是否杠上炮 1是 0否
  300. ,defVar("isGspHu",VT_UChar,0)
  301. --是否杠上开花
  302. ,defVar("isGskhHu",VT_UChar,0)
  303. --点炮玩家
  304. ,defVar("dpId",VT_Int,0)
  305. --当前操作所得分数,为0时不显示
  306. ,defVar("optScore", VT_Vector(message.PlayerOptScore), {})
  307. --json 格式,包括明细所包括的各种
  308. ,defVar("scoreInfo", VT_Vector(VT_String), {})
  309. --json 格式,扩展字段
  310. ,defVar("ext", VT_String, "")
  311. --json 胡牌顺序
  312. ,defVar("huIndex", VT_Short)
  313. --胡牌玩家数量
  314. ,defVar("huRenShu", VT_Short)
  315. )
  316. message.XiaojuPlayerInfo=defClass("XiaojuPlayerInfo"
  317. -- 玩家的id
  318. , defVar("nUserId", VT_Int, 0)
  319. -- 当前局分数
  320. , defVar("nTurnScore", VT_String, 0)
  321. -- 总分
  322. , defVar("nTotalMoney", VT_String, 0)
  323. -- 操作牌
  324. , defVar("operates", VT_Vector(message.OperateCard), {})
  325. -- 玩家手牌
  326. , defVar("handCards",VT_Vector(message.Card),{})
  327. -- 桌面弃牌
  328. , defVar("outCards",VT_Vector(message.Card),{})
  329. -- 是否大叫
  330. , defVar("isDaJiao", VT_UChar, 0)
  331. -- 报牌信息
  332. , defVar("baoStatus", VT_UChar, 0)
  333. -- 飘操作
  334. , defVar("isPiao", VT_UChar, 0)
  335. -- 分数信息
  336. , defVar("scoreInfo", VT_Vector(VT_String), {})
  337. -- 胡的牌
  338. , defVar("huCards", VT_Vector(message.HuCard), {})
  339. )
  340. message.GameXiaoJuResponse = defClass("GameXiaoJuResponse"
  341. -- 一局结束的原因
  342. , defVar("stopFlag", VT_UChar, -1)
  343. -- 房间信息
  344. , defVar("strGameInfo", VT_String, "")
  345. --玩家信息
  346. , defVar("allPlayerInfo",VT_VectorToMap(message.XiaojuPlayerInfo,"nUserId"))
  347. --是否大局结束,结束是1
  348. , defVar("isGameOver", VT_Short, 0)
  349. -- --操作统计
  350. -- ,defVar("opsCntMapString",VT_String,"")
  351. --萝卜牌
  352. ,defVar("luoboCards",VT_Vector(VT_UChar),{})
  353. )
  354. -- --总结算玩家列表
  355. message.DaJuPlayerInfo = defClass("DaJuPlayerInfo"
  356. --玩家Uid
  357. , defVar("nUserId", VT_Int, 0)
  358. --总输赢分数
  359. , defVar("nTotalScore", VT_String, 0)
  360. --房卡
  361. , defVar("roomCard",VT_Int,0)
  362. --需求房卡
  363. , defVar("requireCard",VT_Short,0)
  364. )
  365. message.DaJuPlayerCostInfo = defClass("DaJuPlayerInfo"
  366. -- 玩家Uid
  367. , defVar("nUserId", VT_Int, 0)
  368. -- 总分数
  369. , defVar("nTotalScore", VT_Int, 0)
  370. -- 总房卡
  371. , defVar("nTotalRoomCard", VT_Int, 0)
  372. -- 消耗房卡
  373. , defVar("costCard", VT_Int, 0)
  374. )
  375. message.GameDaJuResponse = defClass("GameDaJuResponse"
  376. --多少个玩家
  377. , defVar("nTotalPlayerInfos", VT_VectorToMap(message.DaJuPlayerInfo,"nUserId"))
  378. --房卡消耗
  379. --, defVar("costCardInfos", VT_VectorToMap(message.DaJuPlayerCostInfo,"nUserId"))
  380. --解散状态
  381. , defVar("stopFlag",VT_Short,0)
  382. --解散状态
  383. ,defVar("strDisbandStatus",VT_String,"")
  384. --结束时间
  385. ,defVar("nEndTime",VT_Long,os.time())
  386. )
  387. message.WaitOperate= defClass("WaitOperate"
  388. --玩家Uid
  389. , defVar("nUserId", VT_Int, 0)
  390. -- 牌类型
  391. , defVar("opType", VT_Short, 0)
  392. )
  393. --断碰断杠操作
  394. message.QiangDuanOperates = defClass("QiangDuanOperates"
  395. ,defVar("operates",VT_Vector(message.OperateCard),{})
  396. )
  397. --请求飘
  398. message.PiaoRequest=defClass("PiaoRequest"
  399. ,defVar("isPiao",VT_UChar ,0)
  400. )
  401. --玩家飘状态
  402. message.PiaoState = defClass("PiaoState"
  403. --玩家Uid
  404. , defVar("nUserId", VT_Int, 0)
  405. -- 飘状态 0,1
  406. , defVar("piaostate", VT_UChar, 0)
  407. )
  408. --服务器收到玩家飘请求操作后广播给其他玩家
  409. message.PiaoResponse = defClass("PiaoResponse"
  410. --玩家Uid
  411. , defVar("nUserId", VT_Int, 0)
  412. -- 飘状态 0,1
  413. , defVar("piaostate", VT_UChar, 0)
  414. , defVar("playerPiaoState",VT_Vector(message.PiaoState),{})
  415. )
  416. message.FanLuoBoResponse = defClass("FanLuoBoResponse"
  417. -- 萝卜牌
  418. , defVar("luoboCards", VT_Vector(VT_UChar), {})
  419. );
  420. --换三张换的牌
  421. message.SwapCards= defClass("SwapCards"
  422. -- 服务器推荐的换牌
  423. , defVar("swapCards", VT_Vector(message.Card), {})
  424. , defVar("time", VT_Int, 0)
  425. )
  426. -- 请求换三张换的牌
  427. message.GetSwapCards = defClass("GetSwapCards"
  428. --出的牌 癞子保持0x5D
  429. ,defVar("bySwapCard", VT_Vector(VT_UChar), {})
  430. )
  431. --换三张错误
  432. message.SwapCardsErr= defClass("SwapCardsErr"
  433. -- 错误码
  434. , defVar("errFlag", VT_UChar, 0)
  435. , defVar("time", VT_Int, 0)
  436. )
  437. --换三张成功
  438. message.SwapCardsSucc= defClass("SwapCardsSucc"
  439. -- 换牌的用户id
  440. , defVar("nUserId", VT_Int, 0)
  441. -- 换出去的牌
  442. , defVar("swapCards", VT_Vector(message.Card), {})
  443. )
  444. --全部换完成功的
  445. message.SwapCardsSuccInfo= defClass("SwapCardsSuccInfo"
  446. -- 换回来的牌
  447. , defVar("swapCards", VT_Vector(message.Card), {})
  448. -- 换牌方式 1顺时针 2对家换牌 3逆时针
  449. , defVar("swapType", VT_UChar, 0)
  450. )
  451. --流水信息
  452. message.GameFlowInfo = defClass("GameFlowInfo"
  453. , defVar("nUserId", VT_Int, 0)
  454. , defVar("scoreInfo", VT_Vector(VT_String), {})
  455. , defVar("stopFlag", VT_Int, 0)
  456. )
  457. --流水请求
  458. message.GameFlowReq = defClass("GameFlowInfo"
  459. , defVar("nUserId", VT_Int, 0)
  460. )
  461. return message