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.

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