|
- local MJRoomToolView=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomToolView")
- local MJRoomMessageView=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomMessageView")
- local MJRoomPlayerView=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomPlayerView")
- local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
- local MJFunction=MJFramework.MJImport("mj.luaScript.MJFunction")
- local MJHandCardView=MJFramework.MJImport("mj.luaScript.Views.Game.MJHandCardView")
- -- local MJRoomXiaoJuView=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomXiaoJuView")
- -- local MJRoomDaJuView=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomDaJuView")
- -- local MJRoomDismissView=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomDismissView")
- local MJRoomDirection=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomDirection")
- -- local MJMessage=MJFramework.MJImport("mj.luaScript.Protocol.MJMessage")
- -- local MJ=MJFramework.MJImport("mj.luaScript.Views.Game.MJ")
- local MJWanFa=MJFramework.MJImport("luaScript.SubGameDefine.MaJiang.MJWanFa")
- local MJAnimationCompnent=MJFramework.MJImport("mj.luaScript.Views.Compnent.MJAnimationCompnent")
- local MJSound=MJFramework.MJImport("mj.luaScript.MJSound")
-
- local MJRoomReplayView=MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomReplayView")
- local hongzhongRoomReplayView = class("hongzhongRoomReplayView", MJRoomReplayView)
-
- function hongzhongRoomReplayView:onEnter()
- -- MJRoomReplayView.super.onEnter(self)
- --ui load
- --初始化处理函数
- if self.initHanders then
- self:initHanders()
- end
-
- local ui = loadUI("hongzhong/res/ui_fangjian/hongzhong_ui_fangjian.ui");
- self.ui = ui;
- self:addChild(ui);
-
- -- 初始化GPS组件
- -- self:initGpsComponent();
-
- --加载纹理缓存
- self:loadTextureCache()
-
- -- --监听事件
- -- self:bindAllEvent()
-
- -- self:onGameReconnection()
- self:updateRoomData()
-
-
- --初始化视图
- self:initView()
-
- -- --初始化游戏事件按钮
- self:initGameButton()
-
-
- --默认状态
- self:defaultState()
-
- self:initHandCardNodes()
-
- self:startReplay()
-
- -- MJSound.PlayGameBGM()
- -- playLHQMusic()
- -- 房间号
- local roomInfo=app.room.roomInfo
- self.ui.Items.Text_roomNum:setText(tostring(roomInfo.nShowTableId))
- local ruleAll = MJWanFa.getWanFaInfo(roomInfo.strGameInfo)
- self.ui.Items.Text_Rule:setText(ruleAll)
- self.ui.Items.Layout_TingPai:setVisible(false)
- end
-
- function hongzhongRoomReplayView:ctor(data)
- hongzhongRoomReplayView.super.ctor(self,data)
- -- --玩家牌局面板
- -- self.playerHandCards={}
- -- self.data=data
- -- app:changeGameProtocol(app.gameId,1)
- end
-
-
- function hongzhongRoomReplayView:updateRoomData()
- hongzhongRoomReplayView.super.updateRoomData(self)
- if self.data.ext.piaofen then
- local roomInfo=app.room.roomInfo
- for k,v in pairs(self.data.ext.piaofen) do
- local nUserId=tonumber(k)
- roomInfo.memberList[nUserId].nPiaoNum = v
- end
- end
- end
-
- function hongzhongRoomReplayView:initView()
- hongzhongRoomReplayView.super.initView(self)
- cc.SpriteFrameCache:getInstance():addSpriteFramesWithFile("hongzhong/res/zy_fangjian/mj_piao_fen.plist")
- self:onXiaPiaoResponse({})
- --self:init3DPos()
- self.ui.Items.Button_Info:setVisible(false)
- self.ui.Items.Button_Club:setVisible(false)
- self.ui.Items.Text_Rule:setPositionY(62)
- local exitPt = self.replayView.Items.Button_Exit:getPosition()
- self.replayView.Items.Button_Exit:setPositionY(exitPt.y-30)
- self:adaptPlayerViewPos()
- end
-
- function hongzhongRoomReplayView:adaptPlayerViewPos()
- self.playerNodePos = {}
- for i=1,4 do
- if self.playerView.allNodes[i].player then
- self.playerNodePos[i] = self.playerView.allNodes[i].player:getPosition()
- end
- end
- self.playerView.allNodes[1].player:setPositionX(self.playerNodePos[1].x-8)
- self.playerView.allNodes[2].player:setPositionY(self.playerNodePos[2].y-20)
- self.playerView.allNodes[3].player:setPositionX(self.playerNodePos[3].x+8)
- self.playerView.allNodes[4].player:setPosition(cc.p(self.playerNodePos[4].x+12,self.playerNodePos[4].y+10))
- end
-
- -- function hongzhongRoomReplayView:onEnter()
- -- hongzhongRoomReplayView.super.onEnter(self)
- -- --ui load
- -- local ui = loadUI("mj/res/ui/ui_fangjian/mj_ui_fangjian.ui");
- -- self.ui = ui;
- -- self:addChild(ui);
-
- -- -- 初始化GPS组件
- -- -- self:initGpsComponent();
-
- -- --加载纹理缓存
- -- -- self:loadTextureCache()
-
-
-
- -- -- --初始化游戏事件按钮
- -- self:initGameButton()
-
-
-
- -- -- --监听事件
- -- -- self:bindAllEvent()
-
- -- -- self:onGameReconnection()
- -- self:updateRoomData()
-
-
- -- --初始化视图
- -- self:initView()
-
-
- -- --默认状态
- -- self:defaultState()
-
- -- self:initHandCardNodes()
-
- -- self:startReplay()
-
- -- -- MJSound.PlayGameBGM()
- -- -- playLHQMusic()
- -- end
-
- -- function hongzhongRoomReplayView:updateRoomData()
- -- local data=self.data--=MJDefine.TestData
- -- -- self.data=data
- -- app.room:initRoomInfo()
- -- local roomInfo=app.room.roomInfo
-
- -- roomInfo.nMaxPlayCount = table.nums(data.user)
- -- roomInfo.nShowTableId = data.roomid
- -- roomInfo.strGameInfo=json.encode(data.ext)
- -- roomInfo.nGameStartCount=data.turn
- -- roomInfo.nTotalGameNum=data.nbound
- -- local dipai=MJFunction.convertToCards(data.dipai)
- -- roomInfo.nLeaveCardNum=#dipai
- -- roomInfo.stopFlag=data.flag
-
- -- --用户信息
- -- roomInfo.memberList={}
- -- for k,v in pairs(data.user) do
- -- local nUserId=tonumber(k)
- -- if not roomInfo.memberList[nUserId] then
- -- roomInfo.memberList[nUserId] = {}
- -- end
- -- roomInfo.memberList[nUserId].nUserId = nUserId
- -- roomInfo.memberList[nUserId].nSeatId = v.seatid
- -- -- self.roomInfo.memberList[v.nUserId].nPlayerFlag = v.nPlayerFlag
- -- local userInfo=app.playerInfoManager:getPlayerInfo(nUserId)
- -- userInfo.nickname=userInfo.name
- -- roomInfo.memberList[nUserId].userInfo = json.encode(userInfo)--v.userInfo
- -- -- self.roomInfo.memberList[v.nUserId].nTurnScore = v.nTurnScore
- -- roomInfo.memberList[nUserId].nTotalMoney = data.score[k]
- -- -- self.roomInfo.memberList[v.nUserId].nTingStatus = v.nTingStatus
- -- -- self.roomInfo.memberList[v.nUserId].gruoupCards = v.gruoupCards
- -- -- self.roomInfo.memberList[v.nUserId].outCards = v.outCards
-
- -- local tempCards=MJFunction.convertToCards(v.hand)
- -- local handCards={}
- -- for k,v in pairs(tempCards) do
- -- table.insert(handCards,{card=tonumber(v)})
- -- end
- -- roomInfo.memberList[nUserId].handCards = handCards
- -- -- roomInfo.memberList[nUserId].nOnlineStatus = v.nOnlineStatus
- -- -- roomInfo.memberList[nUserId].nDisbandStatus = v.nDisbandStatus
-
-
- -- -- self.dismissInfo[nUserId] = v.nDisbandStatus
- -- --这里只记录,暂时没用到。可能战绩回放的时候是需要用的
- -- -- local cardData = self:serverCardToMyCard(v.handCard)
- -- -- self.roomInfo.memberList[v.nUserId].cardList = {}
- -- -- self.roomInfo.memberList[v.nUserId].cardList = cardData
- -- end
- -- roomInfo.nBankSeatId=roomInfo.memberList[tonumber(data.ext.banker)].nSeatId
- -- app.room:updateUserSeateShowId()
-
- -- --战报解析
- -- self.reports={}
- -- local ops=string.split(data.ops,"|")
- -- for k,v in pairs(ops) do
- -- local op=string.split(v,",")
- -- local nUserId=tonumber(op[1])
- -- local opType=op[2]
- -- local card=tonumber(op[3])
-
- -- table.insert(self.reports,{nUserId=nUserId,opType=opType,card=card})
- -- -- print(table.tostring(op))
- -- end
- -- end
-
-
- -- function hongzhongRoomReplayView:initGameButton()
- -- --详细按钮
- -- self.ui.Items.Button_Info:registerClick(function()
- -- playBtnEffect()
- -- self.ui.Items.Layout_Rule:setVisible(not self.ui.Items.Layout_Rule:isVisible())
-
- -- end)
-
- -- --点击空白
- -- self.ui.Items.Layout_Touch:registerClick(nil,function()
-
- -- -- 隐藏个人信息
- -- -- self.playerView:removePlayerInfoView()
-
- -- -- self.ui.Items.Layout_Card_Panel:setVisible(false)
-
- -- self.ui.Items.Layout_Rule:setVisible(false)
-
- -- -- local effect=MJAnimationCompnent.CreateGameStart(onEnd)
- -- -- self.ui.Items.Layout_Player:addChild(effect)
- -- -- self.ui.Items.Button_Invite:setVisible(false)
- -- -- self.ui.Items.Button_Ready:setVisible(false)
- -- end)
- -- end
-
- -- function hongzhongRoomReplayView:defaultState()
- -- --队列初始化
- -- self.callbackQueue = {}
- -- self.callbackRunning = false
-
- -- self.ui.Items.Button_GPS:setVisible(false)
- -- self.ui.Items.Layout_TingPai:setVisible(false)
-
- -- self.playerView:setOffLineVisible(false)
- -- self.playerView:setPlayerVisible(false)
- -- self.ui.Items.Layout_Rule:setVisible(false)
- -- self.ui.Items.Text_CardNum:setText("")
- -- -- self.playerView:setOperatorTipVisible(false)
- -- self:setBtnSitDownVisible(false)
- -- self:setTingCardViewVisible(false)
- -- self:setGuideView(false)
- -- self:setWetChatVisible(false)
- -- end
-
- -- function hongzhongRoomReplayView:initView()
- -- self.direcionView = MJRoomDirection:new()
- -- self.ui.Items.Layout_Player:addChild(self.direcionView)
- -- self.direcionView:setVisible(false)
-
- -- --UI相关
- -- self.playerView = MJRoomPlayerView:new()
- -- self:addChild(self.playerView)
- -- self.playerView:setHeadTouchEnable(false)
-
-
- -- -- 添加语音相关的界面
- -- self.messageView = MJRoomMessageView:new()
- -- self:addChild(self.messageView)
- -- self.messageView:setVisible(false)
-
- -- --加载工具层
- -- self.toolView = MJRoomToolView:new()
- -- self:addChild(self.toolView)
- -- self.toolView:setVisible(false)
-
-
-
- -- local roomInfo=app.room.roomInfo
- -- -- 房间号
- -- self.ui.Items.Text_roomNum:setText(tostring(roomInfo.nShowTableId))
-
- -- self:updateGameNums()
-
- -- --房间玩法
-
- -- local ruleAll = MJWanFa:getWanFaInfo(roomInfo.strGameInfo)--getLHQRuleStr();
- -- self.ui.Items.Text_Rule:setText(ruleAll)
- -- local heght=self.ui.Items.Text_Rule:getContentSize().height+20
- -- self.ui.Items.Layout_Rule:setSize(cc.size(self.ui.Items.Layout_Rule:getContentSize().width,heght))
- -- self.ui.Items.Text_Rule:setPositionY(heght-10)
- -- end
-
- -- function hongzhongRoomReplayView:startReplay()
- -- self:startGame()
-
- -- local handers={
- -- ["DealCard"]=handler(self,self.onGetCard),
- -- ["OutCard"]=handler(self,self.onOutCard),
-
- -- ["Peng"]=handler(self,self.onOperate),
- -- ["BaGang"]=handler(self,self.onOperate),
- -- ["AnGang"]=handler(self,self.onOperate),
- -- ["Gang"]=handler(self,self.onOperate),
-
- -- ["DianPao"]=handler(self,self.onGameEnd),
- -- ["ZiMoHu"]=handler(self,self.onGameEnd),
- -- }
-
- -- local actions={}
- -- for k,v in pairs(self.reports) do
- -- if handers[v.opType] then
- -- table.insert(actions,cc.DelayTime:create(1))
- -- table.insert(actions,cc.CallFunc:create(function()
- -- print(table.tostring(v))
- -- handers[v.opType](v)
- -- end))
- -- end
- -- end
-
- -- table.insert(actions,cc.DelayTime:create(1))
- -- table.insert(actions,cc.CallFunc:create(function()
- -- self:endReplay()
- -- -- print(table.tostring(v))
- -- -- handers[v.opType](v)
- -- end))
-
- -- self:runAction(cc.Sequence:create(actions))
- -- end
-
- -- function hongzhongRoomReplayView:startGame()
- -- self:onGameStartResponse()
- -- self:onGameSendCardResponse()
- -- self.playerHandCards[MJDefine.MyViewId]:removeTouchEvent()
- -- end
-
-
- -- function hongzhongRoomReplayView:onGetCard(data)
- -- local roomInfo=app.room.roomInfo
- -- roomInfo.nLeaveCardNum=roomInfo.nLeaveCardNum-1
-
- -- local response={
- -- nUserId=data.nUserId,
- -- card=data.card,
- -- -- operates={},
- -- nSeatId=roomInfo.memberList[data.nUserId].nSeatId,
- -- }
- -- self:onBankerOutCard({response=response})
- -- end
-
- function hongzhongRoomReplayView:onOutCard(data)
- local roomInfo=app.room.roomInfo
- local response={
- nUserId=data.nUserId,
- card=data.card,
- -- operates={},
- -- nSeatId=roomInfo.memberList[data.nUserId].nSeatId,
- }
-
- self.fromSeatId=roomInfo.memberList[data.nUserId].nSeatId
- local viewId=app.room:getViewIdByUserId(data.nUserId)
- if viewId==MJDefine.MyViewId then
- -- self.playerHandCards[MJDefine.MyViewId].touchMJ=self.playerHandCards[MJDefine.MyViewId]:getMjByValue(data.card)
- end
- self:onOutCardSuccess({response=response})
- end
-
- -- function hongzhongRoomReplayView:onOperate(data)
- -- local roomInfo=app.room.roomInfo
-
- -- local operates={
- -- ["Peng"]=MJDefine.MJOperateType.OPREATE_PENG,
- -- ["BaGang"]=MJDefine.MJOperateType.OPREATE_BAGANG,
- -- ["AnGang"]=MJDefine.MJOperateType.OPREATE_ANGANG,
- -- ["Gang"]=MJDefine.MJOperateType.OPREATE_ZHIGANG,
- -- }
-
- -- local response={
- -- nUserId=data.nUserId,
- -- opCard=data.card,
- -- opType=operates[data.opType],
- -- -- operates={},
- -- nSeatId=roomInfo.memberList[data.nUserId].nSeatId,
- -- isNeedOutCard=1,
- -- fromSeatId=self.fromSeatId,
- -- }
- -- self:onOperationCodeSuccess({response=response})
-
-
- -- end
-
- function hongzhongRoomReplayView:onGameEnd(data)
- local function runGameXiaoJuResponse(onEnd)
-
- local function callback()
- -- self:endReplay()
- -- self:showXiaoJuView()
- if onEnd then
- onEnd()
- end
- end
-
- local roomInfo = app.room.roomInfo
- local hutype=self.data.ext.huTypes
- local hucard=data.card
-
- self.direcionView:stopAllActions()
- -- local resultInfo=json.decode(roomInfo.strResultInfo)
-
-
- --所有胡牌的人 考虑抢杠胡的问题
- local viewIds={}
- local failViewId=0
- if self.data.ext.result then
- for k,v in pairs(self.data.ext.result) do
- local viewId = app.room:getViewIdByUserId(v.uid)
- if v.ishu==MJDefine.MJGameResultType.Win then
- table.insert(viewIds,viewId)
- elseif v.ishu==MJDefine.MJGameResultType.Fail then
- failViewId=viewId
- end
- end
- end
-
- --[[for k,v in pairs(roomInfo.memberList) do
- local viewId = app.room:getViewIdByUserId(v.nUserId)
- if v.nTotalMoney>0 then
- table.insert(viewIds,viewId)
- elseif v.nTotalMoney<0 then
- failViewId=viewId
- end
- -- if v.result==MJDefine.MJGameResultType.Win then
- -- table.insert(viewIds,viewId)
- -- elseif v.result==MJDefine.MJGameResultType.Fail then
- -- failViewId=viewId
- -- end
- end--]]
-
- --被抢杠的人回退补杠
- if hutype==MJDefine.MJHuType.QiangGangHu and roomInfo.stopFlag==MJDefine.StopFlag.STOP_FLAG_NORMAL then
- self.playerHandCards[failViewId]:retoreBuGang(hucard)
- end
-
-
- local tabZhaniaocards=MJFunction.convertToCards(self.data.ext.zhaNiaoCards)
- local tabZhongniaocards=MJFunction.convertToCards(self.data.ext.zhongNiaoCards)
-
- self:outNiaoCards(viewIds,failViewId,tabZhaniaocards)
-
- local function zhongNiao()
- self:showZhongNiaoView(tabZhongniaocards,viewIds,callback)
- end
-
- local function niaoFly()
- if #tabZhongniaocards>0 then
- self:showNiaoAniamtion(viewIds,zhongNiao)
- else
- callback()
- end
- end
-
- local function niaoCallBack()
- if #tabZhaniaocards>0 then
- self:showNiaoView(tabZhaniaocards,niaoFly)
- else
- callback()
- end
- end
-
- if #viewIds>0 then
- for k,viewId in pairs(viewIds) do
- local effect
- if k == #viewIds then --只有最后播放胡牌动画的回调一次就可以了
- effect=MJAnimationCompnent.CreateHuEffect(niaoCallBack)
- --音效
- local userInfo=app.room:getUserInfoByViewId(viewId)
- if userInfo then
- if hutype==MJDefine.MJHuType.Zimo then
- MJSound.PlayOperateSound(userInfo.sex,MJDefine.MJOperateType.OPREATE_ZIMOHU)
- else
- MJSound.PlayOperateSound(userInfo.sex,MJDefine.MJOperateType.OPREATE_DIANPAOHU)
- end
- end
- else
- effect=MJAnimationCompnent.CreateHuEffect()
- end
- if effect then
- self:addChild(effect)
- effect:setPosition(self.playerHandCards[viewId]:getAnimationPostion())
- end
- end
- else
-
- if roomInfo.stopFlag==MJDefine.StopFlag.STOP_FLAG_HUANG_ZHUANG then
- local effect=MJAnimationCompnent.CreateLiuJuEffect(callback)
- self:addChild(effect)
- else
- callback()
- end
- end
-
- end
- log("2000000000-MJRoomView - addCallBack(runGameXiaoJuResponse)" )
- self:addCallBack(runGameXiaoJuResponse);
- end
-
- -- function hongzhongRoomReplayView:endReplay()
- -- local roomInfo = app.room.roomInfo
-
- -- -- local function sortMj(mjA,mjB)
- -- -- if mjA.sortValue<mjB.sortValue then
- -- -- return true
- -- -- elseif mjA.sortValue==mjB.sortValue then
- -- -- if mjA:getPositionX()<mjB:getPositionX() then
- -- -- return true
- -- -- end
- -- -- end
- -- -- return false
- -- -- end
-
-
- -- for k,v in pairs(roomInfo.memberList) do
- -- local viewId = app.room:getViewIdByUserId(v.nUserId)
- -- if self.playerHandCards[viewId] then
-
- -- local handCards={}
- -- for _,mj in pairs(self.playerHandCards[viewId].handCards) do
- -- table.insert(handCards,{card=mj.value})
- -- end
- -- -- table.sort(handCards,sortMj)
-
- -- if viewId==MJDefine.MyViewId then
- -- --我自己则屏蔽触摸事件
- -- -- self.playerHandCards[viewId]:removeTouchEvent()
- -- else
- -- --显示所有底牌
- -- self.playerHandCards[viewId]:removeAllHandCards()
- -- self.playerHandCards[viewId]:createOpenHandCards(handCards)
- -- end
- -- end
- -- end
-
-
-
-
- -- self:runAction(cc.Sequence:create(
- -- cc.DelayTime:create(3),
- -- cc.CallFunc:create(function()
- -- local MJMainView=MJFramework.MJImport("mj.luaScript.Views.Main.MJMainView")
- -- app:gotoView(MJMainView:new())
- -- end)
- -- ))
- -- end
-
-
- return hongzhongRoomReplayView
|