您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

458 行
15 KiB

  1. --泸州跑得快消息协议格式
  2. local LZPdkMessage = {}
  3. -- LZPdkMessage.TestRequest = defClass("card"
  4. -- --牌值
  5. -- ,defVar("card", VT_UChar, 0)
  6. -- )
  7. -- LZPdkMessage.TestResponse = defClass("card"
  8. -- --牌值
  9. -- ,defVar("card", VT_UChar, 0)
  10. -- )
  11. LZPdkMessage.sendTuoGuan = defClass("sendTuoGuan"
  12. --1-请求托管 2-请求取消托管
  13. ,defVar("entrustType", VT_Short, 0)
  14. )
  15. -- 用户托管信息
  16. LZPdkMessage.TuoGuanInfo = defClass("TuoGuanInfo"
  17. -- 用户uid
  18. , defVar("nUserID", VT_Int, 0)
  19. --
  20. , defVar("aiStatus", VT_UChar, 0)
  21. --
  22. , defVar("reserve", VT_String, "")
  23. )
  24. -- 玩家超时系统自动托管 以及自动托管后,服务器都会广播当前桌上所有玩家的托管状态
  25. LZPdkMessage.TuoGuanResponse = defClass("TuoGuanResponse"
  26. -- 用户uid
  27. , defVar("userCnt", VT_VectorToMap(LZPdkMessage.TuoGuanInfo,"nUserID"))
  28. )
  29. -- 玩家加入房间成功玩家信息
  30. LZPdkMessage.PlayerInfo = defClass("UserInfo"
  31. -- 玩家ID
  32. ,defVar("userId", VT_Int, 0)
  33. -- 座位ID
  34. ,defVar("seatId", VT_Int, 0)
  35. -- //是否正在玩 -1: 用户站起 0: 用户坐下 1: 准备状态 2: 正在玩
  36. ,defVar("playFlag", VT_Short, 0)
  37. -- 头像昵称
  38. ,defVar("jsonInfo", VT_String, "")
  39. -- 金币房卡
  40. ,defVar("strExtInfo", VT_String, "")
  41. )
  42. -- 玩家离线状态
  43. LZPdkMessage.onLintState = defClass("onLintState"
  44. -- 玩家ID
  45. ,defVar("userId", VT_Int, 0)
  46. -- 状态
  47. ,defVar("jsonInfo", VT_String, "")
  48. )
  49. -- 玩家加入房间成功返回消息
  50. LZPdkMessage.GameLoginSuccess = defClass("GameLoginSuccess"
  51. -- 房间最大人数
  52. ,defVar("nMaxPlayCount", VT_Short, 0)
  53. -- 房主id
  54. ,defVar("nRoomOwnedUid", VT_Int, 0)
  55. -- 房间id
  56. ,defVar("nTableId", VT_Int, 0)
  57. -- 当前局数
  58. ,defVar("nGameStartCount", VT_Short, 0)
  59. -- 总局数
  60. ,defVar("nTotalGameNum", VT_Short, 0)
  61. -- 游戏信息
  62. ,defVar("nGameInfo", VT_String, "")
  63. -- ,defVar("nPlayerCount", VT_Short, 0)
  64. -- 玩家信息
  65. ,defVar("players", VT_Vector(LZPdkMessage.PlayerInfo), {})
  66. -- 玩家离线状态
  67. ,defVar("playerOnlineState", VT_VectorToMap(LZPdkMessage.onLintState, "userId"))
  68. )
  69. -- 加入房间失败返回
  70. --[[错误类型信息:
  71. ERROR_TABLE_MAX_COUNT = 2, //桌子人数已经够了
  72. ERROR_NOT_ENOUGH_MONEY = 3, //用户钱数不够
  73. ERROR_TOO_MUCH_MONEY = 4, //房间钱数过多
  74. ERROR_WRONG_UID = 5, //无效的用户ID
  75. ERROR_TABLE_NOT_EXIST = 6, //桌子不存在
  76. ERROR_OTHER = 7, //系统错误
  77. ERROR_UID_CANNOT_ENTER = 8, //游戏开始禁止加入游戏
  78. ]]
  79. LZPdkMessage.GameLoginFailed = defClass("GameLoginFailed"
  80. ,defVar("nErrNo", VT_UChar, 0)
  81. )
  82. -- 收到其他玩家加入房间的信息
  83. LZPdkMessage.GameSitDownResponse = defClass("GameSitDownResponse"
  84. -- 用户uid
  85. , defVar("userId", VT_Int, 0)
  86. -- 用户座位id, 从0编码, 最大为m_nMaxPlayCount-1
  87. , defVar("seatId", VT_Int, 0)
  88. -- 用户信息
  89. , defVar("userInfo", VT_String, "")
  90. -- 用户总的分数
  91. , defVar("nTotalMoney", VT_Long, 0)
  92. -- 用户标志
  93. , defVar("nPlayerFlag", VT_Short, 0)
  94. -- 开始游戏ID
  95. , defVar("nStartGameUid", VT_Int, 0)
  96. )
  97. -- 广播玩家准备
  98. LZPdkMessage.GameUserReady = defClass("GameUserReady"
  99. -- 准备玩家ID
  100. ,defVar("userId", VT_Int, 0)
  101. )
  102. -- 玩家进入房间
  103. LZPdkMessage.GameUserEnter = defClass("GameUserEnter"
  104. -- 玩家id
  105. ,defVar("userId", VT_Int, 0)
  106. ,defVar("seatId", VT_Int, 0)
  107. ,defVar("jsonInfo", VT_String, "")
  108. ,defVar("playFlag", VT_Short, 0)
  109. --道具信息
  110. ,defVar("strExtInfo", VT_String, "")
  111. )
  112. -- 玩家离开房间
  113. LZPdkMessage.GameUserLogoutSuc = defClass("GameUserLogout"
  114. -- 玩家积分
  115. ,defVar("totalMoney", VT_Long, 0)
  116. -- 是否回到大厅
  117. ,defVar("logoutFlag", VT_Short, 0)
  118. --用户的房卡信息,格式"10,5", 以逗号分隔,第一个表示历史房卡数量, 第二个表示当前房卡数量
  119. ,defVar("extInfo", VT_String, "")
  120. )
  121. -- 广播桌子其他玩家离开
  122. LZPdkMessage.GameBroadcastUserLogout = defClass("GameBroadcastUserLogout"
  123. -- 玩家ID
  124. ,defVar("userId", VT_Int, 0)
  125. ,defVar("unuse", VT_Int, 0)
  126. )
  127. -- 解散房间请求
  128. LZPdkMessage.DismissRequest = defClass("DismissRequest"
  129. -- 玩家操作 1: 表示发起解散 2:同意解散 3:不同意解散
  130. , defVar("operateType", VT_UChar, 0)
  131. )
  132. -- 每个玩家对于解散房间的处理
  133. LZPdkMessage.UserDismissResult = defClass("UserDismissResult"
  134. -- nUserId
  135. , defVar("nUserId", VT_Int, 0)
  136. -- 0: 未做任何操作 1: 请求解散 2: 同意解散 3:不同意解散
  137. , defVar("dismissState", VT_UChar, 0)
  138. )
  139. -- 解散房间请求的结果
  140. LZPdkMessage.DismissResult = defClass("DismissResult"
  141. -- 错误码:
  142. -- 0:成功
  143. -- 1:operateType取值范围不对
  144. -- 2:当前没人发起解散
  145. -- 3:已经有人申请解散
  146. , defVar("errorCode", VT_Short, 0)
  147. -- 玩家操作
  148. , defVar("operateType", VT_Int, 0)
  149. -- 桌子上其他用户数量
  150. , defVar("memberList", VT_VectorToMap(LZPdkMessage.UserDismissResult, "nUserId"))
  151. -- 剩余解散超时时间
  152. , defVar("timeLeft", VT_Short, 0)
  153. )
  154. -- 服务器广播每个玩家对解散房间的处理
  155. LZPdkMessage.DismissResponse = defClass("DismissResponse"
  156. -- nUserId
  157. , defVar("nUserId", VT_Int, 0)
  158. -- 1: 表示发起解散 2:同意解散 3:不同意解散
  159. , defVar("operateType", VT_UChar, 0)
  160. -- 剩余解散超时时间
  161. , defVar("timeLeft", VT_Short, 0)
  162. )
  163. -- 收到其他玩家掉线的信息
  164. LZPdkMessage.OtherDroppedResponse = defClass("OtherDroppedResponse"
  165. -- 用户uid
  166. , defVar("nUserId", VT_Int, 0)
  167. -- 0: 用户掉线回来, 1: 用户已经掉线
  168. , defVar("nDroppedStatus", VT_Short, 0)
  169. )
  170. --------------------------------------------------------------------------
  171. -- 游戏处理逻辑协议
  172. --------------------------------------------------------------------------
  173. -- 当桌子上所有玩家都准备后,服务器广播本局游戏开始
  174. LZPdkMessage.GameStartUser = defClass("GameStartUser"
  175. ,defVar("nUserId", VT_Int, 0)
  176. ,defVar("nSeatId", VT_Int, 0)
  177. )
  178. LZPdkMessage.GameBroadcastGameStart = defClass("GameBroadcastGameStart"
  179. -- 当前局数
  180. ,defVar("gameStartCount", VT_Short, 0)
  181. ,defVar("totalGamenum", VT_Short, 0)
  182. ,defVar("roomOwnedUid", VT_Int, 0)
  183. ,defVar("players", VT_Vector(LZPdkMessage.GameStartUser), {})
  184. )
  185. -- 给玩家发牌
  186. LZPdkMessage.GameSendCards = defClass("GameSendCards"
  187. ,defVar("bankerSeat", VT_Int, 0)
  188. ,defVar("userId", VT_Int, 0)
  189. ,defVar("cards", VT_Vector(VT_UChar), {})
  190. ,defVar("cardPlayerInfo", VT_String, "")--记牌器json串
  191. )
  192. -- 服务器返回最佳提示牌组
  193. LZPdkMessage.GameReturnTips = defClass("GameReturnTips"
  194. ,defVar("userId", VT_Int, 0)
  195. ,defVar("cards", VT_Vector(VT_UChar), {})
  196. )
  197. -- 客户端请求出牌
  198. LZPdkMessage.GameOutCards = defClass("GameOutCards"
  199. -- ,defVar("byCardNum", VT_Short, 0)--不用写长度
  200. ,defVar("byOutCard", VT_Vector(VT_UChar), {})
  201. )
  202. -- 服务器返回出牌错误
  203. LZPdkMessage.GameOutCardsErr = defClass("GameOutCardsErr"
  204. ,defVar("userId", VT_Int, 0)
  205. ,defVar("errFlag", VT_UChar, 0)
  206. )
  207. -- 玩家出牌成功,服务器广播出牌信息
  208. --[[SINGLE_CARD = 1, //单牌
  209. DUI_ZI = 2, //对子
  210. THREE_AND_TWO = 3, //三带二
  211. SHUN_ZI = 4, //顺子
  212. LIAN_DUI = 5, //连对
  213. AIRPLANE = 6, //飞机
  214. FOUR_AND_THREE 7, //四带三
  215. BOMB = 8, //炸弹
  216. FOUR_AND_ONE = 9, //四带一
  217. ]]
  218. LZPdkMessage.GameBroadcastOutCards = defClass("GameBroadcastOutCards"
  219. ,defVar("selfId", VT_Int, 0)--自己ID
  220. ,defVar("userId", VT_Int, 0)
  221. ,defVar("cardType", VT_Short, 0)
  222. ,defVar("leftNum", VT_Short, 0)--出牌者剩余多少张牌
  223. ,defVar("cards", VT_Vector(VT_UChar), {})
  224. ,defVar("opType", VT_UChar, 0)--0:pass 1:接牌
  225. ,defVar("serPut", VT_Short, 0)--是否服务器代打的 0-不是 1-是(金币场用)
  226. ,defVar("cardPlayerInfo", VT_String, "")--记牌器json串
  227. ,defVar("isMustBomb", VT_UChar, 0)--是否只有炸弹能接牌
  228. )
  229. -- 游戏单局结算
  230. LZPdkMessage.UserResult = defClass("UserResult"
  231. ,defVar("userId", VT_Int, 0)
  232. ,defVar("turnScore", VT_String, 0)
  233. ,defVar("totalScore", VT_String, 0)
  234. ,defVar("bombTimes", VT_Short, 0)
  235. ,defVar("haveRedTen", VT_UChar, 0)
  236. ,defVar("bSpring", VT_UChar, 0)
  237. ,defVar("leftNum", VT_Short, 0)
  238. ,defVar("leftCards", VT_Vector(VT_UChar), {})
  239. ,defVar("groupCardInfo", VT_String, "")--组合牌(打出去的牌)
  240. ,defVar("allBombTimes", VT_Short, 0)
  241. )
  242. -- 小局炸弹分数
  243. LZPdkMessage.GameBombScore = defClass("GameBombScore"
  244. ,defVar("userId", VT_Int, 0)
  245. ,defVar("turnBombScore", VT_String, 0)--单局炸弹分
  246. ,defVar("reserved", VT_String, "")--字段,保留后续使用
  247. )
  248. LZPdkMessage.GameBroadcastResult = defClass("GameBroadcastResult"
  249. ,defVar("gameStartCount", VT_Short, 0)
  250. ,defVar("totalGamenum", VT_Short, 0)
  251. ,defVar("bankSeatId", VT_Int, 0)
  252. ,defVar("players", VT_Vector(LZPdkMessage.UserResult), {})
  253. ,defVar("stopFlag", VT_Int, 0)
  254. ,defVar("dipaiCard", VT_String, "")-- 底牌 空格隔开的字符串
  255. ,defVar("playersBombScore", VT_Vector(LZPdkMessage.GameBombScore), {})--单局炸弹得分
  256. )
  257. -- 游戏大结算
  258. LZPdkMessage.GameOverItem = defClass("GameOverItem"
  259. ,defVar("userId", VT_Int, 0)
  260. ,defVar("totalScore", VT_String, 0)
  261. ,defVar("extString", VT_String, "")
  262. --房卡信息
  263. ,defVar("countInfo", VT_String, "")
  264. )
  265. LZPdkMessage.GameGameOver = defClass("GameGameOver"
  266. ,defVar("players", VT_Vector(LZPdkMessage.GameOverItem), {})
  267. ,defVar("stopFlag", VT_Short, 0)
  268. ,defVar("stopResult", VT_String, 0)
  269. ,defVar("endTime", VT_Long, 0)
  270. )
  271. -- 中途恢复
  272. --[[GAME_STATE_INIT, //游戏准备状态
  273. GAME_STATE_SEND_HAND_CARD, //发牌
  274. GAME_STATE_OUT_CARD, //打牌
  275. GAME_STATE_ROUND_OVER, //游戏一局结束
  276. GAME_STATE_GAME_OVER, //游戏结束
  277. ]]
  278. LZPdkMessage.GameRecoverItem = defClass("GameRecoverItem"
  279. ,defVar("userId", VT_Int, 0)
  280. ,defVar("seatId", VT_Int, 0)
  281. ,defVar("playFlag", VT_Short, 0)--是否正在玩 -1: 用户站起 0: 用户坐下 1: 准备状态 2: 正在玩
  282. ,defVar("disbandStatus", VT_UChar, 0)--玩家解散状态 0:初始状态, 1:发起解散 2: 同意解散 3:不同意解散
  283. ,defVar("onlineStatus", VT_UChar, 0)--是否在线 0:离线 1:在线
  284. ,defVar("jsonInfo", VT_String, "")
  285. ,defVar("winTimes", VT_UChar, 0)
  286. ,defVar("loseTimes", VT_UChar, 0)
  287. ,defVar("isCanOp", VT_UChar, 0)
  288. ,defVar("bSpring", VT_UChar, 0)
  289. ,defVar("haveBlackThree", VT_UChar, 0)
  290. --,defVar("haveRedTen", VT_UChar, 0)
  291. ,defVar("maxScore", VT_String, 0)
  292. ,defVar("turnBombTimes", VT_UChar, 0)
  293. ,defVar("totalBombTimes", VT_UChar, 0)
  294. --玩家快速开始状态
  295. ,defVar("fastStartStatus", VT_Int, 0)
  296. --托管状态
  297. ,defVar("isEntrusting", VT_UChar, 0)
  298. ,defVar("turnScore", VT_String, 0)
  299. ,defVar("totalScore", VT_String, 0)
  300. ,defVar("handType", VT_Short, 0)
  301. ,defVar("handCards", VT_Vector(VT_UChar), {})
  302. ,defVar("outCards", VT_Vector(VT_UChar), {})
  303. ,defVar("groupCardInfo", VT_String, "")--组合牌(打出去的牌)
  304. ,defVar("allBombTimes", VT_Short, 0)
  305. )
  306. -- 快速开始玩家对应状态
  307. LZPdkMessage.FastStartGameUserItem = defClass("FastStartGameUserItem"
  308. ,defVar("userId", VT_Int, 0)
  309. ,defVar("fastStartStatus", VT_Int, 0)
  310. )
  311. -- 托管状态
  312. LZPdkMessage.UserHostingInfo = defClass("UserHostingInfo"
  313. ,defVar("userId", VT_Int, 0)
  314. ,defVar("hostStatus", VT_UChar, 0)
  315. )
  316. --断线重连
  317. LZPdkMessage.GameGameRecover = defClass("GameGameRecover"
  318. --房间最大人数
  319. ,defVar("maxPlayCount", VT_Short, 0)
  320. --房主uid
  321. ,defVar("roomOwnedUid", VT_Int, 0)
  322. --当前局数
  323. ,defVar("gameStartCount", VT_Short, 0)
  324. ,defVar("totalGamenum", VT_Short, 0)
  325. ,defVar("showTableId", VT_Int, 0)
  326. --游戏信息
  327. ,defVar("gameInfo", VT_String, 0)
  328. --庄家id
  329. ,defVar("bankSeatId", VT_Int, 0)
  330. ,defVar("bUserDisbandGame", VT_UChar, 0)
  331. --桌子状态
  332. ,defVar("gameStatus", VT_UChar, 0)
  333. ,defVar("leftTimeOut", VT_Int, 0)
  334. ,defVar("recoverItem", VT_Vector(LZPdkMessage.GameRecoverItem), {})
  335. ,defVar("extInfo", VT_String, "")
  336. --快速开始状态1:有人申请提前开始
  337. ,defVar("userFastStartStatus", VT_UChar, 0)
  338. --快速开始剩余时间
  339. ,defVar("fastStartTimeout", VT_Int, 0)
  340. --每个玩家对应快速开始状态
  341. --,defVar("fastStartPlayersStatus", VT_Vector(LZPdkMessage.FastStartGameUserItem), {})
  342. --当前操作玩家id
  343. ,defVar("curOpUid", VT_Int, 0)
  344. --当前操作玩家操作类型 0-pass 1-可以出牌也可以pass 2-只能出牌
  345. ,defVar("curOpType", VT_UChar, 0)
  346. --记牌器json串
  347. ,defVar("cardPlayerInfo", VT_String, "")
  348. -- 底牌 空格隔开的字符串
  349. ,defVar("dipaiCard", VT_String, "")
  350. --最后一手牌是否只有炸弹能接牌
  351. ,defVar("isMustBomb", VT_UChar, 0)
  352. )
  353. -- 0X8109 GAME_CAMMAND_BROADCAST_SCORES
  354. -- 更新玩家分数
  355. LZPdkMessage.GameUserScoreItem = defClass("GameUserScoreItem"
  356. ,defVar("userId", VT_Int, 0)
  357. ,defVar("totalScore", VT_String, 0)
  358. )
  359. LZPdkMessage.GameUpdateScore = defClass("GameUpdateScore"
  360. ,defVar("players", VT_Vector(LZPdkMessage.GameUserScoreItem), {})
  361. )
  362. -- 广播玩家轮次
  363. LZPdkMessage.GameBroadcastTurns = defClass("GameBroadcastTurns"
  364. ,defVar("userId", VT_Int, 0)
  365. ,defVar("seatId", VT_Int, 0)
  366. --出牌flag,0:要不起 1:可操作
  367. ,defVar("outFlag", VT_UChar, 0)
  368. --操作类型 0-只能pass 1-可以出牌也可以pass 2-必须出牌
  369. ,defVar("opType", VT_UChar, 0)
  370. )
  371. --快速开始请求
  372. LZPdkMessage.FastStartRequest = defClass("FastStartRequest"
  373. , defVar("result", VT_UChar, 1)
  374. )
  375. --快速开始请求结果
  376. LZPdkMessage.FastStartRequestResult = defClass("FastStartRequestResult"
  377. , defVar("result", VT_Short, -1)
  378. )
  379. -- 服务器广播快速开始状态
  380. LZPdkMessage.FastPlayer = defClass("FastPlayer"
  381. , defVar("nUserId", VT_Int, 0)
  382. --1:发起申请 2:同意 3:拒绝 4:未操作 5:有人进来或者退出 6:超时未处理
  383. , defVar("nStatus", VT_UChar, 0)
  384. )
  385. -- 服务器广播快速开始状态
  386. LZPdkMessage.FastStartStatus = defClass("FastStartStatus"
  387. --发起玩家id
  388. , defVar("nUserId", VT_Int, 0)
  389. --1:发起申请 2:同意 3:拒绝 4:未操作 5:有人进来或者退出 6:超时未处理
  390. , defVar("nStatus", VT_Short, 0)
  391. --玩家操作状态列表
  392. , defVar("pList", VT_Vector(LZPdkMessage.FastPlayer), {})
  393. --剩余时间
  394. , defVar("timeOut", VT_Short, 0)
  395. )
  396. -- 游戏快速开始
  397. LZPdkMessage.FastSuccessPlayer = defClass("FastSuccessPlayer"
  398. , defVar("nUserId", VT_Int, 0)
  399. , defVar("nSeatId", VT_UChar, 0)
  400. )
  401. -- 游戏快速开始玩家
  402. LZPdkMessage.UpdateSeatIds = defClass("UpdateSeatIds"
  403. , defVar("pList", VT_Vector(LZPdkMessage.FastSuccessPlayer), {})
  404. )
  405. --server收到0x8060协议后,广播当前桌子上所有用户
  406. LZPdkMessage.ServerChangeUserInfo = defClass("ServerChangeUserInfo"
  407. --更新信息的用户uid
  408. , defVar("uid", VT_Int, -1)
  409. --用户信息
  410. , defVar("userInfo", VT_String, "")
  411. --保留字段,暂不使用
  412. , defVar("reserved", VT_String, "")
  413. )
  414. return LZPdkMessage