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.

529 lines
15 KiB

  1. local RoomMessage = {}
  2. -- server收到0x8060协议后,广播当前桌子上所有用户
  3. RoomMessage.ServerChangeUserInfo = defClass("ServerChangeUserInfo"
  4. --更新信息的用户uid
  5. , defVar("uid", VT_Int, -1)
  6. --用户信息
  7. , defVar("userInfo", VT_String, "")
  8. --保留字段,暂不使用
  9. , defVar("reserved", VT_String, "")
  10. )
  11. -- 准备
  12. RoomMessage.IntPacket = defClass("IntPacket"
  13. --nUserId
  14. , defVar("nUserId", VT_Int, -1)
  15. )
  16. RoomMessage.Cards = defClass("Cards"
  17. --牌
  18. , defVar("card", VT_UChar, -1)
  19. )
  20. -- 收到其他玩家掉线的信息
  21. RoomMessage.OtherDroppedResponse = defClass("OtherDroppedResponse"
  22. -- 用户uid
  23. , defVar("nUserId", VT_Int, 0)
  24. -- 0: 用户掉线回来, 1: 用户已经掉线
  25. , defVar("nOnlineStatus", VT_Short, 0)
  26. )
  27. RoomMessage.GameBeginResponse = defClass("GameBeginResponse"
  28. --错误类型
  29. ,defVar("nErrNo",VT_UChar,0)
  30. --可以开始游戏的用户ID
  31. ,defVar("nUserId",VT_Int,0)
  32. )
  33. -- 收到其他玩家加入房间的信息
  34. RoomMessage.OtherSitDownResponse = defClass("OtherSitDownResponse"
  35. -- 用户uid
  36. , defVar("nUserId", VT_Int, 0)
  37. -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1
  38. , defVar("nSeatId", VT_Int, 0)
  39. -- 用户信息
  40. , defVar("userInfo", VT_String, "")
  41. -- 用户总的分数
  42. --, defVar("nTotalScore", VT_Int, 0)
  43. )
  44. -- 进入桌子失败
  45. RoomMessage.SitDownFailedResponse = defClass("SitDownFailedResponse"
  46. -- 错误码
  47. , defVar("nErrorCode", VT_UChar, 0)
  48. )
  49. -- 房间中的玩家信息
  50. RoomMessage.RoomMemberInfo = defClass("RoomMemberInfo"
  51. -- 用户uid
  52. , defVar("nUserId", VT_Int, 0)
  53. -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1
  54. , defVar("nSeatId", VT_Int, -1)
  55. -- 在线状态 0离线 1在线
  56. , defVar("nOnlineStatus", VT_UChar, 0)
  57. -- 是否正在玩 -1: 用户站起 0: 用户坐下 1: 准备状态 2: 正在玩
  58. , defVar("nPlayerFlag", VT_UChar, 0)
  59. -- 用户信息
  60. , defVar("userInfo", VT_String, "")
  61. -- 用户总的分数
  62. , defVar("nTotalScore", VT_Int, 0)
  63. )
  64. -- 用户在桌子上坐下成功协议
  65. RoomMessage.SitDownSuccessResponse = defClass("SitDownSuccessResponse"
  66. -- 游戏ID
  67. , defVar("gameId", VT_Short, 0)
  68. -- 用户房间号
  69. , defVar("nShowTableId", VT_Int, 0)
  70. -- 房间最大人数
  71. , defVar("nMaxPlayCount", VT_Int, 0)
  72. -- 用户房主
  73. , defVar("nRoomOwnedUid", VT_Int, 0)
  74. -- 总的局数
  75. , defVar("nTotalGameNum", VT_Short, 0)
  76. -- 房间信息
  77. , defVar("strGameInfo", VT_String, "")
  78. -- 用户
  79. , defVar("memberList", VT_VectorToMap(RoomMessage.RoomMemberInfo, "nUserId"))
  80. )
  81. -- 解散房间请求
  82. RoomMessage.DismissRequest = defClass("DismissRequest"
  83. -- 玩家操作 1: 表示发起解散 2:同意解散 3:不同意解散
  84. , defVar("operateType", VT_UChar, 0)
  85. )
  86. -- 每个玩家对于解散房间的处理
  87. RoomMessage.UserDismissResult = defClass("UserDismissResult"
  88. -- nUserId
  89. , defVar("nUserId", VT_Int, 0)
  90. -- 0: 未做任何操作 1: 请求解散 2: 同意解散 3:不同意解散
  91. , defVar("dismissState", VT_UChar, 0)
  92. )
  93. -- 解散房间请求的结果
  94. RoomMessage.DismissResult = defClass("DismissResult"
  95. -- 错误码:
  96. -- 0:成功
  97. -- 1:operateType取值范围不对
  98. -- 2:当前没人发起解散
  99. -- 3:已经有人申请解散
  100. , defVar("errorCode", VT_Short, 0)
  101. -- 玩家操作
  102. , defVar("operateType", VT_Int, 0)
  103. -- 桌子上其他用户数量
  104. , defVar("memberList", VT_VectorToMap(RoomMessage.UserDismissResult, "nUserId"))
  105. -- 剩余解散超时时间
  106. , defVar("timeLeft", VT_Short, 0)
  107. )
  108. -- 服务器广播每个玩家对解散房间的处理
  109. RoomMessage.DismissResponse = defClass("DismissResponse"
  110. -- nUserId
  111. , defVar("nUserId", VT_Int, 0)
  112. -- 1: 表示发起解散 2:同意解散 3:不同意解散
  113. , defVar("operateType", VT_UChar, 0)
  114. -- 剩余解散超时时间
  115. , defVar("timeLeft", VT_Short, 0)
  116. )
  117. -- 退出房间成功,则读取房间数据
  118. RoomMessage.UserExitResponse = defClass("UserExitResponse"
  119. -- 用户当前积分
  120. , defVar("nTotalScore", VT_Long, 0)
  121. -- 用户的房卡信息,格式"10,5", 以逗号分隔,第一个表示历史房卡数量, 第二个表示当前房卡数量
  122. , defVar("userInfo", VT_String, "")
  123. -- 是否要求用户退出,返回大厅,0: 不退出, 1: 退出
  124. , defVar("logoutFlag", VT_Short, 0)
  125. -- 房间结束原因(0:正常结束,1:俱乐部群主解散,2:房主解散,3:长时间未开始,4:长时间未结束)
  126. , defVar("tableOverFlag", VT_Short, 0)
  127. )
  128. -- 收到其他玩家退出房间的信息
  129. RoomMessage.OtherLogoutResponse = defClass("OtherLogoutResponse"
  130. -- 用户uid
  131. , defVar("nUserId", VT_Int, 0)
  132. )
  133. --申请提前开始游戏(座位没坐满)
  134. RoomMessage.EarlyStartRequest = defClass("EarlyStartRequest"
  135. -- 玩家操作 0初始状态 1申请开始游戏 2同意开始游戏 3不同意开始游戏
  136. , defVar("optType", VT_Short, 0)
  137. )
  138. -- 每个玩家对于提前开始游戏的处理
  139. RoomMessage.UserEarlyStartSInfo = defClass("UserEarlyStartSInfo"
  140. -- nUserId
  141. , defVar("nUserId", VT_Int, 0)
  142. -- 0初始状态 1申请开始游戏 2同意开始游戏 3不同意开始游戏
  143. , defVar("optType", VT_UChar, 0)
  144. -- 保留字段,暂不使用
  145. , defVar("reserved", VT_String, "")
  146. )
  147. --断线重连Player
  148. RoomMessage.ReconnectPlayer = defClass("ReconnectPlayer"
  149. , defVar("nUserId", VT_Int, 0)
  150. , defVar("nSeatId", VT_Short, 0)
  151. , defVar("nPlayerFlag", VT_Short, 0)
  152. , defVar("disbandStatus", VT_UChar, 0)
  153. , defVar("nOnlineStatus", VT_UChar, 0)
  154. , defVar("userInfo", VT_String, "")
  155. , defVar("nTurnScore", VT_String, 0)
  156. , defVar("nTotalScore", VT_String, 0)
  157. , defVar("bAskLoard", VT_Byte, 0)
  158. , defVar("askLoard", VT_Int, 0)
  159. , defVar('bAskQiang', VT_UChar, 0) -- 是否抢过地主
  160. , defVar("bAskBei", VT_Byte, 0)
  161. , defVar('bAskRangPai', VT_Byte, 0) -- 是否让过牌
  162. , defVar('askRangNum', VT_Byte, 0) -- 选择的让牌数
  163. , defVar("askBei", VT_Int, 0)
  164. , defVar("handCards", VT_Vector(RoomMessage.Cards))
  165. )
  166. --断线重连玩家出牌过数据
  167. RoomMessage.passInfo = defClass("passInfo"
  168. , defVar("nUserId", VT_Int, 0)
  169. , defVar("nGuo", VT_Short, 0) -- 重连前,玩家是否操作了过
  170. )
  171. --断线重连
  172. RoomMessage.GameReconnection = defClass("GameReconnection"
  173. -- 房间最大人数
  174. , defVar("nMaxPlayCount", VT_Short, 0)
  175. -- 用户房主
  176. , defVar("nRoomOwnedUid", VT_Int, 0)
  177. -- 开始玩家
  178. , defVar("nStartGameUid", VT_Int, 0)
  179. -- 当前局数
  180. , defVar("nGameStartCount", VT_Short, 0)
  181. -- 总的局数
  182. , defVar("nTotalGameNum", VT_Short, 0)
  183. -- 游戏信息
  184. , defVar("strGameInfo", VT_String, "")
  185. -- 是否有人发起解散
  186. , defVar("bUserDisbandGame", VT_UChar, 0)
  187. -- 游戏状态
  188. , defVar("nStatus", VT_Short, 0)
  189. -- 解散剩余时间,没人发起解散,此值为0
  190. , defVar("nDismissStateTime", VT_Int, 0)
  191. -- 用户房间号
  192. , defVar("nShowTableId", VT_Int, 0)
  193. -- 游戏倍数(炸弹数)
  194. , defVar("nBombs", VT_Int, 0)
  195. -- 游戏底分
  196. , defVar("nCurBaseScore", VT_Int, 0)
  197. -- 游戏倍数
  198. , defVar('nMult', VT_Int, 0)
  199. -- 让牌数
  200. , defVar('nRang', VT_Int, 0)
  201. -- 地主ID
  202. , defVar("nBankerId", VT_Int, 0)
  203. -- 底牌
  204. , defVar("bankerCards", VT_Vector(RoomMessage.Cards))
  205. -- 最后一手牌操作uid
  206. , defVar("lastUserId", VT_Int, 0)
  207. -- 当前桌上最后一手牌牌型
  208. , defVar("lastCardType", VT_Short, 0)
  209. -- 当前桌上最后一手牌
  210. , defVar("lastCards", VT_Vector(RoomMessage.Cards))
  211. -- 玩家信息
  212. , defVar("memberList", VT_VectorToMap(RoomMessage.ReconnectPlayer, "nUserId"))
  213. -- 当前操作玩家
  214. , defVar("currentUserId", VT_Int, 0)
  215. -- 操作剩余时间
  216. , defVar("currentLeftTime", VT_Int, 0)
  217. -- 0-不是 1-必须
  218. , defVar("opType", VT_UChar, 0)
  219. -- 总让数
  220. , defVar('nRangTotalNums', VT_Int, 0)
  221. -- 过数据
  222. , defVar('guoInfo', VT_VectorToMap(RoomMessage.passInfo, 'nUserId'))
  223. -- 底牌类型
  224. , defVar('diType', VT_Short, 0)
  225. -- , defVar('guoInfo', VT_Vector(RoomMessage.passInfo))
  226. )
  227. RoomMessage.cmd_0x8104_Player = defClass("cmd_0x8104_Player"
  228. -- uid
  229. , defVar("nUserId", VT_Int, 0)
  230. -- 座位号
  231. , defVar("nSeatId", VT_Short, 0)
  232. )
  233. RoomMessage.cmd_0x8104_RespStructure = defClass("cmd_0x8104_RespStructure"
  234. -- 当前局数
  235. , defVar("nGameStartCount", VT_Short, 0)
  236. -- 总局数
  237. , defVar("nTotalGameNum", VT_Short, 0)
  238. -- 房主id
  239. , defVar("nRoomOwnedUid", VT_Int, 0)
  240. -- 手动开始游戏Uid(用不上)
  241. , defVar("nStartGameUid", VT_Int, 0)
  242. -- 庄家座位号
  243. , defVar("nBankSeatId", VT_Short, 0)
  244. -- 明牌
  245. , defVar('nMingCard', VT_Byte, 0)
  246. -- 玩家信息(暂时无用)
  247. , defVar("playerSeatInfo", VT_Vector(RoomMessage.cmd_0x8104_Player))
  248. )
  249. RoomMessage.cmd_0x8105_RespStructure = defClass("cmd_0x8105_RespStructure"
  250. -- 游戏状态
  251. , defVar("nStatus", VT_Int, 0)
  252. )
  253. RoomMessage.cmd_0x8106_RespStructure = defClass("cmd_0x8106_RespStructure"
  254. -- 玩家ID
  255. , defVar("nUserId", VT_Int, 0)
  256. -- 牌数据
  257. , defVar("handCards", VT_Vector(RoomMessage.Cards))
  258. )
  259. RoomMessage.cmd_0x8108_RespStructure = defClass("cmd_0x8108_RespStructure"
  260. -- 玩家ID
  261. , defVar("nUserId", VT_Int, 0)
  262. -- 剩余时间
  263. , defVar("leftTime", VT_Int, 0)
  264. -- 是否必须叫地主 0-不是 1-是
  265. , defVar("mustBanker", VT_UChar, 0)
  266. -- 叫分模式 1叫地主 2叫分
  267. , defVar('nPlayMode', VT_Int, 0)
  268. )
  269. RoomMessage.cmd_0x8109_RespStructure = defClass("cmd_0x8109_RespStructure"
  270. -- 玩家ID
  271. , defVar("nUserId", VT_Int, 0)
  272. -- 叫分
  273. , defVar("askLoard", VT_UChar, 0)
  274. --叫分模式
  275. , defVar('nPlayMode', VT_Int, 0)
  276. )
  277. -- 通知玩家抢地主
  278. RoomMessage.cmd_0x8123_RespStructure = defClass('cmd_0x8123_RespStructure'
  279. -- 玩家id
  280. , defVar('nUserId', VT_Int, 0)
  281. -- 时间
  282. , defVar('leftTime', VT_Int, 0)
  283. )
  284. -- 抢地主结果
  285. RoomMessage.cmd_0x8124_RespStructure = defClass('cmd_0x8124_RespStructure'
  286. -- 玩家id
  287. , defVar('nUserId', VT_Int, 0)
  288. -- 抢地主结果
  289. , defVar('opType', VT_UChar, 0)
  290. )
  291. -- 通知玩家让牌
  292. RoomMessage.cmd_0x8121_RespStructure = defClass('cmd_0x8121_RespStructure'
  293. -- 玩家id
  294. , defVar('nUserId', VT_Int, 0)
  295. -- 时间
  296. , defVar('leftTime', VT_Int, 0)
  297. -- 让牌数
  298. , defVar('nRangPai', VT_Int, 0)
  299. )
  300. -- 让牌结果
  301. RoomMessage.cmd_0x8122_RespStructure = defClass('cmd_0x8122_RespStructure'
  302. -- 玩家id
  303. , defVar('nUserId', VT_Int, 0)
  304. -- 操作结果
  305. , defVar('opType', VT_UChar, 0)
  306. -- 让牌数
  307. , defVar('nRangPai', VT_Int, 0)
  308. -- 总让牌数
  309. , defVar('nRangNums', VT_Int, 0) -- 包括抢地主那些
  310. )
  311. RoomMessage.cmd_0x810a_RespStructure = defClass("cmd_0x810a_RespStructure"
  312. -- 庄家id
  313. , defVar("nBankerId", VT_Int, 0)
  314. -- 底牌
  315. , defVar("bankerCards", VT_Vector(RoomMessage.Cards))
  316. )
  317. RoomMessage.cmd_0x810c_RespStructure = defClass("cmd_0x810c_RespStructure"
  318. -- 剩余时间
  319. , defVar("leftTime", VT_Int, 0)
  320. )
  321. RoomMessage.cmd_0x810d_RespStructure = defClass("cmd_0x810d_RespStructure"
  322. -- 玩家ID
  323. , defVar("nUserId", VT_Int, 0)
  324. -- 加倍
  325. , defVar("askBei", VT_UChar, 0)
  326. )
  327. RoomMessage.cmd_0x810e_RespStructure = defClass("cmd_0x810e_RespStructure"
  328. -- 玩家ID
  329. , defVar("nUserId", VT_Int, 0)
  330. -- 操作类型
  331. , defVar("opType", VT_Short, 0)
  332. )
  333. RoomMessage.cmd_0x810f_RespStructure = defClass("cmd_0x810f_RespStructure"
  334. -- 玩家ID
  335. , defVar("nUserId", VT_Int, 0)
  336. -- 错误类型
  337. , defVar("errorType", VT_Short, 0)
  338. )
  339. RoomMessage.cmd_0x8110_RespStructure = defClass("cmd_0x8110_RespStructure"
  340. -- 玩家ID
  341. , defVar("nUserId", VT_Int, 0)
  342. -- 操作类型
  343. , defVar("opType", VT_Short, 0)
  344. -- 牌型
  345. , defVar("cardType", VT_Short, 0)
  346. -- 剩余手牌数
  347. , defVar("leftNum", VT_Short, 0)
  348. -- 牌
  349. , defVar("cards", VT_Vector(RoomMessage.Cards))
  350. )
  351. RoomMessage.cmd_0x8111_RespStructure = defClass("cmd_0x8111_RespStructure"
  352. -- 底分
  353. , defVar("baseScore", VT_Int, 0)
  354. -- 倍率
  355. , defVar("nBombs", VT_Int, 0)
  356. -- 倍数
  357. , defVar('nMult', VT_Int, 0)
  358. -- 让牌数
  359. , defVar('nRang', VT_Int, 0)
  360. -- 底牌类型
  361. , defVar('diType', VT_Short, 0)
  362. )
  363. RoomMessage.cmd_0x8112_Player = defClass("cmd_0x8112_Player"
  364. -- 玩家uid
  365. , defVar("nUserId", VT_Int, 0)
  366. -- 座位号
  367. , defVar("nSeatId", VT_Short, 0)
  368. -- 本轮分数
  369. , defVar("nTurnScore", VT_String, 0)
  370. -- 总分数
  371. , defVar("nTotalScore", VT_String, 0)
  372. -- 加倍
  373. , defVar("askBei", VT_Int, 0)
  374. -- 玩家信息
  375. , defVar("userInfo", VT_String, "")
  376. -- 剩余手牌
  377. , defVar("handCards", VT_Vector(RoomMessage.Cards))
  378. )
  379. RoomMessage.cmd_0x8112_PlayerOperateData = defClass("cmd_0x8112_Player"
  380. -- 玩家uid
  381. , defVar("nUserId", VT_Int, 0)
  382. -- 座位号
  383. , defVar("nSeatId", VT_Short, 0)
  384. -- 扩展字段,操作数据
  385. , defVar('ext', VT_String, '')
  386. )
  387. RoomMessage.cmd_0x8112_RespStructure = defClass("cmd_0x8112_RespStructure"
  388. -- 最先出完牌id
  389. , defVar("nWinId", VT_Int, 0)
  390. -- 庄家id
  391. , defVar("nBankerId", VT_Int, 0)
  392. -- 游戏倍数(总)
  393. , defVar("mult", VT_Short, 0)
  394. -- 是否春天 0 都不是 1 春天 2 反春
  395. , defVar("nSpring", VT_Short, 0)
  396. -- 时间
  397. , defVar("nTime", VT_Int, 0)
  398. -- 当前局数
  399. , defVar("nGameStartCount", VT_Int, 0)
  400. -- 游戏是否结束
  401. , defVar("isGameOver ", VT_Short, 0)
  402. -- 玩家数据
  403. , defVar("memberList", VT_VectorToMap(RoomMessage.cmd_0x8112_Player, "nUserId"))
  404. -- 玩家的操作数据
  405. , defVar('memberOperateData', VT_VectorToMap(RoomMessage.cmd_0x8112_PlayerOperateData,'nUserId'))
  406. -- 炸弹倍数
  407. , defVar('nBombs', VT_Int, 0)
  408. -- 游戏底分
  409. , defVar('nBaseScore', VT_Int, 0)
  410. -- 底牌倍数
  411. , defVar('nDiMult', VT_Int, 0)
  412. -- 废牌
  413. , defVar("uselessCards", VT_Vector(RoomMessage.Cards))
  414. )
  415. RoomMessage.cmd_0x8113_Player = defClass("cmd_0x8113_Player"
  416. -- 玩家id
  417. , defVar("nUserId", VT_Int, 0)
  418. -- 总分
  419. , defVar("nTotalScore", VT_String, 0)
  420. -- 玩家信息
  421. , defVar("userInfo", VT_String, "")
  422. -- 总计数据
  423. , defVar("countInfo", VT_String, "")
  424. )
  425. RoomMessage.cmd_0x8113_RespStructure = defClass("cmd_0x8113_RespStructure"
  426. -- 房主id
  427. , defVar("nRoomOwnedUid", VT_Int, 0)
  428. -- 时间
  429. , defVar("nTime", VT_Int, 0)
  430. -- 游戏结束原因
  431. , defVar("stopFlag", VT_Int, 0)
  432. -- 玩家数据
  433. , defVar("memberList", VT_VectorToMap(RoomMessage.cmd_0x8113_Player, "nUserId"))
  434. )
  435. RoomMessage.cmd_0x8114_RespStructure = defClass("cmd_0x8114_RespStructure"
  436. )
  437. -- 叫分
  438. RoomMessage.AskLoard = defClass("AskLoard"
  439. , defVar("askLoard", VT_UChar, 0)
  440. )
  441. -- 抢地主
  442. RoomMessage.Qiang = defClass("Qiang"
  443. , defVar('qiang', VT_UChar, 0)
  444. )
  445. -- 让牌
  446. RoomMessage.Rang = defClass("Rang"
  447. , defVar('rang', VT_UChar, 0)
  448. )
  449. -- 加倍
  450. RoomMessage.AskBei = defClass("AskBei"
  451. , defVar("askBei", VT_UChar, 0)
  452. )
  453. -- 操作
  454. RoomMessage.Operation = defClass("Operation"
  455. , defVar("opType", VT_UChar, 0)
  456. , defVar("cards", VT_Vector(VT_UChar), {})
  457. )
  458. --托管状态
  459. RoomMessage.HostingResponseEntity = defClass("HostingResponseEntity"
  460. ,defVar("nUserId",VT_Int,0)
  461. --1.托管 0取消托管
  462. ,defVar("status",VT_UChar,0)
  463. ,defVar("ext", VT_String, "")
  464. )
  465. --托管状态(0x8133)
  466. RoomMessage.HostingResponse = defClass("HostingResponse"
  467. ,defVar("userList", VT_Vector(RoomMessage.HostingResponseEntity), {})
  468. )
  469. -- 托管请求(0x8134)
  470. RoomMessage.HostingRequest = defClass("HostingRequest"
  471. , defVar("status", VT_Short, 0)
  472. )
  473. return RoomMessage