|
- local RoomCmd=MJFramework.MJImport("mj.luaScript.Protocol.MJCmd")
- local MJMessage=MJFramework.MJImport("mj.luaScript.Protocol.MJMessage")
- local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
- local MJProtocol=MJFramework.MJFrameworkClassImprot("mj.luaScript.Protocol.MJProtocol")
- local Room = class("NeiJiangMJProtocol" , MJProtocol)
-
- -- 视角转换
- function Room:transPos(targetSeatId, seatId )
- local MaxCount = self.roomInfo.nMaxPlayCounts
- local showPos = 4
- local target = targetSeatId
- if target <= seatId then
- showPos = seatId - target
- elseif target > seatId then
- showPos = MaxCount - target + seatId
- end
- return showPos
- end
-
- -- 根据uid获取座位号
- function Room:getSeatIdByUserId( nUserId )
- return self:getSeatIdByViewId(self:getViewIdByUserId(nUserId))
- end
-
- -- 获取房间最大玩家人数
- function Room:getMaxPlayerCount()
- return self.roomInfo.nMaxPlayCount
- end
-
- -- 获取房间人数
- function Room:getPlayerCount()
- local count = 0
- for k,v in pairs(self.roomInfo.memberList) do
- count = count + 1
- end
- return count
- end
-
- function Room:cleanTingStatus()
- local myUserId = app.user.loginInfo.uid
- if self.roomInfo.memberList[myUserId] and self.roomInfo.memberList[myUserId].nTingStatus then
- self.roomInfo.memberList[myUserId].nTingStatus = MJDefine.MJTingStatus.NoTing
- end
- end
-
- function Room:onTingCardResult( status, response )
- logD("Room:onTingCardResult(), ", table.tostring(response))
- print("--------onTingCardResult--------")
- if not self.roomInfo then
- logD("self.roomInfo no exist,容错处理!")
- return
- end
-
- self:dispatchEvent({name = MJDefine.MJEvent.TingResult,response = response})
- end
-
- function Room:onTingCardStatus(status, response)
- logD("Room:onTingCardStatus(), ", table.tostring(response))
- if not self.roomInfo then
- logD("self.roomInfo no exist,容错处理!")
- return
- end
- local myUserId = app.user.loginInfo.uid
- self.roomInfo.memberList[myUserId].nTingStatus=response.nTingStatus
- self:dispatchEvent({name = MJDefine.MJEvent.TingSatus})
- end
-
- -- 游戏发牌结果
- function Room:onGameSendCardResponse(status, response)
- logD("-------------------- 游戏发牌 ------------------------")
- if not self.roomInfo then
- logD("self.roomInfo no exist,容错处理!")
- return
- end
-
- --[[ -- 用户uid
- , defVar("nUserId", VT_Int, 0)
- -- 庄家第一张摸的牌
- , defVar("nbankFirstGrabCard", VT_UChar, 0)
- -- 牌值类型列表
- , defVar("cardList", VT_Vector(CardSendListData), {})--]]
-
- logD("Room:onGameSendCardResponse(), ", table.tostring(response))
-
- -- self.roomInfo.nbankFirstGrabCard = response.nbankFirstGrabCard
-
- --目前server只发自己过来,后续战绩回放考虑到会发所有玩家来,故以userid为key于扩展
- -- local cardData = self:serverCardToMyCard(response.cardList)
- -- logD("Room:onGameSendCardResponse : "..table.tostring(cardData))
- for k,v in pairs(response.playerCards) do
- self.roomInfo.memberList[v.nUserId].handCards = v.handCards
- self.roomInfo.memberList[v.nUserId].isTing = v.isTing == 1;
- end
-
- -- self.cards[response.nUserId] = cardData
-
- -- 发送广播通知,发牌开始了
- self:dispatchEvent({name = MJDefine.MJEvent.GameSendCardResponse});
- end
-
- function Room:onBankerOutCard(status, response)
- logD("-------------------- 游戏庄家起手操作------------------------")
- if not self.roomInfo then
- logD("self.roomInfo no exist,容错处理!")
- return
- end
- self.roomInfo.nLeaveCardNum = response.nLeaveCardNum
- self.roomInfo.needOutCardId = response.nUserId
-
- --logD("Room:onBankerOutCard(), ", table.tostring(response))
- local myUserId = self:getMyUserId()
- self.roomInfo.tings={}
- if response.nUserId==myUserId then
- -- for k,v in pairs(response.pushCardTing) do
- -- self.roomInfo.tings[v.outCard]=v.tingCards.Datas
- -- end
- self.roomInfo.tings = response.pushCardTing
- --[[--这里自己摸牌后,不隐藏听牌提示
- self.roomInfo.memberList[myUserId].nTingStatus=MJDefine.MJTingStatus.NoTing
- dump(self.roomInfo.memberList[myUserId])
- self:dispatchEvent({name = MJDefine.MJEvent.TingSatus})]]
- end
-
- -- 发送广播通知,游戏开始了
- self:dispatchEvent({name = MJDefine.MJEvent.BankerOutCard ,response = response});
- end
-
- --断线重连
- function Room:onGameReconnection(status,response)
- logD("===============重连成功,清空之前所有存在的队列==================")
-
- app.net:onMsgClear()
- app.net:onMsgPause()
- logD("Room:onGameReconnection(), response = ", table.tostring(response))
- self:initRoomInfo();
-
- -- 获取到的房间信息
- self.roomInfo.shuffleNum = response.shuffleNum;
- self.roomInfo.gameId = response.gameId
- self.roomInfo.nShowTableId = response.nShowTableId
- self.roomInfo.nMaxPlayCount = response.nMaxPlayCount
- self.roomInfo.nRoomOwnedUid = response.nRoomOwnedUid
- self.roomInfo.nTotalGameNum = response.nTotalGameNum
- self.roomInfo.nBaseChips = response.nBaseChips
- self.roomInfo.strGameInfo = response.strGameInfo
- self.roomInfo.nGameStartCount = response.nGameStartCount
- self.roomInfo.nStatus = response.nStatus
- self.roomInfo.nBankSeatId = response.nBankSeatId
- self.roomInfo.nMySeatId = response.nMySeatId
- self.roomInfo.nBaoZiAddFan = response.nBaoZiAddFan
- self.roomInfo.bUserDisbandGame = response.bUserDisbandGame
- self.roomInfo.nDismissStateTime = response.nDismissStateTime
- self.roomInfo.leaveCards = response.leaveCards
- self.roomInfo.nLeaveCardNum = #self.roomInfo.leaveCards
- self.roomInfo.outCardUserId = response.outCardUserId
- self.roomInfo.outCardSeatId = response.outCardSeatId
- self.roomInfo.lastOpCard = response.lastOpCard
-
- self.roomInfo.operates = response.operates
-
- self.roomInfo.isNeedOutCard = response.isNeedOutCard
- self.roomInfo.needOutCardId = response.needOutCardId
- --self.roomInfo.lastOutCard = response.lastOutCard
- self.roomInfo.stopFlag = response.stopFlag
- self.roomInfo.playerInfos = response.playerInfos
- --胡牌玩家列表
- self.roomInfo.resultInfos = response.resultInfos
- self.roomInfo.opsCntMapString = response.opsCntMapString
- self.roomInfo.tingStatus = response.tingStatus --服务器0为没听 1为听
- self.roomInfo.tings = response.tingCard
- self.roomInfo.diceNum = response.diceNum;
-
- if self.roomInfo.nGameStartCount > 0 then
- self.roomInfo.nMaxPlayCount = table.nums(response.playerInfos)
- end
-
- -- 桌子上其他玩家的信息
- for k,v in pairs(response.playerInfos) do
- self:setMemberInfo(v)
-
- self.dismissInfo[v.nUserId] = v.nDisbandStatus
- --这里只记录,暂时没用到。可能战绩回放的时候是需要用的
- -- local cardData = self:serverCardToMyCard(v.handCard)
- -- self.roomInfo.memberList[v.nUserId].cardList = {}
- -- self.roomInfo.memberList[v.nUserId].cardList = cardData
- end
-
-
- local myUserId = self:getMyUserId();
- self.roomInfo.memberList[myUserId].nTingStatus = response.tingStatus;
-
-
- --结算信息
- for k,v in pairs(response.resultInfos) do
- --胡牌者的用户id
- self.roomInfo.memberList[v.nUserId].nUserId=v.nUserId
- --1胡牌 2听叫 0默认
- self.roomInfo.memberList[v.nUserId].userStatus = v.userStatus
- --玩家本局输赢情况 0不胡不输 1胡,2点炮或者输
- self.roomInfo.memberList[v.nUserId].result=v.result
- -- 胡牌牌类型-7对胡、平胡,0为输或者不胡不输
- self.roomInfo.memberList[v.nUserId].huType=v.huType
- -- 子胡牌类型,天胡 or 地胡
- self.roomInfo.memberList[v.nUserId].subHuType = v.subHuType;
- --胡的牌
- self.roomInfo.memberList[v.nUserId].huCard=v.huCard
- --胡牌顺序
- self.roomInfo.memberList[v.nUserId].huOrder=v.huOrder
- --谁点的炮
- self.roomInfo.memberList[v.nUserId].dpSeatId=v.dpSeatId
- --根次数
- self.roomInfo.memberList[v.nUserId].genCount=v.genCount
- -- 是否绝张
- self.roomInfo.memberList[v.nUserId].bIsJueZhang = v.bIsJueZhang;
- -- 是否卡二条
- self.roomInfo.memberList[v.nUserId].bIsKaErTiaoHu = v.bIsKaErTiaoHu;
- -- 是否海底捞月
- self.roomInfo.memberList[v.nUserId].bIsHaiDiLaoYue = v.bIsHaiDiLaoYue;
- -- 是否海底捞
- self.roomInfo.memberList[v.nUserId].bIsHaiDiPao = v.bIsHaiDiPao;
- -- 是否杠上开花
- self.roomInfo.memberList[v.nUserId].bGangShangKaiHua = v.bGangShangKaiHua;
- -- 是否杠上炮
- self.roomInfo.memberList[v.nUserId].bGangShangPao = v.bGangShangPao;
- -- 是否抢杠胡
- self.roomInfo.memberList[v.nUserId].bQiangGangHu = v.bQiangGangHu;
- -- 扩展信息
- self.roomInfo.memberList[v.nUserId].extInfo = v.extInfo;
- end
-
- self:addExtendData(response)
-
- local extInfo = json.decode(response.extJson or "")
- local uid = self:getMyUserId()
- if extInfo and type(extInfo) == 'table' then
- --local myInfo = extInfo[tostring(uid)]
- --self.roomInfo.hosting = myInfo.hosted or 0--托管状态
- self.roomInfo.quickStartInfo = extInfo.faststart
-
- if extInfo.offlinetime then
- for nUserId,offlinetime in pairs(extInfo.offlinetime) do
- self.roomInfo.memberList[tonumber(nUserId)].offlinetime = offlinetime or 0
- end
- end
- end
-
- --更新自己的数据
- -- local myUserId = app.user.loginInfo.uid
- -- self.cards[myUserId] = self.roomInfo.memberList[myUserId].handCards
-
- print("self.cards[myUserId]:"..table.tostring(self.cards[myUserId]))
-
- -- 更新椅子号
- self:updateUserSeateShowId()
- local jsonInfo = json.decode(self.roomInfo.strGameInfo)
- -- 发送通知
- self:dispatchEvent({name = MJDefine.MJEvent.EnterRoomSuccess, gameId = app.gameId, gameType = jsonInfo.gamerule})
- end
-
- function Room:addExtendData(response)
-
- end
-
- function Room:setMemberInfo(v)
- Room.super.setMemberInfo(self,v)
- self.roomInfo.memberList[v.nUserId].fanshu = v.fanshu
- --是否大叫
- self.roomInfo.memberList[v.nUserId].isDj = v.isDj
- --是否花猪
- self.roomInfo.memberList[v.nUserId].isHz = v.isHz
- --点炮次数
- self.roomInfo.memberList[v.nUserId].dpCount = v.dpCount
- --点炮顺序
- self.roomInfo.memberList[v.nUserId].dpOrder = v.dpOrder
- -- --是否已爆牌
- -- self.roomInfo.memberList[v.nUserId].isBaoPai = v.isBaoPai
- -- --是否可以爆牌
- -- self.roomInfo.memberList[v.nUserId].canBaoPai = v.canBaoPai
-
- self.roomInfo.memberList[v.nUserId].result = v.result or 0
- self.roomInfo.memberList[v.nUserId].huType = v.huType or 0
- -- 报叫状态
- self.roomInfo.memberList[v.nUserId].nBaoCardState = v.nBaoCardState;
- -- 飘状态
- self.roomInfo.memberList[v.nUserId].nPiaoState = v.nPiaoState;
- -- 一般高
- self.roomInfo.memberList[v.nUserId].nGeneralHigh = v.nGeneralHigh;
- -- 报叫反查
- self.roomInfo.memberList[v.nUserId].nBaoRersaState = v.nBaoRersaState;
-
- --[[if self.roomInfo.tableGroupCards then
- for i,k in pairs(self.roomInfo.tableGroupCards) do
- if v.nUserId == k.nUserId then
- self.roomInfo.memberList[v.nUserId].gruoupCards = k.operates
- end
- end
- else
- self.roomInfo.memberList[v.nUserId].gruoupCards = v.gruoupCards
- end--]]
- end
-
- function Room:onHuResponse(status,response)
- logD("--------------------鬼麻將 通知胡 ------------------------")
- logD("Room:onHuResponse(), response = ", table.tostring(response))
- if not self.roomInfo then
- logD("self.roomInfo no exist,容错处理!")
- return
- end
- if self.roomInfo.memberList[response.nUserId] then
- self.roomInfo.memberList[response.nUserId].nUserId = response.nUserId
- self.roomInfo.memberList[response.nUserId].huCard = response.huCard
- self.roomInfo.memberList[response.nUserId].isQiangGng = response.isQiangGng
- self.roomInfo.memberList[response.nUserId].isGspHu = response.isGspHu
- self.roomInfo.memberList[response.nUserId].isGskhHu = response.isGskhHu
- self.roomInfo.memberList[response.nUserId].redRealCard = response.redRealCard
- end
-
- self:dispatchEvent({name = MJDefine.MJEvent.HuResponse,response = response});
- end
-
-
- -- 小局结算
- function Room:onGameXiaoJuResponse(status, response)
- logD("--------------------鬼麻將 小局结算 ------------------------")
- if not self.roomInfo then
- logD("self.roomInfo no exist,容错处理!")
- return
- end
-
- -- 一局结束的原因
- self.roomInfo.stopFlag=response.stopFlag
- -- 房间信息
- self.roomInfo.strGameInfo=response.strGameInfo
- ---self.roomInfo.resultInfos = response.allPlayerInfo
- --玩家信息
- for k,v in pairs(response.allPlayerInfo) do
- if self.roomInfo.memberList[v.nUserId] then
- self.roomInfo.memberList[v.nUserId].nUserId = v.nUserId
- --当前局分数
- self.roomInfo.memberList[v.nUserId].nTurnScore=v.nTurnScore
- --总分
- self.roomInfo.memberList[v.nUserId].nTotalMoney=v.nTotalMoney
- --番数
- self.roomInfo.memberList[v.nUserId].fanshu=v.fanshu
- self.roomInfo.memberList[v.nUserId].userStatus = v.userStatus
- -- 胡牌牌类型-7对胡、平胡,0为输或者不胡不输
- self.roomInfo.memberList[v.nUserId].huType=v.huType
- if v.gruoupCards then
- for _,group in ipairs(v.gruoupCards) do
- group.targetSeatId = self:getSeatIdByUserId(v.nUserId)
- end
- end
- self.roomInfo.memberList[v.nUserId].gruoupCards = v.gruoupCards
- self.roomInfo.memberList[v.nUserId].handCards = v.handCards
- self.roomInfo.memberList[v.nUserId].outCards = v.outCards
- self.roomInfo.memberList[v.nUserId].huCard = v.huCard
- --胡牌顺序
- self.roomInfo.memberList[v.nUserId].huOrder = v.huOrder
- --玩家本局输赢情况 0不胡不输 1胡,2点炮或者输
- self.roomInfo.memberList[v.nUserId].result=v.result
- -- 子胡牌类型,天胡 or 地胡
- self.roomInfo.memberList[v.nUserId].subHuType = v.subHuType;
- --点炮次数
- self.roomInfo.memberList[v.nUserId].dpCount = v.dpCount
- --谁点炮
- self.roomInfo.memberList[v.nUserId].dpSeatId = v.dpSeatId
- --点炮顺序
- self.roomInfo.memberList[v.nUserId].dpOrder = v.dpOrder
- --是否大叫
- self.roomInfo.memberList[v.nUserId].isDj = v.isDj
- --是否花猪
- self.roomInfo.memberList[v.nUserId].isHz = v.isHz
- --根次数
- self.roomInfo.memberList[v.nUserId].genCount = v.genCount
- -- 报叫状态
- self.roomInfo.memberList[v.nUserId].nBaoCardState = v.nBaoCardState;
- -- 飘状态
- self.roomInfo.memberList[v.nUserId].nPiaoState = v.nPiaoState;
- -- 一般高
- self.roomInfo.memberList[v.nUserId].nGeneralHigh = v.nGeneralHigh;
- -- 报叫反查
- self.roomInfo.memberList[v.nUserId].nBaoRersaState = v.nBaoRersaState;
- -- 是否绝张
- self.roomInfo.memberList[v.nUserId].bIsJueZhang = v.bIsJueZhang;
- -- 是否卡二条
- self.roomInfo.memberList[v.nUserId].bIsKaErTiaoHu = v.bIsKaErTiaoHu;
- -- 是否海底捞月
- self.roomInfo.memberList[v.nUserId].bIsHaiDiLaoYue = v.bIsHaiDiLaoYue;
- -- 是否海底捞
- self.roomInfo.memberList[v.nUserId].bIsHaiDiPao = v.bIsHaiDiPao;
- -- 是否杠上开花
- self.roomInfo.memberList[v.nUserId].bGangShangKaiHua = v.bGangShangKaiHua;
- -- 是否杠上炮
- self.roomInfo.memberList[v.nUserId].bGangShangPao = v.bGangShangPao;
- -- 是否抢杠胡
- self.roomInfo.memberList[v.nUserId].bQiangGangHu = v.bQiangGangHu;
- -- 扩展信息
- self.roomInfo.memberList[v.nUserId].extInfo = v.extInfo;
-
- end
- --[[self.roomInfo.resultInfos[v.nUserId].nUserId = v.nUserId
- self.roomInfo.resultInfos[v.nUserId].huType=v.huType
- --根次数
- self.roomInfo.resultInfos[v.nUserId].genCount = v.genCount
- --胡牌顺序
- self.roomInfo.resultInfos[v.nUserId].huOrder = v.huOrder
- --玩家本局输赢情况 0不胡不输 1胡,2点炮或者输
- self.roomInfo.resultInfos[v.nUserId].result=v.result
- self.roomInfo.resultInfos[v.nUserId].isXiQian=v.isXiQian]]--
- end
- -- self.roomInfo.playerInfos",VT_Vector(message.XiaojuPlayerInfo),{})
-
- --是否大局结束,结束是1
- self.roomInfo.isGameOver=response.isGameOver
-
- --操作统计
- self.roomInfo.opsCntMapString=response.opsCntMapString
-
- logD("NeiJiangMJProtocol:onGameXiaoJuResponse() :", table.tostring(response))
- self:dispatchEvent({name = MJDefine.MJEvent.GameXiaoJuResponse,response = response});
-
- end
-
-
- --大局结算
- function Room:onGameDaJuResponse(status, response)
- logD("-------------------- 大局结算 ------------------------")
- if not self.roomInfo then
- logD("self.roomInfo no exist,容错处理!")
- return
- end
-
- for k,v in pairs(response.nTotalPlayerInfos) do
- if self.roomInfo.memberList[v.nUserId] then
- --self.roomInfo.memberList[v.nUserId].nTotalInfo=json.decode(v.nTotalInfo)
- self.roomInfo.memberList[v.nUserId].nTotalScore = v.nTotalScore
- self.roomInfo.memberList[v.nUserId].roomCard = v.roomCard
- end
- end
- --房卡消耗
- for k,v in pairs(response.costCardInfos) do
- if self.roomInfo.memberList[v.nUserId] then
- self.roomInfo.memberList[v.nUserId].costCard = v.costCard
- end
- end
-
- self.roomInfo.stopFlag = response.stopFlag
- --解散状态
- local disbandStatus = json.decode(response.strDisbandStatus)
- for k,v in pairs(disbandStatus or {}) do
- self.dismissInfo[tonumber(k)] = tonumber(v)
- end
-
- --结束时间
- self.roomInfo.nEndTime = response.nEndTime or os.time()
- logD("Room:onGameDaJuResponse() :", table.tostring(response))
- self:dispatchEvent({name = MJDefine.MJEvent.GameDaJuResponse ,response = response});
- end
-
- function Room:pushTing(status,response)
- logD("-------------------- Room:pushTing ------------------------")
- logD("Room:pushTing(), ", table.tostring(response))
- if not self.roomInfo then
- print("容错处理")
- return
- end
- self.roomInfo.tings={}
- for k,v in pairs(response.pushTing) do
- self.roomInfo.tings=response.pushTing
- --self.roomInfo.tings[v.outCard]=v.tingCards.Datas
- end
- self:dispatchEvent({name = MJDefine.MJEvent.OutCardTings})
- end
-
- -- 玩家进入桌子成功
- function Room:onSitDownSuccessResponse(status, response)
- logD("--------------------玩家进入桌子成功--------------------")
- logD("Room:onSitDownSuccessResponse(), ", table.tostring(response))
-
- app.net:onMsgClear()
- app.net:onMsgPause()
-
- -- 记录当前桌子号
- self:initRoomInfo()
-
- -- 获取到的房间信息
- -- self.gameId = response.gameId
- self.roomInfo.gameId = response.gameId
- self.roomInfo.nShowTableId = response.nShowTableId
- self.roomInfo.nMaxPlayCount = response.nMaxPlayCount
- self.roomInfo.nRoomOwnedUid = response.nRoomOwnedUid
- self.roomInfo.nTotalGameNum = response.nTotalGameNum
- self.roomInfo.strGameInfo = response.strGameInfo
- self.roomInfo.nGameStartCount = response.nGameStartCount or 0
- self.roomInfo.nLeaveCardNum = response.nLeaveCardNum or 0
-
-
- -- 桌子上其他玩家的信息
- for k,v in pairs(response.memberList) do
- self.roomInfo.memberList[v.nUserId] = v
- -- self.roomInfo.memberList[v.nUserId].nTingStatus=MJDefine.MJTingStatus.NoTing
- end
-
- -- 更新椅子号
- self:updateUserSeateShowId()
-
- logD("Room:onSitDownSuccessResponse() roomInfo = ", table.tostring(self.roomInfo))
-
- -- 发送通知
- self:dispatchEvent({name = MJDefine.MJEvent.EnterRoomSuccess, gameId = self.roomInfo.gameId, gameType = self.roomInfo.strGameInfo.gamerule})
- end
-
-
- function Room:onWaitOperate(status, response)
- logD("Room:onWaitOperate(), ", table.tostring(response))
- self:dispatchEvent({name = MJDefine.MJEvent.WaitOperate ,response = response});
- end
-
- function Room:onQiangDuanOperates(status, response)
- logD("Room:onQiangDuanOperates(), ", table.tostring(response))
- self:dispatchEvent({name = MJDefine.MJEvent.QiangDuanOperates ,response = response});
- end
-
- -- 广播摇骰子结果
- function Room:onRollDiceBroadcast (status, response)
- self.roomInfo.diceNum = response.diceNum;
- self:dispatchEvent({name = MJDefine.MJEvent.RollDiceBroadcast, response = response.diceNum});
- end
-
- -- 广播开始飘
- function Room:onPiaoBroadcast( status, response )
- logD("Room:onPiaoBroadcast", table.tostring(response));
- self:dispatchEvent({name = MJDefine.MJEvent.PiaoBroadcast ,response = response});
- end
-
- -- 广播飘的结果
- function Room:onPiaoResponse( status, response )
- logD("Room:onPiaoResponse", table.tostring(response));
- self:dispatchEvent({name = MJDefine.MJEvent.PiaoResponse, response = response});
- end
- --[[/**
- * 通知玩家开始报叫
- * 只有庄家报叫才会收到这个消息
- * 区分其他玩家是否报叫,要从发牌协议中判断,有一个是否可以报叫的字段
- * @param status
- * @param response
- * @return
- */--]]
- function Room:onBaoJiaoBroadcast( status, response )
- logD("Room:onBaoJiaoBroadcast", table.tostring(response));
- response.isMySelf = response.userId == self:getMyUserId();
-
- self:dispatchEvent({name = MJDefine.MJEvent.BaoJiaoBroadcast ,response = response});
- end
- --[[/**
- * 广播玩家报叫结果
- * @param status
- * @param response
- * @return
- */--]]
- function Room:onBaoJiaoResponse( status, response )
- logD("Room:onBaoJiaoResponse", table.tostring(response));
-
- local userId = response.userId;
- self.roomInfo.memberList[userId].nBaoCardState = response.nBaoCardState;
- self:dispatchEvent({name = MJDefine.MJEvent.BaoJiaoResponse ,response = response});
- end
-
- function Room:ctor(net)
- Room.super.ctor(self , net);
- -- 请求飘操作
- self:defMsgFunc{name = MJDefine.MJEvent.PiaoRequest, cmd = RoomCmd.GAME_COMMAND_REQUEST_SELECT_PIAO, sender = MJMessage.PiaoRequest};
- -- 请求报叫操作
- self:defMsgFunc{name = MJDefine.MJEvent.BaoJiaoRequest, cmd = RoomCmd.GAME_COMMAND_REQUEST_BAO_JIAO, sender = MJMessage.BaoJiaoRequest};
-
-
- --玩家出牌的听牌信息
- self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_OUT_CARD_TING_INFO,reader = MJMessage.OutCardTingInfo,func = handler(self,self.pushTing)}
- self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_BROADCAST_HU,reader = MJMessage.HuRespone,func = handler(self,self.onHuResponse)}
-
- --通知等待操作
- self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_WAIT_OPREATE,reader = MJMessage.WaitOperate,func = handler(self,self.onWaitOperate)}
- --通知抢断操作
- self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_QIANG_DUAN_OPREATE,reader = MJMessage.QiangDuanOperates,func = handler(self,self.onQiangDuanOperates)}
- -- 广播摇骰子
- self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_BROADCAST_ROLL_DICE, reader = MJMessage.RollDiceBroadcast, func = handler(self, self.onRollDiceBroadcast)};
- -- 广播玩家飘操作
- self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_BROADCAST_SELECT_PIAO, reader = MJMessage.PiaoBroadcast, func = handler(self, self.onPiaoBroadcast)}
- -- 广播某个玩家操作了飘
- self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_USER_SELECT_PIAO, reader = MJMessage.PiaoResponse, func = handler(self, self.onPiaoResponse)}
- -- 通知报叫操作
- self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_NOTICE_CAN_BAO_JIAO, reader = MJMessage.BaoJiaoBroadcast, func = handler(self, self.onBaoJiaoBroadcast)};
- -- 广播玩家报叫操作
- self:defPushMsg{cmd = RoomCmd.GAME_COMMAND_RESPONSE_BAO_JIAO, reader = MJMessage.BaoJiaoResponse, func = handler(self, self.onBaoJiaoResponse)};
- end
-
- return Room;
|