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_xzdd.luaScript.Protocol.xzddProtocol") local Room = class("xzdd2rRoom", MJProtocol) function Room:ctor(net) Room.super.ctor(self, net); end -- 游戏正式开始 function Room:onGameStartResponse(status, response) logD("-------------------- 新的一局开始了 ------------------------") if not self.roomInfo then logD("self.roomInfo no exist,容错处理!") return end logD("Room:onGameStartResponse(), ", table.tostring(response)) self.roomInfo.nGameStartCount = response.nGameStartCount; self.roomInfo.nTotalGameNum = response.nTotalGameNum; self.roomInfo.nRoomOwnedUid = response.nRoomOwnedUid; self.roomInfo.nBankSeatId = response.nBankSeatId; self.roomInfo.shuffleList = response.shuffleList; self.roomInfo.shuffleNum = response.shuffleNum; local gameInfo = json.decode(self.roomInfo.strGameInfo) local cardtype = tonumber(gameInfo.cardtype) or 3 local totalCardNum = (cardtype == 2) and 72 or 108 self.roomInfo.nLeaveCardNum = totalCardNum - self:getPlayerCount() * 13 - 1 -- 清空上一局的手牌信息 self.cards = {} -- 清空上一局的换牌数据 for i, v in pairs(self.roomInfo.memberList) do v.isSwapCard = 0 end -- 发送广播通知,游戏开始了 self:dispatchEvent({name = MJDefine.MJEvent.GameStartResponse}); end --换三张错误 function Room:onChangeCardError(status,response) logD("-------------------- 换三张/四张错误 ------------------------") if not self.roomInfo then print("容错处理") return end local gameInfo = json.decode(self.roomInfo.strGameInfo) local swapcard = tonumber(gameInfo.swapcard) or 4 logD("Room:onChangeCardError(), ", table.tostring(response)) local msg = { [1] = string.format("换牌数量小于%s", swapcard), [2] = "牌面值错误", } local defaultStr = string.format("换%s张未知错误", (swapcard == 4) and '四' or '三') local m = msg[response.errFlag] or defaultStr showTooltip(""..m) self:dispatchEvent({name = MJDefine.MJEvent.SwapCardErr ,response = response}); end --请求换三张 function Room:requestSwapCards( cards ) local request = MJMessage.GetSwapCards:new() for _,v in ipairs(cards) do table.insert(request.bySwapCard.Datas, v) --table.insert(request.byOutCard.Datas, v) end -- 如果是3张,则强制加个0(保持4张值) if #cards == 3 then table.insert(request.bySwapCard.Datas, 0) end logD('Room:requestSwapCards,请求换牌 ', table.tostring(cards)) self:sendResponse{cmd = RoomCmd.GAME_COMMAND_REQUEST_CHANGE_CARD , sender = request} end function Room:isCanTing() local gameInfo = json.decode(self.roomInfo.strGameInfo) local isCanTing = (tonumber(gameInfo.ting) or 0) > 0 return isCanTing end return Room;