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.

507 line
15 KiB

  1. local message = {}
  2. message.Card = defClass("Card"
  3. ,defVar("card", VT_Byte, 0)
  4. )
  5. message.RoomMemberInfo = defClass("RoomMemberInfo"
  6. ,defVar("nUserId", VT_Int, 0)
  7. ,defVar("nSeatId", VT_Int, 0)
  8. ,defVar("nOnlineStatus", VT_Byte, 0)
  9. ,defVar("nPlayerFlag", VT_Byte, 0)
  10. ,defVar("userInfo", VT_String, 0)
  11. ,defVar("nTotalScore", VT_Int, 0)
  12. )
  13. message.SitDownSuccessResponse = defClass("SitDownSuccessResponse"
  14. ,defVar("gameId", VT_Short, 0)
  15. ,defVar("nShowTableId", VT_Int, 0)
  16. ,defVar("nMaxPlayCount", VT_Int, 0)
  17. ,defVar("nRoomOwnedUid", VT_Int, 0)
  18. ,defVar("nTotalGameNum", VT_Short, 0)
  19. ,defVar("strGameInfo", VT_String, 0)
  20. ,defVar("memberList", VT_VectorToMap(message.RoomMemberInfo,"nUserId"))
  21. )
  22. -- 进入桌子失败
  23. message.SitDownFailedResponse = defClass("SitDownFailedResponse"
  24. -- 错误码
  25. , defVar("nErrorCode", VT_UChar, 0)
  26. )
  27. -- 收到其他玩家加入房间的信息
  28. message.OtherSitDownResponse = defClass("OtherSitDownResponse"
  29. -- 用户uid
  30. , defVar("nUserId", VT_Int, 0)
  31. -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1
  32. , defVar("nSeatId", VT_Int, 0)
  33. -- 用户信息
  34. , defVar("userInfo", VT_String, "")
  35. -- 用户总的分数
  36. , defVar("nTotalScore", VT_Int, 0)
  37. )
  38. message.OtherLogoutResponse = defClass("OtherLogoutResponse"
  39. ,defVar("nUserId", VT_Int, 0)
  40. )
  41. message.OutCardSuccess = defClass("OutCardSuccess"
  42. --操作玩家id
  43. ,defVar("nUserId", VT_Int, 0)
  44. --操作类型 0 pass 1 出牌
  45. ,defVar("opType", VT_Short, 0)
  46. --牌型
  47. ,defVar("cardsType", VT_Short, 0)
  48. --剩余手牌数
  49. ,defVar("leftNum", VT_Short, 0)
  50. --原始数据
  51. ,defVar("cardList",VT_Vector(message.Card),{})
  52. --解析了癞子后的数据
  53. ,defVar("cardList2",VT_Vector(message.Card),{})
  54. --是否由服务器代操作 1-是 0-否
  55. ,defVar("serPut", VT_Byte, 0)
  56. )
  57. message.OtherDroppedResponse = defClass("OtherDroppedResponse"
  58. -- 用户uid
  59. , defVar("nUserId", VT_Int, 0)
  60. -- 0: 用户掉线回来, 1: 用户已经掉线
  61. , defVar("nDroppedStatus", VT_Short, 0)
  62. )
  63. message.BroadPlayerOutCard = defClass("BroadPlayerOutCard"
  64. ,defVar("nUserId", VT_Int, 0)
  65. --0-只能pass 1-可以选择出也可以不出 2-必须出牌
  66. ,defVar("opType", VT_Short, 0)
  67. )
  68. message.cmd_0x800f_RespStructure = defClass("cmd_0x800f_RespStructure"
  69. ,defVar("nUserId", VT_Int, 0)
  70. ,defVar("nOnlineStatus", VT_Short, 0)
  71. )
  72. message.UserExitResponse = defClass("UserExitResponse"
  73. --用户当前积分
  74. ,defVar("nGold", VT_Long, 0)
  75. ,defVar("userInfo", VT_String, 0)
  76. ,defVar("logoutFlag", VT_Short, 0)
  77. ,defVar("tableOverFlag", VT_Short, 0)
  78. )
  79. message.BroadCastNoPlayPlayer = defClass("onBroadCastNoPlayPlayer"
  80. --不参与游戏玩家ID
  81. ,defVar("uid", VT_Int, 0)
  82. )
  83. message.OutCardRanking = defClass("OutCardRanking"
  84. ,defVar("uid", VT_Int, 0)
  85. ,defVar("ranking", VT_Byte, 0)
  86. )
  87. message.FriendAppear = defClass("FriendAppear"
  88. ,defVar("nBankerHelper", VT_Int, 0)
  89. )
  90. message.BroadCastBankerCallCard = defClass("BroadCastBankerCallCard"
  91. ,defVar("nBankerUserId", VT_Int, 0)
  92. ,defVar("noCards", VT_Vector(message.Card),{})
  93. )
  94. message.PlayerBaoPaiResult = defClass("PlayerBaoPaiResult"
  95. ,defVar("askUid", VT_Int, 0)
  96. ,defVar("opType", VT_Byte, 0)
  97. --是否由服务器代操作1-是 0-否
  98. ,defVar("serPut", VT_Byte, 0)
  99. )
  100. message.playerList = defClass("playerList"
  101. ,defVar("nUserId", VT_Int, 0)
  102. ,defVar("nSeatId", VT_Short, 0)
  103. ,defVar("nScore", VT_String, 0)
  104. ,defVar("nTotalScore", VT_String, 0)
  105. ,defVar("userInfo", VT_String, "")
  106. --玩家本轮排名,各自为战和2v2模式下有用
  107. ,defVar("ranking", VT_Short, 0)
  108. --本轮是否在玩或旁观(1在玩 0旁观)
  109. ,defVar("mPlaying", VT_Short, 0)
  110. --玩家打出炸弹数(改为了分数)
  111. ,defVar("mBombTimes", VT_String, 0)
  112. --玩家输赢//输赢 -1 不参与 0 输 1 赢 2 平局
  113. ,defVar("mWinLose", VT_Int, 0)
  114. --手牌
  115. ,defVar("handCardList", VT_Vector(message.Card),{})
  116. --初始手牌
  117. ,defVar("firstCardList", VT_Vector(message.Card),{})
  118. )
  119. message.XiaoJuTongJi = defClass("XiaoJuTongJi"
  120. ,defVar("nUserId", VT_Int, 0)
  121. ,defVar("countInfo", VT_String, "")
  122. )
  123. message.GameXiaoJuResponse = defClass("GameXiaoJuResponse"
  124. --最先出完牌ID
  125. ,defVar("nWinId", VT_Int, 0)
  126. --庄家ID
  127. ,defVar("mBankerUserId", VT_Int, 0)
  128. --庄家伙伴ID
  129. ,defVar("nBankerHelper", VT_Int, 0)
  130. --时间
  131. ,defVar("mTime", VT_Int, 0)
  132. --当前局数
  133. ,defVar("nGameStartCount", VT_Int, 0)
  134. --游戏是否结束
  135. ,defVar("isGameOver", VT_Short, 0)
  136. --玩家列表
  137. ,defVar("playerList", VT_VectorToMap(message.playerList,"nUserId"))
  138. --特殊牌型 0-普通 1-十三烂
  139. ,defVar("mSpecialType", VT_Short, 0)
  140. --添加玩家小局统计信息
  141. ,defVar("countInfos", VT_Vector(message.XiaoJuTongJi),{})
  142. )
  143. message.GameBankerSendCallCard = defClass("GameBankerSendCallCard"
  144. ,defVar("card", VT_Byte, 0)
  145. )
  146. message.GameBankerSendCallCardResponse = defClass("GameBankerSendCallCardResponse"
  147. ,defVar("nBankerUserId", VT_Int, 0)
  148. ,defVar("card", VT_Byte, "")
  149. --是否由服务器代操作 1-是 0-否
  150. ,defVar("serPut", VT_Byte, "")
  151. )
  152. message.PlayerInfo8009 = defClass("PlayerInfo8009"
  153. ,defVar("nUserId", VT_Int, 0)
  154. ,defVar("nSeatId", VT_Short, 0)
  155. ,defVar("nPlayerFlag", VT_Short, 0)
  156. ,defVar("disbandStatus", VT_Byte, 0)
  157. ,defVar("nOnlineStatus", VT_Byte, 0)
  158. ,defVar("userInfo", VT_String, 0)
  159. ,defVar("nTurnScore", VT_String, 0)
  160. ,defVar("nTotalScore", VT_String, 0)
  161. --玩家当前排名(各自为战或者2v2有用)
  162. ,defVar("ranking", VT_Short, 0)
  163. --玩家爆牌状态 0x01未操作状态 0x02不爆 0x03爆牌 0x04反包 0x05不反
  164. ,defVar("baoPaiType", VT_Byte, 0)
  165. --是否参与本局游戏1参与 0观战
  166. ,defVar("IsPlaying", VT_Byte, 0)
  167. --手牌
  168. ,defVar("handCardList", VT_Vector(message.Card),{})
  169. )
  170. message.TuoGuanState = defClass("TuoGuanState"
  171. ,defVar("nUserId", VT_Int, 0)
  172. ,defVar("state", VT_Byte, 0)
  173. )
  174. message.FastStartSuccessPlayerInfo = defClass("FastStartSuccessPlayerInfo"
  175. ,defVar("uid", VT_Int, 0)
  176. ,defVar("optType", VT_Int, 0)
  177. )
  178. message.GameReconnection = defClass("GameReconnection"
  179. --房间人数
  180. ,defVar("nMaxPlayCount", VT_Short, 0)
  181. --房主uid
  182. ,defVar("nRoomOwnedUid", VT_Int, 0)
  183. --开始游戏的Uid
  184. ,defVar("nStartGameUid", VT_Int, 0)
  185. --当前局数
  186. ,defVar("nGameStartCount", VT_Short, 0)
  187. --总游戏局数
  188. ,defVar("nTotalGameNum", VT_Short, 0)
  189. --游戏信息
  190. ,defVar("strGameInfo", VT_String, 0)
  191. --是否是申请解散状态
  192. ,defVar("bUserDisbandGame", VT_Byte, 0)
  193. --桌子状态
  194. ,defVar("nStatus", VT_Short, 0)
  195. --解散倒计时
  196. ,defVar("disBandTimeOut", VT_Int, 0)
  197. --桌子号
  198. ,defVar("nShowTableId", VT_Int, 0)
  199. --庄家叫的牌
  200. ,defVar("cAskCard", VT_Byte, 0)
  201. --庄家UID
  202. ,defVar("nBankerUserId", VT_Int, 0)
  203. --2v2朋友现身 1 现身 0 没有
  204. ,defVar("bFriendAppear", VT_Byte, 0)
  205. --2v2 庄家朋友ID
  206. ,defVar("nBankerHelper", VT_Int, 0)
  207. --最后一手牌操作
  208. --当前桌上最后一手牌出牌者id
  209. ,defVar("GetOpUid", VT_Int, 0)
  210. --当前桌上最后一手牌牌型
  211. ,defVar("cardType", VT_Short, 0)
  212. --当前桌上最后一手牌
  213. ,defVar("cardList", VT_Vector(message.Card),{})
  214. --玩家信息
  215. ,defVar("arrayTableInfo", VT_VectorToMap(message.PlayerInfo8009,"nUserId"))
  216. --当前叫爆牌玩家
  217. ,defVar("currentUserId", VT_Int, 0)
  218. --isHaveBao
  219. ,defVar("opType", VT_Byte, 0)
  220. ,defVar("noCards", VT_Vector(message.Card),{})
  221. ,defVar("curOpType", VT_Byte, 0)
  222. ,defVar("opTypeTime", VT_Byte, 0)
  223. ,defVar("bUserFastStartGame", VT_Byte, 0)
  224. ,defVar("nFastStartTimeOut", VT_Int, 0)
  225. ,defVar("fastStartPlayerInfos", VT_Vector(message.FastStartSuccessPlayerInfo),{})
  226. ,defVar("playerTuoGuanState", VT_Vector(message.TuoGuanState),{})
  227. )
  228. message.GameBankerChange = defClass("GameBankerChange"
  229. ,defVar("nBankerUserId", VT_Int, 0)
  230. )
  231. message.DaJuPlayerInfo = defClass("DaJuPlayerInfo"
  232. ,defVar("nUserId", VT_Int, 0)
  233. ,defVar("nTotalScore", VT_String, 0)
  234. ,defVar("userInfo", VT_String, 0)
  235. ,defVar("totalInfo", VT_String, 0)
  236. )
  237. message.GameDaJuResponse = defClass("GameDaJuResponse"
  238. ,defVar("nRoomOwnedUid", VT_Int, 0)
  239. ,defVar("endtime", VT_Int, 0)
  240. ,defVar("stopFlag", VT_Int, 0)
  241. ,defVar("allData", VT_Vector(message.DaJuPlayerInfo),{})
  242. )
  243. message.BaoPai = defClass("BaoPai"
  244. --2-不爆 3-爆牌 4-反爆 5-不反
  245. ,defVar("opType", VT_Byte, 0)
  246. )
  247. message.BaoPaiResponse = defClass("BaoPaiResponse"
  248. ,defVar("errType", VT_Byte, 0)
  249. )
  250. message.BaoPaiStartBroad = defClass("BaoPaiStartBroad"
  251. ,defVar("askUid", VT_Int, 0)
  252. ,defVar("opType", VT_Int, 0)
  253. )
  254. message.BroadCastNoPlayPlayer = defClass("BroadCastNoPlayPlayer"
  255. ,defVar("uid", VT_Int, 0)
  256. ,defVar("opType", VT_Int, 0)
  257. )
  258. message.GameSendCardResponse = defClass("GameSendCardResponse"
  259. ,defVar("nUserId", VT_Int, 0)
  260. ,defVar("cardList", VT_Vector(message.Card),{})
  261. )
  262. message.GameUpdateStatus = defClass("GameUpdateStatus"
  263. ,defVar("nStatus", VT_Int, 0)
  264. )
  265. message.OutCard = defClass("OutCard"
  266. ,defVar("opType", VT_Byte, 0)
  267. ,defVar("cards", VT_Vector(VT_UChar),{})
  268. ,defVar("cardsEx", VT_Vector(VT_UChar),{})
  269. )
  270. message.OutCardError = defClass("OutCardError"
  271. ,defVar("nUserId", VT_Int, 0)
  272. ,defVar("errorType", VT_Short, 0)
  273. ,defVar("cards", VT_Vector(message.Card),{})
  274. )
  275. message.PlayerInfo = defClass("PlayerInfo"
  276. ,defVar("nUserId", VT_Int, 0)
  277. ,defVar("nSeatId", VT_Short, 0)
  278. )
  279. message.sendTuoGuan = defClass("sendTuoGuan"
  280. --1-请求托管 2-请求取消托管
  281. ,defVar("entrustType", VT_Byte, 0)
  282. )
  283. message.TuoGuanResponse = defClass("TuoGuanResponse"
  284. ,defVar("nUserId", VT_Int, 0)
  285. --托管状态 1-托管中 0-未托管
  286. ,defVar("entrustType", VT_Byte, 0)
  287. )
  288. message.GameStartResponse = defClass("GameStartResponse"
  289. ,defVar("nGameStartCount", VT_Short, 0)
  290. ,defVar("nTotalGameNum", VT_Short, 0)
  291. ,defVar("nRoomOwnedUid", VT_Int, 0)
  292. ,defVar("nBankerSeatId", VT_Short, 0)
  293. ,defVar("playerList", VT_Vector(message.PlayerInfo),{})
  294. )
  295. --server收到0x8060协议后,广播当前桌子上所有用户
  296. message.ServerChangeUserInfo = defClass("ServerChangeUserInfo"
  297. --更新信息的用户uid
  298. , defVar("uid", VT_Int, -1)
  299. --用户信息
  300. , defVar("userInfo", VT_String, "")
  301. --保留字段,暂不使用
  302. , defVar("reserved", VT_String, "")
  303. )
  304. --客户端通过协议0x8060通知server, 用户信息改变
  305. message.ClientChangeUserInfo = defClass("ClientChangeUserInfo"
  306. --用户信息,jason格式,同登录协议
  307. , defVar("userInfo", VT_String, "")
  308. )
  309. -- 快速开始请求 --0x8200
  310. --[[
  311. FAST_START_REQ_TYPE_START = 1, //请求开始游戏
  312. FAST_START_REQ_TYPE_AGREE = 2, //同意开始游戏
  313. FAST_START_REQ_TYPE_DISAGREE = 3, //拒绝开始游戏
  314. --]]
  315. message.GameStartRequest = defClass("GameStartRequest"
  316. , defVar("optType", VT_UChar, 0)
  317. )
  318. -- 服务器广播快速开始状态(成功) --0x8201
  319. --[[
  320. FAST_START_REQ_TYPE_START = 1, //请求开始游戏
  321. FAST_START_REQ_TYPE_AGREE = 2, //同意开始游戏
  322. FAST_START_REQ_TYPE_DISAGREE = 3, //拒绝开始游戏
  323. FAST_START_REQ_TYPE_INIT = 4,
  324. FAST_START_REQ_TYPE_NEW_OR_OUT = 5, //有人进来或者退出
  325. FAST_START_REQ_TYPE_TIMEOUT = 6,
  326. --]]
  327. message.FastPlayer = defClass("FastPlayer"
  328. , defVar("uid", VT_Int, 0)
  329. , defVar("optType", VT_UChar, 0)
  330. )
  331. message.FastStartStatus = defClass("FastStartStatus"
  332. , defVar("uid", VT_Int, 0)
  333. , defVar("optType", VT_Short, 0)
  334. , defVar("playerList", VT_Vector(message.FastPlayer), {})
  335. , defVar("nleftStartGameTimeout", VT_Short, 0)
  336. )
  337. -- 快速开始请求结果(失败) --0x8202
  338. --[[
  339. FAST_START_GAME_RET_NOT_ENOUGH = 1, //人数不够
  340. FAST_START_GAME_OTHER_REQ = 2, //其他人已请求
  341. FAST_START_GAME_RET_ENOUGH = 3, //人数已满
  342. FAST_START_GAME_RET_INVALID = 4, //非法操作
  343. --]]
  344. message.FastStartRequestError = defClass("FastStartRequestError"
  345. , defVar("result", VT_Short, -1)
  346. )
  347. -- 快速开始,所有人同意,广播用户新位置
  348. message.FastSuccessPlayer = defClass("FastSuccessPlayer"
  349. , defVar("uid", VT_Int, 0)
  350. , defVar("nSeatId", VT_UChar, 0)
  351. )
  352. message.UpdateSeatIds = defClass("UpdateSeatIds"
  353. , defVar("playerList", VT_Vector(message.FastSuccessPlayer), {})
  354. )
  355. message.IntPacket = defClass("IntPacket"
  356. --nUserId
  357. , defVar("nUserId", VT_Int, -1)
  358. )
  359. -- 解散房间请求
  360. message.DismissRequest = defClass("DismissRequest"
  361. -- 玩家操作 1: 表示发起解散 2:同意解散 3:不同意解散
  362. , defVar("operateType", VT_UChar, 0)
  363. )
  364. -- 每个玩家对于解散房间的处理
  365. message.UserDismissResult = defClass("UserDismissResult"
  366. -- nUserId
  367. , defVar("nUserId", VT_Int, 0)
  368. -- 0: 未做任何操作 1: 请求解散 2: 同意解散 3:不同意解散
  369. , defVar("dismissState", VT_UChar, 0)
  370. )
  371. -- 解散房间请求的结果
  372. message.DismissResult = defClass("DismissResult"
  373. -- 错误码:
  374. -- 0:成功
  375. -- 1:operateType取值范围不对
  376. -- 2:当前没人发起解散
  377. -- 3:已经有人申请解散
  378. , defVar("errorCode", VT_Short, 0)
  379. -- 玩家操作
  380. , defVar("operateType", VT_Int, 0)
  381. -- 桌子上其他用户数量
  382. , defVar("memberList", VT_VectorToMap(message.UserDismissResult, "nUserId"))
  383. -- 剩余解散超时时间
  384. , defVar("timeLeft", VT_Short, 0)
  385. )
  386. -- 服务器广播每个玩家对解散房间的处理
  387. message.DismissResponse = defClass("DismissResponse"
  388. -- nUserId
  389. , defVar("nUserId", VT_Int, 0)
  390. -- 1: 表示发起解散 2:同意解散 3:不同意解散
  391. , defVar("operateType", VT_UChar, 0)
  392. -- 剩余解散超时时间
  393. , defVar("timeLeft", VT_Short, 0)
  394. )
  395. -- 本地存储完整的房间数据
  396. message.RoomInfoLocal = defClass("RoomInfoLocal"
  397. -- 用户房间号
  398. , defVar("nShowTableId", VT_Int, 0)
  399. -- 房间最大人数
  400. , defVar("nMaxPlayCount", VT_Int, 0)
  401. -- 用户房主
  402. , defVar("nRoomOwnedUid", VT_Int, 0)
  403. -- 总的局数
  404. , defVar("nTotalGameNum", VT_Short, 0)
  405. -- 房间信息
  406. , defVar("strGameInfo", VT_String, "")
  407. -- 用户
  408. , defVar("memberList", VT_VectorToMap(message.RoomMemberInfo, "nUserId"))
  409. -- 当前局数
  410. , defVar("nGameStartCount", VT_Short, 0)
  411. --解散总时间
  412. , defVar("nDismissToTalTime", VT_Short, 0)
  413. -- 庄家座位id
  414. , defVar("nBankSeatId", VT_UChar, 99)
  415. -- 是否有人发起解散
  416. , defVar("bUserDisbandGame", VT_UChar, 0)
  417. -- 解散剩余时间,没人发起解散,此值为0
  418. , defVar("nDismissStateTime", VT_Int, 0)
  419. --玩家信息
  420. ,defVar("arrayTableInfo", VT_VectorToMap(message.PlayerInfo8009,"nUserId"))
  421. )
  422. --板子炮做金币场时已经定义了托管相关的数据,注释掉这里
  423. --[[-- 托管
  424. TuoGuan = defClass("TuoGuan"
  425. -- 用户uid
  426. , defVar("optType", VT_Short, 0)
  427. )
  428. -- 用户托管信息
  429. TuoGuanInfo = defClass("TuoGuanInfo"
  430. -- 用户uid
  431. , defVar("nUserID", VT_Int, 0)
  432. --
  433. , defVar("aiStatus", VT_UChar, 0)
  434. --
  435. , defVar("reserve", VT_String, "")
  436. )
  437. -- 玩家超时系统自动托管 以及自动托管后,服务器都会广播当前桌上所有玩家的托管状态
  438. TuoGuanResponse = defClass("TuoGuanResponse"
  439. -- 用户uid
  440. , defVar("userCnt", VT_VectorToMap(TuoGuanInfo,"nUserID"))
  441. )--]]
  442. return message