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

553 行
20 KiB

  1. local RoomCmd=MJFramework.MJImport("mj.luaScript.Protocol.MJCmd")
  2. local MJMessage=MJFramework.MJImport("mj.luaScript.Protocol.MJMessage")
  3. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  4. local MJProtocol=MJFramework.MJFrameworkClassImprot("mj.luaScript.Protocol.MJProtocol")
  5. local Room = class("luzhouguiRoom" , MJProtocol)
  6. -- 视角转换
  7. function Room:transPos(targetSeatId, seatId )
  8. local MaxCount = self.roomInfo.nMaxPlayCount
  9. local showPos = 4
  10. local target = targetSeatId
  11. if target <= seatId then
  12. showPos = seatId - target
  13. elseif target > seatId then
  14. showPos = MaxCount - target + seatId
  15. end
  16. return showPos
  17. end
  18. -- 根据uid获取座位号
  19. function Room:getSeatIdByUserId( nUserId )
  20. return self:getSeatIdByViewId(self:getViewIdByUserId(nUserId))
  21. end
  22. -- 获取房间最大玩家人数
  23. function Room:getMaxPlayerCount()
  24. return self.roomInfo.nMaxPlayCount
  25. end
  26. -- 获取房间人数
  27. function Room:getPlayerCount()
  28. local count = 0
  29. for k,v in pairs(self.roomInfo.memberList) do
  30. count = count + 1
  31. end
  32. return count
  33. end
  34. function Room:cleanTingStatus()
  35. local myUserId = app.user.loginInfo.uid
  36. if self.roomInfo.memberList[myUserId] and self.roomInfo.memberList[myUserId].nTingStatus then
  37. self.roomInfo.memberList[myUserId].nTingStatus = MJDefine.MJTingStatus.NoTing
  38. end
  39. end
  40. function Room:onTingCardResult( status, response )
  41. logD("Room:onTingCardResult(), ", table.tostring(response))
  42. print("--------onTingCardResult--------")
  43. if not self.roomInfo then
  44. logD("self.roomInfo no exist,容错处理!")
  45. return
  46. end
  47. -- self:dispatchEvent({name = MJDefine.MJEvent.TingResult,response = response})
  48. end
  49. function Room:onTingCardStatus(status, response)
  50. logD("Room:onTingCardStatus(), ", table.tostring(response))
  51. if not self.roomInfo then
  52. logD("self.roomInfo no exist,容错处理!")
  53. return
  54. end
  55. -- local myUserId = app.user.loginInfo.uid
  56. -- self.roomInfo.memberList[myUserId].nTingStatus=response.nTingStatus
  57. -- self:dispatchEvent({name = MJDefine.MJEvent.TingSatus})
  58. end
  59. -- 游戏发牌结果
  60. function Room:onGameSendCardResponse(status, response)
  61. logD("-------------------- 游戏发牌 ------------------------")
  62. if not self.roomInfo then
  63. logD("self.roomInfo no exist,容错处理!")
  64. return
  65. end
  66. --[[ -- 用户uid
  67. , defVar("nUserId", VT_Int, 0)
  68. -- 庄家第一张摸的牌
  69. , defVar("nbankFirstGrabCard", VT_UChar, 0)
  70. -- 牌值类型列表
  71. , defVar("cardList", VT_Vector(CardSendListData), {})--]]
  72. logD("Room:onGameSendCardResponse(), ", table.tostring(response))
  73. -- self.roomInfo.nbankFirstGrabCard = response.nbankFirstGrabCard
  74. --目前server只发自己过来,后续战绩回放考虑到会发所有玩家来,故以userid为key于扩展
  75. -- local cardData = self:serverCardToMyCard(response.cardList)
  76. -- logD("Room:onGameSendCardResponse : "..table.tostring(cardData))
  77. for k,v in pairs(response.playerCards) do
  78. self.roomInfo.memberList[v.nUserId].handCards = v.handCards
  79. self.roomInfo.memberList[v.nUserId].isBaoPai = v.isTing
  80. logD("------isBaoPai= ",self.roomInfo.memberList[v.nUserId].isBaoPai)
  81. --[[if v.isTing == 1 then
  82. self.roomInfo.memberList[v.nUserId].isBaoPai = 1
  83. end--]]
  84. end
  85. -- self.cards[response.nUserId] = cardData
  86. -- 发送广播通知,发牌开始了
  87. self:dispatchEvent({name = MJDefine.MJEvent.GameSendCardResponse});
  88. end
  89. function Room:onBankerOutCard(status, response)
  90. logD("-------------------- 游戏庄家起手操作------------------------")
  91. if not self.roomInfo then
  92. logD("self.roomInfo no exist,容错处理!")
  93. return
  94. end
  95. self.roomInfo.nLeaveCardNum = response.nLeaveCardNum
  96. self.roomInfo.needOutCardId = response.nUserId
  97. --logD("Room:onBankerOutCard(), ", table.tostring(response))
  98. local myUserId = self:getMyUserId()
  99. self.roomInfo.tings={}
  100. if response.nUserId==myUserId then
  101. -- for k,v in pairs(response.pushCardTing) do
  102. -- self.roomInfo.tings[v.outCard]=v.tingCards.Datas
  103. -- end
  104. self.roomInfo.tings = response.pushCardTing
  105. --这里自己摸牌后,不隐藏听牌提示
  106. --self.roomInfo.memberList[myUserId].nTingStatus=MJDefine.MJTingStatus.NoTing
  107. -- dump(self.roomInfo.memberList[myUserId])
  108. --self:dispatchEvent({name = MJDefine.MJEvent.TingSatus})
  109. end
  110. -- 发送广播通知,游戏开始了
  111. self:dispatchEvent({name = MJDefine.MJEvent.BankerOutCard ,response = response});
  112. end
  113. function Room:onBaoPai(status,response)
  114. logD("-------------------- 广播爆牌 ------------------------")
  115. if not self.roomInfo then
  116. print("容错处理")
  117. return
  118. end
  119. local myUserId = self:getMyUserId()
  120. if response.nUserId == myUserId then
  121. self.roomInfo.memberList[myUserId].isBaoPai = response.isBaoPai
  122. end
  123. logD("luzhouRoom:onBaoPai(), response = ", table.tostring(response))
  124. self:dispatchEvent({name = MJDefine.MJEvent.BaoPaiResponse ,response = response});
  125. end
  126. function Room:onBankerBaoPai(status,response)
  127. logD("-------------------- 通知庄家爆牌 ------------------------")
  128. if not self.roomInfo then
  129. print("容错处理")
  130. return
  131. end
  132. logD("luzhouRoom:onBankerBaoPai(), response = ", table.tostring(response))
  133. self:dispatchEvent({name = MJDefine.MJEvent.BankerBaoPai ,response = response});
  134. end
  135. --断线重连
  136. function Room:onGameReconnection(status,response)
  137. logD("===============重连成功,清空之前所有存在的队列==================")
  138. app.net:onMsgClear()
  139. app.net:onMsgPause()
  140. logD("Room:onGameReconnection(), response = ", table.tostring(response))
  141. self:initRoomInfo();
  142. -- 获取到的房间信息
  143. self.roomInfo.isEapCreate = response.isEapCreate --是否由电竞SDK创建的房间 1是 0否
  144. self.roomInfo.EapTime = response.EapTime -- 电竞倒计时时间
  145. self.roomInfo.shuffleNum = response.shuffleNum
  146. self.roomInfo.gameId = response.gameId
  147. self.roomInfo.nShowTableId = response.nShowTableId
  148. self.roomInfo.nMaxPlayCount = response.nMaxPlayCount
  149. self.roomInfo.nRoomOwnedUid = response.nRoomOwnedUid
  150. self.roomInfo.nTotalGameNum = response.nTotalGameNum
  151. self.roomInfo.nBaseChips = response.nBaseChips
  152. self.roomInfo.strGameInfo = response.strGameInfo
  153. self.roomInfo.nGameStartCount = response.nGameStartCount
  154. self.roomInfo.nStatus = response.nStatus
  155. self.roomInfo.nBankSeatId = response.nBankSeatId
  156. self.roomInfo.nMySeatId = response.nMySeatId
  157. self.roomInfo.bUserDisbandGame = response.bUserDisbandGame
  158. self.roomInfo.nDismissStateTime = response.nDismissStateTime
  159. self.roomInfo.leaveCards = response.leaveCards
  160. self.roomInfo.nLeaveCardNum = #self.roomInfo.leaveCards
  161. self.roomInfo.outCardUserId = response.outCardUserId
  162. self.roomInfo.outCardSeatId = response.outCardSeatId
  163. self.roomInfo.lastOpCard = response.lastOpCard
  164. self.roomInfo.operates = response.operates
  165. self.roomInfo.isNeedOutCard = response.isNeedOutCard
  166. self.roomInfo.needOutCardId = response.needOutCardId
  167. --self.roomInfo.lastOutCard = response.lastOutCard
  168. self.roomInfo.stopFlag = response.stopFlag
  169. self.roomInfo.playerInfos = response.playerInfos
  170. --胡牌玩家列表
  171. self.roomInfo.resultInfos = response.resultInfos
  172. self.roomInfo.opsCntMapString = response.opsCntMapString
  173. self.roomInfo.tingStatus = response.tingStatus==255 and 0 or 1 --服务器-1为没听 0为听
  174. self.roomInfo.tings = response.tingCard
  175. self.roomInfo.isOutHongZhong = response.isOutHongZhong
  176. if self.roomInfo.nGameStartCount > 0 then
  177. self.roomInfo.nMaxPlayCount = table.nums(response.playerInfos)
  178. end
  179. -- 桌子上其他玩家的信息
  180. for k,v in pairs(response.playerInfos) do
  181. self:setMemberInfo(v)
  182. self.dismissInfo[v.nUserId] = v.nDisbandStatus
  183. --这里只记录,暂时没用到。可能战绩回放的时候是需要用的
  184. -- local cardData = self:serverCardToMyCard(v.handCard)
  185. -- self.roomInfo.memberList[v.nUserId].cardList = {}
  186. -- self.roomInfo.memberList[v.nUserId].cardList = cardData
  187. end
  188. --结算信息
  189. for k,v in pairs(response.resultInfos) do
  190. --胡牌者的用户id
  191. self.roomInfo.memberList[v.nUserId].nUserId=v.nUserId
  192. --1胡牌 2听叫 0默认
  193. self.roomInfo.memberList[v.nUserId].userStatus = v.userStatus
  194. --玩家本局输赢情况 0不胡不输 1胡,2点炮或者输
  195. self.roomInfo.memberList[v.nUserId].result=v.result
  196. -- 胡牌牌类型-7对胡、平胡,0为输或者不胡不输
  197. self.roomInfo.memberList[v.nUserId].huType=v.huType
  198. --胡的牌
  199. self.roomInfo.memberList[v.nUserId].huCard=v.huCard
  200. --胡牌顺序
  201. self.roomInfo.memberList[v.nUserId].huOrder=v.huOrder
  202. --谁点的炮
  203. self.roomInfo.memberList[v.nUserId].dpSeatId=v.dpSeatId
  204. --根次数
  205. self.roomInfo.memberList[v.nUserId].genCount=v.genCount
  206. self.roomInfo.memberList[v.nUserId].isXiQian=v.isXiQian
  207. end
  208. self:addExtendData(response)
  209. local extInfo = json.decode(response.extJson or "")
  210. self.roomInfo.extJson = extInfo
  211. local uid = self:getMyUserId()
  212. if extInfo and type(extInfo) == 'table' then
  213. local myInfo = extInfo[tostring(uid)]
  214. self.roomInfo.hosting = myInfo.hosted or 0--托管状态
  215. self.roomInfo.quickStartInfo = extInfo.faststart
  216. if extInfo.offlinetime then
  217. for nUserId,offlinetime in pairs(extInfo.offlinetime) do
  218. self.roomInfo.memberList[tonumber(nUserId)].offlinetime = offlinetime or 0
  219. end
  220. end
  221. end
  222. --更新自己的数据
  223. -- local myUserId = app.user.loginInfo.uid
  224. -- self.cards[myUserId] = self.roomInfo.memberList[myUserId].handCards
  225. print("self.cards[myUserId]:"..table.tostring(self.cards[myUserId]))
  226. -- 更新椅子号
  227. self:updateUserSeateShowId()
  228. local jsonInfo = json.decode(self.roomInfo.strGameInfo)
  229. -- 发送通知
  230. self:dispatchEvent({name = MJDefine.MJEvent.EnterRoomSuccess, gameId = app.gameId, gameType = jsonInfo.gamerule})
  231. end
  232. function Room:addExtendData(response)
  233. end
  234. function Room:setMemberInfo(v)
  235. Room.super.setMemberInfo(self,v)
  236. self.roomInfo.memberList[v.nUserId].fanshu = v.fanshu
  237. --是否大叫
  238. self.roomInfo.memberList[v.nUserId].isDj = v.isDj
  239. --是否花猪
  240. self.roomInfo.memberList[v.nUserId].isHz = v.isHz
  241. --点炮次数
  242. self.roomInfo.memberList[v.nUserId].dpCount = v.dpCount
  243. --点炮顺序
  244. self.roomInfo.memberList[v.nUserId].dpOrder = v.dpOrder
  245. --是否已爆牌
  246. self.roomInfo.memberList[v.nUserId].isBaoPai = v.isBaoPai
  247. --是否可以爆牌
  248. self.roomInfo.memberList[v.nUserId].canBaoPai = v.canBaoPai
  249. self.roomInfo.memberList[v.nUserId].result = v.result or 0
  250. self.roomInfo.memberList[v.nUserId].huType = v.huType or 0
  251. --[[if self.roomInfo.tableGroupCards then
  252. for i,k in pairs(self.roomInfo.tableGroupCards) do
  253. if v.nUserId == k.nUserId then
  254. self.roomInfo.memberList[v.nUserId].gruoupCards = k.operates
  255. end
  256. end
  257. else
  258. self.roomInfo.memberList[v.nUserId].gruoupCards = v.gruoupCards
  259. end--]]
  260. end
  261. function Room:onHuResponse(status,response)
  262. logD("--------------------鬼麻將 通知胡 ------------------------")
  263. logD("Room:onHuResponse(), response = ", table.tostring(response))
  264. if not self.roomInfo then
  265. logD("self.roomInfo no exist,容错处理!")
  266. return
  267. end
  268. if self.roomInfo.memberList[response.nUserId] then
  269. self.roomInfo.memberList[response.nUserId].nUserId = response.nUserId
  270. self.roomInfo.memberList[response.nUserId].huCard = response.huCard
  271. self.roomInfo.memberList[response.nUserId].isQiangGng = response.isQiangGng
  272. self.roomInfo.memberList[response.nUserId].isGspHu = response.isGspHu
  273. self.roomInfo.memberList[response.nUserId].isGskhHu = response.isGskhHu
  274. self.roomInfo.memberList[response.nUserId].redRealCard = response.redRealCard
  275. end
  276. self:dispatchEvent({name = MJDefine.MJEvent.HuResponse,response = response});
  277. end
  278. -- 小局结算
  279. function Room:onGameXiaoJuResponse(status, response)
  280. logD("--------------------鬼麻將 小局结算 ------------------------")
  281. if not self.roomInfo then
  282. logD("self.roomInfo no exist,容错处理!")
  283. return
  284. end
  285. -- 一局结束的原因
  286. self.roomInfo.stopFlag=response.stopFlag
  287. -- 房间信息
  288. self.roomInfo.strGameInfo=response.strGameInfo
  289. ---self.roomInfo.resultInfos = response.allPlayerInfo
  290. --玩家信息
  291. for k,v in pairs(response.allPlayerInfo) do
  292. if self.roomInfo.memberList[v.nUserId] then
  293. self.roomInfo.memberList[v.nUserId].nUserId = v.nUserId
  294. --当前局分数
  295. self.roomInfo.memberList[v.nUserId].nTurnScore=v.nTurnScore
  296. --总分
  297. self.roomInfo.memberList[v.nUserId].nTotalMoney=v.nTotalMoney
  298. --番数
  299. self.roomInfo.memberList[v.nUserId].fanshu=v.fanshu
  300. self.roomInfo.memberList[v.nUserId].userStatus = v.userStatus
  301. -- 胡牌牌类型-7对胡、平胡,0为输或者不胡不输
  302. self.roomInfo.memberList[v.nUserId].huType=v.huType
  303. if v.gruoupCards then
  304. for _,group in ipairs(v.gruoupCards) do
  305. group.targetSeatId = self:getSeatIdByUserId(v.nUserId)
  306. end
  307. end
  308. self.roomInfo.memberList[v.nUserId].gruoupCards = v.gruoupCards
  309. self.roomInfo.memberList[v.nUserId].handCards = v.handCards
  310. self.roomInfo.memberList[v.nUserId].outCards = v.outCards
  311. self.roomInfo.memberList[v.nUserId].huCard = v.huCard
  312. --胡牌顺序
  313. self.roomInfo.memberList[v.nUserId].huOrder = v.huOrder
  314. --玩家本局输赢情况 0不胡不输 1胡,2点炮或者输
  315. self.roomInfo.memberList[v.nUserId].result=v.result or 0
  316. --点炮次数
  317. self.roomInfo.memberList[v.nUserId].dpCount = v.dpCount
  318. --谁点炮
  319. self.roomInfo.memberList[v.nUserId].dpSeatId = v.dpSeatId
  320. --点炮顺序
  321. self.roomInfo.memberList[v.nUserId].dpOrder = v.dpOrder
  322. --是否大叫
  323. self.roomInfo.memberList[v.nUserId].isDj = v.isDj
  324. --是否花猪
  325. self.roomInfo.memberList[v.nUserId].isHz = v.isHz
  326. --根次数
  327. self.roomInfo.memberList[v.nUserId].genCount = v.genCount
  328. self.roomInfo.memberList[v.nUserId].isXiQian = v.isXiQian
  329. end
  330. --[[self.roomInfo.resultInfos[v.nUserId].nUserId = v.nUserId
  331. self.roomInfo.resultInfos[v.nUserId].huType=v.huType
  332. --根次数
  333. self.roomInfo.resultInfos[v.nUserId].genCount = v.genCount
  334. --胡牌顺序
  335. self.roomInfo.resultInfos[v.nUserId].huOrder = v.huOrder
  336. --玩家本局输赢情况 0不胡不输 1胡,2点炮或者输
  337. self.roomInfo.resultInfos[v.nUserId].result=v.result
  338. self.roomInfo.resultInfos[v.nUserId].isXiQian=v.isXiQian]]--
  339. end
  340. -- self.roomInfo.playerInfos",VT_Vector(message.XiaojuPlayerInfo),{})
  341. --是否大局结束,结束是1
  342. self.roomInfo.isGameOver=response.isGameOver
  343. --操作统计
  344. self.roomInfo.opsCntMapString=response.opsCntMapString
  345. logD("luzhouguiRoom:onGameXiaoJuResponse() :", table.tostring(response))
  346. self:dispatchEvent({name = MJDefine.MJEvent.GameXiaoJuResponse,response = response});
  347. end
  348. --大局结算
  349. function Room:onGameDaJuResponse(status, response)
  350. logD("-------------------- 大局结算 ------------------------")
  351. if not self.roomInfo then
  352. logD("self.roomInfo no exist,容错处理!")
  353. return
  354. end
  355. for k,v in pairs(response.nTotalPlayerInfos) do
  356. if self.roomInfo.memberList[v.nUserId] then
  357. --self.roomInfo.memberList[v.nUserId].nTotalInfo=json.decode(v.nTotalInfo)
  358. self.roomInfo.memberList[v.nUserId].nTotalScore = v.nTotalScore
  359. self.roomInfo.memberList[v.nUserId].roomCard = v.roomCard
  360. end
  361. end
  362. --房卡消耗
  363. for k,v in pairs(response.costCardInfos) do
  364. if self.roomInfo.memberList[v.nUserId] then
  365. self.roomInfo.memberList[v.nUserId].costCard = v.costCard
  366. end
  367. end
  368. self.roomInfo.stopFlag = response.stopFlag
  369. --解散状态
  370. local disbandStatus = json.decode(response.strDisbandStatus)
  371. for k,v in pairs(disbandStatus) do
  372. self.dismissInfo[tonumber(k)] = tonumber(v)
  373. end
  374. --结束时间
  375. self.roomInfo.nEndTime = response.nEndTime or os.time()
  376. logD("Room:onGameDaJuResponse() :", table.tostring(response))
  377. self:dispatchEvent({name = MJDefine.MJEvent.GameDaJuResponse ,response = response});
  378. end
  379. function Room:pushTing(status,response)
  380. logD("-------------------- Room:pushTing ------------------------")
  381. logD("Room:pushTing(), ", table.tostring(response))
  382. if not self.roomInfo then
  383. print("容错处理")
  384. return
  385. end
  386. self.roomInfo.tings={}
  387. for k,v in pairs(response.pushTing) do
  388. self.roomInfo.tings=response.pushTing
  389. --self.roomInfo.tings[v.outCard]=v.tingCards.Datas
  390. end
  391. self:dispatchEvent({name = MJDefine.MJEvent.OutCardTings})
  392. end
  393. -- 玩家进入桌子成功
  394. function Room:onSitDownSuccessResponse(status, response)
  395. logD("--------------------玩家进入桌子成功--------------------")
  396. logD("Room:onSitDownSuccessResponse(), ", table.tostring(response))
  397. app.net:onMsgClear()
  398. app.net:onMsgPause()
  399. -- 记录当前桌子号
  400. self:initRoomInfo()
  401. -- 获取到的房间信息
  402. -- self.gameId = response.gameId
  403. self.roomInfo.isEapCreate = response.isEapCreate --是否由电竞SDK创建的房间 1是 0否
  404. self.roomInfo.EapTime = response.EapTime -- 电竞倒计时时间
  405. self.roomInfo.gameId = response.gameId
  406. self.roomInfo.nShowTableId = response.nShowTableId
  407. self.roomInfo.nMaxPlayCount = response.nMaxPlayCount
  408. self.roomInfo.nRoomOwnedUid = response.nRoomOwnedUid
  409. self.roomInfo.nTotalGameNum = response.nTotalGameNum
  410. self.roomInfo.strGameInfo = response.strGameInfo
  411. self.roomInfo.nGameStartCount = response.nGameStartCount or 0
  412. self.roomInfo.nLeaveCardNum = response.nLeaveCardNum or 0
  413. -- 桌子上其他玩家的信息
  414. for k,v in pairs(response.memberList) do
  415. self.roomInfo.memberList[v.nUserId] = v
  416. -- self.roomInfo.memberList[v.nUserId].nTingStatus=MJDefine.MJTingStatus.NoTing
  417. end
  418. -- 更新椅子号
  419. self:updateUserSeateShowId()
  420. logD("Room:onSitDownSuccessResponse() roomInfo = ", table.tostring(self.roomInfo))
  421. if self.roomInfo.isEapCreate == 1 then
  422. self:sendResponse{cmd = RoomCmd.GAME_COMMAND_USER_READY}
  423. end
  424. -- 发送通知
  425. self:dispatchEvent({name = MJDefine.MJEvent.EnterRoomSuccess, gameId = self.roomInfo.gameId, gameType = self.roomInfo.strGameInfo.gamerule})
  426. end
  427. function Room:onWaitOperate(status, response)
  428. logD("Room:onWaitOperate(), ", table.tostring(response))
  429. self:dispatchEvent({name = MJDefine.MJEvent.WaitOperate ,response = response});
  430. end
  431. function Room:onQiangDuanOperates(status, response)
  432. logD("Room:onQiangDuanOperates(), ", table.tostring(response))
  433. self:dispatchEvent({name = MJDefine.MJEvent.QiangDuanOperates ,response = response});
  434. end
  435. function Room:onOutRedCardInfo(status, response)
  436. logD("Room:onOutRedCardInfo(), ", table.tostring(response))
  437. self:dispatchEvent({name = MJDefine.MJEvent.OutRedCardInfo ,response = response});
  438. end
  439. -- 托管
  440. function Room:onHostingRequest( status, response )
  441. -- 是否托管
  442. if response.nUserId == self:getMyUserId() then
  443. self.roomInfo.hosting = response.status
  444. end
  445. self:dispatchEvent({name = MJDefine.MJEvent.HostingRequest, response = response});
  446. end
  447. -- 获取本人是否处于托管中
  448. function Room:getMeIsHosting()
  449. return (self.roomInfo.hosting or 0) == 1
  450. end
  451. function Room:ctor(net)
  452. Room.super.ctor(self , net);
  453. -- 请求爆牌
  454. self:defMsgFunc{name = MJDefine.MJEvent.BaoPaiRequest,cmd = RoomCmd.GAME_COMMAND_REQUEST_BAO_PAI,sender = MJMessage.BaoPaiRequest};
  455. -- 请求刷新桌子
  456. self:defMsgFunc{name = MJDefine.MJEvent.GetTableInfo,cmd = RoomCmd.GAME_COMMAND_GET_TABLE_INFO};
  457. --玩家出牌的听牌信息
  458. self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_OUT_CARD_TING_INFO,reader = MJMessage.OutCardTingInfo,func = handler(self,self.pushTing)}
  459. self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_BROADCAST_HU,reader = MJMessage.HuRespone,func = handler(self,self.onHuResponse)}
  460. --广播玩家爆牌
  461. self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_BROADCAST_BAO_PAI,reader = MJMessage.BaoPaiResponse,func = handler(self,self.onBaoPai)}
  462. --通知庄家爆牌
  463. self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_BANKER_BAO_PAI,reader = MJMessage.BankerBaoPai,func = handler(self,self.onBankerBaoPai)}
  464. --通知等待操作
  465. self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_WAIT_OPREATE,reader = MJMessage.WaitOperate,func = handler(self,self.onWaitOperate)}
  466. --通知抢断操作
  467. self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_QIANG_DUAN_OPREATE,reader = MJMessage.QiangDuanOperates,func = handler(self,self.onQiangDuanOperates)}
  468. --通知是否可以打红中
  469. self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_OUT_RED_CARD_INFO,reader = MJMessage.OutRedCardInfo,func = handler(self,self.onOutRedCardInfo)}
  470. -- 请求托管
  471. self:defMsgFunc{name = MJDefine.MJEvent.HostingRequest, cmd = RoomCmd.GAME_COMMAND_USER_HOSTING_REQUEST, sender = MJMessage.HostingRequest}
  472. -- 收到托管回调
  473. self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_USER_HOSTING_REQUEST, reader = MJMessage.HostingRequest, func = handler(self,self.onHostingRequest)}
  474. end
  475. return Room;