|
- 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;
|