diff --git a/lua_probject/base_project/Game/View/Family/FamilyNumberRecord.lua b/lua_probject/base_project/Game/View/Family/FamilyNumberRecord.lua index 86c13459..292ad421 100644 --- a/lua_probject/base_project/Game/View/Family/FamilyNumberRecord.lua +++ b/lua_probject/base_project/Game/View/Family/FamilyNumberRecord.lua @@ -518,7 +518,8 @@ function M:RecordItemDetailRender(round, allDate, rdata, obj) local btn_play = obj:GetChild("n10") btn_play.onClick:Set(function() local group = DataManager.groups:get(self.group_id) - if DataManager.SelfUser.playback[allDate.military_id] ~= nil and DataManager.SelfUser.playback[allDate.military_id][round] ~= nil then + ViewUtil.ShowModalWait2(self._view) + if DataManager.SelfUser.playback[allDate.military_id] ~= nil and DataManager.SelfUser.playback[allDate.military_id][round] ~= nil and tonumber(DataManager.SelfUser.playback[allDate.military_id][round].info.round) == round then local room = ExtendManager.GetExtendConfig(allDate.game_info.game_id):NewRoom() DataManager.CurrenRoom = room room.lev = group.lev @@ -531,16 +532,15 @@ function M:RecordItemDetailRender(round, allDate, rdata, obj) local main = self:GenaratePlayBack(ViewManager.View_PlayBack, allDate.game_info.game_id) main._currentId = allDate.military_id main._currentRound = round - main._totalRound = tonumber(rdata.round) + main._totalRound = tonumber(allDate.round) main:FillRoomData(DataManager.SelfUser.playback[allDate.military_id][round]) + ViewUtil.CloseModalWait2() else - ViewUtil.ShowModalWait(self._view) local _data = {} _data["military_id"] = allDate.military_id _data["round"] = tostring(round) local loddyCtr1 = ControllerManager.GetController(LoddyController) loddyCtr1:RequestPlayBack(_data, function(code, data) - ViewUtil.CloseModalWait() if code == 0 then if DataManager.SelfUser.playback[allDate.military_id] ~= nil then DataManager.SelfUser.playback[allDate.military_id][round] = data @@ -556,9 +556,10 @@ function M:RecordItemDetailRender(round, allDate, rdata, obj) main._totalRound = tonumber(allDate.round) main:FillRoomData(data) main._room.lev = group.lev + ViewUtil.CloseModalWait2() elseif code == 25 then ViewUtil.ErrorTip(-1, "回放未找到!") - -- btn_play_back.grayed = true + ViewUtil.CloseModalWait2() end end, allDate.game_info) end diff --git a/lua_probject/base_project/Game/View/Family/FamilyRecord.lua b/lua_probject/base_project/Game/View/Family/FamilyRecord.lua index 55ff3f35..1a88d19e 100644 --- a/lua_probject/base_project/Game/View/Family/FamilyRecord.lua +++ b/lua_probject/base_project/Game/View/Family/FamilyRecord.lua @@ -208,7 +208,8 @@ function M:RecordItemDetailRender(round, allDate, rdata, obj) local btn_play = obj:GetChild("n10") btn_play.onClick:Set(function() local group = self.currenGroup - if DataManager.SelfUser.playback[allDate.military_id] ~= nil and DataManager.SelfUser.playback[allDate.military_id][round] ~= nil then + ViewUtil.ShowModalWait2(self._view) + if DataManager.SelfUser.playback[allDate.military_id] ~= nil and DataManager.SelfUser.playback[allDate.military_id][round] ~= nil and tonumber(DataManager.SelfUser.playback[allDate.military_id][round].info.round) == round then local room = ExtendManager.GetExtendConfig(allDate.game_info.game_id):NewRoom() DataManager.CurrenRoom = room room.lev = group.lev @@ -221,16 +222,15 @@ function M:RecordItemDetailRender(round, allDate, rdata, obj) local main = self:GenaratePlayBack(ViewManager.View_PlayBack, allDate.game_info.game_id) main._currentId = allDate.military_id main._currentRound = round - main._totalRound = tonumber(rdata.round) + main._totalRound = tonumber(allDate.round) main:FillRoomData(DataManager.SelfUser.playback[allDate.military_id][round]) + ViewUtil.CloseModalWait2() else - ViewUtil.ShowModalWait(self._view) local _data = {} _data["military_id"] = allDate.military_id _data["round"] = tostring(round) local loddyCtr1 = ControllerManager.GetController(LoddyController) loddyCtr1:RequestPlayBack(_data, function(code, data) - ViewUtil.CloseModalWait() if code == 0 then if DataManager.SelfUser.playback[allDate.military_id] ~= nil then DataManager.SelfUser.playback[allDate.military_id][round] = data @@ -246,9 +246,10 @@ function M:RecordItemDetailRender(round, allDate, rdata, obj) main._totalRound = tonumber(allDate.round) main:FillRoomData(data) main._room.lev = group.lev + ViewUtil.CloseModalWait2() elseif code == 25 then ViewUtil.ErrorTip(-1, "回放未找到!") - -- btn_play_back.grayed = true + ViewUtil.CloseModalWait2() end end, allDate.game_info) end diff --git a/lua_probject/base_project/Game/View/PlayBackView.lua b/lua_probject/base_project/Game/View/PlayBackView.lua index fef08f79..be21fda4 100644 --- a/lua_probject/base_project/Game/View/PlayBackView.lua +++ b/lua_probject/base_project/Game/View/PlayBackView.lua @@ -225,7 +225,8 @@ end function M:NextRecordPlay() if self._currentRound < self._totalRound then - if DataManager.SelfUser.playback[self._currentId][self._currentRound + 1] ~= nil then + ViewUtil.ShowModalWait2(self._view) + if DataManager.SelfUser.playback[self._currentId][self._currentRound + 1] ~= nil and tonumber(DataManager.SelfUser.playback[self._currentId][self._currentRound + 1].info.round) == self._currentRound + 1 then -- self:ChangeButtonEnabled() self._currentRound = self._currentRound + 1 local game_id = DataManager.CurrenRoom.game_id @@ -248,8 +249,8 @@ function M:NextRecordPlay() self.cmdList = self._room.cmdList self:FillRoomData(DataManager.SelfUser.playback[self._currentId][self._currentRound]) self:ChangeAlpha() + ViewUtil.CloseModalWait2() else - ViewUtil.ShowModalWait(self._view) local _data = {} _data['military_id'] = self._currentId _data['round'] = tostring(self._currentRound + 1) @@ -257,7 +258,6 @@ function M:NextRecordPlay() loddyCtr:RequestPlayBack( _data, function(code, data) - ViewUtil.CloseModalWait() if code == 0 then -- self:ChangeButtonEnabled() self._currentRound = self._currentRound + 1 @@ -283,8 +283,10 @@ function M:NextRecordPlay() self.cmdList = self._room.cmdList self:FillRoomData(data) self:ChangeAlpha() + ViewUtil.CloseModalWait2() elseif code == 25 then ViewUtil.ErrorTip(res.ReturnCode, '回放未找到!') + ViewUtil.CloseModalWait2() end end ) @@ -298,7 +300,8 @@ end function M:LastRecordPlay() if self._currentRound > 1 then - if DataManager.SelfUser.playback[self._currentId][self._currentRound - 1] ~= nil then + ViewUtil.ShowModalWait2(self._view) + if DataManager.SelfUser.playback[self._currentId][self._currentRound - 1] ~= nil and tonumber(DataManager.SelfUser.playback[self._currentId][self._currentRound - 1].info.round) == self._currentRound - 1 then -- self:ChangeButtonEnabled() self._currentRound = self._currentRound - 1 local game_id = DataManager.CurrenRoom.game_id @@ -314,8 +317,8 @@ function M:LastRecordPlay() self.cmdList = self._room.cmdList self:FillRoomData(DataManager.SelfUser.playback[self._currentId][self._currentRound]) self:ChangeAlpha() + ViewUtil.CloseModalWait2() else - ViewUtil.ShowModalWait(self._view) local _data = {} _data['military_id'] = self._currentId _data['round'] = tostring(self._currentRound - 1) @@ -323,7 +326,6 @@ function M:LastRecordPlay() loddyCtr:RequestPlayBack( _data, function(code, data) - ViewUtil.CloseModalWait() if code == 0 then -- self:ChangeButtonEnabled() self._currentRound = self._currentRound - 1 @@ -341,8 +343,10 @@ function M:LastRecordPlay() self.cmdList = self._room.cmdList self:FillRoomData(data) self:ChangeAlpha() + ViewUtil.CloseModalWait2() elseif code == 25 then ViewUtil.ErrorTip(res.ReturnCode, '回放未找到!') + ViewUtil.CloseModalWait2() end end ) diff --git a/lua_probject/extend_project/extend/majiang/fuzhou/EXGameInfo.lua b/lua_probject/extend_project/extend/majiang/fuzhou/EXGameInfo.lua index b9aea33d..dad74487 100644 --- a/lua_probject/extend_project/extend/majiang/fuzhou/EXGameInfo.lua +++ b/lua_probject/extend_project/extend/majiang/fuzhou/EXGameInfo.lua @@ -199,7 +199,7 @@ function M:LoadConfigToDetailOnlyPlay(data, hpdata) returnString = string.format("%s人数%s人", returnString, configData.maxPlayers) if hpData then - returnString = string.format("%s %s", returnString, hpData.maxRound) + returnString = string.format("%s %s局", returnString, hpData.maxRound) end if configData.zimo then @@ -261,7 +261,7 @@ function M:LoadConfigToDetail(data, hpdata) returnString = string.format("%s人数%s人", returnString, configData.maxPlayers) if hpData then - returnString = string.format("%s %s", returnString, hpData.maxRound) + returnString = string.format("%s %s局", returnString, hpData.maxRound) end if configData.zimo then returnString = string.format("%s,%s", returnString, configData.zimo == 0 and "可点炮,可自摸" or "必须自摸") diff --git a/lua_probject/extend_project/extend/majiang/fuzhou/EXMainView.lua b/lua_probject/extend_project/extend/majiang/fuzhou/EXMainView.lua index cfc671d0..6de90403 100644 --- a/lua_probject/extend_project/extend/majiang/fuzhou/EXMainView.lua +++ b/lua_probject/extend_project/extend/majiang/fuzhou/EXMainView.lua @@ -509,6 +509,8 @@ function M:EventInit() self.dismissWin:Destroy() end self.dismissWin = nil + self._player_card_info[1]._ctr_tip.selectedIndex = 0 + self._player_card_info[1]._ctr_showGuoHu.selectedIndex = 0 if over == 2 then if _room.curren_round > 0 then self:PlayMJMusic("gameover.mp3") diff --git a/lua_probject/extend_project/extend/majiang/fuzhou/EXPlayBackView.lua b/lua_probject/extend_project/extend/majiang/fuzhou/EXPlayBackView.lua index 75b4a34a..9db1fde5 100644 --- a/lua_probject/extend_project/extend/majiang/fuzhou/EXPlayBackView.lua +++ b/lua_probject/extend_project/extend/majiang/fuzhou/EXPlayBackView.lua @@ -3,6 +3,8 @@ local EXRoomConfig = import(".EXRoomConfig") local EXClearingView = import(".EXClearingView") local HuCardImg = import(".HuCardImg") local FZTipList = require("main.majiang.FZData") +local MJPlayerCardInfoView = require("main.majiang.MJPlayerCardInfoView") + local Record_Event = import(".RecordEvent") @@ -29,6 +31,7 @@ function M:InitView(url) self._tex_round = self._view:GetChild("tex_round") self._tex_LeftCard = self._view:GetChild("remaining_card") self._anchor = self._view:GetChild("mask_tips") + self.jing = self._view:GetChild('jing') self.HuCardImg = setmetatable(HuCardImg, { __index = self.HuCardImg }) self.asset_group = "FuZhou_MJ" @@ -62,6 +65,7 @@ function M:FillRoomData(data) self:UpdateLeftCard(left_count) local round = data.info.round self:UpdateRound(round) + self:ShowJing() local roominfo_panel = self._view:GetChild("roominfo_panel1") roominfo_panel:GetChild("tex_roomid").text = room.room_id @@ -79,7 +83,9 @@ function M:FillRoomData(data) self:GenerateAllStepData(data) self:UpdateStep(1) self:Play() - -- self:ShowStep(0) + self._laiziMove:Play() + self._touxiangMove:Play() + -- self:ShowStep(0) end function M:ShowStep(index) @@ -98,8 +104,8 @@ function M:ShowStep(index) p.outcard_list = step.player_card_data[i].outcard_list p.fz_list = step.player_card_data[i].fz_list p.hand_left_count = #p.card_list - info:Clear() - info:ResetFzList() + -- info:Clear() + -- info:ResetFzList() p.piao_niao = step.player_card_data[i].piao_niao local head_info = self._player_info[self:GetPos(i)] if p.piao_niao and p.piao_niao > 0 then @@ -116,145 +122,169 @@ function M:ShowStep(index) else info:UpdateOutCardList() end - if (step.cmd == Record_Event.Evt_GetCard or step.cmd == Record_Event.Evt_Action) and p.seat == step.current_out_seat then - info:UpdateHandCard(true, true) - if step.cmd == Record_Event.Evt_Action then - pt("lingmeng step ", step) - local fz = step.fz - local info = self._player_card_info[self:GetPos(i)] - local loader_HuEffect = info._viewClip_Peng_Gang - local effects = "" - if fz.type == FZType.Peng then - self:PlaySound("Main_Majiang", p.self_user.sex, "peng") - effects = "clip_peng" - elseif fz.type == FZType.Chi then + ---显示提示按钮 + local _ctr_tips = info._view:GetController('tip2') + local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips") + local _flag_tipGetCard = false + if step.cmd == Record_Event.Evt_FZTip then + if p.seat == step.seat then + local tip = step.tiplist + local _tlist = tip.tip_sortList + _lit_fanzi.itemRenderer = function(index, obj) + local type = obj:GetController('type') + if index == tip.tip_num then + type.selectedIndex = 0 + else + index = index + 1 + if _tlist[index].type == FZType.HU then + type.selectedIndex = 4 + obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d', + _tlist[index].card) + _flag_tipGetCard = self.last_get_seat ~= step.seat + elseif _tlist[index].type == FZType.Chi then + type.selectedIndex = FZType.Chi + for i = 1, 3 do + obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( + 'ui://Main_Majiang/b202_%d', + _tlist[index].opcard[i]) + end + elseif _tlist[index].type == FZType.Peng then + type.selectedIndex = FZType.Peng + for i = 1, 3 do + obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( + 'ui://Main_Majiang/b202_%d', + _tlist[index].card) + end + else + for i = 1, 4 do + obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( + 'ui://Main_Majiang/b202_%d', + _tlist[index].card) + end + type.selectedIndex = FZType.Gang + if _tlist[index].type == FZType.Gang_An then + obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00' + end + _flag_tipGetCard = true + end + end + end + _ctr_tips.selectedIndex = 1 + _lit_fanzi.numItems = tip.tip_num + 1 + end + else + _ctr_tips.selectedIndex = 0 + _lit_fanzi.numItems = 0 + end + ----多人胡的时候,同时显示胡 + if step.cmd == Record_Event.Evt_Result then + --所有都显示胡吧,暂时没做胡和自摸的判断 + if not self.result then + if step.result_data.info_list[i].is_win then + local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)] + local loader_HuEffect = info2._viewLoader_selfHuCardEffect + local isZiMo = false + DataManager.CurrenRoom.isZiMoHu = isZiMo + local hu_sound = isZiMo and ("zimo") or ("hu") + printlog("声音====>>>", hu_sound) + self:PlaySound(self.asset_group, p.self_user.sex, hu_sound) - else - self:PlaySound("Main_Majiang", p.self_user.sex, "gang") - effects = "clip_gang" - end - local clip = UIPackage.CreateObjectFromURL(string.format("ui://Main_Majiang/%s", effects)) - clip:SetSize(loader_HuEffect.width, loader_HuEffect.height) - loader_HuEffect:AddChild(clip) - clip:SetPlaySettings(0, -1, 1, -1) - clip.onPlayEnd:Add(function() - if clip.parent then - clip.parent:RemoveChild(clip) - end - clip:Dispose() - end) - clip.playing = true - coroutine.start(function() - coroutine.wait(0.3) - self._popEvent = true - end) - end - else - info:UpdateHandCard(false, true) - end - ----多人胡的时候,同时显示胡 - if step.cmd == Record_Event.Evt_Result then - --所有都显示胡吧,暂时没做胡和自摸的判断 - if not self.result then - if step.result_data.info_list[i].is_win then - local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)] - local loader_HuEffect = info2._viewLoader_selfHuCardEffect - local isZiMo = false - DataManager.CurrenRoom.isZiMoHu = isZiMo - local hu_sound = isZiMo and ("zimo") or ("hu") - printlog("声音====>>>", hu_sound) - self:PlaySound(self.asset_group, p.self_user.sex, hu_sound) + local effects = isZiMo and ("tile_zimo") or ("tile_hu") + loader_HuEffect.visible = true + loader_HuEffect.url = "ui://Main_Majiang/" .. effects + loader_HuEffect:SetScale(2, 2) + local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3) + hu_tween:SetEase(EaseType.QuartOut) + hu_tween:OnComplete(function() + loader_HuEffect.visible = false + end) + end + end + end + if step.cmd ~= Record_Event.Evt_OutCard and step.cmd ~= Record_Event.Evt_GangScore and step.cmd ~= Record_Event.Evt_Win and p.seat == step.current_out_seat or step.cmd == Record_Event.Evt_Result then + if step.cmd == Record_Event.Evt_Action then + pt("lingmeng step ", step) + local fz = step.fz + local info = self._player_card_info[self:GetPos(i)] + local loader_HuEffect = info._viewClip_Peng_Gang + local effects = "" + if fz.type == FZType.Peng then + self:PlaySound("Main_Majiang", p.self_user.sex, "peng") + effects = "clip_peng" + elseif fz.type == FZType.Chi then - local effects = isZiMo and ("tile_zimo") or ("tile_hu") - loader_HuEffect.visible = true - loader_HuEffect.url = "ui://Main_Majiang/" .. effects - loader_HuEffect:SetScale(2, 2) - local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3) - hu_tween:SetEase(EaseType.QuartOut) - hu_tween:OnComplete(function() - loader_HuEffect.visible = false - end) - end - end - end - ---显示提示按钮 - local _ctr_tips = info._view:GetController('tip2') - local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips") - if step.cmd == Record_Event.Evt_FZTip then - if p.seat == step.seat then - local tip = step.tiplist - local _tlist = tip.tip_sortList - _lit_fanzi.itemRenderer = function(index, obj) - local type = obj:GetController('type') - if index == tip.tip_num then - type.selectedIndex = 0 - else - index = index + 1 - if _tlist[index].type == FZType.HU then - type.selectedIndex = 4 - obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d', - _tlist[index].card) - elseif _tlist[index].type == FZType.Chi then - type.selectedIndex = FZType.Chi - for i = 1, 3 do - obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( - 'ui://Main_Majiang/b202_%d', - _tlist[index].opcard[i]) - end - elseif _tlist[index].type == FZType.Peng then - type.selectedIndex = FZType.Peng - for i = 1, 3 do - obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( - 'ui://Main_Majiang/b202_%d', - _tlist[index].card) - end - else - for i = 1, 4 do - obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( - 'ui://Main_Majiang/b202_%d', - _tlist[index].card) - end - type.selectedIndex = FZType.Gang - if _tlist[index].type == FZType.Gang_An then - obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00' - end - end - end - end - _ctr_tips.selectedIndex = 1 - _lit_fanzi.numItems = tip.tip_num + 1 - end - else - _ctr_tips.selectedIndex = 0 - _lit_fanzi.numItems = 0 - end - end + else + self:PlaySound("Main_Majiang", p.self_user.sex, "gang") + effects = "clip_gang" + end + local clip = UIPackage.CreateObjectFromURL(string.format("ui://Main_Majiang/%s", effects)) + clip:SetSize(loader_HuEffect.width, loader_HuEffect.height) + loader_HuEffect:AddChild(clip) + clip:SetPlaySettings(0, -1, 1, -1) + clip.onPlayEnd:Add(function() + if clip.parent then + clip.parent:RemoveChild(clip) + end + clip:Dispose() + end) + clip.playing = true + info:UpdateFzList(fz, index, true, self:GetPos(fz.from_seat)) + end + printlog("lingmeng UpdateHandCard", step.cmd, p.seat, step.fz and step.fz.type or -1, FZType.Peng, + _flag_tipGetCard) + if step.cmd == Record_Event.Evt_Action and step.fz.type ~= FZType.Peng then + info:UpdateHandCard(false, true) + elseif step.cmd == Record_Event.Evt_FZTip and not _flag_tipGetCard then + info:UpdateHandCard(false, true) + elseif step.cmd == Record_Event.Evt_Result then + local _flag_result = false + for i = 1, #step.result_data.info_list do + printlog("lingmeng UpdateHandCard3", step.result_data.info_list[i].is_win, + step.result_data.info_list[i].seat) - --统一在大结算时显示 - if step.cmd == Record_Event.Evt_Win then - else - if self._win_pic then - self._win_pic:Dispose() - end - end - --统一在大结算时显示 - if step.cmd == Record_Event.Evt_Niao then - local niao_list = step.niao - else - end - if step.cmd == Record_Event.Evt_Result then - print("lingmeng playerback", self.result) - if not self.result then - local result = step.result_data - self.result = EXClearingView.new(self, { flag_back = true }) - self.result:InitData(0, self._room, result) - self.result._view.x = (GRoot.inst.width - self.result._view.width) * -0.5 - self.result._view.width = GRoot.inst.width - self.result._view.height = GRoot.inst.height - self._anchor:AddChild(self.result._view) - self.result._view.visible = false - self.result._view.x = self._anchor.x * -1 - self.result._view.y = self._anchor.y * -1 + if step.result_data.info_list[i].is_win and p.seat == step.result_data.info_list[i].seat then + _flag_result = true + end + end + printlog("lingmeng UpdateHandCard3", _flag_result) + info:UpdateHandCard(_flag_result, true) + else + info:UpdateHandCard(true, true) + end + else + if step.cmd == Record_Event.Evt_Win then + else + info:UpdateHandCard(false, true) + end + end + end + + --统一在大结算时显示 + if step.cmd == Record_Event.Evt_Win then + else + if self._win_pic then + self._win_pic:Dispose() + end + end + --统一在大结算时显示 + if step.cmd == Record_Event.Evt_Niao then + local niao_list = step.niao + else + end + if step.cmd == Record_Event.Evt_Result then + print("lingmeng playerback", self.result) + if not self.result then + local result = step.result_data + result.cardList = step.residual_card + self.result = EXClearingView.new(self, { flag_back = true }) + self.result:InitData(0, self._room, result) + self.result._view.x = (GRoot.inst.width - self.result._view.width) * -0.5 + self.result._view.width = GRoot.inst.width + self.result._view.height = GRoot.inst.height + self._anchor:AddChild(self.result._view) + self.result._view.visible = false + self.result._view.x = self._anchor.x * -1 + self.result._view.y = self._anchor.y * -1 local liuju = result and result.liuju or nil coroutine.start(function() @@ -421,16 +451,18 @@ function M:ShowStep(index) end function M:GenerateAllStepData(data) - local cmdList = self.cmdList - self._step = {} - local step = {} - local info = data.info - step.cmd = "" - step.left_card = info.left_card - step.last_out_seat = 0 - step.current_out_seat = 1 - step.win = 0 - step.niao = 0 + local cmdList = self.cmdList + self._step = {} + local step = {} + local info = data.info + step.cmd = "" + step.left_card = info.left_card + step.last_get_seat = 0 + step.last_out_seat = 0 + step.current_out_seat = 1 + step.win = 0 + step.niao = 0 + step.residual_card = info.residual_card step.player_card_data = {} for i = 1, #self._room.player_list do @@ -453,12 +485,13 @@ function M:GenerateAllStepData(data) end function M:CmdGetCard(cmd, index) - local data = self:CopyLastStep(index) - data.cmd = cmd.cmd - data.current_out_seat = cmd.seat - data.left_card = cmd.data.left_count - local u = data.player_card_data[cmd.seat] - u.card_list[#u.card_list + 1] = cmd.data.card + local data = self:CopyLastStep(index) + data.cmd = cmd.cmd + data.current_out_seat = cmd.seat + data.last_get_seat = cmd.seat + data.left_card = cmd.data.left_count + local u = data.player_card_data[cmd.seat] + u.card_list[#u.card_list + 1] = cmd.data.card end function M:CmdOutCard(cmd, index) @@ -472,33 +505,48 @@ function M:CmdOutCard(cmd, index) end function M:CmdAction(cmd, index) - local data = self:CopyLastStep(index) - data.cmd = cmd.cmd - data.last_out_seat = 0 - data.current_out_seat = cmd.seat - local u = data.player_card_data[cmd.seat] - for i = 1, #cmd.data.opcard do - list_remove(u.card_list, cmd.data.opcard[i]) - end - local fz = {} - fz.type = cmd.data.type - fz.card = cmd.data.card - fz.opcard = cmd.data.opcard - fz.from_seat = cmd.data.from_seat - data.fz = fz - local uf = data.player_card_data[cmd.data.from_seat] - if fz.type ~= FZType.Gang_An and fz.type ~= FZType.Gang_Peng then - table.remove(uf.outcard_list, #uf.outcard_list) - end - if fz.type ~= FZType.Gang_Peng then - u.fz_list[#u.fz_list + 1] = fz - else - for i = 1, #u.fz_list do - if u.fz_list[i].type == FZType.Peng and u.fz_list[i].card == fz.card then - u.fz_list[i].type = FZType.Gang_Peng - end - end - end + local data = self:CopyLastStep(index) + data.cmd = cmd.cmd + data.last_out_seat = 0 + data.current_out_seat = cmd.seat + local u = data.player_card_data[cmd.seat] + local fz = nil + local index = -1 + local ftype = cmd.data.type + if (ftype == FZType.Gang_Peng) then + for i = 1, #u.fz_list do + if (u.fz_list[i].card == cmd.data.card) then + u.fz_list[i].card = cmd.data.card + fz = u.fz_list[i] + fz.type = cmd.data.type + index = i - 1 + break + end + end + end + fz = {} + fz.card = cmd.data.card + fz.type = cmd.data.type + if (index == -1) then + u.fz_list[#u.fz_list + 1] = fz + end + fz.from_seat = cmd.data.from_seat + local remove_num = #cmd.data.opcard + + for i = 1, remove_num do + if ftype == FZType.Gang_Peng then + list_remove(u.card_list, cmd.data.card) + else + list_remove(u.card_list, cmd.data.opcard[i]) + end + end + + u.hand_left_count = u.hand_left_count - remove_num + if cmd.data.from_seat ~= u.seat and ftype ~= FZType.Gang_Peng then + local u = data.player_card_data[cmd.data.from_seat] + table.remove(u.outcard_list, #u.outcard_list) + end + data.fz = fz end function M:CmdWin(cmd, index) @@ -553,9 +601,19 @@ function M:GangScore(cmd, index) end function M:CmdResult(cmd, index) - local data = self:CopyLastStep(index) - data.cmd = cmd.cmd - data.result_data = cmd.data + local data = self:CopyLastStep(index) + data.cmd = cmd.cmd + data.seat = 0 + data.result_data = cmd.data + for i = 1, #cmd.data.info_list do + local info = cmd.data.info_list[i] + if info.is_win and info.seat ~= data.current_out_seat then + local u = data.player_card_data[info.seat] + u.card_list[#u.card_list + 1] = info.win_card + local u = data.player_card_data[data.last_out_seat] + table.remove(u.outcard_list, #u.outcard_list) + end + end end function M:CopyLastStep(index) @@ -587,6 +645,16 @@ function M:UpdateRound() self._room.room_config.round) end +function M:ShowJing() + print("lingmeng jing ", self._room.jing) + if self._room.jing then + self.jing.visible = true + MJPlayerCardInfoView.fillCard2(self, self.jing, "b202_", self._room.jing) + else + self.jing.visible = false + end +end + function M:UpdateStep(step) self._record:GetChild("tex_step").text = "第 " .. step .. " / " .. #self._step .. "步" end diff --git a/lua_probject/extend_project/extend/majiang/jinxi/EXMainView.lua b/lua_probject/extend_project/extend/majiang/jinxi/EXMainView.lua index 51b6577a..6197a337 100644 --- a/lua_probject/extend_project/extend/majiang/jinxi/EXMainView.lua +++ b/lua_probject/extend_project/extend/majiang/jinxi/EXMainView.lua @@ -509,6 +509,8 @@ function M:EventInit() self.dismissWin:Destroy() end self.dismissWin = nil + self._player_card_info[1]._ctr_tip.selectedIndex = 0 + self._player_card_info[1]._ctr_showGuoHu.selectedIndex = 0 if over == 2 then if _room.curren_round > 0 then self:PlayMJMusic("gameover.mp3") diff --git a/lua_probject/extend_project/extend/majiang/jinxi/EXPlayBackView.lua b/lua_probject/extend_project/extend/majiang/jinxi/EXPlayBackView.lua index 95ea7633..86d58db3 100644 --- a/lua_probject/extend_project/extend/majiang/jinxi/EXPlayBackView.lua +++ b/lua_probject/extend_project/extend/majiang/jinxi/EXPlayBackView.lua @@ -3,6 +3,8 @@ local EXRoomConfig = import(".EXRoomConfig") local EXClearingView = import(".EXClearingView") local HuCardImg = import(".HuCardImg") local FZTipList = require("main.majiang.FZData") +local MJPlayerCardInfoView = require("main.majiang.MJPlayerCardInfoView") + local Record_Event = import(".RecordEvent") @@ -29,6 +31,7 @@ function M:InitView(url) self._tex_round = self._view:GetChild("tex_round") self._tex_LeftCard = self._view:GetChild("remaining_card") self._anchor = self._view:GetChild("mask_tips") + self.jing = self._view:GetChild('jing') self.HuCardImg = setmetatable(HuCardImg, { __index = self.HuCardImg }) self.asset_group = "JinXi_MJ" @@ -62,6 +65,7 @@ function M:FillRoomData(data) self:UpdateLeftCard(left_count) local round = data.info.round self:UpdateRound(round) + self:ShowJing() local roominfo_panel = self._view:GetChild("roominfo_panel1") roominfo_panel:GetChild("tex_roomid").text = room.room_id @@ -79,6 +83,8 @@ function M:FillRoomData(data) self:GenerateAllStepData(data) self:UpdateStep(1) self:Play() + self._laiziMove:Play() + self._touxiangMove:Play() -- self:ShowStep(0) end @@ -98,8 +104,8 @@ function M:ShowStep(index) p.outcard_list = step.player_card_data[i].outcard_list p.fz_list = step.player_card_data[i].fz_list p.hand_left_count = #p.card_list - info:Clear() - info:ResetFzList() + -- info:Clear() + -- info:ResetFzList() p.piao_niao = step.player_card_data[i].piao_niao local head_info = self._player_info[self:GetPos(i)] if p.piao_niao and p.piao_niao > 0 then @@ -116,8 +122,86 @@ function M:ShowStep(index) else info:UpdateOutCardList() end - if (step.cmd == Record_Event.Evt_GetCard or step.cmd == Record_Event.Evt_Action) and p.seat == step.current_out_seat then - info:UpdateHandCard(true, true) + ---显示提示按钮 + local _ctr_tips = info._view:GetController('tip2') + local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips") + local _flag_tipGetCard = false + if step.cmd == Record_Event.Evt_FZTip then + if p.seat == step.seat then + local tip = step.tiplist + local _tlist = tip.tip_sortList + _lit_fanzi.itemRenderer = function(index, obj) + local type = obj:GetController('type') + if index == tip.tip_num then + type.selectedIndex = 0 + else + index = index + 1 + if _tlist[index].type == FZType.HU then + type.selectedIndex = 4 + obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d', + _tlist[index].card) + _flag_tipGetCard = self.last_get_seat ~= step.seat + elseif _tlist[index].type == FZType.Chi then + type.selectedIndex = FZType.Chi + for i = 1, 3 do + obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( + 'ui://Main_Majiang/b202_%d', + _tlist[index].opcard[i]) + end + elseif _tlist[index].type == FZType.Peng then + type.selectedIndex = FZType.Peng + for i = 1, 3 do + obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( + 'ui://Main_Majiang/b202_%d', + _tlist[index].card) + end + else + for i = 1, 4 do + obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( + 'ui://Main_Majiang/b202_%d', + _tlist[index].card) + end + type.selectedIndex = FZType.Gang + if _tlist[index].type == FZType.Gang_An then + obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00' + end + _flag_tipGetCard = true + end + end + end + _ctr_tips.selectedIndex = 1 + _lit_fanzi.numItems = tip.tip_num + 1 + end + else + _ctr_tips.selectedIndex = 0 + _lit_fanzi.numItems = 0 + end + ----多人胡的时候,同时显示胡 + if step.cmd == Record_Event.Evt_Result then + --所有都显示胡吧,暂时没做胡和自摸的判断 + if not self.result then + if step.result_data.info_list[i].is_win then + local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)] + local loader_HuEffect = info2._viewLoader_selfHuCardEffect + local isZiMo = false + DataManager.CurrenRoom.isZiMoHu = isZiMo + local hu_sound = isZiMo and ("zimo") or ("hu") + printlog("声音====>>>", hu_sound) + self:PlaySound(self.asset_group, p.self_user.sex, hu_sound) + + local effects = isZiMo and ("tile_zimo") or ("tile_hu") + loader_HuEffect.visible = true + loader_HuEffect.url = "ui://Main_Majiang/" .. effects + loader_HuEffect:SetScale(2, 2) + local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3) + hu_tween:SetEase(EaseType.QuartOut) + hu_tween:OnComplete(function() + loader_HuEffect.visible = false + end) + end + end + end + if step.cmd ~= Record_Event.Evt_OutCard and step.cmd ~= Record_Event.Evt_GangScore and step.cmd ~= Record_Event.Evt_Win and p.seat == step.current_out_seat or step.cmd == Record_Event.Evt_Result then if step.cmd == Record_Event.Evt_Action then pt("lingmeng step ", step) local fz = step.fz @@ -144,117 +228,63 @@ function M:ShowStep(index) clip:Dispose() end) clip.playing = true - coroutine.start(function() - coroutine.wait(0.3) - self._popEvent = true - end) + info:UpdateFzList(fz, index, true, self:GetPos(fz.from_seat)) + end + printlog("lingmeng UpdateHandCard", step.cmd, p.seat, step.fz and step.fz.type or -1, FZType.Peng, + _flag_tipGetCard) + if step.cmd == Record_Event.Evt_Action and step.fz.type ~= FZType.Peng then + info:UpdateHandCard(false, true) + elseif step.cmd == Record_Event.Evt_FZTip and not _flag_tipGetCard then + info:UpdateHandCard(false, true) + elseif step.cmd == Record_Event.Evt_Result then + local _flag_result = false + for i = 1, #step.result_data.info_list do + printlog("lingmeng UpdateHandCard3", step.result_data.info_list[i].is_win, + step.result_data.info_list[i].seat) + + if step.result_data.info_list[i].is_win and p.seat == step.result_data.info_list[i].seat then + _flag_result = true + end + end + printlog("lingmeng UpdateHandCard3", _flag_result) + info:UpdateHandCard(_flag_result, true) + else + info:UpdateHandCard(true, true) end else - info:UpdateHandCard(false, true) + if step.cmd == Record_Event.Evt_Win then + else + info:UpdateHandCard(false, true) + end end - ----多人胡的时候,同时显示胡 - if step.cmd == Record_Event.Evt_Result then - --所有都显示胡吧,暂时没做胡和自摸的判断 - if not self.result then - if step.result_data.info_list[i].is_win then - local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)] - local loader_HuEffect = info2._viewLoader_selfHuCardEffect - local isZiMo = false - DataManager.CurrenRoom.isZiMoHu = isZiMo - local hu_sound = isZiMo and ("zimo") or ("hu") - printlog("声音====>>>", hu_sound) - self:PlaySound(self.asset_group, p.self_user.sex, hu_sound) + end - local effects = isZiMo and ("tile_zimo") or ("tile_hu") - loader_HuEffect.visible = true - loader_HuEffect.url = "ui://Main_Majiang/" .. effects - loader_HuEffect:SetScale(2, 2) - local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3) - hu_tween:SetEase(EaseType.QuartOut) - hu_tween:OnComplete(function() - loader_HuEffect.visible = false - end) - end - end - end - ---显示提示按钮 - local _ctr_tips = info._view:GetController('tip2') - local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips") - if step.cmd == Record_Event.Evt_FZTip then - if p.seat == step.seat then - local tip = step.tiplist - local _tlist = tip.tip_sortList - _lit_fanzi.itemRenderer = function(index, obj) - local type = obj:GetController('type') - if index == tip.tip_num then - type.selectedIndex = 0 - else - index = index + 1 - if _tlist[index].type == FZType.HU then - type.selectedIndex = 4 - obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d', - _tlist[index].card) - elseif _tlist[index].type == FZType.Chi then - type.selectedIndex = FZType.Chi - for i = 1, 3 do - obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( - 'ui://Main_Majiang/b202_%d', - _tlist[index].opcard[i]) - end - elseif _tlist[index].type == FZType.Peng then - type.selectedIndex = FZType.Peng - for i = 1, 3 do - obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( - 'ui://Main_Majiang/b202_%d', - _tlist[index].card) - end - else - for i = 1, 4 do - obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( - 'ui://Main_Majiang/b202_%d', - _tlist[index].card) - end - type.selectedIndex = FZType.Gang - if _tlist[index].type == FZType.Gang_An then - obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00' - end - end - end - end - _ctr_tips.selectedIndex = 1 - _lit_fanzi.numItems = tip.tip_num + 1 - end - else - _ctr_tips.selectedIndex = 0 - _lit_fanzi.numItems = 0 - end - end - - --统一在大结算时显示 - if step.cmd == Record_Event.Evt_Win then - else - if self._win_pic then - self._win_pic:Dispose() - end - end - --统一在大结算时显示 - if step.cmd == Record_Event.Evt_Niao then - local niao_list = step.niao - else - end - if step.cmd == Record_Event.Evt_Result then - print("lingmeng playerback", self.result) - if not self.result then - local result = step.result_data - self.result = EXClearingView.new(self, { flag_back = true }) - self.result:InitData(0, self._room, result) - self.result._view.x = (GRoot.inst.width - self.result._view.width) * -0.5 - self.result._view.width = GRoot.inst.width - self.result._view.height = GRoot.inst.height - self._anchor:AddChild(self.result._view) - self.result._view.visible = false - self.result._view.x = self._anchor.x * -1 - self.result._view.y = self._anchor.y * -1 + --统一在大结算时显示 + if step.cmd == Record_Event.Evt_Win then + else + if self._win_pic then + self._win_pic:Dispose() + end + end + --统一在大结算时显示 + if step.cmd == Record_Event.Evt_Niao then + local niao_list = step.niao + else + end + if step.cmd == Record_Event.Evt_Result then + print("lingmeng playerback", self.result) + if not self.result then + local result = step.result_data + result.cardList = step.residual_card + self.result = EXClearingView.new(self, { flag_back = true }) + self.result:InitData(0, self._room, result) + self.result._view.x = (GRoot.inst.width - self.result._view.width) * -0.5 + self.result._view.width = GRoot.inst.width + self.result._view.height = GRoot.inst.height + self._anchor:AddChild(self.result._view) + self.result._view.visible = false + self.result._view.x = self._anchor.x * -1 + self.result._view.y = self._anchor.y * -1 local liuju = result and result.liuju or nil coroutine.start(function() @@ -343,7 +373,7 @@ function M:ShowStep(index) --展示摸鸟 local niao_list = result.niao - self._niao = UIPackage.CreateObject("Extend_MJ_FuZhou", "Panel_Birds") + self._niao = UIPackage.CreateObject("Extend_MJ_JinXi", "Panel_Birds") self._view:GetChild('jiangma_show'):AddChild(self._niao) self._niao:Center() local list_niao_card = self._niao:GetChild("Lst_birds") @@ -427,10 +457,12 @@ function M:GenerateAllStepData(data) local info = data.info step.cmd = "" step.left_card = info.left_card + step.last_get_seat = 0 step.last_out_seat = 0 step.current_out_seat = 1 step.win = 0 step.niao = 0 + step.residual_card = info.residual_card step.player_card_data = {} for i = 1, #self._room.player_list do @@ -456,6 +488,7 @@ function M:CmdGetCard(cmd, index) local data = self:CopyLastStep(index) data.cmd = cmd.cmd data.current_out_seat = cmd.seat + data.last_get_seat = cmd.seat data.left_card = cmd.data.left_count local u = data.player_card_data[cmd.seat] u.card_list[#u.card_list + 1] = cmd.data.card @@ -477,28 +510,43 @@ function M:CmdAction(cmd, index) data.last_out_seat = 0 data.current_out_seat = cmd.seat local u = data.player_card_data[cmd.seat] - for i = 1, #cmd.data.opcard do - list_remove(u.card_list, cmd.data.opcard[i]) - end - local fz = {} - fz.type = cmd.data.type - fz.card = cmd.data.card - fz.opcard = cmd.data.opcard - fz.from_seat = cmd.data.from_seat - data.fz = fz - local uf = data.player_card_data[cmd.data.from_seat] - if fz.type ~= FZType.Gang_An and fz.type ~= FZType.Gang_Peng then - table.remove(uf.outcard_list, #uf.outcard_list) - end - if fz.type ~= FZType.Gang_Peng then - u.fz_list[#u.fz_list + 1] = fz - else + local fz = nil + local index = -1 + local ftype = cmd.data.type + if (ftype == FZType.Gang_Peng) then for i = 1, #u.fz_list do - if u.fz_list[i].type == FZType.Peng and u.fz_list[i].card == fz.card then - u.fz_list[i].type = FZType.Gang_Peng + if (u.fz_list[i].card == cmd.data.card) then + u.fz_list[i].card = cmd.data.card + fz = u.fz_list[i] + fz.type = cmd.data.type + index = i - 1 + break end end end + fz = {} + fz.card = cmd.data.card + fz.type = cmd.data.type + if (index == -1) then + u.fz_list[#u.fz_list + 1] = fz + end + fz.from_seat = cmd.data.from_seat + local remove_num = #cmd.data.opcard + + for i = 1, remove_num do + if ftype == FZType.Gang_Peng then + list_remove(u.card_list, cmd.data.card) + else + list_remove(u.card_list, cmd.data.opcard[i]) + end + end + + u.hand_left_count = u.hand_left_count - remove_num + if cmd.data.from_seat ~= u.seat and ftype ~= FZType.Gang_Peng then + local u = data.player_card_data[cmd.data.from_seat] + table.remove(u.outcard_list, #u.outcard_list) + end + data.fz = fz end function M:CmdWin(cmd, index) @@ -555,7 +603,17 @@ end function M:CmdResult(cmd, index) local data = self:CopyLastStep(index) data.cmd = cmd.cmd + data.seat = 0 data.result_data = cmd.data + for i = 1, #cmd.data.info_list do + local info = cmd.data.info_list[i] + if info.is_win and info.seat ~= data.current_out_seat then + local u = data.player_card_data[info.seat] + u.card_list[#u.card_list + 1] = info.win_card + local u = data.player_card_data[data.last_out_seat] + table.remove(u.outcard_list, #u.outcard_list) + end + end end function M:CopyLastStep(index) @@ -587,6 +645,16 @@ function M:UpdateRound() self._room.room_config.round) end +function M:ShowJing() + print("lingmeng jing ", self._room.jing) + if self._room.jing then + self.jing.visible = true + MJPlayerCardInfoView.fillCard2(self, self.jing, "b202_", self._room.jing) + else + self.jing.visible = false + end +end + function M:UpdateStep(step) self._record:GetChild("tex_step").text = "第 " .. step .. " / " .. #self._step .. "步" end diff --git a/lua_probject/extend_project/extend/majiang/lichuan/EXClearingView.lua b/lua_probject/extend_project/extend/majiang/lichuan/EXClearingView.lua index d720612f..289c2d1d 100644 --- a/lua_probject/extend_project/extend/majiang/lichuan/EXClearingView.lua +++ b/lua_probject/extend_project/extend/majiang/lichuan/EXClearingView.lua @@ -54,13 +54,13 @@ function M:InitData(over, room, result, total_result, callback, isWitness, witne --回放不需要显示还剩下多少牌 if self.flag_back then - result.cardList = {} mainCtr.selectedIndex = 1 nextRoundBtn2.touchable = false - else if result then if result.cardList then result.cardList = json.decode(result.cardList) + else + result.cardList = {} end end end diff --git a/lua_probject/extend_project/extend/majiang/lichuan/EXGameController.lua b/lua_probject/extend_project/extend/majiang/lichuan/EXGameController.lua index dcaa35e8..2fe4584d 100644 --- a/lua_probject/extend_project/extend/majiang/lichuan/EXGameController.lua +++ b/lua_probject/extend_project/extend/majiang/lichuan/EXGameController.lua @@ -308,7 +308,6 @@ function M:OnEventFzAction(evt_data) p.hand_left_count = p.hand_left_count - remove_num if from_seat ~= p.seat and ftype ~= FZType.Gang_Peng then - -- if (fz.Type == FZType.Chi) then card = actice_card end local fp = _room:GetPlayerBySeat(from_seat) table.remove(fp.outcard_list, #fp.outcard_list) end diff --git a/lua_probject/extend_project/extend/majiang/lichuan/EXGameInfo.lua b/lua_probject/extend_project/extend/majiang/lichuan/EXGameInfo.lua index 20016b0e..e58fe6e9 100644 --- a/lua_probject/extend_project/extend/majiang/lichuan/EXGameInfo.lua +++ b/lua_probject/extend_project/extend/majiang/lichuan/EXGameInfo.lua @@ -180,7 +180,7 @@ function M:LoadConfigToDetailOnlyPlay(data, hpdata) returnString = string.format("%s人数%s人", returnString, configData.maxPlayers) if hpData then - returnString = string.format("%s %s", returnString, hpData.maxRound) + returnString = string.format("%s %s局", returnString, hpData.maxRound) end if configData.zimo then @@ -222,7 +222,7 @@ function M:LoadConfigToDetail(data, hpdata) returnString = string.format("%s人数%s人", returnString, configData.maxPlayers) if hpData then - returnString = string.format("%s %s", returnString, hpData.maxRound) + returnString = string.format("%s %s局", returnString, hpData.maxRound) end if configData.zimo then diff --git a/lua_probject/extend_project/extend/majiang/lichuan/EXMainView.lua b/lua_probject/extend_project/extend/majiang/lichuan/EXMainView.lua index 2575c90c..3771d893 100644 --- a/lua_probject/extend_project/extend/majiang/lichuan/EXMainView.lua +++ b/lua_probject/extend_project/extend/majiang/lichuan/EXMainView.lua @@ -508,6 +508,8 @@ function M:EventInit() self.dismissWin:Destroy() end self.dismissWin = nil + self._player_card_info[1]._ctr_tip.selectedIndex = 0 + self._player_card_info[1]._ctr_showGuoHu.selectedIndex = 0 if over == 2 then if _room.curren_round > 0 then self:PlayMJMusic("gameover.mp3") diff --git a/lua_probject/extend_project/extend/majiang/lichuan/EXPlayBackView.lua b/lua_probject/extend_project/extend/majiang/lichuan/EXPlayBackView.lua index 2943050c..a11ecd66 100644 --- a/lua_probject/extend_project/extend/majiang/lichuan/EXPlayBackView.lua +++ b/lua_probject/extend_project/extend/majiang/lichuan/EXPlayBackView.lua @@ -3,6 +3,8 @@ local EXRoomConfig = import(".EXRoomConfig") local EXClearingView = import(".EXClearingView") local HuCardImg = import(".HuCardImg") local FZTipList = require("main.majiang.FZData") +local MJPlayerCardInfoView = require("main.majiang.MJPlayerCardInfoView") + local Record_Event = import(".RecordEvent") @@ -29,6 +31,7 @@ function M:InitView(url) self._tex_round = self._view:GetChild("tex_round") self._tex_LeftCard = self._view:GetChild("remaining_card") self._anchor = self._view:GetChild("mask_tips") + self.jing = self._view:GetChild('jing') self.HuCardImg = setmetatable(HuCardImg, { __index = self.HuCardImg }) self.asset_group = "LiChuan_MJ" @@ -45,8 +48,8 @@ function M:InitView(url) self._cmdmap[Record_Event.Evt_Niao] = self.CmdNiao self._cmdmap[Record_Event.Evt_Piao] = self.CmdPiao self._cmdmap[Record_Event.Evt_Result] = self.CmdResult - self._cmdmap[Record_Event.Evt_FZTip] = self.CmdFZTip - self._cmdmap[Record_Event.Evt_GangScore] = self.GangScore + self._cmdmap[Record_Event.Evt_FZTip] = self.CmdFZTip + self._cmdmap[Record_Event.Evt_GangScore] = self.GangScore self.com_logocType.selectedIndex = 2 end @@ -62,6 +65,7 @@ function M:FillRoomData(data) self:UpdateLeftCard(left_count) local round = data.info.round self:UpdateRound(round) + self:ShowJing() local roominfo_panel = self._view:GetChild("roominfo_panel1") roominfo_panel:GetChild("tex_roomid").text = room.room_id @@ -79,6 +83,8 @@ function M:FillRoomData(data) self:GenerateAllStepData(data) self:UpdateStep(1) self:Play() + self._laiziMove:Play() + self._touxiangMove:Play() -- self:ShowStep(0) end @@ -98,8 +104,8 @@ function M:ShowStep(index) p.outcard_list = step.player_card_data[i].outcard_list p.fz_list = step.player_card_data[i].fz_list p.hand_left_count = #p.card_list - info:Clear() - info:ResetFzList() + -- info:Clear() + -- info:ResetFzList() p.piao_niao = step.player_card_data[i].piao_niao local head_info = self._player_info[self:GetPos(i)] if p.piao_niao and p.piao_niao > 0 then @@ -116,8 +122,86 @@ function M:ShowStep(index) else info:UpdateOutCardList() end - if (step.cmd == Record_Event.Evt_GetCard or step.cmd == Record_Event.Evt_Action) and p.seat == step.current_out_seat then - info:UpdateHandCard(true, true) + ---显示提示按钮 + local _ctr_tips = info._view:GetController('tip2') + local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips") + local _flag_tipGetCard = false + if step.cmd == Record_Event.Evt_FZTip then + if p.seat == step.seat then + local tip = step.tiplist + local _tlist = tip.tip_sortList + _lit_fanzi.itemRenderer = function(index, obj) + local type = obj:GetController('type') + if index == tip.tip_num then + type.selectedIndex = 0 + else + index = index + 1 + if _tlist[index].type == FZType.HU then + type.selectedIndex = 4 + obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d', + _tlist[index].card) + _flag_tipGetCard = self.last_get_seat ~= step.seat + elseif _tlist[index].type == FZType.Chi then + type.selectedIndex = FZType.Chi + for i = 1, 3 do + obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( + 'ui://Main_Majiang/b202_%d', + _tlist[index].opcard[i]) + end + elseif _tlist[index].type == FZType.Peng then + type.selectedIndex = FZType.Peng + for i = 1, 3 do + obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( + 'ui://Main_Majiang/b202_%d', + _tlist[index].card) + end + else + for i = 1, 4 do + obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( + 'ui://Main_Majiang/b202_%d', + _tlist[index].card) + end + type.selectedIndex = FZType.Gang + if _tlist[index].type == FZType.Gang_An then + obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00' + end + _flag_tipGetCard = true + end + end + end + _ctr_tips.selectedIndex = 1 + _lit_fanzi.numItems = tip.tip_num + 1 + end + else + _ctr_tips.selectedIndex = 0 + _lit_fanzi.numItems = 0 + end + ----多人胡的时候,同时显示胡 + if step.cmd == Record_Event.Evt_Result then + --所有都显示胡吧,暂时没做胡和自摸的判断 + if not self.result then + if step.result_data.info_list[i].is_win then + local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)] + local loader_HuEffect = info2._viewLoader_selfHuCardEffect + local isZiMo = false + DataManager.CurrenRoom.isZiMoHu = isZiMo + local hu_sound = isZiMo and ("zimo") or ("hu") + printlog("声音====>>>", hu_sound) + self:PlaySound(self.asset_group, p.self_user.sex, hu_sound) + + local effects = isZiMo and ("tile_zimo") or ("tile_hu") + loader_HuEffect.visible = true + loader_HuEffect.url = "ui://Main_Majiang/" .. effects + loader_HuEffect:SetScale(2, 2) + local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3) + hu_tween:SetEase(EaseType.QuartOut) + hu_tween:OnComplete(function() + loader_HuEffect.visible = false + end) + end + end + end + if step.cmd ~= Record_Event.Evt_OutCard and step.cmd ~= Record_Event.Evt_GangScore and step.cmd ~= Record_Event.Evt_Win and p.seat == step.current_out_seat or step.cmd == Record_Event.Evt_Result then if step.cmd == Record_Event.Evt_Action then pt("lingmeng step ", step) local fz = step.fz @@ -129,132 +213,78 @@ function M:ShowStep(index) effects = "clip_peng" elseif fz.type == FZType.Chi then - else - self:PlaySound("Main_Majiang", p.self_user.sex, "gang") - effects = "clip_gang" - end - local clip = UIPackage.CreateObjectFromURL(string.format("ui://Main_Majiang/%s", effects)) - clip:SetSize(loader_HuEffect.width, loader_HuEffect.height) - loader_HuEffect:AddChild(clip) - clip:SetPlaySettings(0, -1, 1, -1) - clip.onPlayEnd:Add(function() - if clip.parent then - clip.parent:RemoveChild(clip) - end - clip:Dispose() - end) - clip.playing = true - coroutine.start(function() - coroutine.wait(0.3) - self._popEvent = true - end) - end - else - info:UpdateHandCard(false, true) - end - ----多人胡的时候,同时显示胡 - if step.cmd == Record_Event.Evt_Result then - --所有都显示胡吧,暂时没做胡和自摸的判断 - if not self.result then - if step.result_data.info_list[i].is_win then - local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)] - local loader_HuEffect = info2._viewLoader_selfHuCardEffect - local isZiMo = false - DataManager.CurrenRoom.isZiMoHu = isZiMo - local hu_sound = isZiMo and ("zimo") or ("hu") - printlog("声音====>>>", hu_sound) - self:PlaySound(self.asset_group, p.self_user.sex, hu_sound) + else + self:PlaySound("Main_Majiang", p.self_user.sex, "gang") + effects = "clip_gang" + end + local clip = UIPackage.CreateObjectFromURL(string.format("ui://Main_Majiang/%s", effects)) + clip:SetSize(loader_HuEffect.width, loader_HuEffect.height) + loader_HuEffect:AddChild(clip) + clip:SetPlaySettings(0, -1, 1, -1) + clip.onPlayEnd:Add(function() + if clip.parent then + clip.parent:RemoveChild(clip) + end + clip:Dispose() + end) + clip.playing = true + info:UpdateFzList(fz, index, true, self:GetPos(fz.from_seat)) + end + printlog("lingmeng UpdateHandCard", step.cmd, p.seat, step.fz and step.fz.type or -1, FZType.Peng, + _flag_tipGetCard) + if step.cmd == Record_Event.Evt_Action and step.fz.type ~= FZType.Peng then + info:UpdateHandCard(false, true) + elseif step.cmd == Record_Event.Evt_FZTip and not _flag_tipGetCard then + info:UpdateHandCard(false, true) + elseif step.cmd == Record_Event.Evt_Result then + local _flag_result = false + for i = 1, #step.result_data.info_list do + printlog("lingmeng UpdateHandCard3", step.result_data.info_list[i].is_win, + step.result_data.info_list[i].seat) - local effects = isZiMo and ("tile_zimo") or ("tile_hu") - loader_HuEffect.visible = true - loader_HuEffect.url = "ui://Main_Majiang/" .. effects - loader_HuEffect:SetScale(2, 2) - local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3) - hu_tween:SetEase(EaseType.QuartOut) - hu_tween:OnComplete(function() - loader_HuEffect.visible = false - end) - end - end - end - ---显示提示按钮 - local _ctr_tips = info._view:GetController('tip2') - local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips") - if step.cmd == Record_Event.Evt_FZTip then - if p.seat == step.seat then - local tip = step.tiplist - local _tlist = tip.tip_sortList - _lit_fanzi.itemRenderer = function(index, obj) - local type = obj:GetController('type') - if index == tip.tip_num then - type.selectedIndex = 0 - else - index = index + 1 - if _tlist[index].type == FZType.HU then - type.selectedIndex = 4 - obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d', - _tlist[index].card) - elseif _tlist[index].type == FZType.Chi then - type.selectedIndex = FZType.Chi - for i = 1, 3 do - obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( - 'ui://Main_Majiang/b202_%d', - _tlist[index].opcard[i]) - end - elseif _tlist[index].type == FZType.Peng then - type.selectedIndex = FZType.Peng - for i = 1, 3 do - obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( - 'ui://Main_Majiang/b202_%d', - _tlist[index].card) - end - else - for i = 1, 4 do - obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( - 'ui://Main_Majiang/b202_%d', - _tlist[index].card) - end - type.selectedIndex = FZType.Gang - if _tlist[index].type == FZType.Gang_An then - obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00' - end - end - end - end - _ctr_tips.selectedIndex = 1 - _lit_fanzi.numItems = tip.tip_num + 1 - end - else - _ctr_tips.selectedIndex = 0 - _lit_fanzi.numItems = 0 - end - end + if step.result_data.info_list[i].is_win and p.seat == step.result_data.info_list[i].seat then + _flag_result = true + end + end + printlog("lingmeng UpdateHandCard3", _flag_result) + info:UpdateHandCard(_flag_result, true) + else + info:UpdateHandCard(true, true) + end + else + if step.cmd == Record_Event.Evt_Win then + else + info:UpdateHandCard(false, true) + end + end + end - --统一在大结算时显示 - if step.cmd == Record_Event.Evt_Win then - else - if self._win_pic then - self._win_pic:Dispose() - end - end - --统一在大结算时显示 - if step.cmd == Record_Event.Evt_Niao then - local niao_list = step.niao - else - end - if step.cmd == Record_Event.Evt_Result then - print("lingmeng playerback", self.result) - if not self.result then - local result = step.result_data - self.result = EXClearingView.new(self, { flag_back = true }) - self.result:InitData(0, self._room, result) - self.result._view.x = (GRoot.inst.width - self.result._view.width) * -0.5 - self.result._view.width = GRoot.inst.width - self.result._view.height = GRoot.inst.height - self._anchor:AddChild(self.result._view) - self.result._view.visible = false - self.result._view.x = self._anchor.x * -1 - self.result._view.y = self._anchor.y * -1 + --统一在大结算时显示 + if step.cmd == Record_Event.Evt_Win then + else + if self._win_pic then + self._win_pic:Dispose() + end + end + --统一在大结算时显示 + if step.cmd == Record_Event.Evt_Niao then + local niao_list = step.niao + else + end + if step.cmd == Record_Event.Evt_Result then + print("lingmeng playerback", self.result) + if not self.result then + local result = step.result_data + result.cardList = step.residual_card + self.result = EXClearingView.new(self, { flag_back = true }) + self.result:InitData(0, self._room, result) + self.result._view.x = (GRoot.inst.width - self.result._view.width) * -0.5 + self.result._view.width = GRoot.inst.width + self.result._view.height = GRoot.inst.height + self._anchor:AddChild(self.result._view) + self.result._view.visible = false + self.result._view.x = self._anchor.x * -1 + self.result._view.y = self._anchor.y * -1 local liuju = result and result.liuju or nil coroutine.start(function() @@ -341,83 +371,83 @@ function M:ShowStep(index) end end - --展示摸鸟 - local niao_list = result.niao - self._niao = UIPackage.CreateObject("Extend_MJ_FuZhou", "Panel_Birds") - self._view:GetChild('jiangma_show'):AddChild(self._niao) - self._niao:Center() - local list_niao_card = self._niao:GetChild("Lst_birds") - list_niao_card:RemoveChildrenToPool() - for i = 1, #niao_list do - --顯示正面 - local item = list_niao_card:AddItemFromPool() - local card = niao_list[i].card - item.icon = UIPackage.GetItemURL("Main_Majiang", "b202_" .. card) - if niao_list[i].score > 0 then - item:GetController("select").selectedIndex = 1 - else - item:GetController("select").selectedIndex = 0 - end - coroutine.wait(2 / #niao_list) - end - coroutine.wait(0.3) - self._niao:Dispose() + --展示摸鸟 + local niao_list = result.niao + self._niao = UIPackage.CreateObject("Extend_MJ_LiChuan", "Panel_Birds") + self._view:GetChild('jiangma_show'):AddChild(self._niao) + self._niao:Center() + local list_niao_card = self._niao:GetChild("Lst_birds") + list_niao_card:RemoveChildrenToPool() + for i = 1, #niao_list do + --顯示正面 + local item = list_niao_card:AddItemFromPool() + local card = niao_list[i].card + item.icon = UIPackage.GetItemURL("Main_Majiang", "b202_" .. card) + if niao_list[i].score > 0 then + item:GetController("select").selectedIndex = 1 + else + item:GetController("select").selectedIndex = 0 + end + coroutine.wait(2 / #niao_list) + end + coroutine.wait(0.3) + self._niao:Dispose() - --统一显示弹出分数 - for i = 1, #result.info_list do - local hu_info = result.info_list[i] - local head_info = self._player_info[self:GetPos(hu_info.seat)] + --统一显示弹出分数 + for i = 1, #result.info_list do + local hu_info = result.info_list[i] + local head_info = self._player_info[self:GetPos(hu_info.seat)] -- 扣分动画 head_info:UpdateScore(hu_info.total_score, true) end coroutine.wait(0.3) - if liuju then - self:PlayMJSound("liuju.mp3") - coroutine.wait(3) - self:PlayMJSound("end_music.mp3") - else - self:PlayMJSound("end_music.mp3") - end - coroutine.wait(0.5) - self.result._view.visible = true - end) - else - -- self.result._view.visible = true - end - end - --显示杠分 - if step.cmd == Record_Event.Evt_GangScore then - local totalScoreList = step.totalScoreList - local playerList = step.playerList - local addScoreList = step.addScoreList - local scoreData = {} - for i = 1, #totalScoreList do - local p = {} + if liuju then + self:PlayMJSound("liuju.mp3") + coroutine.wait(3) + self:PlayMJSound("end_music.mp3") + else + self:PlayMJSound("end_music.mp3") + end + coroutine.wait(0.5) + self.result._view.visible = true + end) + else + -- self.result._view.visible = true + end + end + --显示杠分 + if step.cmd == Record_Event.Evt_GangScore then + local totalScoreList = step.totalScoreList + local playerList = step.playerList + local addScoreList = step.addScoreList + local scoreData = {} + for i = 1, #totalScoreList do + local p = {} - p.totalScore = totalScoreList[i] - p.player = playerList[i] - p.addScore = addScoreList[i] + p.totalScore = totalScoreList[i] + p.player = playerList[i] + p.addScore = addScoreList[i] - scoreData[#scoreData + 1] = p - end + scoreData[#scoreData + 1] = p + end - for _, p in pairs(scoreData) do - local player = self._room:GetPlayerById(p.player) - local infoView = self._player_info[self:GetPos(player.seat)] - player.cur_hp = p.totalScore + for _, p in pairs(scoreData) do + local player = self._room:GetPlayerById(p.player) + local infoView = self._player_info[self:GetPos(player.seat)] + player.cur_hp = p.totalScore - if p.addScore ~= 0 then - infoView:ScoreAnimation(p.addScore) - if player.cur_hp >= 0 then - infoView._view:GetChild("text_jifen").text = "+" .. player.cur_hp - else - infoView._view:GetChild("text_jifen").text = player.cur_hp - end - end - end - end + if p.addScore ~= 0 then + infoView:ScoreAnimation(p.addScore) + if player.cur_hp >= 0 then + infoView._view:GetChild("text_jifen").text = "+" .. player.cur_hp + else + infoView._view:GetChild("text_jifen").text = player.cur_hp + end + end + end + end end function M:GenerateAllStepData(data) @@ -427,10 +457,12 @@ function M:GenerateAllStepData(data) local info = data.info step.cmd = "" step.left_card = info.left_card + step.last_get_seat = 0 step.last_out_seat = 0 step.current_out_seat = 1 step.win = 0 step.niao = 0 + step.residual_card = info.residual_card step.player_card_data = {} for i = 1, #self._room.player_list do @@ -456,6 +488,7 @@ function M:CmdGetCard(cmd, index) local data = self:CopyLastStep(index) data.cmd = cmd.cmd data.current_out_seat = cmd.seat + data.last_get_seat = cmd.seat data.left_card = cmd.data.left_count local u = data.player_card_data[cmd.seat] u.card_list[#u.card_list + 1] = cmd.data.card @@ -477,28 +510,43 @@ function M:CmdAction(cmd, index) data.last_out_seat = 0 data.current_out_seat = cmd.seat local u = data.player_card_data[cmd.seat] - for i = 1, #cmd.data.opcard do - list_remove(u.card_list, cmd.data.opcard[i]) - end - local fz = {} - fz.type = cmd.data.type - fz.card = cmd.data.card - fz.opcard = cmd.data.opcard - fz.from_seat = cmd.data.from_seat - data.fz = fz - local uf = data.player_card_data[cmd.data.from_seat] - if fz.type ~= FZType.Gang_An and fz.type ~= FZType.Gang_Peng then - table.remove(uf.outcard_list, #uf.outcard_list) - end - if fz.type ~= FZType.Gang_Peng then - u.fz_list[#u.fz_list + 1] = fz - else + local fz = nil + local index = -1 + local ftype = cmd.data.type + if (ftype == FZType.Gang_Peng) then for i = 1, #u.fz_list do - if u.fz_list[i].type == FZType.Peng and u.fz_list[i].card == fz.card then - u.fz_list[i].type = FZType.Gang_Peng + if (u.fz_list[i].card == cmd.data.card) then + u.fz_list[i].card = cmd.data.card + fz = u.fz_list[i] + fz.type = cmd.data.type + index = i - 1 + break end end end + fz = {} + fz.card = cmd.data.card + fz.type = cmd.data.type + if (index == -1) then + u.fz_list[#u.fz_list + 1] = fz + end + fz.from_seat = cmd.data.from_seat + local remove_num = #cmd.data.opcard + + for i = 1, remove_num do + if ftype == FZType.Gang_Peng then + list_remove(u.card_list, cmd.data.card) + else + list_remove(u.card_list, cmd.data.opcard[i]) + end + end + + u.hand_left_count = u.hand_left_count - remove_num + if cmd.data.from_seat ~= u.seat and ftype ~= FZType.Gang_Peng then + local u = data.player_card_data[cmd.data.from_seat] + table.remove(u.outcard_list, #u.outcard_list) + end + data.fz = fz end function M:CmdWin(cmd, index) @@ -520,42 +568,52 @@ function M:CmdPiao(cmd, index) end function M:CmdFZTip(cmd, index) - local data = self:CopyLastStep(index) - data.cmd = cmd.cmd - data.seat = cmd.seat - local tiplist = FZTipList.new() - local list = cmd.data.tip_list - for i = 1, #list do - local dtip = list[i] - local tip = {} - tip.id = dtip["id"] - tip.weight = dtip["weight"] - tip.card = dtip["card"] - tip.type = dtip["type"] - tip.opcard = dtip["opcard"] - tiplist:AddTip(tip) - end - --排序规则,胡杠碰 - tiplist:SortList(function(a, b) - return a.type < b.type - end) - data.tiplist = tiplist - data.weight = cmd.data.weight + local data = self:CopyLastStep(index) + data.cmd = cmd.cmd + data.seat = cmd.seat + local tiplist = FZTipList.new() + local list = cmd.data.tip_list + for i = 1, #list do + local dtip = list[i] + local tip = {} + tip.id = dtip["id"] + tip.weight = dtip["weight"] + tip.card = dtip["card"] + tip.type = dtip["type"] + tip.opcard = dtip["opcard"] + tiplist:AddTip(tip) + end + --排序规则,胡杠碰 + tiplist:SortList(function(a, b) + return a.type < b.type + end) + data.tiplist = tiplist + data.weight = cmd.data.weight end function M:GangScore(cmd, index) - local data = self:CopyLastStep(index) - data.cmd = cmd.cmd - data.seat = cmd.seat - data.totalScoreList = cmd.data.totalScoreList - data.playerList = cmd.data.playerList - data.addScoreList = cmd.data.addScoreList + local data = self:CopyLastStep(index) + data.cmd = cmd.cmd + data.seat = cmd.seat + data.totalScoreList = cmd.data.totalScoreList + data.playerList = cmd.data.playerList + data.addScoreList = cmd.data.addScoreList end function M:CmdResult(cmd, index) local data = self:CopyLastStep(index) data.cmd = cmd.cmd + data.seat = 0 data.result_data = cmd.data + for i = 1, #cmd.data.info_list do + local info = cmd.data.info_list[i] + if info.is_win and info.seat ~= data.current_out_seat then + local u = data.player_card_data[info.seat] + u.card_list[#u.card_list + 1] = info.win_card + local u = data.player_card_data[data.last_out_seat] + table.remove(u.outcard_list, #u.outcard_list) + end + end end function M:CopyLastStep(index) @@ -587,6 +645,16 @@ function M:UpdateRound() self._room.room_config.round) end +function M:ShowJing() + print("lingmeng jing ", self._room.jing) + if self._room.jing then + self.jing.visible = true + MJPlayerCardInfoView.fillCard2(self, self.jing, "b202_", self._room.jing) + else + self.jing.visible = false + end +end + function M:UpdateStep(step) self._record:GetChild("tex_step").text = "第 " .. step .. " / " .. #self._step .. "步" end diff --git a/lua_probject/extend_project/extend/majiang/nancheng/EXGameInfo.lua b/lua_probject/extend_project/extend/majiang/nancheng/EXGameInfo.lua index c55d7290..c63d651f 100644 --- a/lua_probject/extend_project/extend/majiang/nancheng/EXGameInfo.lua +++ b/lua_probject/extend_project/extend/majiang/nancheng/EXGameInfo.lua @@ -208,7 +208,7 @@ function M:LoadConfigToDetailOnlyPlay(data, hpdata) returnString = string.format("%s人数%s人", returnString, configData.maxPlayers) if hpData then - returnString = string.format("%s %s", returnString, hpData.maxRound) + returnString = string.format("%s %s局", returnString, hpData.maxRound) end if configData.zimo then @@ -269,7 +269,7 @@ function M:LoadConfigToDetail(data, hpdata) returnString = string.format("%s人数%s人", returnString, configData.maxPlayers) if hpData then - returnString = string.format("%s %s", returnString, hpData.maxRound) + returnString = string.format("%s %s局", returnString, hpData.maxRound) end if configData.zimo then returnString = string.format("%s,%s", returnString, configData.zimo == 0 and "可点炮,可自摸" or "必须自摸") diff --git a/lua_probject/extend_project/extend/majiang/nancheng/EXMainView.lua b/lua_probject/extend_project/extend/majiang/nancheng/EXMainView.lua index 290e1807..8521c05b 100644 --- a/lua_probject/extend_project/extend/majiang/nancheng/EXMainView.lua +++ b/lua_probject/extend_project/extend/majiang/nancheng/EXMainView.lua @@ -508,6 +508,8 @@ function M:EventInit() self.dismissWin:Destroy() end self.dismissWin = nil + self._player_card_info[1]._ctr_tip.selectedIndex = 0 + self._player_card_info[1]._ctr_showGuoHu.selectedIndex = 0 if over == 2 then if _room.curren_round > 0 then self:PlayMJMusic("gameover.mp3") diff --git a/lua_probject/extend_project/extend/majiang/nancheng/EXPlayBackView.lua b/lua_probject/extend_project/extend/majiang/nancheng/EXPlayBackView.lua index fe642ae7..c38f4105 100644 --- a/lua_probject/extend_project/extend/majiang/nancheng/EXPlayBackView.lua +++ b/lua_probject/extend_project/extend/majiang/nancheng/EXPlayBackView.lua @@ -3,6 +3,8 @@ local EXRoomConfig = import(".EXRoomConfig") local EXClearingView = import(".EXClearingView") local HuCardImg = import(".HuCardImg") local FZTipList = require("main.majiang.FZData") +local MJPlayerCardInfoView = require("main.majiang.MJPlayerCardInfoView") + local Record_Event = import(".RecordEvent") @@ -29,6 +31,7 @@ function M:InitView(url) self._tex_round = self._view:GetChild("tex_round") self._tex_LeftCard = self._view:GetChild("remaining_card") self._anchor = self._view:GetChild("mask_tips") + self.jing = self._view:GetChild('jing') self.HuCardImg = setmetatable(HuCardImg, { __index = self.HuCardImg }) self.asset_group = "NanCheng_MJ" @@ -62,6 +65,7 @@ function M:FillRoomData(data) self:UpdateLeftCard(left_count) local round = data.info.round self:UpdateRound(round) + self:ShowJing() local roominfo_panel = self._view:GetChild("roominfo_panel1") roominfo_panel:GetChild("tex_roomid").text = room.room_id @@ -79,6 +83,8 @@ function M:FillRoomData(data) self:GenerateAllStepData(data) self:UpdateStep(1) self:Play() + self._laiziMove:Play() + self._touxiangMove:Play() -- self:ShowStep(0) end @@ -98,8 +104,8 @@ function M:ShowStep(index) p.outcard_list = step.player_card_data[i].outcard_list p.fz_list = step.player_card_data[i].fz_list p.hand_left_count = #p.card_list - info:Clear() - info:ResetFzList() + -- info:Clear() + -- info:ResetFzList() p.piao_niao = step.player_card_data[i].piao_niao local head_info = self._player_info[self:GetPos(i)] if p.piao_niao and p.piao_niao > 0 then @@ -116,8 +122,86 @@ function M:ShowStep(index) else info:UpdateOutCardList() end - if (step.cmd == Record_Event.Evt_GetCard or step.cmd == Record_Event.Evt_Action) and p.seat == step.current_out_seat then - info:UpdateHandCard(true, true) + ---显示提示按钮 + local _ctr_tips = info._view:GetController('tip2') + local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips") + local _flag_tipGetCard = false + if step.cmd == Record_Event.Evt_FZTip then + if p.seat == step.seat then + local tip = step.tiplist + local _tlist = tip.tip_sortList + _lit_fanzi.itemRenderer = function(index, obj) + local type = obj:GetController('type') + if index == tip.tip_num then + type.selectedIndex = 0 + else + index = index + 1 + if _tlist[index].type == FZType.HU then + type.selectedIndex = 4 + obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d', + _tlist[index].card) + _flag_tipGetCard = self.last_get_seat ~= step.seat + elseif _tlist[index].type == FZType.Chi then + type.selectedIndex = FZType.Chi + for i = 1, 3 do + obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( + 'ui://Main_Majiang/b202_%d', + _tlist[index].opcard[i]) + end + elseif _tlist[index].type == FZType.Peng then + type.selectedIndex = FZType.Peng + for i = 1, 3 do + obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( + 'ui://Main_Majiang/b202_%d', + _tlist[index].card) + end + else + for i = 1, 4 do + obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( + 'ui://Main_Majiang/b202_%d', + _tlist[index].card) + end + type.selectedIndex = FZType.Gang + if _tlist[index].type == FZType.Gang_An then + obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00' + end + _flag_tipGetCard = true + end + end + end + _ctr_tips.selectedIndex = 1 + _lit_fanzi.numItems = tip.tip_num + 1 + end + else + _ctr_tips.selectedIndex = 0 + _lit_fanzi.numItems = 0 + end + ----多人胡的时候,同时显示胡 + if step.cmd == Record_Event.Evt_Result then + --所有都显示胡吧,暂时没做胡和自摸的判断 + if not self.result then + if step.result_data.info_list[i].is_win then + local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)] + local loader_HuEffect = info2._viewLoader_selfHuCardEffect + local isZiMo = false + DataManager.CurrenRoom.isZiMoHu = isZiMo + local hu_sound = isZiMo and ("zimo") or ("hu") + printlog("声音====>>>", hu_sound) + self:PlaySound(self.asset_group, p.self_user.sex, hu_sound) + + local effects = isZiMo and ("tile_zimo") or ("tile_hu") + loader_HuEffect.visible = true + loader_HuEffect.url = "ui://Main_Majiang/" .. effects + loader_HuEffect:SetScale(2, 2) + local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3) + hu_tween:SetEase(EaseType.QuartOut) + hu_tween:OnComplete(function() + loader_HuEffect.visible = false + end) + end + end + end + if step.cmd ~= Record_Event.Evt_OutCard and step.cmd ~= Record_Event.Evt_GangScore and step.cmd ~= Record_Event.Evt_Win and p.seat == step.current_out_seat or step.cmd == Record_Event.Evt_Result then if step.cmd == Record_Event.Evt_Action then pt("lingmeng step ", step) local fz = step.fz @@ -129,132 +213,78 @@ function M:ShowStep(index) effects = "clip_peng" elseif fz.type == FZType.Chi then - else - self:PlaySound("Main_Majiang", p.self_user.sex, "gang") - effects = "clip_gang" - end - local clip = UIPackage.CreateObjectFromURL(string.format("ui://Main_Majiang/%s", effects)) - clip:SetSize(loader_HuEffect.width, loader_HuEffect.height) - loader_HuEffect:AddChild(clip) - clip:SetPlaySettings(0, -1, 1, -1) - clip.onPlayEnd:Add(function() - if clip.parent then - clip.parent:RemoveChild(clip) - end - clip:Dispose() - end) - clip.playing = true - coroutine.start(function() - coroutine.wait(0.3) - self._popEvent = true - end) - end - else - info:UpdateHandCard(false, true) - end - ----多人胡的时候,同时显示胡 - if step.cmd == Record_Event.Evt_Result then - --所有都显示胡吧,暂时没做胡和自摸的判断 - if not self.result then - if step.result_data.info_list[i].is_win then - local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)] - local loader_HuEffect = info2._viewLoader_selfHuCardEffect - local isZiMo = false - DataManager.CurrenRoom.isZiMoHu = isZiMo - local hu_sound = isZiMo and ("zimo") or ("hu") - printlog("声音====>>>", hu_sound) - self:PlaySound(self.asset_group, p.self_user.sex, hu_sound) + else + self:PlaySound("Main_Majiang", p.self_user.sex, "gang") + effects = "clip_gang" + end + local clip = UIPackage.CreateObjectFromURL(string.format("ui://Main_Majiang/%s", effects)) + clip:SetSize(loader_HuEffect.width, loader_HuEffect.height) + loader_HuEffect:AddChild(clip) + clip:SetPlaySettings(0, -1, 1, -1) + clip.onPlayEnd:Add(function() + if clip.parent then + clip.parent:RemoveChild(clip) + end + clip:Dispose() + end) + clip.playing = true + info:UpdateFzList(fz, index, true, self:GetPos(fz.from_seat)) + end + printlog("lingmeng UpdateHandCard", step.cmd, p.seat, step.fz and step.fz.type or -1, FZType.Peng, + _flag_tipGetCard) + if step.cmd == Record_Event.Evt_Action and step.fz.type ~= FZType.Peng then + info:UpdateHandCard(false, true) + elseif step.cmd == Record_Event.Evt_FZTip and not _flag_tipGetCard then + info:UpdateHandCard(false, true) + elseif step.cmd == Record_Event.Evt_Result then + local _flag_result = false + for i = 1, #step.result_data.info_list do + printlog("lingmeng UpdateHandCard3", step.result_data.info_list[i].is_win, + step.result_data.info_list[i].seat) - local effects = isZiMo and ("tile_zimo") or ("tile_hu") - loader_HuEffect.visible = true - loader_HuEffect.url = "ui://Main_Majiang/" .. effects - loader_HuEffect:SetScale(2, 2) - local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3) - hu_tween:SetEase(EaseType.QuartOut) - hu_tween:OnComplete(function() - loader_HuEffect.visible = false - end) - end - end - end - ---显示提示按钮 - local _ctr_tips = info._view:GetController('tip2') - local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips") - if step.cmd == Record_Event.Evt_FZTip then - if p.seat == step.seat then - local tip = step.tiplist - local _tlist = tip.tip_sortList - _lit_fanzi.itemRenderer = function(index, obj) - local type = obj:GetController('type') - if index == tip.tip_num then - type.selectedIndex = 0 - else - index = index + 1 - if _tlist[index].type == FZType.HU then - type.selectedIndex = 4 - obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d', - _tlist[index].card) - elseif _tlist[index].type == FZType.Chi then - type.selectedIndex = FZType.Chi - for i = 1, 3 do - obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( - 'ui://Main_Majiang/b202_%d', - _tlist[index].opcard[i]) - end - elseif _tlist[index].type == FZType.Peng then - type.selectedIndex = FZType.Peng - for i = 1, 3 do - obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( - 'ui://Main_Majiang/b202_%d', - _tlist[index].card) - end - else - for i = 1, 4 do - obj:GetChild(string.format('btn_Card%d', i)).icon = string.format( - 'ui://Main_Majiang/b202_%d', - _tlist[index].card) - end - type.selectedIndex = FZType.Gang - if _tlist[index].type == FZType.Gang_An then - obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00' - end - end - end - end - _ctr_tips.selectedIndex = 1 - _lit_fanzi.numItems = tip.tip_num + 1 - end - else - _ctr_tips.selectedIndex = 0 - _lit_fanzi.numItems = 0 - end - end + if step.result_data.info_list[i].is_win and p.seat == step.result_data.info_list[i].seat then + _flag_result = true + end + end + printlog("lingmeng UpdateHandCard3", _flag_result) + info:UpdateHandCard(_flag_result, true) + else + info:UpdateHandCard(true, true) + end + else + if step.cmd == Record_Event.Evt_Win then + else + info:UpdateHandCard(false, true) + end + end + end - --统一在大结算时显示 - if step.cmd == Record_Event.Evt_Win then - else - if self._win_pic then - self._win_pic:Dispose() - end - end - --统一在大结算时显示 - if step.cmd == Record_Event.Evt_Niao then - local niao_list = step.niao - else - end - if step.cmd == Record_Event.Evt_Result then - print("lingmeng playerback", self.result) - if not self.result then - local result = step.result_data - self.result = EXClearingView.new(self, { flag_back = true }) - self.result:InitData(0, self._room, result) - self.result._view.x = (GRoot.inst.width - self.result._view.width) * -0.5 - self.result._view.width = GRoot.inst.width - self.result._view.height = GRoot.inst.height - self._anchor:AddChild(self.result._view) - self.result._view.visible = false - self.result._view.x = self._anchor.x * -1 - self.result._view.y = self._anchor.y * -1 + --统一在大结算时显示 + if step.cmd == Record_Event.Evt_Win then + else + if self._win_pic then + self._win_pic:Dispose() + end + end + --统一在大结算时显示 + if step.cmd == Record_Event.Evt_Niao then + local niao_list = step.niao + else + end + if step.cmd == Record_Event.Evt_Result then + print("lingmeng playerback", self.result) + if not self.result then + local result = step.result_data + result.cardList = step.residual_card + self.result = EXClearingView.new(self, { flag_back = true }) + self.result:InitData(0, self._room, result) + self.result._view.x = (GRoot.inst.width - self.result._view.width) * -0.5 + self.result._view.width = GRoot.inst.width + self.result._view.height = GRoot.inst.height + self._anchor:AddChild(self.result._view) + self.result._view.visible = false + self.result._view.x = self._anchor.x * -1 + self.result._view.y = self._anchor.y * -1 local liuju = result and result.liuju or nil coroutine.start(function() @@ -343,7 +373,7 @@ function M:ShowStep(index) --展示摸鸟 local niao_list = result.niao - self._niao = UIPackage.CreateObject("Extend_MJ_FuZhou", "Panel_Birds") + self._niao = UIPackage.CreateObject("Extend_MJ_NanCheng", "Panel_Birds") self._view:GetChild('jiangma_show'):AddChild(self._niao) self._niao:Center() local list_niao_card = self._niao:GetChild("Lst_birds") @@ -427,10 +457,12 @@ function M:GenerateAllStepData(data) local info = data.info step.cmd = "" step.left_card = info.left_card + step.last_get_seat = 0 step.last_out_seat = 0 step.current_out_seat = 1 step.win = 0 step.niao = 0 + step.residual_card = info.residual_card step.player_card_data = {} for i = 1, #self._room.player_list do @@ -456,6 +488,7 @@ function M:CmdGetCard(cmd, index) local data = self:CopyLastStep(index) data.cmd = cmd.cmd data.current_out_seat = cmd.seat + data.last_get_seat = cmd.seat data.left_card = cmd.data.left_count local u = data.player_card_data[cmd.seat] u.card_list[#u.card_list + 1] = cmd.data.card @@ -477,28 +510,43 @@ function M:CmdAction(cmd, index) data.last_out_seat = 0 data.current_out_seat = cmd.seat local u = data.player_card_data[cmd.seat] - for i = 1, #cmd.data.opcard do - list_remove(u.card_list, cmd.data.opcard[i]) - end - local fz = {} - fz.type = cmd.data.type - fz.card = cmd.data.card - fz.opcard = cmd.data.opcard - fz.from_seat = cmd.data.from_seat - data.fz = fz - local uf = data.player_card_data[cmd.data.from_seat] - if fz.type ~= FZType.Gang_An and fz.type ~= FZType.Gang_Peng then - table.remove(uf.outcard_list, #uf.outcard_list) - end - if fz.type ~= FZType.Gang_Peng then - u.fz_list[#u.fz_list + 1] = fz - else + local fz = nil + local index = -1 + local ftype = cmd.data.type + if (ftype == FZType.Gang_Peng) then for i = 1, #u.fz_list do - if u.fz_list[i].type == FZType.Peng and u.fz_list[i].card == fz.card then - u.fz_list[i].type = FZType.Gang_Peng + if (u.fz_list[i].card == cmd.data.card) then + u.fz_list[i].card = cmd.data.card + fz = u.fz_list[i] + fz.type = cmd.data.type + index = i - 1 + break end end end + fz = {} + fz.card = cmd.data.card + fz.type = cmd.data.type + if (index == -1) then + u.fz_list[#u.fz_list + 1] = fz + end + fz.from_seat = cmd.data.from_seat + local remove_num = #cmd.data.opcard + + for i = 1, remove_num do + if ftype == FZType.Gang_Peng then + list_remove(u.card_list, cmd.data.card) + else + list_remove(u.card_list, cmd.data.opcard[i]) + end + end + + u.hand_left_count = u.hand_left_count - remove_num + if cmd.data.from_seat ~= u.seat and ftype ~= FZType.Gang_Peng then + local u = data.player_card_data[cmd.data.from_seat] + table.remove(u.outcard_list, #u.outcard_list) + end + data.fz = fz end function M:CmdWin(cmd, index) @@ -555,7 +603,17 @@ end function M:CmdResult(cmd, index) local data = self:CopyLastStep(index) data.cmd = cmd.cmd + data.seat = 0 data.result_data = cmd.data + for i = 1, #cmd.data.info_list do + local info = cmd.data.info_list[i] + if info.is_win and info.seat ~= data.current_out_seat then + local u = data.player_card_data[info.seat] + u.card_list[#u.card_list + 1] = info.win_card + local u = data.player_card_data[data.last_out_seat] + table.remove(u.outcard_list, #u.outcard_list) + end + end end function M:CopyLastStep(index) @@ -587,6 +645,16 @@ function M:UpdateRound() self._room.room_config.round) end +function M:ShowJing() + print("lingmeng jing ", self._room.jing) + if self._room.jing then + self.jing.visible = true + MJPlayerCardInfoView.fillCard2(self, self.jing, "b202_", self._room.jing) + else + self.jing.visible = false + end +end + function M:UpdateStep(step) self._record:GetChild("tex_step").text = "第 " .. step .. " / " .. #self._step .. "步" end diff --git a/lua_probject/extend_project/extend/majiang/qizhiba/main/MJPlayBackView.lua b/lua_probject/extend_project/extend/majiang/qizhiba/main/MJPlayBackView.lua index b50b7149..ad78b81f 100644 --- a/lua_probject/extend_project/extend/majiang/qizhiba/main/MJPlayBackView.lua +++ b/lua_probject/extend_project/extend/majiang/qizhiba/main/MJPlayBackView.lua @@ -2,38 +2,38 @@ local MJPlayerCardInfoView = import(".MJPlayerCardInfoView") local MJPlayerSelfCardInfoView = import(".MJPlayerSelfCardInfoView") local TableBG = import('Game.Data.TableBG') - --- +--- local M = {} -setmetatable(M,{__index = PlayBackView}) +setmetatable(M, { __index = PlayBackView }) local bg_config = { - {id = 1, url = "base/main_pokemajiang/bg/bg1", thumb = "ui://Main_PokeMaJiang/b01"} + { id = 1, url = "base/main_pokemajiang/bg/bg1", thumb = "ui://Main_PokeMaJiang/b01" } } function M:InitView(url) UIPackage.AddPackage("base/main_pokemajiang/ui/Main_PokeMaJiang") - PlayBackView.InitView(self,url) + PlayBackView.InitView(self, url) local _view = self._view self._cursor = UIPackage.CreateObjectFromURL("ui://Main_PokeMaJiang/Ani_play_bj") - TableBG.LoadTableBG(1, nil, self._root_view,bg_config) + TableBG.LoadTableBG(1, nil, self._root_view, bg_config) - UpdateBeat:Add(self.OnUpdate,self) + UpdateBeat:Add(self.OnUpdate, self) end function M:FillRoomData() local _room = self._room - if self._player_card_info == nil or #self._player_card_info == 0 then + if self._player_card_info == nil or #self._player_card_info == 0 then self._player_card_info = {} local _player_card_info = self._player_card_info for i = 1, _room.room_config.people_num do local tem = self._view:GetChild("player_card_info" .. i) - _player_card_info[i] = self:NewMJPlayerCardInfoView(tem,i) + _player_card_info[i] = self:NewMJPlayerCardInfoView(tem, i) end end local list = _room.player_list - for i=1,#list do + for i = 1, #list do local p = list[i] local info = self._player_card_info[self:GetPos(p.seat)] info:SetPlayer(p) @@ -42,7 +42,7 @@ function M:FillRoomData() self:SetCardBoxPosition() local list = _room.player_list - for i=1,#list do + for i = 1, #list do local p = list[i] local info = self._player_info[self:GetPos(p.seat)] info._view.visible = true @@ -51,17 +51,17 @@ function M:FillRoomData() end function M:SetCardBoxPosition() - local _room = self._room - for i = 1, _room.room_config.people_num do - local tex = self._view:GetChild("cardbox"):GetChild("direction"..i) - local index = _room.self_player.seat + i - 1 - index = index > 4 and index - 4 or index - tex.text = self._gamectr:GetPosString(index) - end + local _room = self._room + for i = 1, _room.room_config.people_num do + local tex = self._view:GetChild("cardbox"):GetChild("direction" .. i) + local index = _room.self_player.seat + i - 1 + index = index > 4 and index - 4 or index + tex.text = self._gamectr:GetPosString(index) + end end -function M:NewMJPlayerCardInfoView(view,index) - return MJPlayerCardInfoView.new(view,self) +function M:NewMJPlayerCardInfoView(view, index) + return MJPlayerCardInfoView.new(view, self) end function M:NextRecordPlay() @@ -110,7 +110,8 @@ end function M:ChangeTextSpeed() local str1 = self._play and self._speed or "" self._view:GetChild("panel_record"):GetChild("tex_speed").text = str1 - local str2 = not self._play and (self._playFoward and "播放暂停" or "回退暂停") or self._playFoward and (self._speed == 1 and "播放" or "快进") or (self._speed == 1 and "回退" or "快退") + local str2 = not self._play and (self._playFoward and "播放暂停" or "回退暂停") or + self._playFoward and (self._speed == 1 and "播放" or "快进") or (self._speed == 1 and "回退" or "快退") self._view:GetChild("panel_record"):GetChild("tex_2").text = str2 local str3 = self._play and "倍速度" or "" self._view:GetChild("panel_record"):GetChild("tex_1").text = str3 @@ -154,11 +155,11 @@ function M:OnUpdate() if self._play then if (self._currentStep == #self.cmdList and self._playFoward) then self:ChangePlayState(false) - ViewUtil.ErrorTip(nil,"当前已是录像结尾了,再次点击播放按钮可重新播放") + ViewUtil.ErrorTip(nil, "当前已是录像结尾了,再次点击播放按钮可重新播放") return elseif (self._currentStep == 0 and not self._playFoward) then self:ChangePlayState(false) - ViewUtil.ErrorTip(nil,"当前已是录像开头了,再次点击播放按钮可重新播放") + ViewUtil.ErrorTip(nil, "当前已是录像开头了,再次点击播放按钮可重新播放") return end self._timer = self._timer + Time.deltaTime @@ -171,21 +172,21 @@ function M:OnUpdate() end end -function M:RemoveCursor() +function M:RemoveCursor() if self._cursor.parent then - self._cursor.parent:GetController("color").selectedIndex = 0 - end - self._cursor:RemoveFromParent() + self._cursor.parent:GetController("color").selectedIndex = 0 + end + self._cursor:RemoveFromParent() end function M:GetPrefix() - return get_majiang_prefix(DataManager.CurrenRoom.game_id) + return get_majiang_prefix(DataManager.CurrenRoom.game_id) end function M:Destroy() if self._cursor then self._cursor:Dispose() end - UpdateBeat:Remove(self.OnUpdate,self) + UpdateBeat:Remove(self.OnUpdate, self) PlayBackView.Destroy(self) end -return M \ No newline at end of file +return M diff --git a/lua_probject/extend_project/extend/poker/runfast/EXGameInfo.lua b/lua_probject/extend_project/extend/poker/runfast/EXGameInfo.lua index 8a6b7e47..c8ff25b4 100644 --- a/lua_probject/extend_project/extend/poker/runfast/EXGameInfo.lua +++ b/lua_probject/extend_project/extend/poker/runfast/EXGameInfo.lua @@ -310,7 +310,7 @@ function M:LoadConfigToDetail(data, hpdata) returnString = string.format("%s人数%s人", returnString, configData.maxPlayers) if hpData then - returnString = string.format("%s %s", returnString, hpData.maxRound) + returnString = string.format("%s %s局", returnString, hpData.maxRound) end if configData.leaf then returnString = string.format("%s,%s", returnString, configData.leaf == 1 and "15张手牌" or "16张手牌") diff --git a/lua_probject/extend_project/extend/poker/runfast/RunFast_PlayerBackView.lua b/lua_probject/extend_project/extend/poker/runfast/RunFast_PlayerBackView.lua index 14ce2946..0b2ccae8 100644 --- a/lua_probject/extend_project/extend/poker/runfast/RunFast_PlayerBackView.lua +++ b/lua_probject/extend_project/extend/poker/runfast/RunFast_PlayerBackView.lua @@ -106,6 +106,7 @@ end function M:FillRoomData(data) -- print("hidezhanji 1111") + self._currentStep = 1 local room = DataManager.CurrenRoom self._room = DataManager.CurrenRoom @@ -147,6 +148,31 @@ function M:FillRoomData(data) self:Play() end +function M:ChangePlayState(state) + self._play = state + self:ChangeTextSpeed() + local btn_play = self._view:GetChild("panel_record"):GetChild("btn_play") + if self._play then + btn_play:GetController("state").selectedIndex = 1 + else + btn_play:GetController("state").selectedIndex = 0 + end + --开始时,隐藏显示结算界面 + if state then + if self.destory_win ~= nil then + coroutine.stop(self.destory_win) + end + + self.destory_win = nil + if self.result_view then + self.result_view._root_view:RemoveFromParent() + self.result_view:Destroy() + self._ctr_inClear.selectedIndex = 0 + end + self.result_view = nil + end +end + function M:ShowStep(index) local step = self._step[index] if step == nil then @@ -302,9 +328,9 @@ function M:ShowStep(index) local num = self._view:GetChildIndex(self._view:GetChild("panel_record")) self._view:AddChildAt(self.result_view._view, num) else - if self.result_view then - self.result_view:Dispose() - end + -- if self.result_view then + -- self.result_view:Dispose() + -- end end end @@ -434,10 +460,10 @@ function M:NextRecordPlay() self._speed = 1 self._playFoward = true self:ChangeTextSpeed() - if self.result_view then - self.result_view:Dispose() - self.result_view = nil - end + -- if self.result_view then + -- self.result_view:Dispose() + -- self.result_view = nil + -- end end function M:LastRecordPlay() @@ -449,10 +475,10 @@ function M:LastRecordPlay() self._speed = 1 self._playFoward = true self:ChangeTextSpeed() - if self.result_view then - self.result_view:Dispose() - self.result_view = nil - end + -- if self.result_view then + -- self.result_view:Dispose() + -- self.result_view = nil + -- end end function M:_Effect(type1, player) diff --git a/lua_probject/main_project/main/majiang/MJMainView.lua b/lua_probject/main_project/main/majiang/MJMainView.lua index bff8c4b5..a86b3b0b 100644 --- a/lua_probject/main_project/main/majiang/MJMainView.lua +++ b/lua_probject/main_project/main/majiang/MJMainView.lua @@ -792,6 +792,8 @@ function M:OnHuCard(...) local player = self._room:GetPlayerBySeat(win_seat) -- self:RemoveCursor() --info:UpdateHandCard(false, false) + self._player_card_info[1]._ctr_tip.selectedIndex = 0 + self._player_card_info[1]._ctr_showGuoHu.selectedIndex = 0 info:ShowHuCard(win_card, index == 1) self.cHuCardEffect.selectedIndex = 1 diff --git a/lua_probject/main_project/main/majiang/MJPlayBackView.lua b/lua_probject/main_project/main/majiang/MJPlayBackView.lua index 0e31ede4..6bcc44e2 100644 --- a/lua_probject/main_project/main/majiang/MJPlayBackView.lua +++ b/lua_probject/main_project/main/majiang/MJPlayBackView.lua @@ -21,6 +21,8 @@ function M:InitView(url) PlayBackView.InitView(self, url) local _view = self._view self._cursor = UIPackage.CreateObjectFromURL("ui://Main_Majiang/Ani_play_bj") + self._laiziMove = self._view:GetTransition('laiziMove') + self._touxiangMove = self._view:GetTransition('touxiangMove') TableBG.LoadTableBG(1, nil, self._root_view, bg_config) UpdateBeat:Add(self.OnUpdate, self) @@ -133,6 +135,15 @@ function M:LastRecordPlay() end function M:RestartRecordPlay() + local list = self._room.player_list + for i = 1, #list do + local p = list[i] + local info = self._player_info[self:GetPos(p.seat)] + info._view.visible = true + info:FillData(p) + local card_info = self._player_card_info[self:GetPos(p.seat)] + card_info:Clear() + end self:ChangeAlpha() self._currentStep = 0 self._speed = 1 @@ -179,7 +190,7 @@ function M:ChangeTextSpeed() -- self._view:GetChild("panel_record"):GetChild("tex_2").text = str2 -- local str3 = self._play and "倍速度" or "" -- self._view:GetChild("panel_record"):GetChild("tex_1").text = str3 - self._record:GetChild('tex_speed').text = self._speed + self._record:GetChild('tex_speed').text = self._speed == 30 and 1 or self._speed end function M:CmdLeftArrows() diff --git a/lua_probject/main_project/main/majiang/MJPlayerCardInfoView.lua b/lua_probject/main_project/main/majiang/MJPlayerCardInfoView.lua index 91eb06b5..7d2a0166 100644 --- a/lua_probject/main_project/main/majiang/MJPlayerCardInfoView.lua +++ b/lua_probject/main_project/main/majiang/MJPlayerCardInfoView.lua @@ -175,10 +175,27 @@ function M:UpdateHandCard(getcard, mp) mp = mp or false --存在back_columnGap字段则调控列表间距 - if self._viewText_cardInfo['back_columnGap'] and self._view_handCardList.columnGap ~= tonumber(self._viewText_cardInfo['back_columnGap']) then - self._view_handCardList.columnGap = tonumber(self._viewText_cardInfo['back_columnGap']) + if mp then + if self._viewText_cardInfo['show_columnGap'] and self._view_handCardList.columnGap ~= tonumber(self._viewText_cardInfo['show_columnGap']) then + self._view_handCardList.columnGap = tonumber(self._viewText_cardInfo['show_columnGap']) + end + if self._mainView:GetPos(self._player.seat) == 2 or self._mainView:GetPos(self._player.seat) == 3 then + local tem = {} + for i = (getcard and #self._player.card_list - 1 or #self._player.card_list), 1, -1 do + table.insert(tem, self._player.card_list[i]) + end + if getcard then + table.insert(tem, self._player.card_list[#self._player.card_list]) + end + self._player.card_list = tem + end + else + if self._viewText_cardInfo['back_columnGap'] and self._view_handCardList.columnGap ~= tonumber(self._viewText_cardInfo['back_columnGap']) then + self._view_handCardList.columnGap = tonumber(self._viewText_cardInfo['back_columnGap']) + end end + self._view_handCardList:RemoveChildren() self._view_getCard:RemoveChildren() local btn_card @@ -409,11 +426,7 @@ function M:ResetFzList() print("lingmengResetFzList") pt(self._player) local fz = self._player.fz_list[i] - -- if fz.type ~= FZType.Gang_Peng then self:UpdateFzList(fz, -1) - -- else - -- self:UpdateFzList(fz, i) - -- end end end diff --git a/lua_probject/main_project/main/poker/PKPlayBackView.lua b/lua_probject/main_project/main/poker/PKPlayBackView.lua index 9ae527b9..74f2d18d 100644 --- a/lua_probject/main_project/main/poker/PKPlayBackView.lua +++ b/lua_probject/main_project/main/poker/PKPlayBackView.lua @@ -43,6 +43,13 @@ function M:LastRecordPlay() end function M:RestartRecordPlay() + local list = self._room.player_list + for i = 1, #list do + local p = list[i] + local info = self._player_info[self:GetPos(p.seat)] + info._view.visible = true + info:FillData(p) + end self:ChangeAlpha() self._currentStep = 0 self._speed = 1 @@ -89,7 +96,7 @@ function M:ChangeTextSpeed() -- self._view:GetChild("panel_record"):GetChild("tex_2").text = str2 -- local str3 = self._play and "倍速度" or "" -- self._view:GetChild("panel_record"):GetChild("tex_1").text = str3 - self._record:GetChild('tex_speed').text = self._speed + self._record:GetChild('tex_speed').text = self._speed == 30 and 1 or self._speed end function M:CmdLeftArrows() diff --git a/wb_new_ui/assets/Common/package.xml b/wb_new_ui/assets/Common/package.xml index d0c8fcdf..d1042785 100644 --- a/wb_new_ui/assets/Common/package.xml +++ b/wb_new_ui/assets/Common/package.xml @@ -1224,17 +1224,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/wb_new_ui/assets/Hotupdate/Version.xml b/wb_new_ui/assets/Hotupdate/Version.xml index 405bdcab..3d687a03 100644 --- a/wb_new_ui/assets/Hotupdate/Version.xml +++ b/wb_new_ui/assets/Hotupdate/Version.xml @@ -5,14 +5,14 @@ - + - + @@ -31,6 +31,9 @@ + + + diff --git a/wb_new_ui/assets/Login/Main.xml b/wb_new_ui/assets/Login/Main.xml index d4119e29..3d416891 100644 --- a/wb_new_ui/assets/Login/Main.xml +++ b/wb_new_ui/assets/Login/Main.xml @@ -1,7 +1,8 @@ - + + @@ -17,11 +18,29 @@ -