--- --- Created by 谌建军. --- DateTime: 2017/12/18 9:41 --- local PKMainView = import("main.poker.PKMainView") local SanQianFen_PlayerPokerInfoView = import(".SanQianFen_PlayerPokerInfoView") local SanQianFen_PlayerSelfPokerInfoView = import(".SanQianFen_PlayerSelfPokerInfoView") local SanQianFen_GameEvent = import(".SanQianFen_GameEvent") local SanQianFen_ResultView = import(".SanQianFen_ResultView") local SanQianFen_RightPanelView = import(".SanQianFen_RightPanelView") local PlayerInfoView = import(".EXPlayerInfoView") local TableBG = import('Game.Data.TableBG') local M = {} function M.new() setmetatable(M, {__index = PKMainView}) local self = setmetatable({}, {__index = M}) self.class = "SanQianFen_MainView" --self._full = true self:init() self._gamectr = ControllerManager.GetController(GameController) return self end local default_bg = 1 local bg_config = { {id = 1, url = 'extend/poker/sanqianfen/bg/bg1', thumb = 'ui://Extend_Poker_SanQianFen/table_bg1'}, {id = 2, url = 'extend/poker/sanqianfen/bg/bg2', thumb = 'ui://Extend_Poker_SanQianFen/table_bg2'}, {id = 3, url = 'extend/poker/sanqianfen/bg/bg3', thumb = 'ui://Extend_Poker_SanQianFen/table_bg3'} } function M:InitView(url) local room = self._room UIPackage.AddPackage("extend/poker/sanqianfen/ui/Extend_Poker_SanQianFen") PKMainView.InitView(self, "ui://Extend_Poker_SanQianFen/SanQianFen_Main_" .. room.room_config.people_num,nil,1,default_bg,bg_config,nil,"ui://Extend_Poker_SanQianFen/SettingWindow1") local _room = DataManager.CurrenRoom local user_id = DataManager.SelfUser.account_id local json_data = Utils.LoadLocalFile(user_id.._room.game_id.."pai") if json_data == nil then local _gamectr = self._gamectr self._room.pai = 0 else local _data = json.decode(json_data) local pai = _data["pai"] self._room.pai = pai end json_data = Utils.LoadLocalFile(user_id.._room.game_id.."cardsize") if json_data == nil then local _gamectr = self._gamectr self._room.cardsize = 1 else local _data = json.decode(json_data) local cardsize = _data["cardsize"] self._room.cardsize = cardsize end local view1_510k = self._view:GetChild("10k5") self._player_info = {} local _player_info = self._player_info for i = 1, self._room.room_config.people_num do --printlog("aaaaaaaaaaaaaa111111111111111111111111111") local tem = self._view:GetChild("player_info" .. i) _player_info[i] = PlayerInfoView.new(tem, self) -- local zong = _player_info[i]._view:GetChild("zong") -- zong:GetChild('score_ju').text = "0" -- zong:GetChild('score_zong').text = "0" -- zong:GetChild('xi_ju').text = "0" -- zong:GetChild('xi_zong').text = "0" _player_info[i]._view:GetChild('510score').text = "0" local c1 = view1_510k:GetChild('play_name'..i) local c2 = view1_510k:GetChild('play_lishi'..i) local c3 = view1_510k:GetChild('play_ju'..i) local c4 = view1_510k:GetChild('play_zong'..i) _player_info[i]:InitScoreComp(c1,c3,c2,nil,c4) tem.visible = false end local list = self._room.player_list for i=1,#list do local p = list[i] local info = _player_info[self:GetPos(p.seat)] info._view.visible = true info:FillData(p) end local rightpanel = self._view:GetChild("right_panel") if self._rightPanelView ~= nil then self._rightPanelView:Destroy() end self._rightPanelView = SanQianFen_RightPanelView.new(self, rightpanel) for i=1,#self._room.player_list do if self._room.self_player.seat==self._room.player_list[i].seat and self._room.self_player.self_user.account_id ~= self._room.player_list[i].self_user.account_id then -- body local ErrorMsgTip = UIPackage.CreateObject("Common", "Win_ConnectTip") local _action = self._view:AddChild(ErrorMsgTip) _action.xy = Vector2((self._view.width - _action.width) / 4, self._view.height / 4) local text = _action:GetChild("tex_message") local btn1 = _action:GetChild("btn_connect") local btn2 = _action:GetChild("btn_back") text.text = "您来晚了,座位有人,请重新进牌桌" btn1.visible=false btn2:Center() btn2.y=btn2.y+50 btn2.onClick:Set(function() -- body ErrorMsgTip:Destroy() ErrorMsgTip = nil self._gamectr:LevelRoom(function(res) ViewUtil.CloseModalWait() NetResetConnectWindow.CloseNetReset() ControllerManager.ChangeController(LoddyController) ViewManager.ChangeView(ViewManager.View_Lobby) end) end) end end if self._room.hpOnOff == 1 and self._room.score_times ~= 1 then -- body self._view:GetChild("roominfo_panel1"):GetChild("tex_beishu").text=self._room.score_times .."倍" else self._view:GetChild("roominfo_panel1"):GetChild("tex_beishu").text="" end -- self.AllScore = self._view:GetChild("AllScore") --self.AllScore.text = "总分:".."0" local view_510k = self._view:GetChild("10k5") local ctr_peple = view_510k:GetController("c1") ctr_peple.selectedIndex = room.room_config.people_num == 3 and 1 or 0 self.num_5 = view_510k:GetChild("num_5") self.num_10 = view_510k:GetChild("num_10") self.num_k = view_510k:GetChild("num_k") self.num_zong = view_510k:GetChild("num_zong") self.num_5.text = "0" self.num_10.text = "0" self.num_k.text = "0" self.num_zong.text = "0" self.FlyScore = self._view:GetChild("FlyScore") self.FlyScoreXY = self.FlyScore.xy self.FlyScore.visible = false self.ctr_state = self._view:GetController("state") self._ctr_action = self._view:GetController("action") self._tex_leftTime = self._view:GetChild("time"):GetChild("title") self.ctr_time = self._view:GetController("time") self._text_round = self._view:GetChild("round") self.ctr_card_eff = self._view:GetController("card_eff") self._player_card_info = {} -- self.test = self._view:GetChild("test") -- self.test.onClick:Set( -- function() -- local head_info = self._player_info[1] -- head_info.ctr_shangyou.selectedIndex = 1 -- end -- ) 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:NewPlayerCardInfoView(tem, i) end local list = room.player_list if not room.self_player.ready then local round=DataManager.CurrenRoom.room_config.config.times or 1 local xpconfig=DataManager.CurrenRoom.room_config.config.xi_pai if xpconfig then if round>1 then self._ctr_action.selectedIndex = 1 else self._ctr_action.selectedIndex = 2 end else self._ctr_action.selectedIndex = 1 end else self._ctr_action.selectedIndex = 0 end self._left_time = 0 self.bgm_index = 1 local state = self._room.CurnrenState if room.CurnrenState ~= StateType.PalyingWait then self._state.selectedIndex = state if room.CurnrenState == StateType.Palying then self:ReConnectForStart() end else self._state.selectedIndex = StateType.Palying self:ReconnectForClearing() end self._view:GetChild("btn_back_jiesan").onClick:Set(function () if self.dismiss_room_cd_time > 0 then ViewUtil.ErrorTip(nil, "您还处于解散冷却时间当中,请稍后重试!") else local _gamectr = ControllerManager.GetController(GameController) _gamectr:AskDismissRoom() end end) --local tempdsaf=self._view:GetChild("btn_back_jiesan") --tempdsaf:GetChild("n3").displayObject.gameObject:SetActive(false) --self._view:GetChild("btn_back_jiesan").displayObject.gameObject:SetActive(false) self:ChangeBgmMusic() self:EventInit() self._view:GetChild("mask").onClick:Set(function() self:ResetPoker() end) local btn_rule = self._view:GetChild("right_panel"):GetChild("btn_log") --self._view:GetChild('info_text'):GetChild('text').text = room.room_config:GetDes() if room.room_config.Leaf == 1 then if room.room_config.people_num ==2 then self._view:GetChild('wanfa_text').text = '二人三千分' .. room.score_times .. '倍' else self._view:GetChild('wanfa_text').text = '三人三千分' .. room.score_times .. '倍' end else if room.room_config.people_num == 2 then self._view:GetChild('wanfa_text').text = '二人三千分' .. room.score_times .. '倍' else self._view:GetChild('wanfa_text').text = '三人三千分' .. room.score_times .. '倍' end end if self._view:GetChild("shengyu")~=nil then -- body if room.room_config.Leaf==1 then -- body self._view:GetChild("shengyu"):GetChild("shengyu").text="剩余15张" else self._view:GetChild("shengyu"):GetChild("shengyu").text="剩余16张" end end end function M:RunLeftPoker(list) -- self._view self._left_View = UIPackage.CreateObject("Extend_Poker_SanQianFen","Panel_poker") self._view:AddChild(self._left_View) self._left_View:Center() local _left_View = self._left_View local list_left_card = self._left_View:GetChild("Lst_leftPoker") list_left_card:RemoveChildrenToPool() for i = 1, #list do local item = list_left_card:AddItemFromPool("ui://Extend_Poker_SanQianFen/305") end self._left_View:GetTransition("t0"):Play() coroutine.start(function() coroutine.wait(1.5) _left_View:Dispose() -- self._popEvent = true end) end function M:UpdateCard( index ) self._room.pai=index local card_info = self._player_card_info[1] -- for i=1,#self._room.player_list do -- print(i) -- end card_info:updatePoker() for _, player in ipairs(self._room.player_list) do local player_card_info = self._player_card_info[self:GetPos(player.seat)] if self._room.curren_turn_seat ~= player.seat then if player.out_card_list[1] == 0 then player_card_info:SetOutCardInfo(nil, true) else player_card_info:SetOutCardInfo(player.out_card_list, false) end end end if self.caozuo==1 then local ctr_number = self.pass == nil and 2 or 1 local lastCardList = self._gamectr:GetLastCardList(self._room.self_player.seat) local cardType, cardNum, cardLength = self._gamectr:GetCardListInfo(lastCardList) local m = false local next_seat = self._room.self_player.seat + 1 if next_seat > self._room.room_config.people_num then next_seat = next_seat - self._room.room_config.people_num end if self._room:GetPlayerBySeat(next_seat).hand_count == 1 and self._room.room_config.WillBeOut == 1 then m = true end local zdts = self._view:GetController("zidongtishi").selectedIndex self._player_card_info[1]:ShowOutCardOption(ctr_number, cardType, cardNum, cardLength,m) end end function M:UpdateCardSize(index) self._room.cardsize=index local card_info = self._player_card_info[1] card_info:updatePoker() end function M:NewPlayerCardInfoView(tem, index) if index == 1 then return SanQianFen_PlayerSelfPokerInfoView.new(tem, self) end return SanQianFen_PlayerPokerInfoView.new(tem, self) end function M:OnPlayerEnter(...) MainView.OnPlayerEnter(self, ...) local arg = {...} local p = arg[1] local index = self:GetPos(p.seat) local info = self._player_info[index] local selecet_seat = self._view:GetChild("seat_" .. index) if selecet_seat ~= nil then selecet_seat.visible = true end info:FillData(p) if self._room.banker_seat == self._room.self_player.seat and self._room.self_player.ready then self._ctr_action.selectedIndex = 0 end end function M:OnPlayerReady(...) local arg = {...} local p = arg[1] local _room = self._room local _player_info = self._player_info if p.seat == _room.self_player.seat then self._ctr_action.selectedIndex = 0 end local info = _player_info[self:GetPos(p.seat)] info:Ready(true) --local readyNum = 0 --for i = 1, #_room.player_list do -- local player = _room.player_list[i] -- if player.ready then readyNum = readyNum + 1 end --end --if _room.banker_seat == _room.self_player.seat and readyNum > 1 and readyNum == _room.room_config.people_num then -- if self._state.selectedIndex == 2 then -- local _gamectr = ControllerManager.GetController(GameController) -- _gamectr:StartGame() -- end -- --self._ctr_action.selectedIndex = 2 --end end function M:OnPlayerLeave(...) MainView.OnPlayerLeave(self, ...) local _room = self._room if not _room.self_player.ready then --self._ctr_action.selectedIndex = 1 local round=DataManager.CurrenRoom.room_config.config.times or 1 local xpconfig=DataManager.CurrenRoom.room_config.config.xi_pai if xpconfig then if round>1 then self._ctr_action.selectedIndex = 1 else self._ctr_action.selectedIndex = 2 end else self._ctr_action.selectedIndex = 1 end else self._ctr_action.selectedIndex = 0 end end function M:EventInit() local _gamectr = ControllerManager.GetController(GameController) MainView.EventInit(self) local _player_info = self._player_info local _player_card_info = self._player_card_info local _room = self._room --local head_info = _player_info[1] --head_info.shangyouObj.visible = true _gamectr:AddEventListener(SanQianFen_GameEvent.EventXiPai,function( ... ) if self.result_view ~= nil then self.result_view:Destroy() self.result_view = nil end self._player_card_info[1]:HidePiao() if self._room.room_config.people_num==3 and self._room.room_config.fangzuobi==1 then -- body self.MypokerList = cardlist end local otherpoker_list = self._view:GetChild("otherpoker_list") if otherpoker_list ~= nil then -- body otherpoker_list.visible=false otherpoker_list:RemoveChildrenToPool() end self.ctr_state.selectedIndex = 1 self.ctr_card_eff.selectedIndex = 0 if self.rank_view ~= nil then self.rank_view:Dispose() self.rank_view = nil end local list = _room.player_list for i = 1, #list do local p = list[i] local head_info = self._player_info[self:GetPos(p.seat)] if head_info._view:GetChild("shengyu")~=nil and head_info._view:GetController("shengyu")~=nil then -- body if self._room.room_config.showlength==1 then -- body head_info._view:GetController("shengyu").selectedIndex=1 else head_info._view:GetController("shengyu").selectedIndex=0 end -- body head_info._view:GetChild("shengyu"):GetChild("shengyu").text="剩"..p.hand_count.."张" end p:Clear() head_info:FillData(p) local card_info = self._player_card_info[self:GetPos(p.seat)] card_info:Clear() head_info:Ready(false) end --[[if ( currentPlayer ) then self._popEvent = false local xipaiCB=function () self._popEvent = true end self:PlayXiPai(xipaiCB) else ViewUtil.ShowModalWait(self._root_view,"等待其它玩家洗牌...") coroutine.start(function() coroutine.wait(3) ViewUtil.CloseModalWait() end) end--]] local arg = {...} local currentPlayer1=arg[1] local currentPlayer2=arg[2] self._popEvent = false if ( currentPlayer1 ) then local xipaiCB=function () self._popEvent = true end self:PlayXiPai(xipaiCB) end if ( currentPlayer2 ) then --self._popEvent = false local xipaiCB2=function () self._popEvent = true end self:PlayXiPai1(xipaiCB2) end end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnMingCard, function(...) local arg = {...} local card = arg[1] self.ctr_state.selectedIndex = 1 self.ctr_card_eff.selectedIndex = 1 self:PlayCardEff(card) end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnUpdateXISCORE, function(...) local arg = {...} local scoreList = arg[1] for i = 1, #scoreList do local aid = scoreList[i].aid local juXiFen = scoreList[i].juXiFen local allXiFen = scoreList[i].allXiFen local p = self._room:GetPlayerById(aid) local head_info = self._player_info[self:GetPos(p.seat)] -- head_info._view:GetChild("zong"):GetChild('xi_ju').text = juXiFen -- head_info._view:GetChild("zong"):GetChild('xi_zong').text = allXiFen head_info.xi_zong.text = allXiFen end -- printlog("aaaaaaaaaaaaaaaa "," ",cur510kFen) --self.AllScore.text = "总分:"..cur510kFen end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnUpdate510KScore, function(...) printlog("77777777777777777777777777888888888888888888888") local arg = {...} local cur510kFen = arg[2] local scoreList = arg[1] for i = 1, #scoreList do local aid = scoreList[i].aid local add510kfen = scoreList[i].add510kfen local all510kfen = scoreList[i].all510kfen local ju510kfen = scoreList[i].ju510kfen local p = self._room:GetPlayerById(aid) local head_info = self._player_info[self:GetPos(p.seat)] -- head_info._view:GetChild('510score').text = all510kfen local zong = head_info._view:GetChild("zong") head_info.score_ju.text = ju510kfen head_info.score_zong.text = all510kfen end -- local xy = self.FlyScore.xy -- if scoreList[1].add510kfen > 0 then -- self.FlyScore.text = scoreList[1].add510kfen -- self.FlyScore.visible = true -- local aid1 = scoreList[1].aid -- self.num_5.text = "0" -- self.num_10.text = "0" -- self.num_k.text = "0" -- local p = self._room:GetPlayerById(aid1) -- local head_info = self._player_info[self:GetPos(p.seat)] -- local target_xy = self._view:GlobalToLocal(head_info._view:LocalToGlobal(Vector2(50,189))) -- local diff_x = target_xy.x - xy.x -- local diff_y = target_xy.y - xy.y -- self._tween_shaizi = TweenUtils.TweenFloat(0,1,0.8,function(value) -- self.FlyScore.x = xy.x + diff_x * value -- self.FlyScore.y = xy.y + diff_y * value -- end):OnComplete(function () -- self.FlyScore.visible = false -- self.FlyScore.xy = self.FlyScoreXY -- end) -- end end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnUpdateALL510KSCORE, function(...) local arg = {...} local scoreList = arg[1] --printlog("更新总分数==========================") --pt(scoreList) -- if self.coroutineUpdate510KScore ~= nil then -- coroutine.stop(self.coroutineUpdate510KScore) -- end for i = 1, #scoreList do local aid = scoreList[i].aid local ju510kfen = scoreList[i].ju510kfen local all510kfen = scoreList[i].all510kfen local juXiFen = scoreList[i].juXiFen local curXiFen = scoreList[i].curXiFen local p = self._room:GetPlayerById(aid) --printlog("ccccccccc22222222222222222222222222 ",ju510kfen," ",all510kfen," ",juXiFen," ",curXiFen," ",p.seat," ",self:GetPos(p.seat)) local head_info = nil head_info = self._player_info[self:GetPos(p.seat)] head_info.score_ju.text = ju510kfen head_info.score_zong.text = all510kfen --head_info.xi_ju.text = juXiFen head_info.xi_zong.text = curXiFen p.cur510kFen = all510kfen p.juXiFen = juXiFen p.ju510kFen = ju510kfen p.curXiFen = curXiFen printlog("wwwwwwwwwwwwwwww ",all510kfen) end end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnInitCard, function(...) local arg = {...} local round = arg[1] local cardlist = arg[2] if self.result_view ~= nil then self.result_view:Destroy() self.result_view = nil end self._player_card_info[1]:HidePiao() if self._room.room_config.people_num==3 and self._room.room_config.fangzuobi==1 then -- body self.MypokerList = cardlist end local otherpoker_list = self._view:GetChild("otherpoker_list") if otherpoker_list ~= nil then -- body otherpoker_list.visible=false otherpoker_list:RemoveChildrenToPool() end self.ctr_state.selectedIndex = 1 self.ctr_card_eff.selectedIndex = 0 if self.rank_view ~= nil then self.rank_view:Dispose() self.rank_view = nil end self:UpdateRound(round) ViewUtil.PlaySound("SanQianFen_PK", "extend/poker/sanqianfen/sound/fapai.mp3") local list = _room.player_list for i = 1, #list do local p = list[i] local head_info = self._player_info[self:GetPos(p.seat)] if head_info._view:GetChild("shengyu")~=nil and head_info._view:GetController("shengyu")~=nil then -- body if self._room.room_config.showlength==1 then -- body head_info._view:GetController("shengyu").selectedIndex=1 else head_info._view:GetController("shengyu").selectedIndex=0 end -- body head_info._view:GetChild("shengyu"):GetChild("shengyu").text="剩"..p.hand_count.."张" end p:Clear() head_info:FillData(p) local card_info = self._player_card_info[self:GetPos(p.seat)] card_info:Clear() head_info:Ready(false) if p.seat == self._room.self_player.seat then if self._room.room_config.people_num==3 and self._room.room_config.fangzuobi==1 then -- body card_info:InitPoker(cardlist,true,1) else card_info:InitPoker(cardlist,true) end else --card_info:UpdateHandPoker(#cardlist,true,false) --todo --card_info:UpdateRemainCard(#cardlist,true) end -- head_info.xi_ju.text = "0" head_info.score_ju.text = "0" end end) -- _gamectr:AddEventListener(SanQianFen_GameEvent.Oener,function ( ... ) -- local arg = {...} -- local seat = arg[1] -- local head_info = self._player_info[self:GetPos(seat)] -- head_info._view:GetController("Oener").selectedIndex=1 -- end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnIndexMove, function(...) local arg = {...} local seat = arg[1] local isNewBout = arg[2] local index = self:GetPos(seat) self.ctr_time.selectedIndex = index -- for i=1,#self._player_info do -- if index==i then -- -- body -- local head_info = self._player_info[index] -- head_info:MarkBank(true) -- else -- local head_info = self._player_info[i] -- head_info:MarkBank(false) -- end -- end if index == 1 then local card_info = self._player_card_info[index] card_info:SetOutCardInfo(nil, false) -- if self.MypokerList ~= nil then -- -- body -- card_info:Clear() -- card_info:InitPoker(self.MypokerList, false) -- self.MypokerList = nil -- end end self._left_time = 20 if self._room.ming_card ~= nil then self._view:GetTransition("t" .. index):Play() self._room.ming_card = nil if self.tween ~= nil then TweenUtils.Kill(self.tween) self.tween = nil end end end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnBombScore, function(...) local arg = {...} local scoreList = arg[1] -- for i = 1, #scoreList do -- local player = self._room:GetPlayerBySeat(i) -- local card_info = self._player_card_info[self:GetPos(i)] -- local head_info = self._player_info[self:GetPos(i)] -- card_info:PlayScore(scoreList[i], true) -- head_info:UpdateScore(player.total_score) -- end end) _gamectr:AddEventListener(SanQianFen_GameEvent.EventShangYou, function(...) local arg = {...} local seat = arg[1] local index = self:GetPos(seat) local head_info = self._player_info[index] head_info.ctr_shangyou.selectedIndex = 1 end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnPlaySucc, function(...) local arg = {...} local p = arg[1] local card_number = arg[2] local cardstype = arg[3] local num = arg[4] local otherList = arg[5] local length = arg[6] local add510k = arg[7] local all510k = arg[8] local cur5Num = arg[9] local cur10Num = arg[10] local curkNum = arg[11] self.ctr_time.selectedIndex = 0 if self.num_5 then self.num_5.text = cur5Num end if self.num_10 then self.num_10.text = cur10Num end if self.num_k then self.num_k.text = curkNum end if self.num_zong then self.num_zong.text = all510k end -- if self.AllScore then -- self.AllScore.text = "总分:"..all510k -- end local index = self:GetPos(p.seat) if index==1 then self.caozuo=0 end local head_info = self._player_info[index] if head_info._view:GetChild("shengyu")~=nil then -- body -- body if card_number~=nil then -- body head_info._view:GetChild("shengyu"):GetChild("shengyu").text="剩"..card_number.."张" end end local card_info = self._player_card_info[index] card_info:SetOutCardInfo(p.out_card_list, false, true) for i = 1, #otherList do local other_seat = otherList[i] local other_card_info = self._player_card_info[self:GetPos(other_seat)] other_card_info:SetOutCardBlack() end if index == 1 then card_info:DeleteHandCards(p.out_card_list) else card_info:SetRemainCardNumber(card_number == 1) --card_info:UpdateHandPoker(card_number,false,false) -- todo end if self._room.is_new_bout == true then for i = 1, #self._room.player_list do local player = self._room.player_list[i] local card_info_i = self._player_card_info[self:GetPos(player.seat)] if p.seat ~= player.seat then card_info_i:SetOutCardInfo(nil, false) end end self:_Effect(cardstype, p) else if cardstype == 11 and cardstype~=12 then self:_Effect(cardstype, p) end end self:PlaySound(p.self_user.sex, self:GetSoundFileName(cardstype, num, self._room.is_new_bout)) if card_number == 1 then --self:ChangeBgmMusic(2) self:ChangeBgmMusic(1) if self._cor_sound ~= nil then coroutine.stop(self._cor_sound) end self._cor_sound = nil self._cor_sound = coroutine.start(function() coroutine.wait(1) ---self:PlaySound(p.self_user.sex, "card_1") end) end end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnPassSuccCheckCard, function(...) self._popEvent = false local arg = {...} local seat = arg[1] local cards = arg[2] --self.MypokerList=cards self.ctr_time.selectedIndex = 0 local card_info = self._player_card_info[self:GetPos(seat)] if seat == self._room.self_player.seat then card_info:ClearCheck() card_info:InitPoker(cards, false) --local player=self._room:GetPlayerBySeat(seat) --if player.out_card_list[1] == 0 then -- player_card_info:SetOutCardInfo(nil, true) --else --player:SetOutCardInfo({207}, false) -- end end self._popEvent = true end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnPassSucc, function(...) local arg = {...} local p = arg[1] self.ctr_time.selectedIndex = 0 local card_info = self._player_card_info[self:GetPos(p.seat)] --card_info:SetOutCardInfo(nil, false) if p.seat == self._room.self_player.seat and self.MypokerList ~= nil then -- body card_info:Clear() card_info:InitPoker(self.MypokerList, false) self.MypokerList = nil end card_info:SetOutCardInfo(nil, true) self:PlaySound(p.self_user.sex, "pass_" .. math.random(1, 4)) end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnErrorTip, function(...) local arg = {...} local error_str = arg[1] self._player_card_info[1]:ErrorTip(error_str) -- self._player_card_info[1]:ResetPoker() end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnPiaoTips, function(...) local arg = {...} local piao = arg[1] local reload = arg[2] if reload == 0 then if self._room.room_config.people_num==3 and self._room.room_config.fangzuobi==1 then -- body self.MypokerList = cardlist end local otherpoker_list = self._view:GetChild("otherpoker_list") if otherpoker_list ~= nil then -- body otherpoker_list.visible=false otherpoker_list:RemoveChildrenToPool() end self.ctr_state.selectedIndex = 1 self.ctr_card_eff.selectedIndex = 0 if self.rank_view ~= nil then self.rank_view:Dispose() self.rank_view = nil end self:UpdateRound(self._room.curren_round) local list = _room.player_list for i = 1, #list do local p = list[i] local head_info = self._player_info[self:GetPos(p.seat)] p:Clear() head_info:FillData(p) local card_info = self._player_card_info[self:GetPos(p.seat)] card_info:Clear() head_info:Ready(false) head_info:UpdatePiao(-1) end end self._player_card_info[1]:ShowPiao(piao) end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnPiaoAction, function(...) local arg = {...} local seat = arg[1] local piao = arg[2] local head_info = self._player_info[self:GetPos(seat)] head_info:UpdatePiao(piao) end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnOptions, function(...) local arg = {...} local play = arg[1] local pass = arg[5] local card_type = arg[2] local card_number = arg[3] local card_length = arg[4] local ctr_number = pass == nil and 2 or 1 self.caozuo=1 --记录是否是自己出牌的阶段 self.pass=pass local m = false local next_seat = self._room.self_player.seat + 1 local card_info = self._player_card_info[1] --card_info:SetOutCardInfo(nil, false) if self.MypokerList ~= nil then -- body card_info:Clear() card_info:InitPoker(self.MypokerList, false) self.MypokerList = nil end if next_seat > self._room.room_config.people_num then next_seat = next_seat - self._room.room_config.people_num end if self._room:GetPlayerBySeat(next_seat).hand_count == 1 and self._room.room_config.WillBeOut == 1 then m = true end local zdts = self._view:GetController("zidongtishi").selectedIndex self._player_card_info[1]:ShowOutCardOption(ctr_number, card_type, card_number, card_length,m,play,zdts) end) -- 托管 _gamectr:AddEventListener(SanQianFen_GameEvent.Game_TuoGuan, function(...) local arg = {...} local tuoguan = arg[1] local seat = arg[2] local tuoguanzhong = self._view:GetChild("tuoguanzhong") local zhezhao = self._view:GetChild("n109") local head_info = self._player_info[self:GetPos(seat)] if (tuoguan == 1) then if (seat == self._room.self_player.seat ) then tuoguanzhong.visible = true -- tuoguanzhong.sortingOrder = 2 zhezhao.visible = true zhezhao.onClick:Set(function() _gamectr:TuoGuan(0) end) else head_info._view:GetController("tuoguan").selectedIndex = 1 end -- if self.ispanguangzhe == true then -- -- body -- zhezhao.visible = false -- end else if (seat == self._room.self_player.seat) then tuoguanzhong.visible = false zhezhao.visible = false -- local btn_tuoguan = self._view:GetChild("n107") -- btn_tuoguan.onClick:Set(function() -- _gamectr:TuoGuan(1) -- -- self:ZhiNengtuoguan() -- end) else head_info._view:GetController("tuoguan").selectedIndex = 0 end end end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnResult, function(...) local arg = {...} local over = arg[1] local info = arg[2] local win_seat = arg[3] local remaincards = arg[4] -- local energyTab = arg[5] local otherpoker_list = self._view:GetChild("otherpoker_list") if self.MypokerList ~= nil then -- body local card_info = self._player_card_info[self:GetPos(self._room.self_player.seat)] card_info:Clear() card_info:InitPoker(self.MypokerList, false) self.MypokerList = nil end if otherpoker_list ~= nil then -- body otherpoker_list:RemoveChildrenToPool() otherpoker_list.visible=true end if remaincards then -- body local newremaincards = _gamectr:ChangeCodeByFrom(remaincards,true) table.sort(remaincards) for i = #newremaincards, 1, -1 do coroutine.start(function() coroutine.wait(0.01) local flow = newremaincards[i] % 10 local num = (newremaincards[i] - (newremaincards[i] % 10)) / 10 local card_n = flow * 100 + num local poker_item = UIPackage.CreateObject("Extend_Poker_SanQianFen", "poker6") --local code = self:ChangeCodeByTo(card_n) -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/" .. card_n) -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card_n .. "_2") local card_code_obj = nil if DataManager.CurrenRoom.pai==0 then if card_n==310 and DataManager.CurrenRoom.room_config.Heart10 == 1 then -- body card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/"..card_n.."_1") else card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/"..card_n) end else if card_n==310 and DataManager.CurrenRoom.room_config.Heart10 == 1 then -- body card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/"..card_n.."_2") else card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card_n .. "_2") end end if card_code_obj ~= nil then card_code_obj:SetScale(0.6, 0.6) if poker_item ~= nil then poker_item:AddChild(card_code_obj) if otherpoker_list then otherpoker_list:AddChild(poker_item) end end end end) end end if self._cor_sound ~= nil then coroutine.stop(self._cor_sound) self._cor_sound = nil end if self.destory_win ~= nil then coroutine.stop(self.destory_win) end self.destory_win = nil self.destory_win = coroutine.start(function() -- print("11111111111111") -- coroutine.wait(1) if self._room.self_player.seat == win_seat then local sprint_seat_list = self:GetSpringSeats(info) if #sprint_seat_list > 0 then local url = "ui://Extend_Poker_SanQianFen/Spring" self.WinItem_view = UIPackage.CreateObjectFromURL(url) self._view:AddChild(self.WinItem_view) self.WinItem_view:Center() self.WinItem_view:GetTransition("t0"):Play() ViewUtil.PlaySound("SanQianFen_PK", "base/common/sound/win new.mp3") end -- local url = #sprint_seat_list > 0 and "ui://Extend_Poker_SanQianFen/Spring" or "ui://Extend_Poker_SanQianFen/Win_Mine" else local beigang = false if #self:GetSpringSeats(info)>0 then for i=1,#self:GetSpringSeats(info) do if self:GetSpringSeats(info)[i]==self._room.self_player.seat then local url = "ui://Extend_Poker_SanQianFen/spring2" self.WinItem_view = UIPackage.CreateObjectFromURL(url) self._view:AddChild(self.WinItem_view) self.WinItem_view:Center() self.WinItem_view:GetTransition("t0"):Play() beigang=true end end end -- if beigang == false then -- self:CreateRankEff() -- end end for i = 1, #info do local player = info[i] local p = self._room:GetPlayerBySeat(player.seat) local head_info = self._player_info[self:GetPos(player.seat)] --head_info.ctr_shangyou.selectedIndex = 0 local card_info = self._player_card_info[self:GetPos(player.seat)] if player.hp_info ~= nil and player.hp_info.cur_hp ~= nil then p.hp_info = player.hp_info head_info:UpdateScore(d2ad(player.hp_info.cur_hp)) --head_info._view:GetChild('zhanji').visible = true local num = player.hp_info.total_hp if num > 0 then head_info._view:GetController('text_color').selectedIndex = 0 head_info._view:GetChild('text_jifen').text = "+" .. d2ad(player.hp_info.total_hp) else head_info._view:GetController('text_color').selectedIndex = 1 head_info._view:GetChild('text_jifen').text = d2ad(player.hp_info.total_hp) end card_info:PlayScore(d2ad(player.hp_info.round_actual_hp), false, win_seat == player.seat) else local rt = 1 if self._room.hpOnOff == 1 then rt = self._room.score_times end if over == 1 and self._room.hpOnOff == 1 then head_info:UpdateScore(player.score / 10) --不可负分 else head_info:UpdateScore(player.score * rt) end card_info:PlayScore(player.winscore * rt, false, win_seat == player.seat) end if player.seat ~= self._room.self_player.seat then card_info:UpdateHandPoker(player.cards, false, true) card_info:SetRemainCardNumber(false) end end self:ChangeBgmMusic(1) -- if over == 0 then if #self:GetSpringSeats(info) > 0 then -- print("222222222222222222") coroutine.wait(1) else -- print("333333333333333333") -- coroutine.wait(2) end self._left_View = UIPackage.CreateObject("Extend_Poker_SanQianFen","Panel_poker") self._view:AddChild(self._left_View) self._left_View:Center() local _left_View = self._left_View local list_left_card = self._left_View:GetChild("Lst_leftPoker") list_left_card:RemoveChildrenToPool() for i = 1, #remaincards do local x = remaincards[i] % 100 local t = remaincards[i] if x == 8 then t = remaincards[i] - 3 end local item = list_left_card:AddItemFromPool("ui://Extend_Poker_SanQianFen/"..t) end self._left_View:GetTransition("t0"):Play() coroutine.wait(2) for i = 1, #info do local head_info1 = self._player_info[i] head_info1.ctr_shangyou.selectedIndex = 0 end _left_View:Dispose() self.result_view = SanQianFen_ResultView.new(self._root_view, info, self._room.room_id, over, win_seat, 0, remaincards) self.result_view:Show() if self.WinItem_view ~= nil then self.WinItem_view:Dispose() self.WinItem_view = nil end if self.rank_view ~= nil then self.rank_view:Dispose() self.rank_view = nil end if self._room.self_player.entrust == true then local btn_confirm = self.result_view._view:GetChild("btn_confirm") btn_confirm.onClick:Call() end end) if over==1 then -- body self:UnmarkSelfTuoguan() ControllerManager.ChangeController(LoddyController) end end) _gamectr:AddEventListener(SanQianFen_GameEvent.OnResultByDissolve, function(...) local arg = {...} local over = arg[1] local info = arg[2] local winseat = arg[3] local dissolve = arg[4] self.result_view = SanQianFen_ResultView.new(self._root_view, info, self._room.room_id, over, winseat, dissolve,nil) self.result_view:Show() ControllerManager.ChangeController(LoddyController) self:UnmarkSelfTuoguan() end) -- 确定开始下一局 成功 _gamectr:AddEventListener(SanQianFen_GameEvent.OnConfrimToNextGameSucc, function(...) local arg = {...} local aid = arg[1] local p = self._room:GetPlayerById(aid) if p.seat == self._room.self_player.seat then if self.rank_view ~= nil then self.rank_view:Dispose() self.rank_view = nil end if self.destory_win ~= nil then coroutine.stop(self.destory_win) self.destory_win = nil end for _, player in ipairs(self._room.player_list) do local player_card_info = self._player_card_info[self:GetPos(player.seat)] local player_head = self._player_info[self:GetPos(player.seat)] player_card_info:Clear() local otherpoker_list = self._view:GetChild("otherpoker_list") if otherpoker_list ~= nil then -- body otherpoker_list.visible=false otherpoker_list:RemoveChildrenToPool() end --player_head._view:GetController("Oener").selectedIndex=0 end end local player_info = self._player_info[self:GetPos(p.seat)] player_info:Ready(true) end) end function M:ReConnectForStart() local _gamectr = ControllerManager.GetController(GameController) self._room.is_new_bout = _gamectr:GetIsNewBout(self._room.curren_turn_seat) self._state.selectedIndex = 1 self._view:GetController("time").selectedIndex = self:GetPos(self._room.curren_turn_seat) self:UpdateRound(self._room.curren_round) --self.AllScore.text = "总分:"..self._room.cur510kFen self.num_5.text = self._room.cur5Num self.num_10.text = self._room.cur10Num self.num_k.text = self._room.curkNum self.num_zong.text =self._room.cur510kFen for _, player in ipairs(self._room.player_list) do local player_card_info = self._player_card_info[self:GetPos(player.seat)] local head_info = self._player_info[self:GetPos(player.seat)] head_info:Ready(false) --如果是体力值不可负分模式 则显示当前的hp值 if player.hp_info ~= nil and player.hp_info.cur_hp ~= nil then head_info:UpdateScore(d2ad(player.hp_info.cur_hp)) --head_info._view:GetChild('zhanji').visible = true local num = player.hp_info.total_hp if num > 0 then head_info._view:GetController('text_color').selectedIndex = 0 head_info._view:GetChild('text_jifen').text = '+' .. d2ad(player.hp_info.total_hp) else head_info._view:GetController('text_color').selectedIndex = 1 head_info._view:GetChild('text_jifen').text = d2ad(player.hp_info.total_hp) end else local rt = 1 if self._room.hpOnOff == 1 then rt = self._room.score_times end head_info:UpdateScore(player.total_score * rt) end head_info:UpdateLineState(player.line_state) head_info:UpdatePiao(player.piao) if head_info._view:GetChild("shengyu")~=nil and head_info._view:GetController("shengyu")~=nil then -- body if self._room.room_config.showlength==1 then -- body head_info._view:GetController("shengyu").selectedIndex=1 else head_info._view:GetController("shengyu").selectedIndex=0 end -- body head_info._view:GetChild("shengyu"):GetChild("shengyu").text="剩"..player.hand_count.."张" end if player.seat == self._room.self_player.seat then if player.open ~= nil and player.open == 0 and self._room.room_config.people_num==3 and self._room.room_config.fangzuobi==1 then -- body self.MypokerList = player.hand_list player_card_info:InitPoker(player.hand_list, false, 1) else player_card_info:InitPoker(player.hand_list, false) end else player_card_info:SetRemainCardNumber(player.hand_count == 1) if player.hand_count == 1 then self.bgm_index = 2 end end if self._room.curren_turn_seat ~= player.seat then -- head_info:MarkBank(false) if player.out_card_list[1] == 0 then player_card_info:SetOutCardInfo(nil, false) else player_card_info:SetOutCardInfo(player.out_card_list, false) end else -- head_info:MarkBank(true) end end end function M:ReconnectForClearing() self:UpdateRound(self._room.curren_round) --self.AllScore.text = "总分:"..self._room.cur510kFen self.num_5.text = self._room.cur5Num self.num_10.text = self._room.cur10Num self.num_k.text = self._room.curkNum self.num_zong.text =self._room.cur510kFen local win_seat = 0 --self.rank_view = self:CreateRankEff(self._room.winseat) for _, player in ipairs(self._room.player_list) do local head_info = self._player_info[self:GetPos(player.seat)] local player_card_info = self._player_card_info[self:GetPos(player.seat)] --如果是体力值不可负分模式 则显示当前的hp值 if player.hp_info ~= nil and player.hp_info.cur_hp ~= nil then head_info:UpdateScore(d2ad(player.hp_info.cur_hp)) --head_info._view:GetChild('zhanji').visible = true local num = player.hp_info.total_hp if num > 0 then head_info._view:GetController('text_color').selectedIndex = 0 head_info._view:GetChild('text_jifen').text = '+' .. d2ad(player.hp_info.total_hp) else head_info._view:GetController('text_color').selectedIndex = 1 head_info._view:GetChild('text_jifen').text = d2ad(player.hp_info.total_hp) end -- player_card_info:PlayScore(d2ad(player.hp_info.round_actual_hp)) else local rt = 1 if self._room.hpOnOff == 1 then rt = self._room.score_times end head_info:UpdateScore(player.total_score * rt) -- player_card_info:PlayScore(player.winscore * rt, false, self._room.winseat) end head_info:UpdateLineState(player.line_state) --head_info._view:GetController("Oener").selectedIndex=0 head_info:UpdatePiao(player.piao) if head_info._view:GetChild("shengyu")~=nil and head_info._view:GetController("shengyu")~=nil then -- body if self._room.room_config.showlength==1 then -- body head_info._view:GetController("shengyu").selectedIndex=1 else head_info._view:GetController("shengyu").selectedIndex=0 end -- body head_info._view:GetChild("shengyu"):GetChild("shengyu").text="剩"..player.hand_count.."张" end if player.seat == self._room.self_player.seat then player_card_info:InitPoker(player.hand_list, false) else player_card_info:UpdateHandPoker(player.hand_list, false, true) end if player.out_card_list[1] == 0 then player_card_info:SetOutCardInfo(nil, false) else player_card_info:SetOutCardInfo(player.out_card_list, false) end end win_seat=self._room.winseat self._room.winseat = nil local remaincards = self._room.remaincards if self._room.game_status==1 then -- body coroutine.start(function() coroutine.wait(0.3) self.result_view = SanQianFen_ResultView.new(self._root_view, self._room.player_list, self._room.room_id, 0, win_seat,0,remaincards) self.result_view:Show() local card_info = self._player_card_info[1] card_info._view:GetChild("out_card_list").visible=true end) if remaincards then local newremaincards = self._gamectr:ChangeCodeByFrom(remaincards,true) -- body local otherpoker_list = self._view:GetChild("otherpoker_list") if otherpoker_list ~= nil then -- body otherpoker_list:RemoveChildrenToPool() otherpoker_list.visible=true end for i = #newremaincards, 1, -1 do coroutine.start(function() coroutine.wait(0.1 * (15 - i)) local flow = newremaincards[i] % 10 local num = (newremaincards[i] - (newremaincards[i] % 10)) / 10 local card_n = flow * 100 + num local poker_item = UIPackage.CreateObject("Extend_Poker_SanQianFen", "poker6") --local code = self:ChangeCodeByTo(card_n) -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/" .. card_n) -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card_n .. "_2") local card_code_obj if DataManager.CurrenRoom.pai==0 then card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/"..card_n) else card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card_n .. "_2") end if card_n==310 and DataManager.CurrenRoom.room_config.Heart10 == 1 then -- body card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/"..card_n.."_1") end if card_code_obj then card_code_obj:SetScale(0.6, 0.6) poker_item:AddChild(card_code_obj) otherpoker_list:AddChild(poker_item) end end) end end end end function M:CreateRankEff() self.rank_view = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/rank_eff") self._view:AddChild(self.rank_view) self.rank_view:Center() self.rank_view:GetTransition("t0"):Play() end function M:_Effect( type1 ,player) -- body if type1 < 7 and type1 ~= 4 and type1 ~= 5 then return end local eff_code = 0 if type1 == 10 then eff_code = 2 elseif type1 == 11 then eff_code = 3 elseif type1 == 4 then eff_code = 4 elseif type1 == 12 then return elseif type1 == 5 then eff_code = 5 else eff_code = 1 end local info = self._player_card_info[self:GetPos(player.seat)] local pNode = info._mask_liangpai local effect = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/eff_"..eff_code) -- local effect = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/eff2_1") effect.touchable = false effect:GetTransition("t0"):Play() -- effect:SetXY((self._view.width - effect.width) / 2,(self._view.hight - effect.hight) / 2) if eff_code==3 then self._view:AddChild(effect) else pNode:AddChild(effect) end if eff_code==1 then self.eff_feiji = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/eff_feiji") self._view:AddChild(self.eff_feiji) self.eff_feiji:Center() self.eff_feiji:GetTransition("t0"):Play() end if eff_code==3 then effect:Center() else if self:GetPos(player.seat)== 1 then effect.x,effect.y = 0,24 else effect.x,effect.y = 24,67 end end -- effect:Center() -- if eff_code ==3 then -- coroutine.start(function() -- coroutine.wait(1) -- effect:Dispose() -- end) -- else coroutine.start(function() coroutine.wait(1) if self.eff_feiji~=nil then self.eff_feiji:Dispose() end effect:Dispose() end) -- end end -- function M:_Effect(type1, player) -- if type1 < 7 and type1 ~= 4 then return end -- local eff_code = 0 -- if type1 == 10 then --顺子 -- eff_code = 2 -- elseif type1 == 11 then --炸 -- eff_code = 3 -- elseif type1 == 4 then --连对 -- eff_code = 4 -- else -- eff_code = 6 -- end -- local info = self._player_card_info[self:GetPos(player.seat)] -- local pNode = info._mask_liangpai -- local effect = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/MovieClip" .. eff_code) -- effect.touchable = false -- --effect:SetXY((self._view.width - effect.width) / 2,(self._view.hight - effect.hight) / 2) -- pNode:AddChild(effect) -- if type1 == 10 then --顺子 -- effect.x, effect.y = -400, -200 -- elseif type1 == 11 then --炸 -- effect.x, effect.y = -80, -225 -- elseif type1 == 4 then --连对 -- effect.x, effect.y = -400, -200 -- else -- effect.x, effect.y = -157, -140 -- end -- coroutine.start(function() -- if type1== 10 or type1== 11 or type1== 4 then -- -- body -- coroutine.wait(2) -- effect:Dispose() -- else -- coroutine.wait(1.2) -- effect:Dispose() -- end -- end) -- if eff_code ==3 then -- coroutine.start(function() -- coroutine.wait(1) -- effect:Dispose() -- end) -- else -- coroutine.start(function() -- coroutine.wait(2) -- effect:Dispose() -- end) -- end -- end function M:UpdateRound(round) local total_round = self._room.room_config.Times self._text_round.text = string.format("%d / %d 局", round, total_round) end function M:GetSoundFileName(type, num, isNewBout) local fileName if num == 8 then num =5 end if isNewBout then if type > 6 or type == 4 then if type == 8 or type == 9 then type = 7 end fileName = tostring(type) elseif type > 2 then fileName = string.format("3_%d", num) else fileName = string.format("%d_%d", type, num) end else math.randomseed(os.time()) if type > 2 and type ~= 11 then local r = math.random(1, 3) fileName = "dani_" .. r elseif type == 11 then fileName = tostring(type) else fileName = string.format("%d_%d", type, num) end end return fileName end function M:GetSpringSeats(player_info) local seat_list = {} local card_max_length = self._room.room_config.Leaf + 14 for i = 1, #player_info do local player = player_info[i] if #player.cards == card_max_length then seat_list[#seat_list + 1] = player.seat end end return seat_list end function M:PlayCardEff(card) if self.cor_card_eff ~= nil then coroutine.stop(self.cor_card_eff) end self.cor_card_eff = nil local cor_time = 0.1 self.cor_card_eff = coroutine.start(function() self._popEvent = false local eff = self._view:GetChild("poker_eff") local poker_obj = eff:GetChild("poker") local poker_back = eff:GetChild("di") poker_back.visible = false -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/" .. card) -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card .. "_2") local card_code_obj if DataManager.CurrenRoom.pai==0 then card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SanQianFen/"..card) else card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card .. "_2") end if card_code_obj then card_code_obj:SetScale(1, 1) poker_obj:AddChild(card_code_obj) card_code_obj.visible = true end self.tween = TweenUtils.TweenFloat(0, 2340, cor_time, function(x) poker_back.rotationY = x poker_obj.rotationY = -180 + x local x_1 = x % 360 if (x_1 > 90 and x_1 < 270) then poker_obj.visible = true poker_back.visible = false else poker_obj.visible = false poker_back.visible = true end end) coroutine.wait(1) self._popEvent = true end) end function M:ResetPoker() -- if self._room.curren_turn_seat == self._room.self_player.seat then -- self._player_card_info[1]:ResetPoker() -- end self._player_card_info[1]:ResetPoker() end function M:PlaySound(sex, path) local sex_path = ViewUtil.Sex_Chat[sex]-- 1 男 2 女 local sound_path = string.format("extend/poker/sanqianfen/sound/%s/%s.mp3", sex_path, path) ViewUtil.PlaySound("SanQianFen_PK", sound_path) end function M:ChangeBgmMusic(bgm_index) if bgm_index == nil then bgm_index = self.bgm_index else self.bgm_index = bgm_index end ViewUtil.PlayMuisc("SanQianFen_PK", string.format("extend/poker/sanqianfen/sound/bgm%d.mp3", 1)) end function M:OnPlayerEnter( ... ) local arg = {...} local p = arg[1] for i=1,#self._room.player_list do if self._room.self_player.seat==self._room.player_list[i].seat and self._room.self_player.self_user.account_id ~= self._room.player_list[i].self_user.account_id then -- body local ErrorMsgTip = UIPackage.CreateObject("Common", "Win_ConnectTip") local _action = self._view:AddChild(ErrorMsgTip) _action.xy = Vector2((self._view.width - _action.width) / 4, self._view.height / 4) local text = _action:GetChild("tex_message") local btn1 = _action:GetChild("btn_connect") local btn2 = _action:GetChild("btn_back") text.text = "您来晚了,座位有人,请重新进牌桌" btn1.visible=false btn2:Center() btn2.y=btn2.y+50 btn2.onClick:Set(function() -- body ErrorMsgTip:Destroy() ErrorMsgTip = nil self._gamectr:LevelRoom(function(res) ViewUtil.CloseModalWait() NetResetConnectWindow.CloseNetReset() ControllerManager.ChangeController(LoddyController) ViewManager.ChangeView(ViewManager.View_Lobby) end) end) end end -- if p ~= self._room.self_player and self._room.room_config.people_num <= 4 and self._room.room_config.people_num >= 3 and self._gamectr:CheckGPS() then -- if self.distance_view then -- self.distance_view:Destroy() -- end -- self.distance_view = PlayerDistanceView.new(true) -- self.distance_view:Show() -- end -- local info = self._player_info[self:GetPos(p.seat)] -- info:FillData(p) -- info._view.visible = true MainView.OnPlayerEnter(self, ...) end function M:Destroy() for i = 1, #self._room.player_list do local player = self._room.player_list[i] local card_info_i = self._player_card_info[self:GetPos(player.seat)] card_info_i:Destroy() if card_info_i ~= nil and card_info_i.cor_init_poker ~= nil then coroutine.stop(card_info_i.cor_init_poker) end end PKMainView.Destroy(self) UIPackage.RemovePackage("extend/poker/sanqianfen/ui/Extend_Poker_SanQianFen") end return M