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.

450 lines
13 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("bAskBei", VT_Byte, 0)
  160. , defVar("askBei", VT_Int, 0)
  161. , defVar("handCards", VT_Vector(RoomMessage.Cards))
  162. )
  163. --断线重连玩家出牌过数据
  164. RoomMessage.passInfo = defClass("passInfo"
  165. , defVar("nUserId", VT_Int, 0)
  166. , defVar("nGuo", VT_Short, 0) -- 重连前,玩家是否操作了过
  167. )
  168. --断线重连
  169. RoomMessage.GameReconnection = defClass("GameReconnection"
  170. -- 房间最大人数
  171. , defVar("nMaxPlayCount", VT_Short, 0)
  172. -- 用户房主
  173. , defVar("nRoomOwnedUid", VT_Int, 0)
  174. -- 开始玩家
  175. , defVar("nStartGameUid", VT_Int, 0)
  176. -- 当前局数
  177. , defVar("nGameStartCount", VT_Short, 0)
  178. -- 总的局数
  179. , defVar("nTotalGameNum", VT_Short, 0)
  180. -- 游戏信息
  181. , defVar("strGameInfo", VT_String, "")
  182. -- 是否有人发起解散
  183. , defVar("bUserDisbandGame", VT_UChar, 0)
  184. -- 游戏状态
  185. , defVar("nStatus", VT_Short, 0)
  186. -- 解散剩余时间,没人发起解散,此值为0
  187. , defVar("nDismissStateTime", VT_Int, 0)
  188. -- 用户房间号
  189. , defVar("nShowTableId", VT_Int, 0)
  190. -- 游戏倍数
  191. , defVar("nBombs", VT_Int, 0)
  192. -- 游戏底分
  193. , defVar("nCurBaseScore", VT_Int, 0)
  194. -- 地主ID
  195. , defVar("nBankerId", VT_Int, 0)
  196. -- 底牌
  197. , defVar("bankerCards", VT_Vector(RoomMessage.Cards))
  198. -- 最后一手牌操作uid
  199. , defVar("lastUserId", VT_Int, 0)
  200. -- 当前桌上最后一手牌牌型
  201. , defVar("lastCardType", VT_Short, 0)
  202. -- 当前桌上最后一手牌
  203. , defVar("lastCards", VT_Vector(RoomMessage.Cards))
  204. -- 玩家信息
  205. , defVar("memberList", VT_VectorToMap(RoomMessage.ReconnectPlayer, "nUserId"))
  206. -- 当前操作玩家
  207. , defVar("currentUserId", VT_Int, 0)
  208. -- 操作剩余时间
  209. , defVar("currentLeftTime", VT_Int, 0)
  210. -- 0-不是 1-必须
  211. , defVar("opType", VT_UChar, 0)
  212. -- 过数据
  213. , defVar('guoInfo', VT_VectorToMap(RoomMessage.passInfo, 'nUserId'))
  214. -- , defVar('guoInfo', VT_Vector(RoomMessage.passInfo))
  215. )
  216. RoomMessage.cmd_0x8104_Player = defClass("cmd_0x8104_Player"
  217. -- uid
  218. , defVar("nUserId", VT_Int, 0)
  219. -- 座位号
  220. , defVar("nSeatId", VT_Short, 0)
  221. )
  222. RoomMessage.cmd_0x8104_RespStructure = defClass("cmd_0x8104_RespStructure"
  223. -- 当前局数
  224. , defVar("nGameStartCount", VT_Short, 0)
  225. -- 总局数
  226. , defVar("nTotalGameNum", VT_Short, 0)
  227. -- 房主id
  228. , defVar("nRoomOwnedUid", VT_Int, 0)
  229. -- 手动开始游戏Uid(用不上)
  230. , defVar("nStartGameUid", VT_Int, 0)
  231. -- 庄家座位号
  232. , defVar("nBankSeatId", VT_Short, 0)
  233. -- 玩家信息(暂时无用)
  234. , defVar("playerSeatInfo", VT_Vector(RoomMessage.cmd_0x8104_Player))
  235. )
  236. RoomMessage.cmd_0x8105_RespStructure = defClass("cmd_0x8105_RespStructure"
  237. -- 游戏状态
  238. , defVar("nStatus", VT_Int, 0)
  239. )
  240. RoomMessage.cmd_0x8106_RespStructure = defClass("cmd_0x8106_RespStructure"
  241. -- 玩家ID
  242. , defVar("nUserId", VT_Int, 0)
  243. -- 牌数据
  244. , defVar("handCards", VT_Vector(RoomMessage.Cards))
  245. )
  246. RoomMessage.cmd_0x8108_RespStructure = defClass("cmd_0x8108_RespStructure"
  247. -- 玩家ID
  248. , defVar("nUserId", VT_Int, 0)
  249. -- 剩余时间
  250. , defVar("leftTime", VT_Int, 0)
  251. -- 是否必须叫地主 0-不是 1-是
  252. , defVar("mustBanker", VT_UChar, 0)
  253. )
  254. RoomMessage.cmd_0x8109_RespStructure = defClass("cmd_0x8109_RespStructure"
  255. -- 玩家ID
  256. , defVar("nUserId", VT_Int, 0)
  257. -- 叫分
  258. , defVar("askLoard", VT_UChar, 0)
  259. )
  260. RoomMessage.cmd_0x810a_RespStructure = defClass("cmd_0x810a_RespStructure"
  261. -- 庄家id
  262. , defVar("nBankerId", VT_Int, 0)
  263. -- 底牌
  264. , defVar("bankerCards", VT_Vector(RoomMessage.Cards))
  265. )
  266. RoomMessage.cmd_0x810c_RespStructure = defClass("cmd_0x810c_RespStructure"
  267. -- 剩余时间
  268. , defVar("leftTime", VT_Int, 0)
  269. )
  270. RoomMessage.cmd_0x810d_RespStructure = defClass("cmd_0x810d_RespStructure"
  271. -- 玩家ID
  272. , defVar("nUserId", VT_Int, 0)
  273. -- 加倍
  274. , defVar("askBei", VT_UChar, 0)
  275. )
  276. RoomMessage.cmd_0x810e_RespStructure = defClass("cmd_0x810e_RespStructure"
  277. -- 玩家ID
  278. , defVar("nUserId", VT_Int, 0)
  279. -- 操作类型
  280. , defVar("opType", VT_Short, 0)
  281. )
  282. RoomMessage.cmd_0x810f_RespStructure = defClass("cmd_0x810f_RespStructure"
  283. -- 玩家ID
  284. , defVar("nUserId", VT_Int, 0)
  285. -- 错误类型
  286. , defVar("errorType", VT_Short, 0)
  287. )
  288. RoomMessage.cmd_0x8110_RespStructure = defClass("cmd_0x8110_RespStructure"
  289. -- 玩家ID
  290. , defVar("nUserId", VT_Int, 0)
  291. -- 操作类型
  292. , defVar("opType", VT_Short, 0)
  293. -- 牌型
  294. , defVar("cardType", VT_Short, 0)
  295. -- 剩余手牌数
  296. , defVar("leftNum", VT_Short, 0)
  297. -- 牌
  298. , defVar("cards", VT_Vector(RoomMessage.Cards))
  299. )
  300. RoomMessage.cmd_0x8111_RespStructure = defClass("cmd_0x8111_RespStructure"
  301. -- 底分
  302. , defVar("baseScore", VT_Int, 0)
  303. -- 倍率
  304. , defVar("nBombs", VT_Int, 0)
  305. )
  306. RoomMessage.cmd_0x8112_Player = defClass("cmd_0x8112_Player"
  307. -- 玩家uid
  308. , defVar("nUserId", VT_Int, 0)
  309. -- 座位号
  310. , defVar("nSeatId", VT_Short, 0)
  311. -- 本轮分数
  312. , defVar("nTurnScore", VT_String, 0)
  313. -- 总分数
  314. , defVar("nTotalScore", VT_String, 0)
  315. -- 加倍
  316. , defVar("askBei", VT_Int, 0)
  317. -- 玩家信息
  318. , defVar("userInfo", VT_String, "")
  319. -- 剩余手牌
  320. , defVar("handCards", VT_Vector(RoomMessage.Cards))
  321. )
  322. RoomMessage.cmd_0x8112_PlayerOperateData = defClass("cmd_0x8112_Player"
  323. -- 玩家uid
  324. , defVar("nUserId", VT_Int, 0)
  325. -- 座位号
  326. , defVar("nSeatId", VT_Short, 0)
  327. -- 扩展字段,操作数据
  328. , defVar('ext', VT_String, '')
  329. )
  330. RoomMessage.cmd_0x8112_RespStructure = defClass("cmd_0x8112_RespStructure"
  331. -- 最先出完牌id
  332. , defVar("nWinId", VT_Int, 0)
  333. -- 庄家id
  334. , defVar("nBankerId", VT_Int, 0)
  335. -- 游戏倍数
  336. , defVar("mult", VT_Short, 0)
  337. -- 是否春天 0 都不是 1 春天 2 反春
  338. , defVar("nSpring", VT_Short, 0)
  339. -- 时间
  340. , defVar("nTime", VT_Int, 0)
  341. -- 当前局数
  342. , defVar("nGameStartCount", VT_Int, 0)
  343. -- 游戏是否结束
  344. , defVar("isGameOver ", VT_Short, 0)
  345. -- 玩家数据
  346. , defVar("memberList", VT_VectorToMap(RoomMessage.cmd_0x8112_Player, "nUserId"))
  347. -- 玩家的操作数据
  348. , defVar('memberOperateData', VT_VectorToMap(RoomMessage.cmd_0x8112_PlayerOperateData,'nUserId'))
  349. )
  350. RoomMessage.cmd_0x8113_Player = defClass("cmd_0x8113_Player"
  351. -- 玩家id
  352. , defVar("nUserId", VT_Int, 0)
  353. -- 总分
  354. , defVar("nTotalScore", VT_String, 0)
  355. -- 玩家信息
  356. , defVar("userInfo", VT_String, "")
  357. -- 总计数据
  358. , defVar("countInfo", VT_String, "")
  359. )
  360. RoomMessage.cmd_0x8113_RespStructure = defClass("cmd_0x8113_RespStructure"
  361. -- 房主id
  362. , defVar("nRoomOwnedUid", VT_Int, 0)
  363. -- 时间
  364. , defVar("nTime", VT_Int, 0)
  365. -- 游戏结束原因
  366. , defVar("stopFlag", VT_Int, 0)
  367. -- 玩家数据
  368. , defVar("memberList", VT_VectorToMap(RoomMessage.cmd_0x8113_Player, "nUserId"))
  369. )
  370. RoomMessage.cmd_0x8114_RespStructure = defClass("cmd_0x8114_RespStructure"
  371. )
  372. -- 叫分
  373. RoomMessage.AskLoard = defClass("AskLoard"
  374. , defVar("askLoard", VT_UChar, 0)
  375. )
  376. -- 加倍
  377. RoomMessage.AskBei = defClass("AskBei"
  378. , defVar("askBei", VT_UChar, 0)
  379. )
  380. -- 操作
  381. RoomMessage.Operation = defClass("Operation"
  382. , defVar("opType", VT_UChar, 0)
  383. , defVar("cards", VT_Vector(VT_UChar), {})
  384. )
  385. --托管状态
  386. RoomMessage.HostingResponseEntity = defClass("HostingResponseEntity"
  387. ,defVar("nUserId",VT_Int,0)
  388. --1.托管 0取消托管
  389. ,defVar("status",VT_UChar,0)
  390. ,defVar("ext", VT_String, "")
  391. )
  392. --托管状态(0x8133)
  393. RoomMessage.HostingResponse = defClass("HostingResponse"
  394. ,defVar("userList", VT_Vector(RoomMessage.HostingResponseEntity), {})
  395. )
  396. -- 托管请求(0x8134)
  397. RoomMessage.HostingRequest = defClass("HostingRequest"
  398. , defVar("status", VT_Short, 0)
  399. )
  400. return RoomMessage