10.11需求完成,已经大厅创建房间同步
parent
ad6a07242f
commit
355a07c90d
|
|
@ -527,7 +527,6 @@ function M:FG_Data_ChatRoom(evt_data)
|
|||
recode.pid = recode.groupPid
|
||||
recode.groupId = tonumber(recode.groupId)
|
||||
end
|
||||
|
||||
group.records = evt_data.records
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -58,12 +58,17 @@ local function __ConntectGameServer(cmd, room, host, _data, callback)
|
|||
end
|
||||
|
||||
|
||||
function M:CreateRoom(game_id, _data, callback)
|
||||
function M:CreateRoom(game_id, dataInfo, callback)
|
||||
local _client = ControllerManager.WebClient
|
||||
local data = {}
|
||||
data.game_id = game_id
|
||||
data["platform"] = GetPlatform()
|
||||
data.config_data = _data
|
||||
data.config_data = dataInfo._data
|
||||
data.name = dataInfo.name
|
||||
data.gameId = game_id
|
||||
data.hpData = dataInfo.hpData
|
||||
data.hpOnOff = 0
|
||||
data.gtype = 1
|
||||
-- local runtime = os.clock()
|
||||
_client:send(Protocol.WEB_CREATE_ROOM, data, function(res)
|
||||
if (res.ReturnCode == Table_Error_code.ERR_IN_ROOM or res.ReturnCode == Table_Error_code.ERR_CREATE_ROOM) then
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ function RoomConfig:GetDes(sp, str_people_num)
|
|||
if self.tuoguan then
|
||||
str = str .. "托管" .. sp
|
||||
str = str .. "离线" .. self.tuoguan_active_time .. "秒托管" .. sp
|
||||
str = str .. str_tuoguan[self.tuoguan_result_type] .. sp
|
||||
-- str = str .. str_tuoguan[self.tuoguan_result_type] .. sp
|
||||
end
|
||||
return str
|
||||
end
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ end
|
|||
|
||||
local function ChatItemRenderer(index, obj, self)
|
||||
--local data = self.ChatRoomData.records[index + 1]
|
||||
local record = self.group.records[index + 1]
|
||||
local record = self.group.records[#self.group.records - index]
|
||||
local group = DataManager.groups:get(record.groupId)
|
||||
--local totalScore = json.decode(data.totalScore)
|
||||
--local hpData = json.decode(record.hpData)
|
||||
|
|
@ -122,6 +122,7 @@ end
|
|||
function FamilyChatRoom:Refalsh()
|
||||
--self.list_chat.numItems = #self.ChatRoomData.records or 0
|
||||
self.list_chat.numItems = #self.group.records or 0
|
||||
self.list_chat:ScrollToView(#self.group.records - 1 or 0)
|
||||
end
|
||||
|
||||
-- 新战绩推到时刷新一条
|
||||
|
|
@ -131,7 +132,7 @@ function FamilyChatRoom:OnNewChatRefalsh(arg)
|
|||
end
|
||||
|
||||
self.list_chat.numItems = #self.group.records or 0
|
||||
|
||||
self.list_chat:ScrollToView(#self.group.records - 1 or 0)
|
||||
--[[
|
||||
local groupId = arg.gid
|
||||
local maxRound = arg.datas.maxRound
|
||||
|
|
|
|||
|
|
@ -346,6 +346,7 @@ function M:NumverRecordRenderer()
|
|||
obj:GetChild('text_gameType').text = index == 0 and "麻将" or "扑克"
|
||||
obj:GetChild('text_round').text = info.childNum
|
||||
obj:GetChild('text_score').text = string.format("%s%s", info.totalScore >= 0 and "+" or "", info.totalScore)
|
||||
obj:GetController('scoreColor').selectedIndex = info.totalScore >= 0 and 1 or 2
|
||||
obj:GetChild('text_winNum').text = info.winNum
|
||||
obj:GetChild('btn_lookRecord').touchable = info.childNum ~= 0
|
||||
obj:GetChild('btn_lookRecord'):GetController('cColor').selectedIndex = info.childNum ~= 0 and 0 or 1
|
||||
|
|
@ -370,6 +371,7 @@ function M:NumverRecordRenderer()
|
|||
obj:GetChild('text_gameType').text = index == 0 and "麻将" or "扑克"
|
||||
obj:GetChild('text_round').text = info.childNum
|
||||
obj:GetChild('text_score').text = string.format("%s%s", info.totalScore >= 0 and "+" or "", info.totalScore)
|
||||
obj:GetController('scoreColor').selectedIndex = info.totalScore >= 0 and 1 or 2
|
||||
obj:GetChild('text_winNum').text = info.winNum
|
||||
obj:GetChild('btn_lookRecord').touchable = info.childNum ~= 0
|
||||
obj:GetChild('btn_lookRecord'):GetController('cColor').selectedIndex = info.childNum ~= 0 and 0 or 1
|
||||
|
|
@ -392,6 +394,7 @@ end
|
|||
function M:NumberRecordDetailRender()
|
||||
local list_numberRecordDetail = self._viewlist_numberRecordDetail
|
||||
list_numberRecordDetail:SetVirtual()
|
||||
|
||||
list_numberRecordDetail.itemRenderer = function(index, obj)
|
||||
local info = self.records[self.gameTypeNum][self.readStatusNum][index + 1]
|
||||
obj:GetChild('text_gameName').text = info.game_info.name
|
||||
|
|
@ -605,6 +608,11 @@ function M:RecursionGetNumberRecord(fgCtr, groupId, uid, index)
|
|||
for i = 1, #info.totalScore do
|
||||
if info.totalScore[i].accId == uid then
|
||||
totalScore = info.totalScore[i].score
|
||||
if i ~= 1 then
|
||||
local fristInfo = info.totalScore[1]
|
||||
info.totalScore[1] = info.totalScore[i]
|
||||
info.totalScore[i] = fristInfo
|
||||
end
|
||||
end
|
||||
end
|
||||
if info.round ~= "1" or totalScore ~= 0 then
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ function M:SetPageNum()
|
|||
self:SetTouch(self._btn_nextPage)
|
||||
else
|
||||
local num = self.allCount % self.onePageChildCount
|
||||
self._viewList_record.numItems = num == 0 and self.onePageChildCount or num
|
||||
self._viewList_record.numItems = num == 0 and (self.allCount == 0 and 0 or self.onePageChildCount) or num
|
||||
self._viewList_record:RefreshVirtualList()
|
||||
self:SetDontTouch(self._btn_nextPage)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -25,17 +25,142 @@ end
|
|||
|
||||
function M:init(url)
|
||||
BaseWindow.init(self, url)
|
||||
|
||||
|
||||
self.gl_view = GameListView.new(self._view, 1, 1, nil, function(mode_data)
|
||||
self:OnCreateRoom(mode_data)
|
||||
end, true, { _lobby_create = true })
|
||||
--self.gl_view.IsHallGame=true
|
||||
end
|
||||
|
||||
local tuoguanTimeList = { 10, 30, 60, 120, 180, 240, 300 }
|
||||
-- 显示玩法体力值配置
|
||||
|
||||
function M:OnCreateRoom(mode_data)
|
||||
if mode_data.type == 0 then
|
||||
local tex_times = self._view:GetChild("tex_times")
|
||||
|
||||
-- 通用设置
|
||||
local com_editSetting = self.gl_view:GetModeData().data._config:GetChild("com_editSetting")
|
||||
|
||||
self.cGps = com_editSetting:GetController("cGps")
|
||||
self.cTuoguan = com_editSetting:GetController("cTuoguan")
|
||||
self.cJiesan = com_editSetting:GetController("cJiesan")
|
||||
self.cGongneng = com_editSetting:GetController("cGongneng")
|
||||
self.cChat = com_editSetting:GetController("cChat")
|
||||
self.cMisslie = com_editSetting:GetController("cMisslie")
|
||||
|
||||
self.hpData = {}
|
||||
local mode = mode_data.data
|
||||
--点击建房按钮后保存当前游戏的config
|
||||
local btn_ok = self._view:GetChild("btn_ok")
|
||||
local _data = mode:SelectedConfigData()
|
||||
_data.game_id = mode.game_data.game_id
|
||||
_data.isNonnegative = 0
|
||||
_data.hp_no_limit = 0
|
||||
_data.tuoguan = true
|
||||
|
||||
_data.tuoguan_active_timeIndex = 0
|
||||
_data.tuoguan_result_type = 0
|
||||
_data.isHidden = 0
|
||||
_data.isvip = 0
|
||||
|
||||
-- GPS设置
|
||||
local dis = 0
|
||||
if self.cGps.selectedIndex == 0 then
|
||||
dis = 100
|
||||
elseif self.cGps.selectedIndex == 1 then
|
||||
dis = 500
|
||||
elseif self.cGps.selectedIndex == 2 then
|
||||
dis = 0
|
||||
end
|
||||
_data.GPSDetection = dis
|
||||
|
||||
-- 托管
|
||||
local time = 0
|
||||
if self.cTuoguan.selectedIndex == 1 then
|
||||
time = 30
|
||||
elseif self.cTuoguan.selectedIndex == 2 then
|
||||
time = 60
|
||||
elseif self.cTuoguan.selectedIndex == 3 then
|
||||
time = 120
|
||||
end
|
||||
_data.tuoguan_active_time = time
|
||||
|
||||
-- 解散
|
||||
self.hpData.JieShan = self.cJiesan.selectedIndex + 1
|
||||
-- 功能
|
||||
self.hpData.GongNeng = self.cGongneng.selectedIndex + 1
|
||||
-- 开启聊天
|
||||
self.hpData.BanChat = self.cChat.selectedIndex
|
||||
-- 开启表情互动
|
||||
self.hpData.BanMissile = self.cMisslie.selectedIndex
|
||||
|
||||
|
||||
local hpType = mode.game_data.hpType
|
||||
self.hpData.limitInRoom = 0
|
||||
self.hpData.limitPlay = 0
|
||||
self.hpData.limitloot = 0
|
||||
self.hpData.robot_room = 0
|
||||
self.hpData.type = self._type
|
||||
self.hpData.limitPump = self._limitPump
|
||||
local hpOnOff = 0
|
||||
if hpType > 1 and hpOnOff == 1 then
|
||||
if self.hpData.limitInRoom < self.hpData.limitPlay then
|
||||
ViewUtil.ErrorMsg(self._root_view, -9, "进入限制必须大于等于退出限制")
|
||||
return
|
||||
end
|
||||
if self.hpData.limitPlay == 0 then
|
||||
ViewUtil.ErrorMsg(self._root_view, -9, "退出房间限制不能为0")
|
||||
return
|
||||
end
|
||||
end
|
||||
local times = tonumber(tex_times.text)
|
||||
self.hpData.times = ad2d(tonumber(times))
|
||||
|
||||
self.hpData.tex_times_room = 1
|
||||
|
||||
|
||||
self.hpData.basePump = 0
|
||||
|
||||
self.hpData.rewards_list = {}
|
||||
|
||||
self.hpData.rewards_type = 1
|
||||
self.hpData.rewardValueType = 1
|
||||
|
||||
self.hpData.xipai_rewardType = 1
|
||||
self.hpData.xipai_rewardValueType = 1
|
||||
|
||||
self.hpData.anchou_rewardType = 1
|
||||
self.hpData.anchou_rewardValueType = 1
|
||||
|
||||
|
||||
if self.hpData.rewardValueType == 1 then
|
||||
self.hpData.rewards_val = 100
|
||||
else
|
||||
self.hpData.rewards_val = ad2d(10000)
|
||||
end
|
||||
|
||||
if self.hpData.xipai_rewardValueType == 1 then
|
||||
self.hpData.xipai_rewards_val = 100
|
||||
else
|
||||
self.hpData.xipai_rewards_val = ad2d(10000)
|
||||
end
|
||||
|
||||
|
||||
if self.hpData.anchou_rewardValueType == 1 then
|
||||
self.hpData.anchou_rewards_val = 100
|
||||
else
|
||||
self.hpData.anchou_rewards_val = ad2d(10000)
|
||||
end
|
||||
|
||||
local com_editSetting = self._view:GetChild("tex_name")
|
||||
|
||||
|
||||
local tex_name = self._view:GetChild("tex_name")
|
||||
local name = " "
|
||||
-- print("jefe:")
|
||||
pt(self.hpData)
|
||||
---- print("OnCreateRoom================")
|
||||
--pt(_data)
|
||||
if not _data["stamina"] then _data["stamina"] = 0 end
|
||||
|
|
@ -53,7 +178,6 @@ function M:OnCreateRoom(mode_data)
|
|||
DataManager.SelfUser.location = Location.new()
|
||||
end
|
||||
if _data["GPSDetection"] and _data["GPSDetection"] > 0 and DataManager.SelfUser.location:Location2String() == "" then
|
||||
-- if DataManager.SelfUser.location:Location2String() == "" then
|
||||
ViewUtil.ErrorTip(nil, "正在获取GPS定位,请稍候重试。")
|
||||
get_gps()
|
||||
return
|
||||
|
|
@ -61,7 +185,7 @@ function M:OnCreateRoom(mode_data)
|
|||
|
||||
|
||||
ViewUtil.ShowModalWait(self._root_view, "正在创建房间...")
|
||||
loddyCtr:CreateRoom(game_id, _data, function(res)
|
||||
loddyCtr:CreateRoom(game_id, { _data = _data, hpData = self.hpData, name = name }, function(res)
|
||||
self:__OnCreateRoomAction(res)
|
||||
end)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -52,6 +52,8 @@ function M:init(url)
|
|||
end)
|
||||
|
||||
btn_sound.onClick:Add(function()
|
||||
slider_sound.value = 0
|
||||
GameApplication.Instance.SoundValue = 0
|
||||
GameApplication.Instance.SoundMute = btn_sound.selected;
|
||||
end)
|
||||
|
||||
|
|
|
|||
|
|
@ -51,6 +51,9 @@ function M:InitData(over, room, result, total_result, callback, isWitness, witne
|
|||
local mainCtr = self._view:GetController("main")
|
||||
local playerNum = self._view:GetController("playerNum")
|
||||
local showBtnTypeCtr = self._view:GetController("showType")
|
||||
local Text_BoJing = self._view:GetChild('Text_BoJing')
|
||||
|
||||
Text_BoJing.visible = false
|
||||
|
||||
--回放不需要显示还剩下多少牌
|
||||
if self.flag_back then
|
||||
|
|
@ -180,6 +183,8 @@ function M:fillResult0(room, peopleNum, result)
|
|||
infoList.hu_score = infoList.hu_score or 0
|
||||
infoList.round_score = infoList.round_score or 0
|
||||
|
||||
playerInfoComp:GetChild("Text_BoJing").visible = false
|
||||
|
||||
playerInfoComp:GetChild("text_name").text = playInfo.self_user.nick_name
|
||||
playerInfoComp:GetChild("Text_BoJing").text = infoList.jing_score >= 0 and
|
||||
string.format("+%d", infoList.jing_score) or infoList.jing_score
|
||||
|
|
|
|||
|
|
@ -534,6 +534,15 @@ function M:EventInit()
|
|||
self:PlayMJSound("end_music.mp3")
|
||||
end
|
||||
end
|
||||
-- 扣分动画
|
||||
if result then
|
||||
for _, pScore in pairs(result.info_list) do
|
||||
local infoView = self._player_info[self:GetPos(pScore.seat)]
|
||||
infoView:UpdateScore(pScore.total_score, true)
|
||||
end
|
||||
end
|
||||
coroutine.wait(0.3)
|
||||
|
||||
coroutine.wait(0.5)
|
||||
self._clearingView:Show()
|
||||
self._popEvent = true
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
local MJPlayBackView = require("main.majiang.MJPlayBackView")
|
||||
local EXRoomConfig = import(".EXRoomConfig")
|
||||
local EXClearingView = import(".EXClearingView")
|
||||
local HuCardImg = import(".HuCardImg")
|
||||
|
||||
local Record_Event = import(".RecordEvent")
|
||||
|
||||
|
|
@ -27,6 +28,12 @@ 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.HuCardImg = setmetatable(HuCardImg, { __index = self.HuCardImg })
|
||||
self.asset_group = "FuZhou_MJ"
|
||||
self.HuCardImg_path = "ui://Extend_MJ_FuZhou/"
|
||||
self.Sound_path = "extend/majiang/fuzhou/sound/"
|
||||
|
||||
self._eventmap = {}
|
||||
|
||||
self._cmdmap = {}
|
||||
|
|
@ -37,6 +44,7 @@ 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.com_logocType.selectedIndex = 0
|
||||
end
|
||||
|
||||
|
|
@ -59,7 +67,7 @@ function M:FillRoomData(data)
|
|||
for i = 1, #room.player_list do
|
||||
local p = room.player_list[i]
|
||||
local card_info = _player_card_info[self:GetPos(p.seat)]
|
||||
card_info:Clear()
|
||||
card_info:Clear()
|
||||
table.sort(p.card_list, self.HandCardSortAndJing)
|
||||
card_info:UpdateHandCard(false, true)
|
||||
self._player_info[i]._view:GetController("piao_niao").selectedIndex = 0
|
||||
|
|
@ -99,15 +107,71 @@ function M:ShowStep(index)
|
|||
end
|
||||
if step.cmd == Record_Event.Evt_OutCard and i == step.last_out_seat then
|
||||
local card = p.outcard_list[#p.outcard_list]
|
||||
info:UpdateOutCardList(nil, nil, self._cursor)
|
||||
info:UpdateOutCardList(nil, card, self._cursor)
|
||||
self:PlayMJSound("chupai.mp3")
|
||||
self:PlaySound("FuZhou_MJ", p.self_user.sex, tostring(card))
|
||||
else
|
||||
info:UpdateOutCardList()
|
||||
end
|
||||
if (step.cmd == Record_Event.Evt_GetCard and p.seat == step.current_out_seat) or step.cmd == Record_Event.Evt_Action then
|
||||
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
|
||||
|
||||
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 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_Win then
|
||||
self._win_pic = UIPackage.CreateObjectFromURL("ui://Main_Majiang/胡")
|
||||
|
|
@ -141,23 +205,125 @@ function M:ShowStep(index)
|
|||
end
|
||||
if step.cmd == Record_Event.Evt_Result then
|
||||
if not self.result then
|
||||
self.result = EXClearingView.new(self, { flag_back = true })
|
||||
self.result:InitData(0, self._room, step.result_data)
|
||||
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.result._view:GetChild("btn_confirm").visible = false
|
||||
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()
|
||||
coroutine.wait(0.3)
|
||||
|
||||
--逐个显示胡的特效
|
||||
for i = 1, #result.info_list do
|
||||
local hu_info = result.info_list[i]
|
||||
local player = self._room:GetPlayerBySeat(hu_info.seat)
|
||||
local info = self._player_card_info[self:GetPos(hu_info.seat)]
|
||||
|
||||
if hu_info.is_win then
|
||||
local win_list = hu_info.win_list
|
||||
|
||||
local list_HuCardEffect = info._viewList_HuEffect
|
||||
local Effects = {}
|
||||
--先循环一遍把杠上开花放在最前面
|
||||
for i = 1, #win_list do
|
||||
local HuMsg = win_list[i]
|
||||
if HuMsg.type > 2 and HuMsg.type < 60 then
|
||||
if self.HuCardImg[HuMsg.type][1] == "tile_cs_gangshanghua" then
|
||||
local imgPath = "ui://Main_Majiang/tile_cs_gangshanghua"
|
||||
local imgObj = list_HuCardEffect:AddItemFromPool()
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader.url = imgPath
|
||||
imgObj.visible = false
|
||||
Effects[#Effects + 1] = imgObj
|
||||
table.remove(win_list, i)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, #win_list do
|
||||
local HuMsg = win_list[i]
|
||||
|
||||
-- ↓↓↓先排列好特效图片
|
||||
if HuMsg.type > 2 and HuMsg.type < 60 then
|
||||
local sound_name = string.format(self.Sound_path .. "%s/%s.mp3",
|
||||
ViewUtil.Sex_Chat[player.self_user.sex],
|
||||
"he" .. HuMsg.type)
|
||||
ViewUtil.PlaySound(self.asset_group, sound_name)
|
||||
|
||||
local imgList = self.HuCardImg[HuMsg.type]
|
||||
for _, img in pairs(imgList) do
|
||||
local imgPath = "ui://Main_Majiang/" .. img
|
||||
local imgObj = list_HuCardEffect:AddItemFromPool()
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader.url = imgPath
|
||||
imgObj.visible = false
|
||||
Effects[#Effects + 1] = imgObj
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--小于四个字段时动态调整胡特效
|
||||
if info._viewText_cardInfo["huEffet_columnGap"] and #Effects < 4 then
|
||||
list_HuCardEffect.columnGap = tonumber(info._viewText_cardInfo["huEffet_columnGap"])
|
||||
else
|
||||
list_HuCardEffect.columnGap = 0
|
||||
end
|
||||
|
||||
-- ↓↓↓播放动画
|
||||
for _, imgObj in pairs(Effects) do
|
||||
imgObj.visible = true
|
||||
|
||||
local effect_xingxing = imgObj:GetChild("effect_xingxing")
|
||||
effect_xingxing:SetPlaySettings(0, -1, 1, -1);
|
||||
effect_xingxing.visible = true
|
||||
effect_xingxing.playing = true
|
||||
effect_xingxing.onPlayEnd:Set(function()
|
||||
effect_xingxing.visible = false
|
||||
end)
|
||||
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader:SetScale(2, 2)
|
||||
imgLoader:Center()
|
||||
imgLoader:TweenScale(Vector2(1, 1), 0.3)
|
||||
coroutine.wait(0.5)
|
||||
end
|
||||
|
||||
coroutine.wait(0.3)
|
||||
list_HuCardEffect:RemoveChildrenToPool()
|
||||
end
|
||||
end
|
||||
|
||||
--统一显示弹出分数
|
||||
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
|
||||
-- self.result._view:Center()
|
||||
-- else
|
||||
-- if self.result then
|
||||
-- self.result._view.visible = false
|
||||
-- end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -225,7 +391,8 @@ function M:CmdAction(cmd, index)
|
|||
fz.type = cmd.data.type
|
||||
fz.card = cmd.data.card
|
||||
fz.opcard = cmd.data.opcard
|
||||
fz.from_seat = cmd.data.from_seat
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
local MJPlayBackView = require("main.majiang.MJPlayBackView")
|
||||
local EXRoomConfig = import(".EXRoomConfig")
|
||||
local EXClearingView = import(".EXClearingView")
|
||||
local HuCardImg = import(".HuCardImg")
|
||||
|
||||
local Record_Event = import(".RecordEvent")
|
||||
|
||||
|
|
@ -9,323 +10,489 @@ local M = {}
|
|||
|
||||
--- Create a new
|
||||
function M.new()
|
||||
setmetatable(M, { __index = MJPlayBackView })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "PlayBackView"
|
||||
self:init()
|
||||
setmetatable(M, { __index = MJPlayBackView })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "PlayBackView"
|
||||
self:init()
|
||||
|
||||
return self
|
||||
return self
|
||||
end
|
||||
|
||||
function M:InitView(url)
|
||||
local room = self._room
|
||||
UIPackage.AddPackage("extend/majiang/jinxi/ui/Extend_MJ_JinXi")
|
||||
MJPlayBackView.InitView(self, string.format("ui://Main_Majiang/Main_new_%d_jiangxi", room.room_config.people_num))
|
||||
local _cardbox = self._view:GetChild("cardbox")
|
||||
--self._view:GetChild("panel_record"):GetChild("btn_LastStep").enabled = false
|
||||
self._ctr_cardbox = _cardbox:GetController("c1")
|
||||
self._tex_round = self._view:GetChild("tex_round")
|
||||
self._tex_LeftCard = self._view:GetChild("remaining_card")
|
||||
self._anchor = self._view:GetChild("mask_tips")
|
||||
self._eventmap = {}
|
||||
local room = self._room
|
||||
UIPackage.AddPackage("extend/majiang/jinxi/ui/Extend_MJ_JinXi")
|
||||
MJPlayBackView.InitView(self, string.format("ui://Main_Majiang/Main_new_%d_jiangxi", room.room_config.people_num))
|
||||
local _cardbox = self._view:GetChild("cardbox")
|
||||
--self._view:GetChild("panel_record"):GetChild("btn_LastStep").enabled = false
|
||||
self._ctr_cardbox = _cardbox:GetController("c1")
|
||||
self._tex_round = self._view:GetChild("tex_round")
|
||||
self._tex_LeftCard = self._view:GetChild("remaining_card")
|
||||
self._anchor = self._view:GetChild("mask_tips")
|
||||
|
||||
self._cmdmap = {}
|
||||
self._cmdmap[Record_Event.Evt_GetCard] = self.CmdGetCard
|
||||
self._cmdmap[Record_Event.Evt_OutCard] = self.CmdOutCard
|
||||
self._cmdmap[Record_Event.Evt_Action] = self.CmdAction
|
||||
self._cmdmap[Record_Event.Evt_Win] = self.CmdWin
|
||||
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.com_logocType.selectedIndex = 3
|
||||
self.HuCardImg = setmetatable(HuCardImg, { __index = self.HuCardImg })
|
||||
self.asset_group = "JinXi_MJ"
|
||||
self.HuCardImg_path = "ui://Extend_MJ_JinXi/"
|
||||
self.Sound_path = "extend/majiang/jinxi/sound/"
|
||||
|
||||
self._eventmap = {}
|
||||
|
||||
self._cmdmap = {}
|
||||
self._cmdmap[Record_Event.Evt_GetCard] = self.CmdGetCard
|
||||
self._cmdmap[Record_Event.Evt_OutCard] = self.CmdOutCard
|
||||
self._cmdmap[Record_Event.Evt_Action] = self.CmdAction
|
||||
self._cmdmap[Record_Event.Evt_Win] = self.CmdWin
|
||||
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.com_logocType.selectedIndex = 3
|
||||
end
|
||||
|
||||
function M:FillRoomData(data)
|
||||
MJPlayBackView.FillRoomData(self)
|
||||
if self._win_pic then self._win_pic:Dispose() end
|
||||
if self._niao then self._niao:Dispose() end
|
||||
self._currentStep = 0
|
||||
local room = DataManager.CurrenRoom
|
||||
local _player_card_info = self._player_card_info
|
||||
local left_count = data.info.left_card
|
||||
self:UpdateLeftCard(left_count)
|
||||
local round = data.info.round
|
||||
self:UpdateRound(round)
|
||||
MJPlayBackView.FillRoomData(self)
|
||||
if self._win_pic then self._win_pic:Dispose() end
|
||||
if self._niao then self._niao:Dispose() end
|
||||
self._currentStep = 0
|
||||
local room = DataManager.CurrenRoom
|
||||
local _player_card_info = self._player_card_info
|
||||
local left_count = data.info.left_card
|
||||
self:UpdateLeftCard(left_count)
|
||||
local round = data.info.round
|
||||
self:UpdateRound(round)
|
||||
|
||||
local roominfo_panel = self._view:GetChild("roominfo_panel1")
|
||||
roominfo_panel:GetChild("tex_roomid").text = room.room_id
|
||||
roominfo_panel:GetChild("tex_gametype").text = room.room_config:GetGameName()
|
||||
local roominfo_panel = self._view:GetChild("roominfo_panel1")
|
||||
roominfo_panel:GetChild("tex_roomid").text = room.room_id
|
||||
roominfo_panel:GetChild("tex_gametype").text = room.room_config:GetGameName()
|
||||
|
||||
for i = 1, #room.player_list do
|
||||
local p = room.player_list[i]
|
||||
local card_info = _player_card_info[self:GetPos(p.seat)]
|
||||
for i = 1, #room.player_list do
|
||||
local p = room.player_list[i]
|
||||
local card_info = _player_card_info[self:GetPos(p.seat)]
|
||||
card_info:Clear()
|
||||
table.sort(p.card_list, self.HandCardSortAndJing)
|
||||
card_info:UpdateHandCard(false, true)
|
||||
self._player_info[i]._view:GetController("piao_niao").selectedIndex = 0
|
||||
end
|
||||
table.sort(p.card_list, self.HandCardSortAndJing)
|
||||
card_info:UpdateHandCard(false, true)
|
||||
self._player_info[i]._view:GetController("piao_niao").selectedIndex = 0
|
||||
end
|
||||
|
||||
self:GenerateAllStepData(data)
|
||||
self:UpdateStep(1)
|
||||
self:GenerateAllStepData(data)
|
||||
self:UpdateStep(1)
|
||||
self:Play()
|
||||
-- self:ShowStep(0)
|
||||
-- self:ShowStep(0)
|
||||
end
|
||||
|
||||
function M:ShowStep(index)
|
||||
local step = self._step[index + 1]
|
||||
self:UpdateLeftCard(step.left_card)
|
||||
-- self._ctr_cardbox.selectedIndex = step.current_out_seat
|
||||
self:UpdateCardBox(self:GetPos(step.current_out_seat))
|
||||
self:UpdateStep(index + 1)
|
||||
if step.cmd ~= Record_Event.Evt_OutCard then
|
||||
self:RemoveCursor()
|
||||
end
|
||||
for i = 1, #step.player_card_data do
|
||||
local p = self._room:GetPlayerBySeat(i)
|
||||
local info = self._player_card_info[self:GetPos(i)]
|
||||
p.card_list = step.player_card_data[i].card_list
|
||||
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()
|
||||
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
|
||||
head_info._view:GetChild("mask_piao").title = "飘分 " .. p.piao_niao
|
||||
head_info._view:GetController("piao_niao").selectedIndex = 1
|
||||
else
|
||||
head_info._view:GetController("piao_niao").selectedIndex = 0
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_OutCard and i == step.last_out_seat then
|
||||
local card = p.outcard_list[#p.outcard_list]
|
||||
info:UpdateOutCardList(nil, nil, self._cursor)
|
||||
else
|
||||
info:UpdateOutCardList()
|
||||
end
|
||||
if (step.cmd == Record_Event.Evt_GetCard and p.seat == step.current_out_seat) or step.cmd == Record_Event.Evt_Action then
|
||||
info:UpdateHandCard(true, true)
|
||||
else
|
||||
info:UpdateHandCard(false, true)
|
||||
end
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_Win then
|
||||
self._win_pic = UIPackage.CreateObjectFromURL("ui://Main_Majiang/胡")
|
||||
local info = self._player_card_info[self:GetPos(step.win)]
|
||||
info._view:AddChild(self._win_pic)
|
||||
self._win_pic:Center()
|
||||
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
|
||||
self._niao = UIPackage.CreateObjectFromURL("ui://Extend_MJ_JinXi/Panel_Birds")
|
||||
local list = self._niao:GetChild("Lst_birds")
|
||||
list:RemoveChildrenToPool()
|
||||
for i = 1, #niao_list do
|
||||
local item = list:AddItemFromPool()
|
||||
item.icon = UIPackage.GetItemURL("Main_Majiang", "b201_" .. niao_list[i].card)
|
||||
if niao_list[i].score > 0 then
|
||||
item:GetController("bg").selectedIndex = 2
|
||||
end
|
||||
end
|
||||
self._view:AddChild(self._niao)
|
||||
self._view:AddChild(self._view:GetChild("panel_record"))
|
||||
self._niao:Center()
|
||||
else
|
||||
if self._niao then
|
||||
self._niao:Dispose()
|
||||
end
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_Result then
|
||||
if not self.result then
|
||||
local step = self._step[index + 1]
|
||||
self:UpdateLeftCard(step.left_card)
|
||||
-- self._ctr_cardbox.selectedIndex = step.current_out_seat
|
||||
self:UpdateCardBox(self:GetPos(step.current_out_seat))
|
||||
self:UpdateStep(index + 1)
|
||||
if step.cmd ~= Record_Event.Evt_OutCard then
|
||||
self:RemoveCursor()
|
||||
end
|
||||
for i = 1, #step.player_card_data do
|
||||
local p = self._room:GetPlayerBySeat(i)
|
||||
local info = self._player_card_info[self:GetPos(i)]
|
||||
p.card_list = step.player_card_data[i].card_list
|
||||
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()
|
||||
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
|
||||
head_info._view:GetChild("mask_piao").title = "飘分 " .. p.piao_niao
|
||||
head_info._view:GetController("piao_niao").selectedIndex = 1
|
||||
else
|
||||
head_info._view:GetController("piao_niao").selectedIndex = 0
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_OutCard and i == step.last_out_seat then
|
||||
local card = p.outcard_list[#p.outcard_list]
|
||||
info:UpdateOutCardList(nil, card, self._cursor)
|
||||
self:PlayMJSound("chupai.mp3")
|
||||
self:PlaySound("JinXi_MJ", p.self_user.sex, tostring(card))
|
||||
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
|
||||
|
||||
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 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_Win then
|
||||
self._win_pic = UIPackage.CreateObjectFromURL("ui://Main_Majiang/胡")
|
||||
local info = self._player_card_info[self:GetPos(step.win)]
|
||||
info._view:AddChild(self._win_pic)
|
||||
self._win_pic:Center()
|
||||
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
|
||||
self._niao = UIPackage.CreateObjectFromURL("ui://Extend_MJ_JinXi/Panel_Birds")
|
||||
local list = self._niao:GetChild("Lst_birds")
|
||||
list:RemoveChildrenToPool()
|
||||
for i = 1, #niao_list do
|
||||
local item = list:AddItemFromPool()
|
||||
item.icon = UIPackage.GetItemURL("Main_Majiang", "b201_" .. niao_list[i].card)
|
||||
if niao_list[i].score > 0 then
|
||||
item:GetController("bg").selectedIndex = 2
|
||||
end
|
||||
end
|
||||
self._view:AddChild(self._niao)
|
||||
self._view:AddChild(self._view:GetChild("panel_record"))
|
||||
self._niao:Center()
|
||||
else
|
||||
if self._niao then
|
||||
self._niao:Dispose()
|
||||
end
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_Result then
|
||||
if not self.result then
|
||||
local result = step.result_data
|
||||
self.result = EXClearingView.new(self, { flag_back = true })
|
||||
self.result:InitData(0, self._room, step.result_data)
|
||||
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.result._view:GetChild("btn_confirm").visible = false
|
||||
self._anchor:AddChild(self.result._view)
|
||||
self.result._view.x = self._anchor.x * -1
|
||||
self.result._view.y = self._anchor.y * -1
|
||||
else
|
||||
self.result._view.visible = true
|
||||
end
|
||||
-- self.result._view:Center()
|
||||
-- else
|
||||
-- if self.result then
|
||||
-- self.result._view.visible = false
|
||||
-- end
|
||||
end
|
||||
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()
|
||||
coroutine.wait(0.3)
|
||||
|
||||
--逐个显示胡的特效
|
||||
for i = 1, #result.info_list do
|
||||
local hu_info = result.info_list[i]
|
||||
local player = self._room:GetPlayerBySeat(hu_info.seat)
|
||||
local info = self._player_card_info[self:GetPos(hu_info.seat)]
|
||||
|
||||
if hu_info.is_win then
|
||||
local win_list = hu_info.win_list
|
||||
|
||||
local list_HuCardEffect = info._viewList_HuEffect
|
||||
local Effects = {}
|
||||
--先循环一遍把杠上开花放在最前面
|
||||
for i = 1, #win_list do
|
||||
local HuMsg = win_list[i]
|
||||
if HuMsg.type > 2 and HuMsg.type < 60 then
|
||||
if self.HuCardImg[HuMsg.type][1] == "tile_cs_gangshanghua" then
|
||||
local imgPath = "ui://Main_Majiang/tile_cs_gangshanghua"
|
||||
local imgObj = list_HuCardEffect:AddItemFromPool()
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader.url = imgPath
|
||||
imgObj.visible = false
|
||||
Effects[#Effects + 1] = imgObj
|
||||
table.remove(win_list, i)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, #win_list do
|
||||
local HuMsg = win_list[i]
|
||||
|
||||
-- ↓↓↓先排列好特效图片
|
||||
if HuMsg.type > 2 and HuMsg.type < 60 then
|
||||
local sound_name = string.format(self.Sound_path .. "%s/%s.mp3",
|
||||
ViewUtil.Sex_Chat[player.self_user.sex],
|
||||
"he" .. HuMsg.type)
|
||||
ViewUtil.PlaySound(self.asset_group, sound_name)
|
||||
|
||||
local imgList = self.HuCardImg[HuMsg.type]
|
||||
for _, img in pairs(imgList) do
|
||||
local imgPath = "ui://Main_Majiang/" .. img
|
||||
local imgObj = list_HuCardEffect:AddItemFromPool()
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader.url = imgPath
|
||||
imgObj.visible = false
|
||||
Effects[#Effects + 1] = imgObj
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--小于四个字段时动态调整胡特效
|
||||
if info._viewText_cardInfo["huEffet_columnGap"] and #Effects < 4 then
|
||||
list_HuCardEffect.columnGap = tonumber(info._viewText_cardInfo["huEffet_columnGap"])
|
||||
else
|
||||
list_HuCardEffect.columnGap = 0
|
||||
end
|
||||
|
||||
-- ↓↓↓播放动画
|
||||
for _, imgObj in pairs(Effects) do
|
||||
imgObj.visible = true
|
||||
|
||||
local effect_xingxing = imgObj:GetChild("effect_xingxing")
|
||||
effect_xingxing:SetPlaySettings(0, -1, 1, -1);
|
||||
effect_xingxing.visible = true
|
||||
effect_xingxing.playing = true
|
||||
effect_xingxing.onPlayEnd:Set(function()
|
||||
effect_xingxing.visible = false
|
||||
end)
|
||||
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader:SetScale(2, 2)
|
||||
imgLoader:Center()
|
||||
imgLoader:TweenScale(Vector2(1, 1), 0.3)
|
||||
coroutine.wait(0.5)
|
||||
end
|
||||
|
||||
coroutine.wait(0.3)
|
||||
list_HuCardEffect:RemoveChildrenToPool()
|
||||
end
|
||||
end
|
||||
|
||||
--统一显示弹出分数
|
||||
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
|
||||
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_out_seat = 0
|
||||
step.current_out_seat = 1
|
||||
step.win = 0
|
||||
step.niao = 0
|
||||
|
||||
step.player_card_data = {}
|
||||
for i = 1, #self._room.player_list do
|
||||
local p = info.playerData[i]
|
||||
local u = {}
|
||||
u.seat = p.seat
|
||||
u.card_list = p.hand_card
|
||||
u.hand_left_count = #u.card_list
|
||||
u.fz_list = {}
|
||||
u.outcard_list = {}
|
||||
u.piao_niao = p.piao_niao
|
||||
step.player_card_data[u.seat] = u
|
||||
end
|
||||
self._step[#self._step + 1] = step
|
||||
step.player_card_data = {}
|
||||
for i = 1, #self._room.player_list do
|
||||
local p = info.playerData[i]
|
||||
local u = {}
|
||||
u.seat = p.seat
|
||||
u.card_list = p.hand_card
|
||||
u.hand_left_count = #u.card_list
|
||||
u.fz_list = {}
|
||||
u.outcard_list = {}
|
||||
u.piao_niao = p.piao_niao
|
||||
step.player_card_data[u.seat] = u
|
||||
end
|
||||
self._step[#self._step + 1] = step
|
||||
|
||||
for i = 1, #cmdList do
|
||||
local tem = cmdList[i]
|
||||
self._cmdmap[tem.cmd](self, tem, i)
|
||||
end
|
||||
for i = 1, #cmdList do
|
||||
local tem = cmdList[i]
|
||||
self._cmdmap[tem.cmd](self, tem, i)
|
||||
end
|
||||
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.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)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.last_out_seat = cmd.seat
|
||||
local u = data.player_card_data[cmd.seat]
|
||||
list_remove(u.card_list, cmd.data.card)
|
||||
table.sort(u.card_list, self.HandCardSortAndJing)
|
||||
u.outcard_list[#u.outcard_list + 1] = cmd.data.card
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.last_out_seat = cmd.seat
|
||||
local u = data.player_card_data[cmd.seat]
|
||||
list_remove(u.card_list, cmd.data.card)
|
||||
table.sort(u.card_list, self.HandCardSortAndJing)
|
||||
u.outcard_list[#u.outcard_list + 1] = cmd.data.card
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
end
|
||||
|
||||
function M:CmdWin(cmd, index)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.win = cmd.seat
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.win = cmd.seat
|
||||
end
|
||||
|
||||
function M:CmdNiao(cmd, index)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.niao = cmd.data.niao
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.niao = cmd.data.niao
|
||||
end
|
||||
|
||||
function M:CmdPiao(cmd, index)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.player_card_data[cmd.seat].piao_niao = cmd.data.num
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.player_card_data[cmd.seat].piao_niao = cmd.data.num
|
||||
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.result_data = cmd.data
|
||||
end
|
||||
|
||||
function M:CopyLastStep(index)
|
||||
local step = {}
|
||||
local last_step = self._step[index]
|
||||
step = membe_deep_clone(last_step)
|
||||
self._step[#self._step + 1] = step
|
||||
step.result_data = nil
|
||||
return step
|
||||
local step = {}
|
||||
local last_step = self._step[index]
|
||||
step = membe_deep_clone(last_step)
|
||||
self._step[#self._step + 1] = step
|
||||
step.result_data = nil
|
||||
return step
|
||||
end
|
||||
|
||||
function M:UpdateLeftCard(num)
|
||||
self._tex_LeftCard.text = "余" .. num .. "张"
|
||||
self._tex_LeftCard.text = "余" .. num .. "张"
|
||||
end
|
||||
|
||||
function M:UpdateCardBox(seat)
|
||||
local index = seat
|
||||
local people_num = self._room.room_config.people_num
|
||||
if people_num == 2 and seat == 2 then
|
||||
index = 3
|
||||
elseif people_num == 3 and seat == 3 then
|
||||
index = 4
|
||||
end
|
||||
self._ctr_cardbox.selectedIndex = index
|
||||
local index = seat
|
||||
local people_num = self._room.room_config.people_num
|
||||
if people_num == 2 and seat == 2 then
|
||||
index = 3
|
||||
elseif people_num == 3 and seat == 3 then
|
||||
index = 4
|
||||
end
|
||||
self._ctr_cardbox.selectedIndex = index
|
||||
end
|
||||
|
||||
function M:UpdateRound()
|
||||
self._view:GetChild("text_round").text = string.format("局数:%d /%d", self._room.curren_round,
|
||||
self._room.room_config.round)
|
||||
self._view:GetChild("text_round").text = string.format("局数:%d /%d", self._room.curren_round,
|
||||
self._room.room_config.round)
|
||||
end
|
||||
|
||||
function M:UpdateStep(step)
|
||||
self._record:GetChild("tex_step").text = "第 " .. step .. " / " .. #self._step .. "步"
|
||||
self._record:GetChild("tex_step").text = "第 " .. step .. " / " .. #self._step .. "步"
|
||||
end
|
||||
|
||||
function M.HandCardSortAndJing(a, b)
|
||||
local jing = DataManager.CurrenRoom.jing
|
||||
if a == jing or b == jing then
|
||||
if a == b then
|
||||
return a < b
|
||||
end
|
||||
return a == jing
|
||||
else
|
||||
if a < 200 then
|
||||
a = a + 1000
|
||||
elseif a < 300 then
|
||||
a = a + 3000
|
||||
elseif a < 400 then
|
||||
a = a + 2000
|
||||
else
|
||||
a = a + 4000
|
||||
end
|
||||
if b < 200 then
|
||||
b = b + 1000
|
||||
elseif b < 300 then
|
||||
b = b + 3000
|
||||
elseif b < 400 then
|
||||
b = b + 2000
|
||||
else
|
||||
b = b + 4000
|
||||
end
|
||||
return a < b
|
||||
end
|
||||
local jing = DataManager.CurrenRoom.jing
|
||||
if a == jing or b == jing then
|
||||
if a == b then
|
||||
return a < b
|
||||
end
|
||||
return a == jing
|
||||
else
|
||||
if a < 200 then
|
||||
a = a + 1000
|
||||
elseif a < 300 then
|
||||
a = a + 3000
|
||||
elseif a < 400 then
|
||||
a = a + 2000
|
||||
else
|
||||
a = a + 4000
|
||||
end
|
||||
if b < 200 then
|
||||
b = b + 1000
|
||||
elseif b < 300 then
|
||||
b = b + 3000
|
||||
elseif b < 400 then
|
||||
b = b + 2000
|
||||
else
|
||||
b = b + 4000
|
||||
end
|
||||
return a < b
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
local MJPlayBackView = require("main.majiang.MJPlayBackView")
|
||||
local EXRoomConfig = import(".EXRoomConfig")
|
||||
local EXClearingView = import(".EXClearingView")
|
||||
local HuCardImg = import(".HuCardImg")
|
||||
|
||||
local Record_Event = import(".RecordEvent")
|
||||
|
||||
|
|
@ -27,6 +28,12 @@ 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.HuCardImg = setmetatable(HuCardImg, { __index = self.HuCardImg })
|
||||
self.asset_group = "LiChuan_MJ"
|
||||
self.HuCardImg_path = "ui://Extend_MJ_LiChuan/"
|
||||
self.Sound_path = "extend/majiang/lichuan/sound/"
|
||||
|
||||
self._eventmap = {}
|
||||
|
||||
self._cmdmap = {}
|
||||
|
|
@ -100,7 +107,7 @@ function M:ShowStep(index)
|
|||
end
|
||||
if step.cmd == Record_Event.Evt_OutCard and i == step.last_out_seat then
|
||||
local card = p.outcard_list[#p.outcard_list]
|
||||
info:UpdateOutCardList(nil, nil, self._cursor)
|
||||
info:UpdateOutCardList(nil, card, self._cursor)
|
||||
self:PlayMJSound("chupai.mp3")
|
||||
self:PlaySound("LiChuan_MJ", p.self_user.sex, tostring(card))
|
||||
else
|
||||
|
|
@ -108,11 +115,62 @@ function M:ShowStep(index)
|
|||
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
|
||||
|
||||
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_Action then
|
||||
----多人胡的时候,同时显示胡
|
||||
if step.cmd == Record_Event.Evt_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_Win then
|
||||
|
|
@ -147,23 +205,125 @@ function M:ShowStep(index)
|
|||
end
|
||||
if step.cmd == Record_Event.Evt_Result then
|
||||
if not self.result then
|
||||
local result = step.result_data
|
||||
self.result = EXClearingView.new(self, { flag_back = true })
|
||||
self.result:InitData(0, self._room, step.result_data)
|
||||
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.result._view:GetChild("btn_confirm").visible = false
|
||||
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()
|
||||
coroutine.wait(0.3)
|
||||
|
||||
--逐个显示胡的特效
|
||||
for i = 1, #result.info_list do
|
||||
local hu_info = result.info_list[i]
|
||||
local player = self._room:GetPlayerBySeat(hu_info.seat)
|
||||
local info = self._player_card_info[self:GetPos(hu_info.seat)]
|
||||
|
||||
if hu_info.is_win then
|
||||
local win_list = hu_info.win_list
|
||||
|
||||
local list_HuCardEffect = info._viewList_HuEffect
|
||||
local Effects = {}
|
||||
--先循环一遍把杠上开花放在最前面
|
||||
for i = 1, #win_list do
|
||||
local HuMsg = win_list[i]
|
||||
if HuMsg.type > 2 and HuMsg.type < 60 then
|
||||
if self.HuCardImg[HuMsg.type][1] == "tile_cs_gangshanghua" then
|
||||
local imgPath = "ui://Main_Majiang/tile_cs_gangshanghua"
|
||||
local imgObj = list_HuCardEffect:AddItemFromPool()
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader.url = imgPath
|
||||
imgObj.visible = false
|
||||
Effects[#Effects + 1] = imgObj
|
||||
table.remove(win_list, i)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, #win_list do
|
||||
local HuMsg = win_list[i]
|
||||
|
||||
-- ↓↓↓先排列好特效图片
|
||||
if HuMsg.type > 2 and HuMsg.type < 60 then
|
||||
local sound_name = string.format(self.Sound_path .. "%s/%s.mp3",
|
||||
ViewUtil.Sex_Chat[player.self_user.sex],
|
||||
"he" .. HuMsg.type)
|
||||
ViewUtil.PlaySound(self.asset_group, sound_name)
|
||||
|
||||
local imgList = self.HuCardImg[HuMsg.type]
|
||||
for _, img in pairs(imgList) do
|
||||
local imgPath = "ui://Main_Majiang/" .. img
|
||||
local imgObj = list_HuCardEffect:AddItemFromPool()
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader.url = imgPath
|
||||
imgObj.visible = false
|
||||
Effects[#Effects + 1] = imgObj
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--小于四个字段时动态调整胡特效
|
||||
if info._viewText_cardInfo["huEffet_columnGap"] and #Effects < 4 then
|
||||
list_HuCardEffect.columnGap = tonumber(info._viewText_cardInfo["huEffet_columnGap"])
|
||||
else
|
||||
list_HuCardEffect.columnGap = 0
|
||||
end
|
||||
|
||||
-- ↓↓↓播放动画
|
||||
for _, imgObj in pairs(Effects) do
|
||||
imgObj.visible = true
|
||||
|
||||
local effect_xingxing = imgObj:GetChild("effect_xingxing")
|
||||
effect_xingxing:SetPlaySettings(0, -1, 1, -1);
|
||||
effect_xingxing.visible = true
|
||||
effect_xingxing.playing = true
|
||||
effect_xingxing.onPlayEnd:Set(function()
|
||||
effect_xingxing.visible = false
|
||||
end)
|
||||
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader:SetScale(2, 2)
|
||||
imgLoader:Center()
|
||||
imgLoader:TweenScale(Vector2(1, 1), 0.3)
|
||||
coroutine.wait(0.5)
|
||||
end
|
||||
|
||||
coroutine.wait(0.3)
|
||||
list_HuCardEffect:RemoveChildrenToPool()
|
||||
end
|
||||
end
|
||||
|
||||
--统一显示弹出分数
|
||||
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
|
||||
-- self.result._view:Center()
|
||||
-- else
|
||||
-- if self.result then
|
||||
-- self.result._view.visible = false
|
||||
-- end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -232,6 +392,7 @@ function M:CmdAction(cmd, index)
|
|||
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)
|
||||
|
|
|
|||
|
|
@ -51,6 +51,9 @@ function M:InitData(over, room, result, total_result, callback, isWitness, witne
|
|||
local mainCtr = self._view:GetController("main")
|
||||
local playerNum = self._view:GetController("playerNum")
|
||||
local showBtnTypeCtr = self._view:GetController("showType")
|
||||
local Text_BoJing = self._view:GetChild('Text_BoJing')
|
||||
|
||||
Text_BoJing.visible = false
|
||||
|
||||
--回放不需要显示还剩下多少牌
|
||||
if self.flag_back then
|
||||
|
|
@ -180,6 +183,8 @@ function M:fillResult0(room, peopleNum, result)
|
|||
infoList.hu_score = infoList.hu_score or 0
|
||||
infoList.round_score = infoList.round_score or 0
|
||||
|
||||
playerInfoComp:GetChild("Text_BoJing").visible = false
|
||||
|
||||
playerInfoComp:GetChild("text_name").text = playInfo.self_user.nick_name
|
||||
playerInfoComp:GetChild("Text_BoJing").text = infoList.jing_score >= 0 and
|
||||
string.format("+%d", infoList.jing_score) or infoList.jing_score
|
||||
|
|
|
|||
|
|
@ -535,6 +535,14 @@ function M:EventInit()
|
|||
self:PlayMJSound("end_music.mp3")
|
||||
end
|
||||
end
|
||||
|
||||
-- 扣分动画
|
||||
for _, pScore in pairs(result.info_list) do
|
||||
local infoView = self._player_info[self:GetPos(pScore.seat)]
|
||||
infoView:UpdateScore(pScore.total_score, true)
|
||||
end
|
||||
coroutine.wait(0.3)
|
||||
|
||||
coroutine.wait(0.5)
|
||||
self._clearingView:Show()
|
||||
self._popEvent = true
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
local MJPlayBackView = require("main.majiang.MJPlayBackView")
|
||||
local EXRoomConfig = import(".EXRoomConfig")
|
||||
local EXClearingView = import(".EXClearingView")
|
||||
local HuCardImg = import(".HuCardImg")
|
||||
|
||||
local Record_Event = import(".RecordEvent")
|
||||
|
||||
|
|
@ -9,323 +10,489 @@ local M = {}
|
|||
|
||||
--- Create a new
|
||||
function M.new()
|
||||
setmetatable(M, { __index = MJPlayBackView })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "PlayBackView"
|
||||
self:init()
|
||||
setmetatable(M, { __index = MJPlayBackView })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "PlayBackView"
|
||||
self:init()
|
||||
|
||||
return self
|
||||
return self
|
||||
end
|
||||
|
||||
function M:InitView(url)
|
||||
local room = self._room
|
||||
UIPackage.AddPackage("extend/majiang/nancheng/ui/Extend_MJ_NanCheng")
|
||||
MJPlayBackView.InitView(self, string.format("ui://Main_Majiang/Main_new_%d_jiangxi", room.room_config.people_num))
|
||||
local _cardbox = self._view:GetChild("cardbox")
|
||||
--self._view:GetChild("panel_record"):GetChild("btn_LastStep").enabled = false
|
||||
self._ctr_cardbox = _cardbox:GetController("c1")
|
||||
self._tex_round = self._view:GetChild("tex_round")
|
||||
self._tex_LeftCard = self._view:GetChild("remaining_card")
|
||||
self._anchor = self._view:GetChild("mask_tips")
|
||||
self._eventmap = {}
|
||||
local room = self._room
|
||||
UIPackage.AddPackage("extend/majiang/nancheng/ui/Extend_MJ_NanCheng")
|
||||
MJPlayBackView.InitView(self, string.format("ui://Main_Majiang/Main_new_%d_jiangxi", room.room_config.people_num))
|
||||
local _cardbox = self._view:GetChild("cardbox")
|
||||
--self._view:GetChild("panel_record"):GetChild("btn_LastStep").enabled = false
|
||||
self._ctr_cardbox = _cardbox:GetController("c1")
|
||||
self._tex_round = self._view:GetChild("tex_round")
|
||||
self._tex_LeftCard = self._view:GetChild("remaining_card")
|
||||
self._anchor = self._view:GetChild("mask_tips")
|
||||
|
||||
self._cmdmap = {}
|
||||
self._cmdmap[Record_Event.Evt_GetCard] = self.CmdGetCard
|
||||
self._cmdmap[Record_Event.Evt_OutCard] = self.CmdOutCard
|
||||
self._cmdmap[Record_Event.Evt_Action] = self.CmdAction
|
||||
self._cmdmap[Record_Event.Evt_Win] = self.CmdWin
|
||||
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.com_logocType.selectedIndex = 1
|
||||
self.HuCardImg = setmetatable(HuCardImg, { __index = self.HuCardImg })
|
||||
self.asset_group = "NanCheng_MJ"
|
||||
self.HuCardImg_path = "ui://Extend_MJ_NanCheng/"
|
||||
self.Sound_path = "extend/majiang/nancheng/sound/"
|
||||
|
||||
self._eventmap = {}
|
||||
|
||||
self._cmdmap = {}
|
||||
self._cmdmap[Record_Event.Evt_GetCard] = self.CmdGetCard
|
||||
self._cmdmap[Record_Event.Evt_OutCard] = self.CmdOutCard
|
||||
self._cmdmap[Record_Event.Evt_Action] = self.CmdAction
|
||||
self._cmdmap[Record_Event.Evt_Win] = self.CmdWin
|
||||
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.com_logocType.selectedIndex = 1
|
||||
end
|
||||
|
||||
function M:FillRoomData(data)
|
||||
MJPlayBackView.FillRoomData(self)
|
||||
if self._win_pic then self._win_pic:Dispose() end
|
||||
if self._niao then self._niao:Dispose() end
|
||||
self._currentStep = 0
|
||||
local room = DataManager.CurrenRoom
|
||||
local _player_card_info = self._player_card_info
|
||||
local left_count = data.info.left_card
|
||||
self:UpdateLeftCard(left_count)
|
||||
local round = data.info.round
|
||||
self:UpdateRound(round)
|
||||
MJPlayBackView.FillRoomData(self)
|
||||
if self._win_pic then self._win_pic:Dispose() end
|
||||
if self._niao then self._niao:Dispose() end
|
||||
self._currentStep = 0
|
||||
local room = DataManager.CurrenRoom
|
||||
local _player_card_info = self._player_card_info
|
||||
local left_count = data.info.left_card
|
||||
self:UpdateLeftCard(left_count)
|
||||
local round = data.info.round
|
||||
self:UpdateRound(round)
|
||||
|
||||
local roominfo_panel = self._view:GetChild("roominfo_panel1")
|
||||
roominfo_panel:GetChild("tex_roomid").text = room.room_id
|
||||
roominfo_panel:GetChild("tex_gametype").text = room.room_config:GetGameName()
|
||||
local roominfo_panel = self._view:GetChild("roominfo_panel1")
|
||||
roominfo_panel:GetChild("tex_roomid").text = room.room_id
|
||||
roominfo_panel:GetChild("tex_gametype").text = room.room_config:GetGameName()
|
||||
|
||||
for i = 1, #room.player_list do
|
||||
local p = room.player_list[i]
|
||||
local card_info = _player_card_info[self:GetPos(p.seat)]
|
||||
for i = 1, #room.player_list do
|
||||
local p = room.player_list[i]
|
||||
local card_info = _player_card_info[self:GetPos(p.seat)]
|
||||
card_info:Clear()
|
||||
table.sort(p.card_list, self.HandCardSortAndJing)
|
||||
card_info:UpdateHandCard(false, true)
|
||||
self._player_info[i]._view:GetController("piao_niao").selectedIndex = 0
|
||||
end
|
||||
table.sort(p.card_list, self.HandCardSortAndJing)
|
||||
card_info:UpdateHandCard(false, true)
|
||||
self._player_info[i]._view:GetController("piao_niao").selectedIndex = 0
|
||||
end
|
||||
|
||||
self:GenerateAllStepData(data)
|
||||
self:UpdateStep(1)
|
||||
self:GenerateAllStepData(data)
|
||||
self:UpdateStep(1)
|
||||
self:Play()
|
||||
-- self:ShowStep(0)
|
||||
-- self:ShowStep(0)
|
||||
end
|
||||
|
||||
function M:ShowStep(index)
|
||||
local step = self._step[index + 1]
|
||||
self:UpdateLeftCard(step.left_card)
|
||||
-- self._ctr_cardbox.selectedIndex = step.current_out_seat
|
||||
self:UpdateCardBox(self:GetPos(step.current_out_seat))
|
||||
self:UpdateStep(index + 1)
|
||||
if step.cmd ~= Record_Event.Evt_OutCard then
|
||||
self:RemoveCursor()
|
||||
end
|
||||
for i = 1, #step.player_card_data do
|
||||
local p = self._room:GetPlayerBySeat(i)
|
||||
local info = self._player_card_info[self:GetPos(i)]
|
||||
p.card_list = step.player_card_data[i].card_list
|
||||
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()
|
||||
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
|
||||
head_info._view:GetChild("mask_piao").title = "飘分 " .. p.piao_niao
|
||||
head_info._view:GetController("piao_niao").selectedIndex = 1
|
||||
else
|
||||
head_info._view:GetController("piao_niao").selectedIndex = 0
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_OutCard and i == step.last_out_seat then
|
||||
local card = p.outcard_list[#p.outcard_list]
|
||||
info:UpdateOutCardList(nil, nil, self._cursor)
|
||||
else
|
||||
info:UpdateOutCardList()
|
||||
end
|
||||
if (step.cmd == Record_Event.Evt_GetCard and p.seat == step.current_out_seat) or step.cmd == Record_Event.Evt_Action then
|
||||
info:UpdateHandCard(true, true)
|
||||
else
|
||||
info:UpdateHandCard(false, true)
|
||||
end
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_Win then
|
||||
self._win_pic = UIPackage.CreateObjectFromURL("ui://Main_Majiang/胡")
|
||||
local info = self._player_card_info[self:GetPos(step.win)]
|
||||
info._view:AddChild(self._win_pic)
|
||||
self._win_pic:Center()
|
||||
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
|
||||
self._niao = UIPackage.CreateObjectFromURL("ui://Extend_MJ_NanCheng/Panel_Birds")
|
||||
local list = self._niao:GetChild("Lst_birds")
|
||||
list:RemoveChildrenToPool()
|
||||
for i = 1, #niao_list do
|
||||
local item = list:AddItemFromPool()
|
||||
item.icon = UIPackage.GetItemURL("Main_Majiang", "b201_" .. niao_list[i].card)
|
||||
if niao_list[i].score > 0 then
|
||||
item:GetController("bg").selectedIndex = 2
|
||||
end
|
||||
end
|
||||
self._view:AddChild(self._niao)
|
||||
self._view:AddChild(self._view:GetChild("panel_record"))
|
||||
self._niao:Center()
|
||||
else
|
||||
if self._niao then
|
||||
self._niao:Dispose()
|
||||
end
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_Result then
|
||||
if not self.result then
|
||||
local step = self._step[index + 1]
|
||||
self:UpdateLeftCard(step.left_card)
|
||||
-- self._ctr_cardbox.selectedIndex = step.current_out_seat
|
||||
self:UpdateCardBox(self:GetPos(step.current_out_seat))
|
||||
self:UpdateStep(index + 1)
|
||||
if step.cmd ~= Record_Event.Evt_OutCard then
|
||||
self:RemoveCursor()
|
||||
end
|
||||
for i = 1, #step.player_card_data do
|
||||
local p = self._room:GetPlayerBySeat(i)
|
||||
local info = self._player_card_info[self:GetPos(i)]
|
||||
p.card_list = step.player_card_data[i].card_list
|
||||
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()
|
||||
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
|
||||
head_info._view:GetChild("mask_piao").title = "飘分 " .. p.piao_niao
|
||||
head_info._view:GetController("piao_niao").selectedIndex = 1
|
||||
else
|
||||
head_info._view:GetController("piao_niao").selectedIndex = 0
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_OutCard and i == step.last_out_seat then
|
||||
local card = p.outcard_list[#p.outcard_list]
|
||||
info:UpdateOutCardList(nil, card, self._cursor)
|
||||
self:PlayMJSound("chupai.mp3")
|
||||
self:PlaySound("NanCheng_MJ", p.self_user.sex, tostring(card))
|
||||
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
|
||||
|
||||
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 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_Win then
|
||||
self._win_pic = UIPackage.CreateObjectFromURL("ui://Main_Majiang/胡")
|
||||
local info = self._player_card_info[self:GetPos(step.win)]
|
||||
info._view:AddChild(self._win_pic)
|
||||
self._win_pic:Center()
|
||||
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
|
||||
self._niao = UIPackage.CreateObjectFromURL("ui://Extend_MJ_NanCheng/Panel_Birds")
|
||||
local list = self._niao:GetChild("Lst_birds")
|
||||
list:RemoveChildrenToPool()
|
||||
for i = 1, #niao_list do
|
||||
local item = list:AddItemFromPool()
|
||||
item.icon = UIPackage.GetItemURL("Main_Majiang", "b201_" .. niao_list[i].card)
|
||||
if niao_list[i].score > 0 then
|
||||
item:GetController("bg").selectedIndex = 2
|
||||
end
|
||||
end
|
||||
self._view:AddChild(self._niao)
|
||||
self._view:AddChild(self._view:GetChild("panel_record"))
|
||||
self._niao:Center()
|
||||
else
|
||||
if self._niao then
|
||||
self._niao:Dispose()
|
||||
end
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_Result then
|
||||
if not self.result then
|
||||
local result = step.result_data
|
||||
self.result = EXClearingView.new(self, { flag_back = true })
|
||||
self.result:InitData(0, self._room, step.result_data)
|
||||
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.result._view:GetChild("btn_confirm").visible = false
|
||||
self._anchor:AddChild(self.result._view)
|
||||
self.result._view.x = self._anchor.x * -1
|
||||
self.result._view.y = self._anchor.y * -1
|
||||
else
|
||||
self.result._view.visible = true
|
||||
end
|
||||
-- self.result._view:Center()
|
||||
-- else
|
||||
-- if self.result then
|
||||
-- self.result._view.visible = false
|
||||
-- end
|
||||
end
|
||||
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()
|
||||
coroutine.wait(0.3)
|
||||
|
||||
--逐个显示胡的特效
|
||||
for i = 1, #result.info_list do
|
||||
local hu_info = result.info_list[i]
|
||||
local player = self._room:GetPlayerBySeat(hu_info.seat)
|
||||
local info = self._player_card_info[self:GetPos(hu_info.seat)]
|
||||
|
||||
if hu_info.is_win then
|
||||
local win_list = hu_info.win_list
|
||||
|
||||
local list_HuCardEffect = info._viewList_HuEffect
|
||||
local Effects = {}
|
||||
--先循环一遍把杠上开花放在最前面
|
||||
for i = 1, #win_list do
|
||||
local HuMsg = win_list[i]
|
||||
if HuMsg.type > 2 and HuMsg.type < 60 then
|
||||
if self.HuCardImg[HuMsg.type][1] == "tile_cs_gangshanghua" then
|
||||
local imgPath = "ui://Main_Majiang/tile_cs_gangshanghua"
|
||||
local imgObj = list_HuCardEffect:AddItemFromPool()
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader.url = imgPath
|
||||
imgObj.visible = false
|
||||
Effects[#Effects + 1] = imgObj
|
||||
table.remove(win_list, i)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, #win_list do
|
||||
local HuMsg = win_list[i]
|
||||
|
||||
-- ↓↓↓先排列好特效图片
|
||||
if HuMsg.type > 2 and HuMsg.type < 60 then
|
||||
local sound_name = string.format(self.Sound_path .. "%s/%s.mp3",
|
||||
ViewUtil.Sex_Chat[player.self_user.sex],
|
||||
"he" .. HuMsg.type)
|
||||
ViewUtil.PlaySound(self.asset_group, sound_name)
|
||||
|
||||
local imgList = self.HuCardImg[HuMsg.type]
|
||||
for _, img in pairs(imgList) do
|
||||
local imgPath = "ui://Main_Majiang/" .. img
|
||||
local imgObj = list_HuCardEffect:AddItemFromPool()
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader.url = imgPath
|
||||
imgObj.visible = false
|
||||
Effects[#Effects + 1] = imgObj
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--小于四个字段时动态调整胡特效
|
||||
if info._viewText_cardInfo["huEffet_columnGap"] and #Effects < 4 then
|
||||
list_HuCardEffect.columnGap = tonumber(info._viewText_cardInfo["huEffet_columnGap"])
|
||||
else
|
||||
list_HuCardEffect.columnGap = 0
|
||||
end
|
||||
|
||||
-- ↓↓↓播放动画
|
||||
for _, imgObj in pairs(Effects) do
|
||||
imgObj.visible = true
|
||||
|
||||
local effect_xingxing = imgObj:GetChild("effect_xingxing")
|
||||
effect_xingxing:SetPlaySettings(0, -1, 1, -1);
|
||||
effect_xingxing.visible = true
|
||||
effect_xingxing.playing = true
|
||||
effect_xingxing.onPlayEnd:Set(function()
|
||||
effect_xingxing.visible = false
|
||||
end)
|
||||
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader:SetScale(2, 2)
|
||||
imgLoader:Center()
|
||||
imgLoader:TweenScale(Vector2(1, 1), 0.3)
|
||||
coroutine.wait(0.5)
|
||||
end
|
||||
|
||||
coroutine.wait(0.3)
|
||||
list_HuCardEffect:RemoveChildrenToPool()
|
||||
end
|
||||
end
|
||||
|
||||
--统一显示弹出分数
|
||||
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
|
||||
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_out_seat = 0
|
||||
step.current_out_seat = 1
|
||||
step.win = 0
|
||||
step.niao = 0
|
||||
|
||||
step.player_card_data = {}
|
||||
for i = 1, #self._room.player_list do
|
||||
local p = info.playerData[i]
|
||||
local u = {}
|
||||
u.seat = p.seat
|
||||
u.card_list = p.hand_card
|
||||
u.hand_left_count = #u.card_list
|
||||
u.fz_list = {}
|
||||
u.outcard_list = {}
|
||||
u.piao_niao = p.piao_niao
|
||||
step.player_card_data[u.seat] = u
|
||||
end
|
||||
self._step[#self._step + 1] = step
|
||||
step.player_card_data = {}
|
||||
for i = 1, #self._room.player_list do
|
||||
local p = info.playerData[i]
|
||||
local u = {}
|
||||
u.seat = p.seat
|
||||
u.card_list = p.hand_card
|
||||
u.hand_left_count = #u.card_list
|
||||
u.fz_list = {}
|
||||
u.outcard_list = {}
|
||||
u.piao_niao = p.piao_niao
|
||||
step.player_card_data[u.seat] = u
|
||||
end
|
||||
self._step[#self._step + 1] = step
|
||||
|
||||
for i = 1, #cmdList do
|
||||
local tem = cmdList[i]
|
||||
self._cmdmap[tem.cmd](self, tem, i)
|
||||
end
|
||||
for i = 1, #cmdList do
|
||||
local tem = cmdList[i]
|
||||
self._cmdmap[tem.cmd](self, tem, i)
|
||||
end
|
||||
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.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)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.last_out_seat = cmd.seat
|
||||
local u = data.player_card_data[cmd.seat]
|
||||
list_remove(u.card_list, cmd.data.card)
|
||||
table.sort(u.card_list, self.HandCardSortAndJing)
|
||||
u.outcard_list[#u.outcard_list + 1] = cmd.data.card
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.last_out_seat = cmd.seat
|
||||
local u = data.player_card_data[cmd.seat]
|
||||
list_remove(u.card_list, cmd.data.card)
|
||||
table.sort(u.card_list, self.HandCardSortAndJing)
|
||||
u.outcard_list[#u.outcard_list + 1] = cmd.data.card
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
end
|
||||
|
||||
function M:CmdWin(cmd, index)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.win = cmd.seat
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.win = cmd.seat
|
||||
end
|
||||
|
||||
function M:CmdNiao(cmd, index)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.niao = cmd.data.niao
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.niao = cmd.data.niao
|
||||
end
|
||||
|
||||
function M:CmdPiao(cmd, index)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.player_card_data[cmd.seat].piao_niao = cmd.data.num
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.player_card_data[cmd.seat].piao_niao = cmd.data.num
|
||||
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.result_data = cmd.data
|
||||
end
|
||||
|
||||
function M:CopyLastStep(index)
|
||||
local step = {}
|
||||
local last_step = self._step[index]
|
||||
step = membe_deep_clone(last_step)
|
||||
self._step[#self._step + 1] = step
|
||||
step.result_data = nil
|
||||
return step
|
||||
local step = {}
|
||||
local last_step = self._step[index]
|
||||
step = membe_deep_clone(last_step)
|
||||
self._step[#self._step + 1] = step
|
||||
step.result_data = nil
|
||||
return step
|
||||
end
|
||||
|
||||
function M:UpdateLeftCard(num)
|
||||
self._tex_LeftCard.text = "余" .. num .. "张"
|
||||
self._tex_LeftCard.text = "余" .. num .. "张"
|
||||
end
|
||||
|
||||
function M:UpdateCardBox(seat)
|
||||
local index = seat
|
||||
local people_num = self._room.room_config.people_num
|
||||
if people_num == 2 and seat == 2 then
|
||||
index = 3
|
||||
elseif people_num == 3 and seat == 3 then
|
||||
index = 4
|
||||
end
|
||||
self._ctr_cardbox.selectedIndex = index
|
||||
local index = seat
|
||||
local people_num = self._room.room_config.people_num
|
||||
if people_num == 2 and seat == 2 then
|
||||
index = 3
|
||||
elseif people_num == 3 and seat == 3 then
|
||||
index = 4
|
||||
end
|
||||
self._ctr_cardbox.selectedIndex = index
|
||||
end
|
||||
|
||||
function M:UpdateRound()
|
||||
self._view:GetChild("text_round").text = string.format("局数:%d/%d", self._room.curren_round,
|
||||
self._room.room_config.round)
|
||||
self._view:GetChild("text_round").text = string.format("局数:%d /%d", self._room.curren_round,
|
||||
self._room.room_config.round)
|
||||
end
|
||||
|
||||
function M:UpdateStep(step)
|
||||
self._record:GetChild("tex_step").text = "第 " .. step .. " / " .. #self._step .. "步"
|
||||
self._record:GetChild("tex_step").text = "第 " .. step .. " / " .. #self._step .. "步"
|
||||
end
|
||||
|
||||
function M.HandCardSortAndJing(a, b)
|
||||
local jing = DataManager.CurrenRoom.jing
|
||||
if a == jing or b == jing then
|
||||
if a == b then
|
||||
return a < b
|
||||
end
|
||||
return a == jing
|
||||
else
|
||||
if a < 200 then
|
||||
a = a + 1000
|
||||
elseif a < 300 then
|
||||
a = a + 3000
|
||||
elseif a < 400 then
|
||||
a = a + 2000
|
||||
else
|
||||
a = a + 4000
|
||||
end
|
||||
if b < 200 then
|
||||
b = b + 1000
|
||||
elseif b < 300 then
|
||||
b = b + 3000
|
||||
elseif b < 400 then
|
||||
b = b + 2000
|
||||
else
|
||||
b = b + 4000
|
||||
end
|
||||
return a < b
|
||||
end
|
||||
local jing = DataManager.CurrenRoom.jing
|
||||
if a == jing or b == jing then
|
||||
if a == b then
|
||||
return a < b
|
||||
end
|
||||
return a == jing
|
||||
else
|
||||
if a < 200 then
|
||||
a = a + 1000
|
||||
elseif a < 300 then
|
||||
a = a + 3000
|
||||
elseif a < 400 then
|
||||
a = a + 2000
|
||||
else
|
||||
a = a + 4000
|
||||
end
|
||||
if b < 200 then
|
||||
b = b + 1000
|
||||
elseif b < 300 then
|
||||
b = b + 3000
|
||||
elseif b < 400 then
|
||||
b = b + 2000
|
||||
else
|
||||
b = b + 4000
|
||||
end
|
||||
return a < b
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -405,7 +405,7 @@ function M:CheckOutCardGetTouchSet(cardSet, cardMap, cardType, longLength)
|
|||
if lastCard - card == -1 then
|
||||
tempLong = tempLong + 1
|
||||
else
|
||||
if tempLong >= longLength then
|
||||
if tempLong >= longLength and not self._flag_mustMax then
|
||||
for j = 1, tempLong do
|
||||
table.insert(self.touchCardSet, tempCardSet[j])
|
||||
self.touchCardMao[tempCardSet[j]] = 1
|
||||
|
|
@ -427,8 +427,10 @@ function M:CheckOutCardGetTouchSet(cardSet, cardMap, cardType, longLength)
|
|||
end
|
||||
if tempLong >= longLength then
|
||||
for j = 1, tempLong do
|
||||
table.insert(self.touchCardSet, tempCardSet[j])
|
||||
self.touchCardMao[tempCardSet[j]] = 1
|
||||
if j == tempLong or not self._flag_mustMax then
|
||||
table.insert(self.touchCardSet, tempCardSet[j])
|
||||
self.touchCardMao[tempCardSet[j]] = 1
|
||||
end
|
||||
end
|
||||
end
|
||||
table.insert(tipCardSet, tempCardSet)
|
||||
|
|
@ -448,26 +450,70 @@ function M:CheckOutCardSetTipList(tipCardSet, longLength, cardMap, cardType)
|
|||
local tipCardSetLen = #tipCardSet[i]
|
||||
if tipCardSetLen == longLength then
|
||||
local tempList = {}
|
||||
local tempSanDaiCard = {}
|
||||
for j = 1, tipCardSetLen do
|
||||
local card = tipCardSet[i][j]
|
||||
tempSanDaiCard[card] = true
|
||||
local minNum = Mathf.Min(cardMap[card].value, cardType)
|
||||
for k = 1, minNum do
|
||||
table.insert(tempList, cardMap[card].cardList[k])
|
||||
if not self._flag_mustMax or card == self.maxCard then
|
||||
table.insert(tempList, cardMap[card].cardList[k])
|
||||
end
|
||||
end
|
||||
end
|
||||
if #tempList > 0 then
|
||||
if cardType == 3 then
|
||||
local removeSanDaiList = {}
|
||||
for k, v in pairs(cardMap) do
|
||||
if not tempSanDaiCard[k] then
|
||||
for i, v1 in ipairs(v.cardList) do
|
||||
table.insert(removeSanDaiList, v1)
|
||||
end
|
||||
end
|
||||
end
|
||||
if #removeSanDaiList <= longLength * 2 then
|
||||
table.insert(self.tipCardList, tempList)
|
||||
else
|
||||
self:GetSanDaiTips(tempList, longLength * 2, removeSanDaiList)
|
||||
end
|
||||
else
|
||||
table.insert(self.tipCardList, tempList)
|
||||
end
|
||||
end
|
||||
table.insert(self.tipCardList, tempList)
|
||||
else
|
||||
for j = 1, tipCardSetLen do
|
||||
if j + longLength - 1 <= tipCardSetLen then
|
||||
local tempList = {}
|
||||
local tempSanDaiCard = {}
|
||||
for k = j, j + longLength - 1 do
|
||||
local card = tipCardSet[i][k]
|
||||
tempSanDaiCard[card] = true
|
||||
local minNum = Mathf.Min(cardMap[card].value, cardType)
|
||||
for l = 1, minNum do
|
||||
table.insert(tempList, cardMap[card].cardList[l])
|
||||
if not self._flag_mustMax or card == self.maxCard then
|
||||
table.insert(tempList, cardMap[card].cardList[l])
|
||||
end
|
||||
end
|
||||
end
|
||||
if #tempList > 0 then
|
||||
if cardType == 3 then
|
||||
local removeSanDaiList = {}
|
||||
for k, v in pairs(cardMap) do
|
||||
if not tempSanDaiCard[k] then
|
||||
for i, v1 in ipairs(v.cardList) do
|
||||
table.insert(removeSanDaiList, v1)
|
||||
end
|
||||
end
|
||||
end
|
||||
if #removeSanDaiList <= longLength * 2 then
|
||||
table.insert(self.tipCardList, tempList)
|
||||
else
|
||||
self:GetSanDaiTips(tempList, longLength * 2, removeSanDaiList)
|
||||
end
|
||||
else
|
||||
table.insert(self.tipCardList, tempList)
|
||||
end
|
||||
end
|
||||
table.insert(self.tipCardList, tempList)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -475,6 +521,36 @@ function M:CheckOutCardSetTipList(tipCardSet, longLength, cardMap, cardType)
|
|||
end
|
||||
end
|
||||
|
||||
function M:GetSanDaiTips(tempList, childNum, cardList)
|
||||
local childIndex = {}
|
||||
local cardLen = #cardList
|
||||
for i = 1, childNum do
|
||||
childIndex[i] = i
|
||||
end
|
||||
while childIndex[1] <= cardLen - childNum do
|
||||
if childIndex[childNum] == cardLen then
|
||||
for i = childNum - 1, 1, -1 do
|
||||
if childIndex[i] ~= cardLen + i - childNum then
|
||||
childIndex[i] = childIndex[i] + 1
|
||||
for j = i + 1, childNum do
|
||||
childIndex[j] = childIndex[j - 1] + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
childIndex[childNum] = childIndex[childNum] + 1
|
||||
end
|
||||
local tempList_copy = {}
|
||||
for i, v in ipairs(tempList) do
|
||||
tempList_copy[i] = v
|
||||
end
|
||||
for i = 1, childNum do
|
||||
table.insert(tempList_copy, cardList[childIndex[i]])
|
||||
end
|
||||
table.insert(self.tipCardList, tempList_copy)
|
||||
end
|
||||
end
|
||||
|
||||
function M:CheckAloneOrLong()
|
||||
if self.cardNum == 1 and M:CheckType(CardType.one) then
|
||||
return CardType.one
|
||||
|
|
|
|||
|
|
@ -382,7 +382,7 @@ function M:OnResult(evt_data)
|
|||
info[i]["self_user"] = p.self_user
|
||||
end
|
||||
-- ControllerManager.ChangeController(LoddyController)
|
||||
DispatchEvent(self._dispatcher, RunFast_GameEvent.OnResultByDissolve, over, info, winseat, dissolve)
|
||||
DispatchEvent(self._dispatcher, RunFast_GameEvent.OnResultByDissolve, result_type, info, winseat, dissolve)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -233,6 +233,7 @@ function M:InitView(url)
|
|||
self.result_view = nil
|
||||
local _gamectr = ControllerManager.GetController(GameController)
|
||||
_gamectr:ConformToNextGame()
|
||||
self:ClearOk()
|
||||
end
|
||||
end)
|
||||
----------------------------------------------------
|
||||
|
|
@ -557,7 +558,6 @@ function M:EventInit()
|
|||
|
||||
-- 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()
|
||||
|
|
@ -566,7 +566,7 @@ function M:EventInit()
|
|||
-- end
|
||||
-- end
|
||||
self._leftClock_continue = coroutine.start(function()
|
||||
coroutine.wait(1)
|
||||
coroutine.wait(0.2)
|
||||
for i = 1, #self._player_card_info do
|
||||
local card_info = self._player_card_info[i]
|
||||
if i == index then
|
||||
|
|
@ -636,6 +636,7 @@ function M:EventInit()
|
|||
head_info:SetBaoDan(card_number == 1)
|
||||
local card_info = self._player_card_info[index]
|
||||
card_info:SetOutCardInfo(p.out_card_list, false, true)
|
||||
card_info._ctr_time_clock.selectedIndex = 0
|
||||
|
||||
for i = 1, #otherList do
|
||||
local other_seat = otherList[i]
|
||||
|
|
@ -708,6 +709,7 @@ function M:EventInit()
|
|||
end)
|
||||
|
||||
_gamectr:AddEventListener(RunFast_GameEvent.OnPassSucc, function(...)
|
||||
self._popEvent = false
|
||||
local arg = { ... }
|
||||
local p = arg[1]
|
||||
|
||||
|
|
@ -725,6 +727,10 @@ function M:EventInit()
|
|||
card_info._ctr_time_clock.selectedIndex = 0
|
||||
card_info:SetOutCardInfo(nil, true)
|
||||
self:PlaySound(p.self_user.sex, "pass_" .. math.random(1, 4))
|
||||
coroutine.start(function()
|
||||
coroutine.wait(1)
|
||||
self._popEvent = true
|
||||
end)
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(RunFast_GameEvent.OnErrorTip, function(...)
|
||||
|
|
@ -812,6 +818,7 @@ function M:EventInit()
|
|||
end
|
||||
local zdts = self._view:GetController("zidongtishi").selectedIndex
|
||||
-- self._player_card_info[1]._cardCheck:InitLastCard(lastCardList)
|
||||
card_info:SetOutCardInfo(nil, false)
|
||||
-- self._player_card_info[1]:ShowOutCardOption(ctr_number, card_type, card_number, card_length, m, play, zdts)
|
||||
card_info:ShowOutCardOption2(lastCardList, ctr_number, m)
|
||||
end)
|
||||
|
|
@ -929,12 +936,26 @@ function M:EventInit()
|
|||
-- -- 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:SetBaoDan(false)
|
||||
|
||||
head_info._view:GetChild('text_jifen').text = player.score
|
||||
-- head_info:PlayScore(player.winscore, win_seat == player.seat)
|
||||
head_info:PlayScore(player.card_score, win_seat == player.seat)
|
||||
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)]
|
||||
local card_info = self._player_card_info[self:GetPos(player.seat)]
|
||||
|
||||
if player.seat ~= win_seat then
|
||||
card_info.ctr_outpoker.selectedIndex = 0
|
||||
end
|
||||
if player.seat ~= self._room.self_player.seat then
|
||||
local oneTime = 7 / 60
|
||||
|
||||
|
|
@ -942,7 +963,6 @@ function M:EventInit()
|
|||
|
||||
card_info._view_resultOut:RemoveChildrenToPool()
|
||||
card_info._ctr_resultOut.selectedIndex = 1
|
||||
card_info.ctr_outpoker.selectedIndex = 0
|
||||
for i = 1, #player.handCards do
|
||||
local child_card = card_info._view_resultOut:AddItemFromPool()
|
||||
card_info:FillPoker(child_card, "", nil, player.handCards[i])
|
||||
|
|
@ -952,16 +972,6 @@ function M:EventInit()
|
|||
end
|
||||
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:SetBaoDan(false)
|
||||
|
||||
head_info._view:GetChild('text_jifen').text = player.score
|
||||
-- head_info:PlayScore(player.winscore, win_seat == player.seat)
|
||||
head_info:PlayScore(player.card_score, win_seat == player.seat)
|
||||
end
|
||||
self:ChangeBgmMusic(1)
|
||||
-- if over == 0 then
|
||||
-- if #self:GetSpringSeats(info) > 0 then
|
||||
|
|
@ -1027,7 +1037,9 @@ function M:EventInit()
|
|||
local info = arg[2]
|
||||
local winseat = arg[3]
|
||||
local dissolve = arg[4]
|
||||
ViewUtil.PlaySound("RunFastNew_PK", "extend/poker/runfast/sound/end_music.mp3")
|
||||
if _room.curren_round > 0 then
|
||||
ViewUtil.PlaySound("RunFastNew_PK", "extend/poker/runfast/sound/end_music.mp3")
|
||||
end
|
||||
for i = 1, #self._player_card_info do
|
||||
local card_info = self._player_card_info[i]
|
||||
card_info._ctr_time_clock.selectedIndex = 0
|
||||
|
|
@ -1143,7 +1155,7 @@ function M:ReConnectForStart()
|
|||
else
|
||||
-- player_card_info:SetRemainCardNumber(player.hand_count == 1)
|
||||
if player.hand_count == 1 then
|
||||
self.bgm_index = 2
|
||||
-- self.bgm_index = 2
|
||||
end
|
||||
end
|
||||
if self._room.curren_turn_seat ~= player.seat then
|
||||
|
|
@ -1524,6 +1536,13 @@ function M:ResetPoker()
|
|||
self._player_card_info[1]:ResetPoker()
|
||||
end
|
||||
|
||||
----结算准备时清理桌面
|
||||
function M:ClearOk()
|
||||
for i = 1, #self._player_card_info do
|
||||
self._player_card_info[i]:Clear()
|
||||
end
|
||||
end
|
||||
|
||||
function M:PlaySound(sex, path)
|
||||
local sex_path = ViewUtil.Sex_Chat[sex] -- 1 男 2 女
|
||||
local sound_path = string.format("extend/poker/runfast/sound/%s/%s.mp3", sex_path, path)
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ local RunFast_PlayerSelfCardInfoView = import('.RunFast_PlayerSelfPokerInfoView'
|
|||
local PlayerInfoView = import('.EXPlayerInfoView')
|
||||
local RunFast_RightPanelView = import(".RunFast_RightPanelView")
|
||||
local RunFast_ResultView = import(".RunFast_ResultView")
|
||||
local RunFast_CardCheck = import(".CardCheck")
|
||||
|
||||
local M = {}
|
||||
|
||||
local RunFast_Record_Event = {
|
||||
|
|
@ -79,6 +81,10 @@ function M:InitView(url)
|
|||
else
|
||||
self._view:GetChild('roominfo_panel1'):GetChild('tex_beishu').text = ''
|
||||
end
|
||||
|
||||
self._cardCheck = RunFast_CardCheck:InitFlag()
|
||||
self._gamectr._cardCheck = self._cardCheck
|
||||
|
||||
self._eventmap = {}
|
||||
self._cmdmap = {}
|
||||
self._cmdmap[RunFast_Record_Event.Evt_OutCard] = self.CmdOutCard
|
||||
|
|
@ -158,7 +164,6 @@ function M:ShowStep(index)
|
|||
end
|
||||
info:SetOutCardInfo(nil, false)
|
||||
end
|
||||
|
||||
if step.cmd == RunFast_Record_Event.Evt_OutCard then
|
||||
local seat = step.current_out_seat
|
||||
local p = self._room:GetPlayerBySeat(seat)
|
||||
|
|
@ -167,6 +172,13 @@ function M:ShowStep(index)
|
|||
local card_list = self._gamectr:ChangeCodeByFrom(card, true)
|
||||
info:SetOutCardInfo(card_list, false)
|
||||
self:ClearNextSeatOutCard(seat)
|
||||
|
||||
self._cardCheck:InitLastCard(card_list)
|
||||
self:_Effect(self._cardCheck.type, p)
|
||||
|
||||
self:PlaySound(p.self_user.sex,
|
||||
self:GetSoundFileName(self._cardCheck.type, num, self:GetIsNewBout(seat)
|
||||
))
|
||||
end
|
||||
|
||||
if step.cmd == RunFast_Record_Event.Evt_Pass then
|
||||
|
|
@ -351,6 +363,78 @@ function M:LastRecordPlay()
|
|||
end
|
||||
end
|
||||
|
||||
function M:_Effect(type1, player)
|
||||
if type1 == 1 or type1 == 3 or type1 == 7 then
|
||||
self._popEvent = true
|
||||
return
|
||||
end
|
||||
local info = self._player_card_info[self:GetPos(player.seat)]
|
||||
info:PlayEffect(type1, function()
|
||||
self._popEvent = true
|
||||
end)
|
||||
end
|
||||
|
||||
function M:GetSoundFileName(type, num, isNewBout)
|
||||
local fileName
|
||||
if type == 1 or type == 3 or type == 7 then
|
||||
local num = self._cardCheck.lastMinCard
|
||||
if type == 1 then
|
||||
fileName = string.format("1_%d", num)
|
||||
elseif type == 3 then
|
||||
fileName = string.format("2_%d", num)
|
||||
elseif type == 7 then
|
||||
fileName = string.format("3_%d", num)
|
||||
end
|
||||
else
|
||||
if not isNewBout and type ~= 6 then
|
||||
local r = math.random(1, 3)
|
||||
fileName = "dani_" .. r
|
||||
else
|
||||
if type == 8 or type == 12 then
|
||||
fileName = 5
|
||||
else
|
||||
fileName = type
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return fileName
|
||||
end
|
||||
|
||||
function M:PlaySound(sex, path)
|
||||
local sex_path = ViewUtil.Sex_Chat[sex] -- 1 男 2 女
|
||||
local sound_path = string.format("extend/poker/runfast/sound/%s/%s.mp3", sex_path, path)
|
||||
ViewUtil.PlaySound("RunFastNew_PK", sound_path)
|
||||
end
|
||||
|
||||
function M:GetIsNewBout(seat)
|
||||
local passCount = 0
|
||||
for i = 1, #self._room.player_list do
|
||||
local player = self._room.player_list[i]
|
||||
if seat ~= player.seat then
|
||||
local isPass = self:GetIsPass(player.out_card_list)
|
||||
if isPass then
|
||||
passCount = passCount + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
if passCount == self._room.room_config.people_num - 1 then
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
function M:GetIsPass(cardlist)
|
||||
if #cardlist == 0 then
|
||||
return true
|
||||
end
|
||||
if cardlist[1] ~= nil and cardlist[1] == 0 then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function M:OnUpdate()
|
||||
if self._play then
|
||||
if (self._currentStep == #self.cmdList + 1 and self._playFoward) then
|
||||
|
|
|
|||
|
|
@ -420,6 +420,11 @@ function M:PlayEffect(type, callback)
|
|||
obj:GetChild('n14'):TweenFade(0, 0.4)
|
||||
end)
|
||||
end)
|
||||
elseif type == 6 then
|
||||
obj:GetTransition('t0'):Play(1, 0, function()
|
||||
obj:Dispose()
|
||||
end)
|
||||
callback()
|
||||
else
|
||||
obj:GetTransition('t0'):Play(1, 0, function()
|
||||
obj:Dispose()
|
||||
|
|
|
|||
|
|
@ -28,6 +28,10 @@ function M:init(url, data, roomid, over, win_seat, dissolve, remaincards)
|
|||
local room = DataManager.CurrenRoom
|
||||
self._view:GetController('over').selectedIndex = 0
|
||||
|
||||
if over == 2 and room.curren_round <= 0 then
|
||||
ViewManager.ChangeView(ViewManager.View_Family)
|
||||
end
|
||||
|
||||
--按钮功能全部未开放
|
||||
self._view:GetChild('btn_shareRecord').onClick:Set(function()
|
||||
ViewUtil.ErrorMsg(self._view, "", "该功能还未开放")
|
||||
|
|
@ -55,6 +59,8 @@ function M:init(url, data, roomid, over, win_seat, dissolve, remaincards)
|
|||
self:Destroy()
|
||||
local _gamectr = ControllerManager.GetController(GameController)
|
||||
_gamectr:ConformToNextGame()
|
||||
self._root_runFast:ClearOk()
|
||||
self._root_runFast._ctr_inClear.selectedIndex = 0
|
||||
else
|
||||
self._view:GetController('over').selectedIndex = 1
|
||||
end
|
||||
|
|
@ -65,6 +71,7 @@ function M:init(url, data, roomid, over, win_seat, dissolve, remaincards)
|
|||
self:Destroy()
|
||||
local _gamectr = ControllerManager.GetController(GameController)
|
||||
_gamectr:ConformToNextGame()
|
||||
self._root_runFast:ClearOk()
|
||||
else
|
||||
self._view:GetController('over').selectedIndex = 1
|
||||
end
|
||||
|
|
@ -90,7 +97,7 @@ function M:init(url, data, roomid, over, win_seat, dissolve, remaincards)
|
|||
over0List.numItems = #data
|
||||
self._root_runFast._ctr_inClear.selectedIndex = 1
|
||||
|
||||
if over == 1 or (not over and #data == 2) then
|
||||
if over == 1 or (over == 2 and room.curren_round > 0) then
|
||||
local bigSeat = 0
|
||||
local bigScore = 0
|
||||
for i = 1, #data do
|
||||
|
|
|
|||
|
|
@ -623,31 +623,31 @@ function M:PlayerChangeLineState()
|
|||
self._player_card_info[1]._area_handcard_list.touchable = isOutCard
|
||||
end
|
||||
|
||||
function M:NewMJPlayerCardInfoView(view, index)
|
||||
function M:NewMJPlayerCardInfoView(view, index, record)
|
||||
local infoView = {}
|
||||
if self._room.room_config.people_num == 2 then
|
||||
if index == 1 then
|
||||
infoView = MJPlayerSelfCardInfoView.new(view, self, nil, "S")
|
||||
infoView = MJPlayerSelfCardInfoView.new(view, self, record, "S")
|
||||
elseif index == 2 then
|
||||
infoView = MJPlayerCardInfoView.new(view, self, nil, "N")
|
||||
infoView = MJPlayerCardInfoView.new(view, self, record, "N")
|
||||
end
|
||||
elseif self._room.room_config.people_num == 3 then
|
||||
if index == 1 then
|
||||
infoView = MJPlayerSelfCardInfoView.new(view, self, nil, "S")
|
||||
infoView = MJPlayerSelfCardInfoView.new(view, self, record, "S")
|
||||
elseif index == 2 then
|
||||
infoView = MJPlayerCardInfoView.new(view, self, nil, "E")
|
||||
infoView = MJPlayerCardInfoView.new(view, self, record, "E")
|
||||
elseif index == 3 then
|
||||
infoView = MJPlayerCardInfoView.new(view, self, nil, "N")
|
||||
infoView = MJPlayerCardInfoView.new(view, self, record, "N")
|
||||
end
|
||||
elseif self._room.room_config.people_num == 4 then
|
||||
if index == 1 then
|
||||
infoView = MJPlayerSelfCardInfoView.new(view, self, nil, "S")
|
||||
infoView = MJPlayerSelfCardInfoView.new(view, self, record, "S")
|
||||
elseif index == 2 then
|
||||
infoView = MJPlayerCardInfoView.new(view, self, nil, "E")
|
||||
infoView = MJPlayerCardInfoView.new(view, self, record, "E")
|
||||
elseif index == 3 then
|
||||
infoView = MJPlayerCardInfoView.new(view, self, nil, "N")
|
||||
infoView = MJPlayerCardInfoView.new(view, self, record, "N")
|
||||
elseif index == 4 then
|
||||
infoView = MJPlayerCardInfoView.new(view, self, nil, "W")
|
||||
infoView = MJPlayerCardInfoView.new(view, self, record, "W")
|
||||
end
|
||||
end
|
||||
return infoView
|
||||
|
|
@ -730,6 +730,11 @@ function M:OnResult1(...)
|
|||
else
|
||||
self:PlayMJSound("end_music.mp3")
|
||||
end
|
||||
|
||||
for _, pScore in pairs(result.info_list) do
|
||||
local infoView = self._player_info[self:GetPos(pScore.seat)]
|
||||
infoView:UpdateScore(pScore.total_score, true)
|
||||
end
|
||||
coroutine.wait(0.5)
|
||||
self._clearingView:Show()
|
||||
self._popEvent = true
|
||||
|
|
@ -897,12 +902,6 @@ function M:OnHuCard(...)
|
|||
|
||||
--根据字段动态调整间距
|
||||
|
||||
-- 扣分动画
|
||||
for _, pScore in pairs(scoreData) do
|
||||
local infoView = self._player_info[self:GetPos(pScore.seat)]
|
||||
infoView:UpdateScore(pScore.total_score, true)
|
||||
end
|
||||
|
||||
coroutine.wait(0.3)
|
||||
self._popEvent = true
|
||||
list_HuCardEffect:RemoveChildrenToPool()
|
||||
|
|
|
|||
|
|
@ -2,12 +2,17 @@ local MJPlayerCardInfoView = import(".MJPlayerCardInfoView")
|
|||
local MJPlayerSelfCardInfoView = import(".MJPlayerSelfCardInfoView")
|
||||
local TableBG = import('Game.Data.TableBG')
|
||||
local MJMainView = import(".MJMainView")
|
||||
local HuCardImg = import(".HuCardImg")
|
||||
|
||||
|
||||
---
|
||||
local M = {}
|
||||
|
||||
setmetatable(M, { __index = PlayBackView })
|
||||
|
||||
M.HuCardImg = HuCardImg
|
||||
|
||||
|
||||
local bg_config = {
|
||||
{ id = 1, url = "base/main_majiang/bg/bg1", thumb = "ui://Main_Majiang/b01" }
|
||||
}
|
||||
|
|
@ -68,7 +73,7 @@ function M:SetCardBoxPosition()
|
|||
end
|
||||
|
||||
function M:NewMJPlayerCardInfoView(view, index)
|
||||
return MJMainView.NewMJPlayerCardInfoView(self, view, index)
|
||||
return MJMainView.NewMJPlayerCardInfoView(self, view, index, 1)
|
||||
--[[
|
||||
if index == 1 then
|
||||
return MJPlayerSelfCardInfoView.new(view, self)
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ function M:init()
|
|||
|
||||
self._ctr_record = self._view:GetController('record')
|
||||
if self._flag_record and self._flag_record == 1 and self._ctr_record then
|
||||
self._ctr_record.selectedIndex = self._flag_record or 0
|
||||
-- self._ctr_record.selectedIndex = self._flag_record or 0
|
||||
self._view_handCardList = self._view:GetChild('List_HandCard2')
|
||||
self._view_getCard = self._view:GetChild('Btn_HandCard2')
|
||||
end
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ end
|
|||
|
||||
function M:Show()
|
||||
getmetatable(M).__index.Show(self)
|
||||
ViewUtil.PlaySound("RunFastNew_PK", "base/main_majiang/sound/game_backmusic.mp3")
|
||||
-- ViewUtil.PlaySound("RunFastNew_PK", "base/main_majiang/sound/game_backmusic.mp3")
|
||||
self:DoNoticeAnimation()
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="2532,1170" designImageAlpha="100" designImageLayer="1">
|
||||
<controller name="state" pages="0,准备状态,1,游戏状态,2,,3,回放,4,观战" selected="4"/>
|
||||
<controller name="state" pages="0,准备状态,1,游戏状态,2,,3,回放,4,观战" selected="0"/>
|
||||
<controller name="sdk" pages="0,,1," selected="0"/>
|
||||
<controller name="action" pages="2,空,0,准备,1,开始" selected="0"/>
|
||||
<controller name="time" pages="0,,1,,2,,3," selected="0"/>
|
||||
|
|
@ -215,7 +215,7 @@
|
|||
<relation target="n134_ckvb" sidePair="center-center,middle-middle"/>
|
||||
</group>
|
||||
<group id="n131_ckvb" name="top" xy="597,15" size="1325,99" advanced="true">
|
||||
<relation target="" sidePair="center-center,top-top"/>
|
||||
<relation target="" sidePair="top-top"/>
|
||||
</group>
|
||||
<graph id="n143_cksh" name="n143" xy="0,0" size="2532,1170" group="n144_cksh" type="rect" lineSize="0" fillColor="#73000000"/>
|
||||
<image id="n146_cksh" name="n146" src="ckvbcj2" fileName="Main_New/Image/Group 205.png" xy="1203,522" group="n144_cksh"/>
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@
|
|||
<relation target="n134_ckvb" sidePair="center-center,middle-middle"/>
|
||||
</group>
|
||||
<group id="n131_ckvb" name="top" xy="597,15" size="1325,99" advanced="true">
|
||||
<relation target="" sidePair="center-center,top-top"/>
|
||||
<relation target="" sidePair="top-top"/>
|
||||
</group>
|
||||
<graph id="n143_cksh" name="n143" xy="0,0" size="2532,1170" group="n144_cksh" type="rect" lineSize="0" fillColor="#73000000"/>
|
||||
<image id="n146_cksh" name="n146" src="ckvbcj2" fileName="Main_New/Image/Group 205.png" xy="1203,522" group="n144_cksh"/>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
<image id="n2_ieus" name="n2" src="ieus7d1f" fileName="Main/Image/Rectangle 123.png" xy="467,155" size="2042,982">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</image>
|
||||
<list id="n3_ieus" name="list_chat" xy="475,157" size="1901,973" overflow="scroll" margin="10,0,0,0" lineGap="44" defaultItem="ui://htcn7v3rieus7d1g" autoClearItems="true">
|
||||
<list id="n3_ieus" name="list_chat" xy="475,157" size="1901,973" overflow="scroll" margin="10,0,0,0" lineGap="44" defaultItem="ui://htcn7v3rieus7d1g" renderOrder="descent" autoClearItems="true">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
<item/>
|
||||
<item/>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="1125,126">
|
||||
<controller name="scoreColor" pages="0,,1,,2," selected="0"/>
|
||||
<controller name="scoreColor" pages="0,,1,,2," selected="2"/>
|
||||
<displayList>
|
||||
<image id="n13_mc62" name="n13" src="slrk7d34" fileName="Record/Image/Rectangle 182.png" xy="-9,1" size="1143,126">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
|
|
@ -11,11 +11,11 @@
|
|||
<text id="n4_qz7i" name="text_round" xy="292,25" size="206,79" font="Alimama FangYuanTi VF" fontSize="60" color="#444444" align="center" vAlign="middle" autoSize="none" text="0">
|
||||
<relation target="" sidePair="center-center,middle-middle"/>
|
||||
</text>
|
||||
<text id="n8_qz7i" name="text_score" xy="503,25" size="208,79" font="Alimama FangYuanTi VF" fontSize="60" color="#e3453e" align="center" vAlign="middle" autoSize="none" text="0">
|
||||
<text id="n8_qz7i" name="text_score" xy="503,25" size="208,79" font="Alimama FangYuanTi VF" fontSize="60" color="#1413fa" align="center" vAlign="middle" autoSize="none" text="0">
|
||||
<gearColor controller="scoreColor" pages="0,2" values="#333333,#000000|#1413fa,#000000" default="#e3453e,#000000"/>
|
||||
<relation target="" sidePair="center-center,middle-middle"/>
|
||||
</text>
|
||||
<text id="n10_qz7i" name="text_winNum" xy="716,25" size="209,79" font="Alimama FangYuanTi VF" fontSize="60" color="#444444" align="center" vAlign="middle" autoSize="none" text="0">
|
||||
<gearColor controller="scoreColor" pages="0,1,2" values="#444444,#000000|#ff0000,#000000|#66ff00,#000000"/>
|
||||
<relation target="" sidePair="center-center,middle-middle"/>
|
||||
</text>
|
||||
<component id="n12_qz7i" name="btn_lookRecord" src="qz7i7cx1" fileName="NumberRecord/Component/btn_lookRecord.xml" xy="973,38"/>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<component size="435,72" extention="Button">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<displayList>
|
||||
<text id="n2_jydr" name="title" xy="0,0" size="435,72" font="ui://27vd145bh35o7im8" fontSize="54" color="#ffffff" align="center" vAlign="middle" autoSize="none" singleLine="true" text="2025-07-07">
|
||||
<text id="n2_jydr" name="title" xy="0,0" pivot="0.5,0.5" size="435,72" scale="1.2,1" font="Arial" fontSize="54" color="#ffffff" align="center" vAlign="middle" autoSize="none" singleLine="true" text="2025-07-07">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</text>
|
||||
</displayList>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="2340,186">
|
||||
<controller name="IsMe" alias="是否是我" pages="0,不是,1,是" selected="0"/>
|
||||
<controller name="isZiMo" alias="是否自摸" pages="0,不是,1,是" selected="1"/>
|
||||
<controller name="isZiMo" alias="是否自摸" pages="0,不是,1,是" selected="0"/>
|
||||
<controller name="isPao" alias="是否点炮" pages="0,不是,1,是" selected="1"/>
|
||||
<controller name="zhuang" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
|
|
@ -43,11 +43,13 @@
|
|||
<item/>
|
||||
<item/>
|
||||
</list>
|
||||
<image id="n9_yry6" name="Img_FangPao" src="yry6zl" fileName="Main_new/Clearing/Image/item_fangpao 1.png" xy="1651,0">
|
||||
<image id="n9_yry6" name="Img_FangPao" src="yry6zl" fileName="Main_new/Clearing/Image/item_fangpao 1.png" xy="1611,0">
|
||||
<gearDisplay controller="isPao" pages="1"/>
|
||||
<relation target="n8_yry6" sidePair="left-right"/>
|
||||
</image>
|
||||
<image id="n10_yry6" name="Ima_ZiMo" src="yry6zm" fileName="Main_new/Clearing/Image/xzmj_result_29 1.png" xy="1658,0">
|
||||
<image id="n10_yry6" name="Ima_ZiMo" src="yry6zm" fileName="Main_new/Clearing/Image/xzmj_result_29 1.png" xy="1611,0">
|
||||
<gearDisplay controller="isZiMo" pages="1"/>
|
||||
<relation target="n8_yry6" sidePair="left-right"/>
|
||||
</image>
|
||||
<text id="n11_yry6" name="Text_BoJing" xy="1855,57" size="67,72" font="ui://27vd145bg2mo7ij0" fontSize="54" color="#fbbb46" align="center" vAlign="middle" leading="0" text="+9">
|
||||
<relation target="" sidePair="center-center,top-top"/>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
<controller name="ting" pages="0,,1," selected="0"/>
|
||||
<controller name="site" pages="0,2-1,1,2-2" selected="0"/>
|
||||
<controller name="getCard" pages="0,,1," selected="0"/>
|
||||
<controller name="record" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<list id="n57_j6yy" name="Btn_HandCard2" xy="2172,118" size="99,79" touchable="false" selectionMode="none" defaultItem="ui://v0j9abjylj2n19b" autoItemSize="false" autoClearItems="true" scrollItemToViewOnClick="false">
|
||||
<relation target="" sidePair="width-width%,height-height%,right-right"/>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
<controller name="ting" pages="0,,1," selected="0"/>
|
||||
<controller name="site" pages="0,2-1,1,2-2" selected="0"/>
|
||||
<controller name="getCard" pages="0,,1," selected="0"/>
|
||||
<controller name="record" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<list id="n52_j6yy" name="List_HandCard" xy="278,192" pivot="1,1" size="63,675" touchable="false" selectionMode="none" lineGap="-69" defaultItem="ui://v0j9abjygi9910w" align="center" vAlign="bottom" autoClearItems="true">
|
||||
<item/>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="2532,1170" pivot="0.5,0.5" designImage="ui://v0j9abjyj6yy1fr" designImageAlpha="35">
|
||||
<controller name="state" pages="0,准备状态,1,游戏状态,2,回合间状态,3,回放状态,4,观战状态" selected="3"/>
|
||||
<controller name="state" pages="0,准备状态,1,游戏状态,2,回合间状态,3,回放状态,4,观战状态" selected="0"/>
|
||||
<controller name="sdk" pages="0,,1," selected="0"/>
|
||||
<controller name="action" pages="2,空,0,准备,1,开始" selected="0"/>
|
||||
<controller name="3d" pages="0,,1," selected="0"/>
|
||||
|
|
@ -49,14 +49,14 @@
|
|||
<gearXY controller="action" pages="2,0,1" values="8808,794|-16242,794|5853,170"/>
|
||||
<Button icon="ui://v0j9abjygq7m48"/>
|
||||
</component>
|
||||
<component id="n35_k3io" name="btn_start" src="gq7m8y" fileName="Main_style_2/Btn_Yellow.xml" xy="-2731,480" group="n36_k3io" visible="false">
|
||||
<component id="n35_k3io" name="btn_start" src="gq7m8y" fileName="Main_style_2/Btn_Yellow.xml" xy="-2729,480" group="n36_k3io" visible="false">
|
||||
<Button icon="ui://v0j9abjygq7m49"/>
|
||||
</component>
|
||||
<component id="n104_mncc" name="btn_xipai--" src="gq7m8y" fileName="Main_style_2/Btn_Yellow.xml" xy="-2321,487" group="n36_k3io" scale="0.9,1">
|
||||
<component id="n104_mncc" name="btn_xipai--" src="gq7m8y" fileName="Main_style_2/Btn_Yellow.xml" xy="-2319,487" group="n36_k3io" scale="0.9,1">
|
||||
<gearDisplay controller="action" pages="1"/>
|
||||
<Button icon="ui://v0j9abjygq7m4i"/>
|
||||
</component>
|
||||
<group id="n36_k3io" name="n36" xy="-2731,480" size="11806,414" visible="false" advanced="true">
|
||||
<group id="n36_k3io" name="n36" xy="-2729,480" size="11804,414" visible="false" advanced="true">
|
||||
<relation target="" sidePair="bottom-bottom,center-center"/>
|
||||
</group>
|
||||
<component id="n69_l2u4" name="gcm_chat" src="gq7m8z" fileName="Main_style_2/Gcm_chat.xml" xy="1933,-505">
|
||||
|
|
@ -147,7 +147,7 @@
|
|||
<gearDisplay controller="state" pages="0,2"/>
|
||||
<relation target="" sidePair="center-center,bottom-bottom"/>
|
||||
</component>
|
||||
<component id="n141_lu84" name="player_info1_2" src="pkx5so" fileName="Main_new/Main/PlayerHead_1.xml" xy="84,778" size="153,132">
|
||||
<component id="n141_lu84" name="player_info1_2" src="pkx5so" fileName="Main_new/Main/PlayerHead_1.xml" xy="730,-60" size="153,132">
|
||||
<gearDisplay controller="state" pages="1,3,4"/>
|
||||
<gearXY controller="state" pages="1,3,4" values="87,787|84,778|85,786" default="730,-60"/>
|
||||
<relation target="n118_pkx5" sidePair="right-left,top-top"/>
|
||||
|
|
@ -156,7 +156,7 @@
|
|||
<gearDisplay controller="state" pages="0,2"/>
|
||||
<relation target="" sidePair="center-center,top-top"/>
|
||||
</component>
|
||||
<component id="n152_kxhm" name="player_info2_2" src="o8k813y" fileName="Main_new/Main_new_2/PlayerHead2_2.xml" xy="1867,35" size="153,132">
|
||||
<component id="n152_kxhm" name="player_info2_2" src="o8k813y" fileName="Main_new/Main_new_2/PlayerHead2_2.xml" xy="2701,486" size="153,132">
|
||||
<gearDisplay controller="state" pages="1,3,4"/>
|
||||
<gearXY controller="state" pages="0,1,3,4" values="2701,486|1866,33|1867,35|1868,34" default="2007,876"/>
|
||||
<relation target="n155_gi99" sidePair="left-right,top-top"/>
|
||||
|
|
@ -189,6 +189,7 @@
|
|||
<relation target="" sidePair="right-right"/>
|
||||
</component>
|
||||
<component id="n213_mhse" name="btn_selectTing" src="gmbn13s" fileName="Main_new/Main/Component/btn_normol.xml" xy="2322,712" size="144,123" visible="false">
|
||||
<relation target="" sidePair="right-right"/>
|
||||
<Button icon="ui://v0j9abjymhset1kq"/>
|
||||
</component>
|
||||
<component id="n211_11k4t" name="jiangma_show" src="cjli6" fileName="UIPanel.xml" pkg="27vd145b" xy="0,0">
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="2532,1170" designImage="ui://v0j9abjyj6yy1ft" designImageAlpha="0">
|
||||
<controller name="state" pages="0,准备状态,1,游戏状态,2,回合间状态,3,回放状态,4,观战状态" selected="1"/>
|
||||
<controller name="state" pages="0,准备状态,1,游戏状态,2,回合间状态,3,回放状态,4,观战状态" selected="0"/>
|
||||
<controller name="sdk" pages="0,,1," selected="0"/>
|
||||
<controller name="action" pages="2,空,0,准备,1,开始" selected="0"/>
|
||||
<controller name="3d" pages="0,,1," selected="0"/>
|
||||
|
|
@ -40,14 +40,14 @@
|
|||
<gearXY controller="action" pages="2,0,1" values="8810,794|-16246,794|5853,170"/>
|
||||
<Button icon="ui://v0j9abjygq7m48"/>
|
||||
</component>
|
||||
<component id="n228_ogwn" name="btn_start" src="gq7m8y" fileName="Main_style_2/Btn_Yellow.xml" xy="-2738,480" group="n230_ogwn" visible="false">
|
||||
<component id="n228_ogwn" name="btn_start" src="gq7m8y" fileName="Main_style_2/Btn_Yellow.xml" xy="-2736,480" group="n230_ogwn" visible="false">
|
||||
<Button icon="ui://v0j9abjygq7m49"/>
|
||||
</component>
|
||||
<component id="n229_ogwn" name="btn_xipai--" src="gq7m8y" fileName="Main_style_2/Btn_Yellow.xml" xy="-2328,487" group="n230_ogwn" scale="0.9,1">
|
||||
<component id="n229_ogwn" name="btn_xipai--" src="gq7m8y" fileName="Main_style_2/Btn_Yellow.xml" xy="-2326,487" group="n230_ogwn" scale="0.9,1">
|
||||
<gearDisplay controller="action" pages="1"/>
|
||||
<Button icon="ui://v0j9abjygq7m4i"/>
|
||||
</component>
|
||||
<group id="n230_ogwn" name="n230" xy="-2738,480" size="11815,414" visible="false" advanced="true">
|
||||
<group id="n230_ogwn" name="n230" xy="-2736,480" size="11813,414" visible="false" advanced="true">
|
||||
<relation target="" sidePair="bottom-bottom,center-center"/>
|
||||
</group>
|
||||
<component id="n231_ogwn" name="gcm_chat" src="gq7m8z" fileName="Main_style_2/Gcm_chat.xml" xy="1933,-505">
|
||||
|
|
@ -92,13 +92,6 @@
|
|||
<relation target="n247_ogwn" sidePair="top-bottom"/>
|
||||
</component>
|
||||
<component id="n248_ogwn" name="jing" src="ckvb11l" fileName="Main_new/Main/Component/Comp_jing.xml" xy="405,25" size="115,121" visible="false" touchable="false"/>
|
||||
<component id="n254_ogwn" name="btn_back_lobby" src="gq7m4p" fileName="Main_style_2/poker/Btn_back_lobby.xml" xy="25,25" size="58,75" scale="2,2">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</component>
|
||||
<component id="n255_ogwn" name="btn_rule_back" src="lj2n17s" fileName="Main_new/Main/Component/btn_mul.xml" xy="215,36" size="115,111">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
<Button icon="ui://v0j9abjylj2n17t"/>
|
||||
</component>
|
||||
<text id="n296_jzul" name="remaining_card" xy="769,501" size="358,74" group="n299_jzul" font="ui://27vd145bg2mo7ij0" fontSize="55" color="#f5f5dd" align="right" vAlign="middle" letterSpacing="5" autoSize="none" text="余98张">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
</text>
|
||||
|
|
@ -141,7 +134,7 @@
|
|||
</component>
|
||||
<text id="n252_ogwn" name="text_roomId" xy="15,67" size="264,54" group="n253_ogwn" font="ui://27vd145bh35o7ika" fontSize="40" color="#ffffff" letterSpacing="4" text="房间:588568"/>
|
||||
<group id="n253_ogwn" name="top_left" xy="15,15" size="276,164"/>
|
||||
<component id="n115_pkx5" name="player_info1_1" src="pkx5so" fileName="Main_new/Main/PlayerHead_1.xml" xy="89,789" size="153,132">
|
||||
<component id="n115_pkx5" name="player_info1_1" src="pkx5so" fileName="Main_new/Main/PlayerHead_1.xml" xy="1189,891" size="153,132">
|
||||
<gearDisplay controller="state" pages="0,2"/>
|
||||
<gearXY controller="state" pages="0" values="1189,891" default="89,789"/>
|
||||
<relation target="" sidePair="center-center,bottom-bottom"/>
|
||||
|
|
@ -149,7 +142,7 @@
|
|||
<component id="n141_lu84" name="player_info1_2" src="pkx5so" fileName="Main_new/Main/PlayerHead_1.xml" xy="87,788" size="153,132">
|
||||
<gearDisplay controller="state" pages="1,3,4"/>
|
||||
</component>
|
||||
<component id="n116_pkx5" name="player_info2_1" src="pkx5so" fileName="Main_new/Main/PlayerHead_1.xml" xy="2004,77" size="153,132">
|
||||
<component id="n116_pkx5" name="player_info2_1" src="pkx5so" fileName="Main_new/Main/PlayerHead_1.xml" xy="1888,519" size="153,132">
|
||||
<gearDisplay controller="state" pages="0,2"/>
|
||||
<gearXY controller="state" pages="0,1,2,3" values="1888,519|2004,77|2311,292|2314,294" default="1194,274"/>
|
||||
<relation target="" sidePair="middle-middle"/>
|
||||
|
|
@ -170,6 +163,7 @@
|
|||
<Button icon="ui://v0j9abjyu63319u"/>
|
||||
</component>
|
||||
<component id="n305_mhse" name="btn_selectTing" src="gmbn13s" fileName="Main_new/Main/Component/btn_normol.xml" xy="2322,712" size="144,123" visible="false">
|
||||
<relation target="" sidePair="right-right"/>
|
||||
<Button icon="ui://v0j9abjymhset1kq"/>
|
||||
</component>
|
||||
<component id="n281_ogwn" name="btn_sendTalk" src="pbp614i" fileName="Main_new/Chat/Component/Btn_MessageTalk.xml" xy="2322,523" size="144,123">
|
||||
|
|
@ -272,13 +266,6 @@
|
|||
<gearDisplay controller="witness" pages="1"/>
|
||||
<gearXY controller="witness" pages="0" values="2537,30" default="2097,30" tween="true" ease="Linear" duration="0.5"/>
|
||||
</component>
|
||||
<component id="n286_ogwn" name="panel_record" src="gq7m4t" fileName="Main_style_2/record/Record.xml" xy="0,847" group="n288_ogwn">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</component>
|
||||
<component id="n287_ogwn" name="mask_tips" src="gq7m8i" fileName="Main_style_2/Component1.xml" xy="1140,903" group="n288_ogwn">
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</component>
|
||||
<group id="n288_ogwn" name="huifang" xy="0,847" size="2532,165"/>
|
||||
<list id="n289_ogwn" name="list_otherHuEffect" xy="1531,144" size="1005,814" layout="flow_vt" overflow="scroll" defaultItem="ui://v0j9abjyxqxr1eq" align="center" autoClearItems="true">
|
||||
<gearDisplay controller="cHuCardEffect" pages="1"/>
|
||||
<item/>
|
||||
|
|
@ -302,6 +289,24 @@
|
|||
<gearDisplay controller="voice" pages="1"/>
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</component>
|
||||
<component id="n287_ogwn" name="mask_tips" src="gq7m8i" fileName="Main_style_2/Component1.xml" xy="1140,903" group="n306_ukp7">
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</component>
|
||||
<graph id="n307_ukp7" name="bg_playback" xy="0,0" size="2532,1170" group="n306_ukp7" type="rect" lineSize="0" fillColor="#00ffffff">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</graph>
|
||||
<component id="n308_ukp7" name="btn_rule_back" src="gmbn13s" fileName="Main_new/Main/Component/btn_normol.xml" xy="215,35" size="115,111" group="n288_ogwn">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
<Button icon="ui://v0j9abjylj2n17t"/>
|
||||
</component>
|
||||
<component id="n309_ukp7" name="btn_back_lobby" src="gq7m4p" fileName="Main_style_2/poker/Btn_back_lobby.xml" xy="87,59" size="81,75" group="n288_ogwn" scale="2,2">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</component>
|
||||
<component id="n286_ogwn" name="panel_record" src="gq7m4t" fileName="Main_style_2/record/Record.xml" xy="0,847" group="n288_ogwn">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</component>
|
||||
<group id="n288_ogwn" name="huifang" xy="0,35" size="2532,977" group="n306_ukp7" advanced="true"/>
|
||||
<group id="n306_ukp7" name="playback" xy="0,0" size="2532,1170"/>
|
||||
</displayList>
|
||||
<transition name="laiziMove" frameRate="60">
|
||||
<item time="0" type="Visible" target="n248_ogwn" value="false"/>
|
||||
|
|
|
|||
|
|
@ -80,13 +80,6 @@
|
|||
<relation target="n319_ogwn" sidePair="top-bottom"/>
|
||||
</component>
|
||||
<component id="n320_ogwn" name="jing" src="ckvb11l" fileName="Main_new/Main/Component/Comp_jing.xml" xy="405,25" size="115,121" visible="false" touchable="false"/>
|
||||
<component id="n326_ogwn" name="btn_back_lobby" src="gq7m4p" fileName="Main_style_2/poker/Btn_back_lobby.xml" xy="25,25" size="58,75" scale="2,2">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</component>
|
||||
<component id="n327_ogwn" name="btn_rule_back" src="lj2n17s" fileName="Main_new/Main/Component/btn_mul.xml" xy="215,36" size="115,111">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
<Button icon="ui://v0j9abjylj2n17t"/>
|
||||
</component>
|
||||
<text id="n373_jzul" name="remaining_card" xy="769,514" size="358,74" group="n376_jzul" font="ui://27vd145bg2mo7ij0" fontSize="55" color="#f5f5dd" align="right" vAlign="middle" letterSpacing="5" autoSize="none" text="余98张">
|
||||
<gearDisplay controller="state" pages="1,3,5"/>
|
||||
</text>
|
||||
|
|
@ -263,18 +256,12 @@
|
|||
<gearXY controller="witness" pages="0" values="2537,30" default="2097,30" tween="true" ease="Linear" duration="0.5"/>
|
||||
</component>
|
||||
<component id="n382_mhse" name="btn_selectTing" src="gmbn13s" fileName="Main_new/Main/Component/btn_normol.xml" xy="2322,712" size="144,123" visible="false">
|
||||
<relation target="" sidePair="right-right"/>
|
||||
<Button icon="ui://v0j9abjymhset1kq"/>
|
||||
</component>
|
||||
<component id="n353_ogwn" name="btn_sendTalk" src="pbp614i" fileName="Main_new/Chat/Component/Btn_MessageTalk.xml" xy="2322,523" size="144,123">
|
||||
<relation target="" sidePair="right-right"/>
|
||||
</component>
|
||||
<component id="n358_ogwn" name="panel_record" src="gq7m4t" fileName="Main_style_2/record/Record.xml" xy="0,847" group="n360_ogwn">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</component>
|
||||
<component id="n359_ogwn" name="mask_tips" src="gq7m8i" fileName="Main_style_2/Component1.xml" xy="1140,903" group="n360_ogwn">
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</component>
|
||||
<group id="n360_ogwn" name="huifang" xy="0,847" size="2532,165"/>
|
||||
<list id="n361_ogwn" name="list_otherHuEffect" xy="1531,144" size="1005,814" layout="flow_vt" overflow="scroll" defaultItem="ui://v0j9abjyxqxr1eq" align="center" autoClearItems="true">
|
||||
<gearDisplay controller="cHuCardEffect" pages="1"/>
|
||||
<item/>
|
||||
|
|
@ -315,6 +302,24 @@
|
|||
<component id="n380_xx1c" name="clearing_show" src="cjli6" fileName="UIPanel.xml" pkg="27vd145b" xy="0,0">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</component>
|
||||
<component id="n383_ukp7" name="mask_tips" src="gq7m8i" fileName="Main_style_2/Component1.xml" xy="1140,903" group="n389_ukp7">
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</component>
|
||||
<graph id="n384_ukp7" name="bg_playback" xy="0,0" size="2532,1170" group="n389_ukp7" type="rect" lineSize="0" fillColor="#00ffffff">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</graph>
|
||||
<component id="n385_ukp7" name="btn_rule_back" src="gmbn13s" fileName="Main_new/Main/Component/btn_normol.xml" xy="215,35" size="115,111" group="n388_ukp7">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
<Button icon="ui://v0j9abjylj2n17t"/>
|
||||
</component>
|
||||
<component id="n386_ukp7" name="btn_back_lobby" src="gq7m4p" fileName="Main_style_2/poker/Btn_back_lobby.xml" xy="87,59" size="81,75" group="n388_ukp7" scale="2,2">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</component>
|
||||
<component id="n387_ukp7" name="panel_record" src="gq7m4t" fileName="Main_style_2/record/Record.xml" xy="0,847" group="n388_ukp7">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</component>
|
||||
<group id="n388_ukp7" name="huifang" xy="0,35" size="2532,977" group="n389_ukp7" advanced="true"/>
|
||||
<group id="n389_ukp7" name="playback" xy="0,0" size="2532,1170"/>
|
||||
</displayList>
|
||||
<transition name="laiziMove" frameRate="60">
|
||||
<item time="0" type="Visible" target="n320_ogwn" value="false"/>
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -88,5 +88,5 @@ TextureImporter:
|
|||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleName: base/lobby/4a425335ab0e1c246f741e6da62b244f
|
||||
assetBundleVariant:
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -53,6 +53,8 @@
|
|||
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTask"
|
||||
android:resizeableActivity="false"
|
||||
android:supportsPictureInPicture="false"
|
||||
android:screenOrientation="sensorLandscape" />
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,41 +1,41 @@
|
|||
[
|
||||
{
|
||||
"ver": "1.0.34",
|
||||
"ver": "1.0.36",
|
||||
"name": "跑得快",
|
||||
"check": true,
|
||||
"version": "1.0.34",
|
||||
"version": "1.0.36",
|
||||
"game_id": "66",
|
||||
"bundle": "extend/poker/runfast"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.54",
|
||||
"ver": "1.0.56",
|
||||
"name": "南城麻将",
|
||||
"check": true,
|
||||
"version": "1.0.54",
|
||||
"version": "1.0.56",
|
||||
"game_id": "86",
|
||||
"bundle": "extend/majiang/nancheng"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.57",
|
||||
"ver": "1.0.59",
|
||||
"name": "黎川麻将",
|
||||
"check": true,
|
||||
"version": "1.0.57",
|
||||
"version": "1.0.59",
|
||||
"game_id": "87",
|
||||
"bundle": "extend/majiang/lichuan"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.41",
|
||||
"ver": "1.0.43",
|
||||
"name": "金溪麻将",
|
||||
"check": true,
|
||||
"version": "1.0.41",
|
||||
"version": "1.0.43",
|
||||
"game_id": "88",
|
||||
"bundle": "extend/majiang/jinxi"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.40",
|
||||
"ver": "1.0.42",
|
||||
"name": "抚州麻将",
|
||||
"check": true,
|
||||
"version": "1.0.40",
|
||||
"version": "1.0.42",
|
||||
"game_id": "89",
|
||||
"bundle": "extend/majiang/fuzhou"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,109 +1,109 @@
|
|||
[
|
||||
{
|
||||
"lua_path": "/tolua_project,/base_project,/main_project",
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "base_script",
|
||||
"check": true,
|
||||
"bundle": "base/base_script",
|
||||
"version": "1.0.6"
|
||||
"version": "1.0.8"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "common",
|
||||
"check": true,
|
||||
"bundle": "base/common",
|
||||
"version": "1.0.6"
|
||||
"version": "1.0.8"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "login",
|
||||
"check": true,
|
||||
"bundle": "base/login",
|
||||
"version": "1.0.6"
|
||||
"version": "1.0.8"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "lobby",
|
||||
"check": true,
|
||||
"bundle": "base/lobby",
|
||||
"version": "1.0.6"
|
||||
"version": "1.0.8"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "Family",
|
||||
"check": true,
|
||||
"bundle": "base/Family",
|
||||
"version": "1.0.6"
|
||||
"version": "1.0.8"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "chat",
|
||||
"check": true,
|
||||
"bundle": "base/chat",
|
||||
"version": "1.0.6"
|
||||
"version": "1.0.8"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "newgroup",
|
||||
"check": true,
|
||||
"bundle": "base/newgroup",
|
||||
"version": "1.0.6"
|
||||
"version": "1.0.8"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "rank",
|
||||
"check": true,
|
||||
"version": "1.0.6",
|
||||
"version": "1.0.8",
|
||||
"bundle": "base/rank"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "main_majiang",
|
||||
"check": true,
|
||||
"version": "1.0.6",
|
||||
"version": "1.0.8",
|
||||
"bundle": "base/main_majiang"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "main_poker",
|
||||
"check": true,
|
||||
"version": "1.0.6",
|
||||
"version": "1.0.8",
|
||||
"bundle": "base/main_poker"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "main_zipai",
|
||||
"check": true,
|
||||
"version": "1.0.6",
|
||||
"version": "1.0.8",
|
||||
"bundle": "base/main_zipai"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "static",
|
||||
"check": true,
|
||||
"bundle": "base/static",
|
||||
"version": "1.0.6"
|
||||
"version": "1.0.8"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"is_res": true,
|
||||
"name": "embed",
|
||||
"check": true,
|
||||
"bundle": "base/embed",
|
||||
"version": "1.0.6"
|
||||
"version": "1.0.8"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "main_pokemajiang",
|
||||
"check": true,
|
||||
"version": "1.0.6",
|
||||
"version": "1.0.8",
|
||||
"bundle": "base/main_pokemajiang"
|
||||
},
|
||||
{
|
||||
"ver": "1.0.6",
|
||||
"ver": "1.0.8",
|
||||
"name": "main_zipaimajiang",
|
||||
"check": true,
|
||||
"version": "1.0.6",
|
||||
"version": "1.0.8",
|
||||
"bundle": "base/main_zipaimajiang"
|
||||
}
|
||||
]
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue