master
罗家炜 2025-10-23 17:58:16 +08:00
parent 3965fba689
commit 7a6abb9633
68 changed files with 1299 additions and 447 deletions

View File

@ -647,6 +647,7 @@ function M:OnEnter()
end
function M:OnExit()
printlog("lingmeng code OnExit")
if (debug_print) then
-- print(self._name .. ' 离开Game控制器')
end

View File

@ -381,9 +381,6 @@ function M:RequestPlayBack(_data, callback, game_info)
room.game_id = info.game_id
DataManager.CurrenRoom = room
extend:FillPlayBackData(data)
if not room.self_player then
room.self_player = room:GetPlayerBySeat(1)
end
callback(res.ReturnCode, data)
else
callback(res.ReturnCode, nil)
@ -442,9 +439,38 @@ function M:GiftDiamond(data, callback)
local _data = {}
_data.tagId = data.tagId or 0
_data.diamo = data.diamo or 0
_data.tagNick = data.tagNick or ""
_client:send(Protocol.WEB_RECHARGE_DIAMO, _data, function(res)
if (callback ~= nil) then
callback(res)
end
end)
end
--代理获取个人名字和头像
function M:GetUserInfoByDaili(data, callback)
--不走登录逻辑
local _client = ControllerManager.WebClient
local _data = {}
_data.tagId = data.tagId or 0
_client:send(Protocol.ACC_GET_USERINFO, _data, function(res)
if (callback ~= nil) then
callback(res)
end
end)
end
--代理获取战绩记录
function M:GetGiftDiamondRecord(data, callback)
--不走登录逻辑
local _client = ControllerManager.WebClient
local _data = {}
_data.pageSize = data.pageSize or 4 -- 默认约定一页只有四条数据
_data.pageNo = data.pageNo or 0
_data.changeType = data.changeType or 0 -- 0:转入记录 1转出记录
_client:send(Protocol.ACC_GET_DIAMONDRECORD, _data, function(res)
if (callback ~= nil) then
callback(res)
end
end)
end

View File

@ -16,11 +16,14 @@ local function __ConntectGameServer(cmd, room, host, _data, callback)
_data["session"] = room.session
local _game_client = NetClient.new(host, "game")
_game_client:connect()
print("lingmeng SetGameNetClient code", _game_client)
ControllerManager.SetGameNetClient(_game_client)
_game_client.onconnect:Add(function(code)
print("lingmeng clent code", code)
if (code == SocketCode.Connect) then
_game_client:send(cmd, _data, function(response)
print("lingmeng clent code2", cmd, response.ReturnCode)
if (response.ReturnCode == 0) then
_game_client.onconnect:Clear()
_game_client.onconnect:Add(ControllerManager.OnConnect)
@ -155,6 +158,9 @@ function M:PublicJoinRoom(cmd, roomid, tem, callback, group_id, pid)
end
end
_data["pos"] = pos
if ControllerManager.GameNetClinet then
return
end
elseif cmd == Protocol.WEB_FG_QUEUE_ROOM then
_data["is_null"] = tem
_data["room_id"] = roomid

View File

@ -38,10 +38,15 @@ function ControllerManager.Init()
end
function ControllerManager.ChangeController(type)
if (_currenController ~= nil) then
printlog("lingmeng code ChangeController", _currenController, type)
pt("lingmeng code ChangeController", _currenController, type)
printlog("lingmeng code ChangeController", _currenController ~= nil)
if (_currenController ~= nil and not string.find(_currenController.class, "GameController")) then
_currenController:OnExit()
end
_currenController = ControllerManager.GetController(type)
printlog("lingmeng code ChangeController2", _currenController, type)
pt("lingmeng code ChangeController2", _currenController, type)
_currenController:OnEnter()
return _currenController
end
@ -66,6 +71,7 @@ function ControllerManager.GetController(cls)
end
function ControllerManager.SetGameNetClient(client)
print("lingmeng code GameNetClinet", ControllerManager.GameNetClinet, client)
if (ControllerManager.GameNetClinet ~= nil) then
ControllerManager.GameNetClinet:destroy()
end
@ -76,6 +82,7 @@ function ControllerManager.SetGameNetClient(client)
end
function ControllerManager.OnConnect(code)
print("lingmeng code OnConnect", code)
if (code ~= SocketCode.Connect) then
ControllerManager.SetGameNetClient(nil)
if code ~= SocketCode.DisconnectByServer then

View File

@ -41,8 +41,12 @@ Protocol = {
WEB_SET_GROUP_INVITATED = "acc/set_group_invitation",
---赠送房卡
WEB_RECHARGE_DIAMO = "acc/recharge_diamo",
---赠送房卡
---获得客服信息
WEB_GET_SERVICES = "acc/get_services",
---代理获取个人昵称和头像
ACC_GET_USERINFO = "acc/get_change_user_info",
---代理获取赠送房卡记录
ACC_GET_DIAMONDRECORD = "acc/get_recharge_diamo_list",
----index----
-- 获取公告
WEB_UPDATE_NOTICE = "index/get_notice",

View File

@ -148,6 +148,9 @@ function FamilyNumberRecord.New(root, page)
if self.ctr_numberRecord.selectedIndex == 0 then
self._viewText_titleRecord.text = string.format("%s 成员记录", self._text_groupTitle)
self._view:GetChild('text_timeRecord').text = os.date('%Y-%m-%d %H:%M:%S', os.time())
self:ResetRecords()
self._viewList_numberRankRead:RefreshVirtualList()
self._viewList_numberRankUnRead:RefreshVirtualList()
elseif self.ctr_numberRecord.selectedIndex == 1 then
self._viewText_titleRecord.text = string.format("%s 个人记录", self._text_groupTitle)
self._view:GetChild('text_numberRecordTime').text = os.date('%Y-%m-%d %H:%M:%S', os.time())
@ -618,11 +621,13 @@ function M:OnClickNumberRank(groupId, uid, round)
end
function M:RecursionGetNumberRecord(fgCtr, groupId, uid, index)
ViewUtil:ShowModalWait2(0.1)
fgCtr:FG_GetGroupRecordSpe(groupId, GetPlatform(), uid, 0, index * 100, 100, self._data_myleftTime,
self._data_myrightTime, 0,
function(res)
pt(res)
if res.ReturnCode ~= 0 then
ViewUtil.CloseModalWait2()
ViewUtil.ErrorTip(res.ReturnCode, "获取查看个人战绩失败")
self.ctr_numberRecord.selectedIndex = 0
else
@ -653,6 +658,7 @@ function M:RecursionGetNumberRecord(fgCtr, groupId, uid, index)
end
self:RecursionGetNumberRecord(fgCtr, groupId, uid, index + 1)
else
ViewUtil.CloseModalWait2()
self._viewList_numberRankRead:RefreshVirtualList()
self._viewList_numberRankUnRead:RefreshVirtualList()
self._tagId = uid

View File

@ -284,7 +284,7 @@ function M:RecordItemRenderer(data, obj)
resultDetailList.itemRenderer = function(index, obj)
local resultInfo = data.totalScore[index + 1]
ImageLoad.Load(resultInfo.portrait, obj:GetChild('btn_head')._iconObject)
obj:GetChild('text_name').text = resultInfo.nick
obj:GetChild('text_name').text = ViewUtil.stringEllipsis(resultInfo.nick)
obj:GetChild('text_score').text = string.format("%s%s", resultInfo.score >= 0 and "+" or "", resultInfo.score)
obj:GetController('colour').selectedIndex = resultInfo.score >= 0 and 1 or 0
end

View File

@ -660,18 +660,21 @@ function M:UpdateFamilyRoom(fgCtr, id)
obj:GetChild('Label_joinPlayers').text = insertName
obj:GetChild('text_playerNum').text = string.format("%s/%s", #plist, playInfo.maxPlayers)
obj:GetChild('btn_joinGame').onClick:Set(function()
ViewUtil.ShowModalWait2(0.01)
roomCtr:PublicJoinRoom(
Protocol.WEB_FG_JOIN_ROOM,
readyRoom[newIndex].id,
id,
function(response)
if (response.ReturnCode == -1) then
ViewUtil.CloseModalWait2()
ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, 'response.ReturnCode == -1')
-- RestartGame()
return
end
if response.ReturnCode ~= 0 then
ViewUtil.CloseModalWait2()
if response.ReturnCode == 10 then
self:EnterWitnesss(id, readyRoom[newIndex].id, playInfo.gameId, readyRoom[newIndex].pid)
return
@ -682,6 +685,7 @@ function M:UpdateFamilyRoom(fgCtr, id)
UpdateBeat:Remove(self.OnUpdate, self)
FamilyView.lastId = self._group.id
ViewManager.ChangeView(ViewManager.View_Main, playInfo.gameId, { _flag_showTip = true })
ViewUtil.CloseModalWait2()
end
end,
id,
@ -726,18 +730,24 @@ function M:UpdateFamilyRoom(fgCtr, id)
--ImageLoad.Load("ui://Family/btn_mainGameNumberHead", obj:GetChild(string.format("player%d", i))._iconObject)
end
obj:GetChild('btn_joinGame').onClick:Set(function()
ViewUtil.ShowModalWait2(0.01)
roomCtr:PublicJoinRoom(
Protocol.WEB_FG_MATCH_ROOM,
"",
false,
function(response)
if (response.ReturnCode == -1) then
ViewUtil.CloseModalWait2()
ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, 'response.ReturnCode == -1')
-- RestartGame()
return
end
if response.ReturnCode ~= 0 then
ViewUtil.CloseModalWait2()
ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, '进入房间失败')
-- ViewManager.ChangeView(ViewManager.View_Lobby)
return
@ -746,6 +756,7 @@ function M:UpdateFamilyRoom(fgCtr, id)
FamilyView.lastId = self._group.id
ViewManager.ChangeView(ViewManager.View_Main, playList[newIndex].gameId,
{ _flag_showTip = true })
ViewUtil.CloseModalWait2()
end
end,
id,

View File

@ -1,6 +1,4 @@
local LobbyGiftDiamond = {
sendPage = 1
}
local LobbyGiftDiamond = {}
local M = LobbyGiftDiamond
@ -22,26 +20,55 @@ function M:init(url)
local input_id = self._view:GetChild('input_id')
input_id.onClick:Set(function()
self._view:GetChild('text_name').text = ""
self._view:GetChild('btn_head').url = ""
end)
input_id.onFocusOut:Set(function()
--发送查找用户的协议
printlog("lingmeng send find", input_id.text)
local lobbyCtr = ControllerManager.GetController(LoddyController)
lobbyCtr:GetUserInfoByDaili({ tagId = tonumber(input_id.text) }, function(res)
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "没有该用户")
else
if res.Data.nick == "" and res.Data.portrait == "" then
ViewUtil.ErrorTip(res.ReturnCode, "没有该用户")
else
self._view:GetChild('text_name').text = res.Data.nick
ImageLoad.Load(res.Data.portrait, self._view:GetChild('btn_head'))
end
end
end)
end)
self._view:GetChild('btn_center').onClick:Set(function()
local text_id = input_id.text
local text_num = self._view:GetChild('input_num').text
local lobbyCtr = ControllerManager.GetController(LoddyController)
lobbyCtr:GiftDiamond({ tagId = tonumber(text_id), diamo = tonumber(text_num) }, function(res)
if res.ReturnCode == 0 then
DataManager.SelfUser.diamo = DataManager.SelfUser.diamo - text_num
self._callback()
self:Destroy()
ViewUtil.ErrorTip(-1, "赠送房卡成功")
else
ViewUtil.ErrorTip(res.ReturnCode, "赠送房卡失败")
end
if self._view:GetChild('text_name').text == "" then
ViewUtil.ErrorTip(-1, "请输入正确的用户ID")
return
end
local _curren_msg = MsgWindow.new(self._root_view,
string.format("是否要赠送%s房卡给用户%s(%d)", text_num, self._view:GetChild('text_name').text, text_id),
MsgWindow.MsgMode.OkAndCancel)
_curren_msg.onOk:Add(function()
local lobbyCtr = ControllerManager.GetController(LoddyController)
lobbyCtr:GiftDiamond(
{ tagId = tonumber(text_id), diamo = tonumber(text_num), tagNick = self._view:GetChild('text_name').text },
function(res)
if res.ReturnCode == 0 then
DataManager.SelfUser.diamo = DataManager.SelfUser.diamo - text_num
self._callback()
self._view:GetChild('input_num').text = ""
-- self:Destroy()
ViewUtil.ErrorTip(-1, "赠送房卡成功")
else
ViewUtil.ErrorTip(res.ReturnCode, "赠送房卡失败")
end
end)
end)
_curren_msg:Show()
end)
local ctr_page = self._view:GetController('page')
@ -52,14 +79,105 @@ function M:init(url)
self._view:GetChild('text_name').text = ""
self._view:GetChild('btn_head').url = ""
elseif ctr_page.selectedIndex == 1 then
self._data_sendPage = 0
self._data_GetPage = 0
self:FillRecord(1)
end
end)
local crt_detail = self._view:GetController('detail')
crt_detail.onChanged:Set(function()
self:FillRecord(1 - crt_detail.selectedIndex)
end)
self._list_list = self._view:GetChild('list')
self._list_list.itemRenderer = function(index, obj)
local info = self._data_resList[index + 1]
if self._changeType == 1 then
obj:GetChild('name1').text = ViewUtil.stringEllipsis(info.user_nick)
obj:GetChild('id1').text = ViewUtil.stringEllipsis(info.uid)
obj:GetChild('name2').text = ViewUtil.stringEllipsis(info.operator_name)
obj:GetChild('id2').text = ViewUtil.stringEllipsis(info.operator)
else
obj:GetChild('name2').text = ViewUtil.stringEllipsis(info.user_nick)
obj:GetChild('id2').text = ViewUtil.stringEllipsis(info.uid)
obj:GetChild('name1').text = ViewUtil.stringEllipsis(info.operator_name)
obj:GetChild('id1').text = ViewUtil.stringEllipsis(info.operator)
end
obj:GetChild('time').text = os.date("%Y-%m-%d", info.time)
obj:GetChild('num').text = info.diamo
end
self._btn_lastPage = self._view:GetChild('btn_lastPage')
self._btn_lastPage.onClick:Set(function()
if self._changeType == 0 then
self._data_GetPage = self._data_GetPage - 1
else
self._data_sendPage = self._data_sendPage - 1
end
local pageNum = self._changeType == 0 and self._data_GetPage or self._data_sendPage
if pageNum == 0 then
self._btn_lastPage:GetController('donTouch').selectedIndex = 1.
self._btn_lastPage.touchable = false
else
self._btn_lastPage:GetController('donTouch').selectedIndex = 0
self._btn_lastPage.touchable = true
end
self:FillRecord(self._changeType or 0)
end)
self._btn_nextPage = self._view:GetChild('btn_nextPage')
self._btn_nextPage.onClick:Set(function()
if self._changeType == 0 then
self._data_GetPage = self._data_GetPage + 1
else
self._data_sendPage = self._data_sendPage + 1
end
local pageNum = self._changeType == 0 and self._data_GetPage or self._data_sendPage
if (pageNum + 1) * 4 >= self._list_list.numItems then
self._btn_nextPage:GetController('donTouch').selectedIndex = 1.
self._btn_nextPage.touchable = false
else
self._btn_nextPage:GetController('donTouch').selectedIndex = 0
self._btn_nextPage.touchable = true
end
self:FillRecord(self._changeType or 0)
end)
end
function M:FillRecord(type)
--type 0:转入记录 1转出记录
--发送请求填充记录并渲染数据,默认约定一页只有四条数据
self._changeType = type
local pageNum = type == 0 and self._data_GetPage or self._data_sendPage
ViewUtil:ShowModalWait2(0.1)
local lobbyCtr = ControllerManager.GetController(LoddyController)
lobbyCtr:GetGiftDiamondRecord(
{ pageNo = pageNum * 4, changeType = type }, function(res)
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "没有记录啦")
else
if pageNum == 0 then
self._btn_lastPage:GetController('donTouch').selectedIndex = 1.
self._btn_lastPage.touchable = false
else
self._btn_lastPage:GetController('donTouch').selectedIndex = 0
self._btn_lastPage.touchable = true
end
if (pageNum + 1) * 4 >= res.Data.count then
self._btn_nextPage:GetController('donTouch').selectedIndex = 1.
self._btn_nextPage.touchable = false
else
self._btn_nextPage:GetController('donTouch').selectedIndex = 0
self._btn_nextPage.touchable = true
end
self._view:GetChild('text_pageNum').text = string.format("%s/%s", pageNum + 1,
math.ceil(res.Data.count / 4))
self._data_resList = res.Data.rechargeDimoList
self._list_list.numItems = #self._data_resList
ViewUtil.CloseModalWait2()
end
end)
end
return M

View File

@ -234,6 +234,13 @@ function M:NextRecordPlay()
DataManager.CurrenRoom = room
self._room = DataManager.CurrenRoom
extend:FillPlayBackData(DataManager.SelfUser.playback[self._currentId][self._currentRound])
local PlayerList = DataManager.CurrenRoom.player_list
for i = 1, #PlayerList do
local p = PlayerList[i]
if DataManager.SelfUser.account_id == p.self_user.account_id then
room.self_player = p
end
end
if not room.self_player then
room.self_player = room:GetPlayerBySeat(1)
end
@ -262,6 +269,13 @@ function M:NextRecordPlay()
DataManager.CurrenRoom = room
self._room = DataManager.CurrenRoom
extend:FillPlayBackData(data)
local PlayerList = DataManager.CurrenRoom.player_list
for i = 1, #PlayerList do
local p = PlayerList[i]
if DataManager.SelfUser.account_id == p.self_user.account_id then
room.self_player = p
end
end
if not room.self_player then
room.self_player = room:GetPlayerBySeat(1)
end

View File

@ -59,10 +59,16 @@ function ViewUtil.ShowModalWait2(blur_view, time)
ViewUtil.CloseModalWait2()
ViewUtil.continue = coroutine.start(
function()
coroutine.wait(time or 1)
coroutine.wait(time or 0.5)
ModalWaitingWindow2.ShowModal()
end
)
ViewUtil.autoCloseContinue = coroutine.start(
function()
coroutine.wait(5)
ModalWaitingWindow2.CloseModal()
end
)
end
function ViewUtil.CloseModalWait2()
@ -70,6 +76,10 @@ function ViewUtil.CloseModalWait2()
coroutine.stop(ViewUtil.continue)
ViewUtil.continue = nil
end
if ViewUtil.autoCloseContinue then
coroutine.stop(ViewUtil.autoCloseContinue)
ViewUtil.autoCloseContinue = nil
end
ModalWaitingWindow2.CloseModal()
end

View File

@ -11,6 +11,8 @@ local HuCardImg = import(".HuCardImg")
local M = {}
--- Create a new ZZ_MainView
function M.new()
setmetatable(M, { __index = MJMainView })
local self = setmetatable({}, { __index = M })

View File

@ -2,6 +2,7 @@ local MJPlayBackView = require("main.majiang.MJPlayBackView")
local EXRoomConfig = import(".EXRoomConfig")
local EXClearingView = import(".EXClearingView")
local HuCardImg = import(".HuCardImg")
local FZTipList = require("main.majiang.FZData")
local Record_Event = import(".RecordEvent")
@ -44,6 +45,8 @@ function M:InitView(url)
self._cmdmap[Record_Event.Evt_Niao] = self.CmdNiao
self._cmdmap[Record_Event.Evt_Piao] = self.CmdPiao
self._cmdmap[Record_Event.Evt_Result] = self.CmdResult
self._cmdmap[Record_Event.Evt_FZTip] = self.CmdFZTip
self._cmdmap[Record_Event.Evt_GangScore] = self.GangScore
self.com_logocType.selectedIndex = 0
end
@ -152,58 +155,95 @@ function M:ShowStep(index)
----多人胡的时候,同时显示胡
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)
if not self.result then
if step.result_data.info_list[i].is_win then
local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)]
local loader_HuEffect = info2._viewLoader_selfHuCardEffect
local isZiMo = false
DataManager.CurrenRoom.isZiMoHu = isZiMo
local hu_sound = isZiMo and ("zimo") or ("hu")
printlog("声音====>>>", hu_sound)
self:PlaySound(self.asset_group, p.self_user.sex, hu_sound)
local effects = isZiMo and ("tile_zimo") or ("tile_hu")
loader_HuEffect.visible = true
loader_HuEffect.url = "ui://Main_Majiang/" .. effects
loader_HuEffect:SetScale(2, 2)
local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3)
hu_tween:SetEase(EaseType.QuartOut)
hu_tween:OnComplete(function()
loader_HuEffect.visible = false
end)
local effects = isZiMo and ("tile_zimo") or ("tile_hu")
loader_HuEffect.visible = true
loader_HuEffect.url = "ui://Main_Majiang/" .. effects
loader_HuEffect:SetScale(2, 2)
local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3)
hu_tween:SetEase(EaseType.QuartOut)
hu_tween:OnComplete(function()
loader_HuEffect.visible = false
end)
end
end
end
---显示提示按钮
local _ctr_tips = info._view:GetController('tip2')
local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips")
if step.cmd == Record_Event.Evt_FZTip then
if p.seat == step.seat then
local tip = step.tiplist
local _tlist = tip.tip_sortList
_lit_fanzi.itemRenderer = function(index, obj)
local type = obj:GetController('type')
if index == tip.tip_num then
type.selectedIndex = 0
else
index = index + 1
if _tlist[index].type == FZType.HU then
type.selectedIndex = 4
obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d',
_tlist[index].card)
elseif _tlist[index].type == FZType.Chi then
type.selectedIndex = FZType.Chi
for i = 1, 3 do
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
'ui://Main_Majiang/b202_%d',
_tlist[index].opcard[i])
end
elseif _tlist[index].type == FZType.Peng then
type.selectedIndex = FZType.Peng
for i = 1, 3 do
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
'ui://Main_Majiang/b202_%d',
_tlist[index].card)
end
else
for i = 1, 4 do
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
'ui://Main_Majiang/b202_%d',
_tlist[index].card)
end
type.selectedIndex = FZType.Gang
if _tlist[index].type == FZType.Gang_An then
obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00'
end
end
end
end
_ctr_tips.selectedIndex = 1
_lit_fanzi.numItems = tip.tip_num + 1
end
else
_ctr_tips.selectedIndex = 0
_lit_fanzi.numItems = 0
end
end
--统一在大结算时显示
if step.cmd == Record_Event.Evt_Win then
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_FuZhou/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
print("lingmeng playerback", self.result)
if not self.result then
local result = step.result_data
self.result = EXClearingView.new(self, { flag_back = true })
@ -301,6 +341,28 @@ function M:ShowStep(index)
end
end
--展示摸鸟
local niao_list = result.niao
self._niao = UIPackage.CreateObject("Extend_MJ_FuZhou", "Panel_Birds")
self._view:GetChild('jiangma_show'):AddChild(self._niao)
self._niao:Center()
local list_niao_card = self._niao:GetChild("Lst_birds")
list_niao_card:RemoveChildrenToPool()
for i = 1, #niao_list do
--顯示正面
local item = list_niao_card:AddItemFromPool()
local card = niao_list[i].card
item.icon = UIPackage.GetItemURL("Main_Majiang", "b202_" .. card)
if niao_list[i].score > 0 then
item:GetController("select").selectedIndex = 1
else
item:GetController("select").selectedIndex = 0
end
coroutine.wait(2 / #niao_list)
end
coroutine.wait(0.3)
self._niao:Dispose()
--统一显示弹出分数
for i = 1, #result.info_list do
local hu_info = result.info_list[i]
@ -322,7 +384,38 @@ function M:ShowStep(index)
self.result._view.visible = true
end)
else
self.result._view.visible = true
-- self.result._view.visible = true
end
end
--显示杠分
if step.cmd == Record_Event.Evt_GangScore then
local totalScoreList = step.totalScoreList
local playerList = step.playerList
local addScoreList = step.addScoreList
local scoreData = {}
for i = 1, #totalScoreList do
local p = {}
p.totalScore = totalScoreList[i]
p.player = playerList[i]
p.addScore = addScoreList[i]
scoreData[#scoreData + 1] = p
end
for _, p in pairs(scoreData) do
local player = self._room:GetPlayerById(p.player)
local infoView = self._player_info[self:GetPos(player.seat)]
player.cur_hp = p.totalScore
if p.addScore ~= 0 then
infoView:ScoreAnimation(p.addScore)
if player.cur_hp >= 0 then
infoView._view:GetChild("text_jifen").text = "+" .. player.cur_hp
else
infoView._view:GetChild("text_jifen").text = player.cur_hp
end
end
end
end
end
@ -426,6 +519,39 @@ function M:CmdPiao(cmd, index)
data.player_card_data[cmd.seat].piao_niao = cmd.data.num
end
function M:CmdFZTip(cmd, index)
local data = self:CopyLastStep(index)
data.cmd = cmd.cmd
data.seat = cmd.seat
local tiplist = FZTipList.new()
local list = cmd.data.tip_list
for i = 1, #list do
local dtip = list[i]
local tip = {}
tip.id = dtip["id"]
tip.weight = dtip["weight"]
tip.card = dtip["card"]
tip.type = dtip["type"]
tip.opcard = dtip["opcard"]
tiplist:AddTip(tip)
end
--排序规则,胡杠碰
tiplist:SortList(function(a, b)
return a.type < b.type
end)
data.tiplist = tiplist
data.weight = cmd.data.weight
end
function M:GangScore(cmd, index)
local data = self:CopyLastStep(index)
data.cmd = cmd.cmd
data.seat = cmd.seat
data.totalScoreList = cmd.data.totalScoreList
data.playerList = cmd.data.playerList
data.addScoreList = cmd.data.addScoreList
end
function M:CmdResult(cmd, index)
local data = self:CopyLastStep(index)
data.cmd = cmd.cmd

View File

@ -157,7 +157,7 @@ function M:FillPlayBackData(pd_data)
-- room.self_player = p
-- p.self_user = DataManager.SelfUser
-- else
if p.seat == 1 then room.self_player = p end
-- if p.seat == 1 then room.self_player = p end
local u = User.new()
u.account_id = pid
p.self_user = u
@ -179,6 +179,16 @@ function M:FillPlayBackData(pd_data)
room:AddPlayer(p)
end
local PlayerList = room.player_list
for i = 1, #PlayerList do
local p = PlayerList[i]
if DataManager.SelfUser.account_id == p.self_user.account_id then
room.self_player = p
end
end
if not room.self_player then
room.self_player = room:GetPlayerBySeat(1)
end
room.cmdList = pd_data["cmdList"]
end

View File

@ -6,6 +6,8 @@ local Record_Event = {
Evt_Niao = "Niao",
Evt_Piao = "PiaoNiao",
Evt_Result = "Result",
Evt_FZTip = "FizTip",
Evt_GangScore = "GangScore",
}
return Record_Event

View File

@ -2,6 +2,7 @@ local MJPlayBackView = require("main.majiang.MJPlayBackView")
local EXRoomConfig = import(".EXRoomConfig")
local EXClearingView = import(".EXClearingView")
local HuCardImg = import(".HuCardImg")
local FZTipList = require("main.majiang.FZData")
local Record_Event = import(".RecordEvent")
@ -44,6 +45,8 @@ function M:InitView(url)
self._cmdmap[Record_Event.Evt_Niao] = self.CmdNiao
self._cmdmap[Record_Event.Evt_Piao] = self.CmdPiao
self._cmdmap[Record_Event.Evt_Result] = self.CmdResult
self._cmdmap[Record_Event.Evt_FZTip] = self.CmdFZTip
self._cmdmap[Record_Event.Evt_GangScore] = self.GangScore
self.com_logocType.selectedIndex = 3
end
@ -152,6 +155,7 @@ function M:ShowStep(index)
----多人胡的时候,同时显示胡
if step.cmd == Record_Event.Evt_Result then
--所有都显示胡吧,暂时没做胡和自摸的判断
if not self.result then
if step.result_data.info_list[i].is_win then
local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)]
local loader_HuEffect = info2._viewLoader_selfHuCardEffect
@ -161,60 +165,96 @@ function M:ShowStep(index)
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, 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 effects = isZiMo and ("tile_zimo") or ("tile_hu")
loader_HuEffect.visible = true
loader_HuEffect.url = "ui://Main_Majiang/" .. effects
loader_HuEffect:SetScale(2, 2)
local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3)
hu_tween:SetEase(EaseType.QuartOut)
hu_tween:OnComplete(function()
loader_HuEffect.visible = false
end)
end
end
end
---显示提示按钮
local _ctr_tips = info._view:GetController('tip2')
local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips")
if step.cmd == Record_Event.Evt_FZTip then
if p.seat == step.seat then
local tip = step.tiplist
local _tlist = tip.tip_sortList
_lit_fanzi.itemRenderer = function(index, obj)
local type = obj:GetController('type')
if index == tip.tip_num then
type.selectedIndex = 0
else
index = index + 1
if _tlist[index].type == FZType.HU then
type.selectedIndex = 4
obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d',
_tlist[index].card)
elseif _tlist[index].type == FZType.Chi then
type.selectedIndex = FZType.Chi
for i = 1, 3 do
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
'ui://Main_Majiang/b202_%d',
_tlist[index].opcard[i])
end
elseif _tlist[index].type == FZType.Peng then
type.selectedIndex = FZType.Peng
for i = 1, 3 do
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
'ui://Main_Majiang/b202_%d',
_tlist[index].card)
end
else
for i = 1, 4 do
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
'ui://Main_Majiang/b202_%d',
_tlist[index].card)
end
type.selectedIndex = FZType.Gang
if _tlist[index].type == FZType.Gang_An then
obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00'
end
end
end
end
_ctr_tips.selectedIndex = 1
_lit_fanzi.numItems = tip.tip_num + 1
end
else
_ctr_tips.selectedIndex = 0
_lit_fanzi.numItems = 0
end
end
--统一在大结算时显示
if step.cmd == Record_Event.Evt_Win then
else
if self._win_pic then
self._win_pic:Dispose()
end
end
--统一在大结算时显示
if step.cmd == Record_Event.Evt_Niao then
local niao_list = step.niao
else
end
if step.cmd == Record_Event.Evt_Result then
print("lingmeng playerback", self.result)
if not self.result then
local result = step.result_data
self.result = EXClearingView.new(self, { flag_back = true })
self.result:InitData(0, self._room, result)
self.result._view.x = (GRoot.inst.width - self.result._view.width) * -0.5
self.result._view.width = GRoot.inst.width
self.result._view.height = GRoot.inst.height
self._anchor:AddChild(self.result._view)
self.result._view.visible = false
self.result._view.x = self._anchor.x * -1
self.result._view.y = self._anchor.y * -1
local liuju = result and result.liuju or nil
coroutine.start(function()
@ -301,30 +341,83 @@ function M:ShowStep(index)
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)]
--展示摸鸟
local niao_list = result.niao
self._niao = UIPackage.CreateObject("Extend_MJ_FuZhou", "Panel_Birds")
self._view:GetChild('jiangma_show'):AddChild(self._niao)
self._niao:Center()
local list_niao_card = self._niao:GetChild("Lst_birds")
list_niao_card:RemoveChildrenToPool()
for i = 1, #niao_list do
--顯示正面
local item = list_niao_card:AddItemFromPool()
local card = niao_list[i].card
item.icon = UIPackage.GetItemURL("Main_Majiang", "b202_" .. card)
if niao_list[i].score > 0 then
item:GetController("select").selectedIndex = 1
else
item:GetController("select").selectedIndex = 0
end
coroutine.wait(2 / #niao_list)
end
coroutine.wait(0.3)
self._niao:Dispose()
--统一显示弹出分数
for i = 1, #result.info_list do
local hu_info = result.info_list[i]
local head_info = self._player_info[self:GetPos(hu_info.seat)]
-- 扣分动画
head_info:UpdateScore(hu_info.total_score, true)
end
coroutine.wait(0.3)
if liuju then
self:PlayMJSound("liuju.mp3")
coroutine.wait(3)
self:PlayMJSound("end_music.mp3")
else
self:PlayMJSound("end_music.mp3")
end
coroutine.wait(0.5)
self.result._view.visible = true
end)
else
self.result._view.visible = true
end
end
if liuju then
self:PlayMJSound("liuju.mp3")
coroutine.wait(3)
self:PlayMJSound("end_music.mp3")
else
self:PlayMJSound("end_music.mp3")
end
coroutine.wait(0.5)
self.result._view.visible = true
end)
else
-- self.result._view.visible = true
end
end
--显示杠分
if step.cmd == Record_Event.Evt_GangScore then
local totalScoreList = step.totalScoreList
local playerList = step.playerList
local addScoreList = step.addScoreList
local scoreData = {}
for i = 1, #totalScoreList do
local p = {}
p.totalScore = totalScoreList[i]
p.player = playerList[i]
p.addScore = addScoreList[i]
scoreData[#scoreData + 1] = p
end
for _, p in pairs(scoreData) do
local player = self._room:GetPlayerById(p.player)
local infoView = self._player_info[self:GetPos(player.seat)]
player.cur_hp = p.totalScore
if p.addScore ~= 0 then
infoView:ScoreAnimation(p.addScore)
if player.cur_hp >= 0 then
infoView._view:GetChild("text_jifen").text = "+" .. player.cur_hp
else
infoView._view:GetChild("text_jifen").text = player.cur_hp
end
end
end
end
end
function M:GenerateAllStepData(data)
@ -426,6 +519,39 @@ function M:CmdPiao(cmd, index)
data.player_card_data[cmd.seat].piao_niao = cmd.data.num
end
function M:CmdFZTip(cmd, index)
local data = self:CopyLastStep(index)
data.cmd = cmd.cmd
data.seat = cmd.seat
local tiplist = FZTipList.new()
local list = cmd.data.tip_list
for i = 1, #list do
local dtip = list[i]
local tip = {}
tip.id = dtip["id"]
tip.weight = dtip["weight"]
tip.card = dtip["card"]
tip.type = dtip["type"]
tip.opcard = dtip["opcard"]
tiplist:AddTip(tip)
end
--排序规则,胡杠碰
tiplist:SortList(function(a, b)
return a.type < b.type
end)
data.tiplist = tiplist
data.weight = cmd.data.weight
end
function M:GangScore(cmd, index)
local data = self:CopyLastStep(index)
data.cmd = cmd.cmd
data.seat = cmd.seat
data.totalScoreList = cmd.data.totalScoreList
data.playerList = cmd.data.playerList
data.addScoreList = cmd.data.addScoreList
end
function M:CmdResult(cmd, index)
local data = self:CopyLastStep(index)
data.cmd = cmd.cmd

View File

@ -166,7 +166,7 @@ function M:FillPlayBackData(pd_data)
-- room.self_player = p
-- p.self_user = DataManager.SelfUser
-- else
if p.seat == 1 then room.self_player = p end
-- if p.seat == 1 then room.self_player = p end
local u = User.new()
u.account_id = pid
p.self_user = u
@ -188,6 +188,16 @@ function M:FillPlayBackData(pd_data)
room:AddPlayer(p)
end
local PlayerList = room.player_list
for i = 1, #PlayerList do
local p = PlayerList[i]
if DataManager.SelfUser.account_id == p.self_user.account_id then
room.self_player = p
end
end
if not room.self_player then
room.self_player = room:GetPlayerBySeat(1)
end
room.cmdList = pd_data["cmdList"]
end

View File

@ -6,6 +6,8 @@ local Record_Event = {
Evt_Niao = "Niao",
Evt_Piao = "PiaoNiao",
Evt_Result = "Result",
Evt_FZTip = "FizTip",
Evt_GangScore = "GangScore",
}
return Record_Event

View File

@ -2,6 +2,7 @@ local MJPlayBackView = require("main.majiang.MJPlayBackView")
local EXRoomConfig = import(".EXRoomConfig")
local EXClearingView = import(".EXClearingView")
local HuCardImg = import(".HuCardImg")
local FZTipList = require("main.majiang.FZData")
local Record_Event = import(".RecordEvent")
@ -44,6 +45,8 @@ function M:InitView(url)
self._cmdmap[Record_Event.Evt_Niao] = self.CmdNiao
self._cmdmap[Record_Event.Evt_Piao] = self.CmdPiao
self._cmdmap[Record_Event.Evt_Result] = self.CmdResult
self._cmdmap[Record_Event.Evt_FZTip] = self.CmdFZTip
self._cmdmap[Record_Event.Evt_GangScore] = self.GangScore
self.com_logocType.selectedIndex = 2
end
@ -126,95 +129,132 @@ function M:ShowStep(index)
effects = "clip_peng"
elseif fz.type == FZType.Chi then
else
self:PlaySound("Main_Majiang", p.self_user.sex, "gang")
effects = "clip_gang"
end
local clip = UIPackage.CreateObjectFromURL(string.format("ui://Main_Majiang/%s", effects))
clip:SetSize(loader_HuEffect.width, loader_HuEffect.height)
loader_HuEffect:AddChild(clip)
clip:SetPlaySettings(0, -1, 1, -1)
clip.onPlayEnd:Add(function()
if clip.parent then
clip.parent:RemoveChild(clip)
end
clip:Dispose()
end)
clip.playing = true
coroutine.start(function()
coroutine.wait(0.3)
self._popEvent = true
end)
end
else
info:UpdateHandCard(false, true)
end
----多人胡的时候,同时显示胡
if step.cmd == Record_Event.Evt_Result then
--所有都显示胡吧,暂时没做胡和自摸的判断
if step.result_data.info_list[i].is_win then
local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)]
local loader_HuEffect = info2._viewLoader_selfHuCardEffect
local isZiMo = false
DataManager.CurrenRoom.isZiMoHu = isZiMo
local hu_sound = isZiMo and ("zimo") or ("hu")
printlog("声音====>>>", hu_sound)
self:PlaySound(self.asset_group, p.self_user.sex, hu_sound)
else
self:PlaySound("Main_Majiang", p.self_user.sex, "gang")
effects = "clip_gang"
end
local clip = UIPackage.CreateObjectFromURL(string.format("ui://Main_Majiang/%s", effects))
clip:SetSize(loader_HuEffect.width, loader_HuEffect.height)
loader_HuEffect:AddChild(clip)
clip:SetPlaySettings(0, -1, 1, -1)
clip.onPlayEnd:Add(function()
if clip.parent then
clip.parent:RemoveChild(clip)
end
clip:Dispose()
end)
clip.playing = true
coroutine.start(function()
coroutine.wait(0.3)
self._popEvent = true
end)
end
else
info:UpdateHandCard(false, true)
end
----多人胡的时候,同时显示胡
if step.cmd == Record_Event.Evt_Result then
--所有都显示胡吧,暂时没做胡和自摸的判断
if not self.result then
if step.result_data.info_list[i].is_win then
local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)]
local loader_HuEffect = info2._viewLoader_selfHuCardEffect
local isZiMo = false
DataManager.CurrenRoom.isZiMoHu = isZiMo
local hu_sound = isZiMo and ("zimo") or ("hu")
printlog("声音====>>>", hu_sound)
self:PlaySound(self.asset_group, p.self_user.sex, hu_sound)
local effects = isZiMo and ("tile_zimo") or ("tile_hu")
loader_HuEffect.visible = true
loader_HuEffect.url = "ui://Main_Majiang/" .. effects
loader_HuEffect:SetScale(2, 2)
local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3)
hu_tween:SetEase(EaseType.QuartOut)
hu_tween:OnComplete(function()
loader_HuEffect.visible = false
end)
end
end
end
if step.cmd == Record_Event.Evt_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_LiChuan/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, 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 effects = isZiMo and ("tile_zimo") or ("tile_hu")
loader_HuEffect.visible = true
loader_HuEffect.url = "ui://Main_Majiang/" .. effects
loader_HuEffect:SetScale(2, 2)
local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3)
hu_tween:SetEase(EaseType.QuartOut)
hu_tween:OnComplete(function()
loader_HuEffect.visible = false
end)
end
end
end
---显示提示按钮
local _ctr_tips = info._view:GetController('tip2')
local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips")
if step.cmd == Record_Event.Evt_FZTip then
if p.seat == step.seat then
local tip = step.tiplist
local _tlist = tip.tip_sortList
_lit_fanzi.itemRenderer = function(index, obj)
local type = obj:GetController('type')
if index == tip.tip_num then
type.selectedIndex = 0
else
index = index + 1
if _tlist[index].type == FZType.HU then
type.selectedIndex = 4
obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d',
_tlist[index].card)
elseif _tlist[index].type == FZType.Chi then
type.selectedIndex = FZType.Chi
for i = 1, 3 do
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
'ui://Main_Majiang/b202_%d',
_tlist[index].opcard[i])
end
elseif _tlist[index].type == FZType.Peng then
type.selectedIndex = FZType.Peng
for i = 1, 3 do
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
'ui://Main_Majiang/b202_%d',
_tlist[index].card)
end
else
for i = 1, 4 do
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
'ui://Main_Majiang/b202_%d',
_tlist[index].card)
end
type.selectedIndex = FZType.Gang
if _tlist[index].type == FZType.Gang_An then
obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00'
end
end
end
end
_ctr_tips.selectedIndex = 1
_lit_fanzi.numItems = tip.tip_num + 1
end
else
_ctr_tips.selectedIndex = 0
_lit_fanzi.numItems = 0
end
end
--统一在大结算时显示
if step.cmd == Record_Event.Evt_Win then
else
if self._win_pic then
self._win_pic:Dispose()
end
end
--统一在大结算时显示
if step.cmd == Record_Event.Evt_Niao then
local niao_list = step.niao
else
end
if step.cmd == Record_Event.Evt_Result then
print("lingmeng playerback", self.result)
if not self.result then
local result = step.result_data
self.result = EXClearingView.new(self, { flag_back = true })
self.result:InitData(0, self._room, result)
self.result._view.x = (GRoot.inst.width - self.result._view.width) * -0.5
self.result._view.width = GRoot.inst.width
self.result._view.height = GRoot.inst.height
self._anchor:AddChild(self.result._view)
self.result._view.visible = false
self.result._view.x = self._anchor.x * -1
self.result._view.y = self._anchor.y * -1
local liuju = result and result.liuju or nil
coroutine.start(function()
@ -301,30 +341,83 @@ function M:ShowStep(index)
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)]
--展示摸鸟
local niao_list = result.niao
self._niao = UIPackage.CreateObject("Extend_MJ_FuZhou", "Panel_Birds")
self._view:GetChild('jiangma_show'):AddChild(self._niao)
self._niao:Center()
local list_niao_card = self._niao:GetChild("Lst_birds")
list_niao_card:RemoveChildrenToPool()
for i = 1, #niao_list do
--顯示正面
local item = list_niao_card:AddItemFromPool()
local card = niao_list[i].card
item.icon = UIPackage.GetItemURL("Main_Majiang", "b202_" .. card)
if niao_list[i].score > 0 then
item:GetController("select").selectedIndex = 1
else
item:GetController("select").selectedIndex = 0
end
coroutine.wait(2 / #niao_list)
end
coroutine.wait(0.3)
self._niao:Dispose()
--统一显示弹出分数
for i = 1, #result.info_list do
local hu_info = result.info_list[i]
local head_info = self._player_info[self:GetPos(hu_info.seat)]
-- 扣分动画
head_info:UpdateScore(hu_info.total_score, true)
end
coroutine.wait(0.3)
if liuju then
self:PlayMJSound("liuju.mp3")
coroutine.wait(3)
self:PlayMJSound("end_music.mp3")
else
self:PlayMJSound("end_music.mp3")
end
coroutine.wait(0.5)
self.result._view.visible = true
end)
else
self.result._view.visible = true
end
end
if liuju then
self:PlayMJSound("liuju.mp3")
coroutine.wait(3)
self:PlayMJSound("end_music.mp3")
else
self:PlayMJSound("end_music.mp3")
end
coroutine.wait(0.5)
self.result._view.visible = true
end)
else
-- self.result._view.visible = true
end
end
--显示杠分
if step.cmd == Record_Event.Evt_GangScore then
local totalScoreList = step.totalScoreList
local playerList = step.playerList
local addScoreList = step.addScoreList
local scoreData = {}
for i = 1, #totalScoreList do
local p = {}
p.totalScore = totalScoreList[i]
p.player = playerList[i]
p.addScore = addScoreList[i]
scoreData[#scoreData + 1] = p
end
for _, p in pairs(scoreData) do
local player = self._room:GetPlayerById(p.player)
local infoView = self._player_info[self:GetPos(player.seat)]
player.cur_hp = p.totalScore
if p.addScore ~= 0 then
infoView:ScoreAnimation(p.addScore)
if player.cur_hp >= 0 then
infoView._view:GetChild("text_jifen").text = "+" .. player.cur_hp
else
infoView._view:GetChild("text_jifen").text = player.cur_hp
end
end
end
end
end
function M:GenerateAllStepData(data)
@ -426,6 +519,39 @@ function M:CmdPiao(cmd, index)
data.player_card_data[cmd.seat].piao_niao = cmd.data.num
end
function M:CmdFZTip(cmd, index)
local data = self:CopyLastStep(index)
data.cmd = cmd.cmd
data.seat = cmd.seat
local tiplist = FZTipList.new()
local list = cmd.data.tip_list
for i = 1, #list do
local dtip = list[i]
local tip = {}
tip.id = dtip["id"]
tip.weight = dtip["weight"]
tip.card = dtip["card"]
tip.type = dtip["type"]
tip.opcard = dtip["opcard"]
tiplist:AddTip(tip)
end
--排序规则,胡杠碰
tiplist:SortList(function(a, b)
return a.type < b.type
end)
data.tiplist = tiplist
data.weight = cmd.data.weight
end
function M:GangScore(cmd, index)
local data = self:CopyLastStep(index)
data.cmd = cmd.cmd
data.seat = cmd.seat
data.totalScoreList = cmd.data.totalScoreList
data.playerList = cmd.data.playerList
data.addScoreList = cmd.data.addScoreList
end
function M:CmdResult(cmd, index)
local data = self:CopyLastStep(index)
data.cmd = cmd.cmd

View File

@ -167,7 +167,7 @@ function M:FillPlayBackData(pd_data)
-- room.self_player = p
-- p.self_user = DataManager.SelfUser
-- else
if p.seat == 1 then room.self_player = p end
-- if p.seat == 1 then room.self_player = p end
local u = User.new()
u.account_id = pid
p.self_user = u
@ -189,6 +189,16 @@ function M:FillPlayBackData(pd_data)
room:AddPlayer(p)
end
local PlayerList = room.player_list
for i = 1, #PlayerList do
local p = PlayerList[i]
if DataManager.SelfUser.account_id == p.self_user.account_id then
room.self_player = p
end
end
if not room.self_player then
room.self_player = room:GetPlayerBySeat(1)
end
room.cmdList = pd_data["cmdList"]
end

View File

@ -6,6 +6,8 @@ local Record_Event = {
Evt_Niao = "Niao",
Evt_Piao = "PiaoNiao",
Evt_Result = "Result",
Evt_FZTip = "FizTip",
Evt_GangScore = "GangScore",
}
return Record_Event

View File

@ -2,6 +2,7 @@ local MJPlayBackView = require("main.majiang.MJPlayBackView")
local EXRoomConfig = import(".EXRoomConfig")
local EXClearingView = import(".EXClearingView")
local HuCardImg = import(".HuCardImg")
local FZTipList = require("main.majiang.FZData")
local Record_Event = import(".RecordEvent")
@ -44,6 +45,8 @@ function M:InitView(url)
self._cmdmap[Record_Event.Evt_Niao] = self.CmdNiao
self._cmdmap[Record_Event.Evt_Piao] = self.CmdPiao
self._cmdmap[Record_Event.Evt_Result] = self.CmdResult
self._cmdmap[Record_Event.Evt_FZTip] = self.CmdFZTip
self._cmdmap[Record_Event.Evt_GangScore] = self.GangScore
self.com_logocType.selectedIndex = 1
end
@ -126,95 +129,132 @@ function M:ShowStep(index)
effects = "clip_peng"
elseif fz.type == FZType.Chi then
else
self:PlaySound("Main_Majiang", p.self_user.sex, "gang")
effects = "clip_gang"
end
local clip = UIPackage.CreateObjectFromURL(string.format("ui://Main_Majiang/%s", effects))
clip:SetSize(loader_HuEffect.width, loader_HuEffect.height)
loader_HuEffect:AddChild(clip)
clip:SetPlaySettings(0, -1, 1, -1)
clip.onPlayEnd:Add(function()
if clip.parent then
clip.parent:RemoveChild(clip)
end
clip:Dispose()
end)
clip.playing = true
coroutine.start(function()
coroutine.wait(0.3)
self._popEvent = true
end)
end
else
info:UpdateHandCard(false, true)
end
----多人胡的时候,同时显示胡
if step.cmd == Record_Event.Evt_Result then
--所有都显示胡吧,暂时没做胡和自摸的判断
if step.result_data.info_list[i].is_win then
local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)]
local loader_HuEffect = info2._viewLoader_selfHuCardEffect
local isZiMo = false
DataManager.CurrenRoom.isZiMoHu = isZiMo
local hu_sound = isZiMo and ("zimo") or ("hu")
printlog("声音====>>>", hu_sound)
self:PlaySound(self.asset_group, p.self_user.sex, hu_sound)
else
self:PlaySound("Main_Majiang", p.self_user.sex, "gang")
effects = "clip_gang"
end
local clip = UIPackage.CreateObjectFromURL(string.format("ui://Main_Majiang/%s", effects))
clip:SetSize(loader_HuEffect.width, loader_HuEffect.height)
loader_HuEffect:AddChild(clip)
clip:SetPlaySettings(0, -1, 1, -1)
clip.onPlayEnd:Add(function()
if clip.parent then
clip.parent:RemoveChild(clip)
end
clip:Dispose()
end)
clip.playing = true
coroutine.start(function()
coroutine.wait(0.3)
self._popEvent = true
end)
end
else
info:UpdateHandCard(false, true)
end
----多人胡的时候,同时显示胡
if step.cmd == Record_Event.Evt_Result then
--所有都显示胡吧,暂时没做胡和自摸的判断
if not self.result then
if step.result_data.info_list[i].is_win then
local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)]
local loader_HuEffect = info2._viewLoader_selfHuCardEffect
local isZiMo = false
DataManager.CurrenRoom.isZiMoHu = isZiMo
local hu_sound = isZiMo and ("zimo") or ("hu")
printlog("声音====>>>", hu_sound)
self:PlaySound(self.asset_group, p.self_user.sex, hu_sound)
local effects = isZiMo and ("tile_zimo") or ("tile_hu")
loader_HuEffect.visible = true
loader_HuEffect.url = "ui://Main_Majiang/" .. effects
loader_HuEffect:SetScale(2, 2)
local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3)
hu_tween:SetEase(EaseType.QuartOut)
hu_tween:OnComplete(function()
loader_HuEffect.visible = false
end)
end
end
end
if step.cmd == Record_Event.Evt_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, 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 effects = isZiMo and ("tile_zimo") or ("tile_hu")
loader_HuEffect.visible = true
loader_HuEffect.url = "ui://Main_Majiang/" .. effects
loader_HuEffect:SetScale(2, 2)
local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3)
hu_tween:SetEase(EaseType.QuartOut)
hu_tween:OnComplete(function()
loader_HuEffect.visible = false
end)
end
end
end
---显示提示按钮
local _ctr_tips = info._view:GetController('tip2')
local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips")
if step.cmd == Record_Event.Evt_FZTip then
if p.seat == step.seat then
local tip = step.tiplist
local _tlist = tip.tip_sortList
_lit_fanzi.itemRenderer = function(index, obj)
local type = obj:GetController('type')
if index == tip.tip_num then
type.selectedIndex = 0
else
index = index + 1
if _tlist[index].type == FZType.HU then
type.selectedIndex = 4
obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d',
_tlist[index].card)
elseif _tlist[index].type == FZType.Chi then
type.selectedIndex = FZType.Chi
for i = 1, 3 do
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
'ui://Main_Majiang/b202_%d',
_tlist[index].opcard[i])
end
elseif _tlist[index].type == FZType.Peng then
type.selectedIndex = FZType.Peng
for i = 1, 3 do
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
'ui://Main_Majiang/b202_%d',
_tlist[index].card)
end
else
for i = 1, 4 do
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
'ui://Main_Majiang/b202_%d',
_tlist[index].card)
end
type.selectedIndex = FZType.Gang
if _tlist[index].type == FZType.Gang_An then
obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00'
end
end
end
end
_ctr_tips.selectedIndex = 1
_lit_fanzi.numItems = tip.tip_num + 1
end
else
_ctr_tips.selectedIndex = 0
_lit_fanzi.numItems = 0
end
end
--统一在大结算时显示
if step.cmd == Record_Event.Evt_Win then
else
if self._win_pic then
self._win_pic:Dispose()
end
end
--统一在大结算时显示
if step.cmd == Record_Event.Evt_Niao then
local niao_list = step.niao
else
end
if step.cmd == Record_Event.Evt_Result then
print("lingmeng playerback", self.result)
if not self.result then
local result = step.result_data
self.result = EXClearingView.new(self, { flag_back = true })
self.result:InitData(0, self._room, result)
self.result._view.x = (GRoot.inst.width - self.result._view.width) * -0.5
self.result._view.width = GRoot.inst.width
self.result._view.height = GRoot.inst.height
self._anchor:AddChild(self.result._view)
self.result._view.visible = false
self.result._view.x = self._anchor.x * -1
self.result._view.y = self._anchor.y * -1
local liuju = result and result.liuju or nil
coroutine.start(function()
@ -301,30 +341,83 @@ function M:ShowStep(index)
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)]
--展示摸鸟
local niao_list = result.niao
self._niao = UIPackage.CreateObject("Extend_MJ_FuZhou", "Panel_Birds")
self._view:GetChild('jiangma_show'):AddChild(self._niao)
self._niao:Center()
local list_niao_card = self._niao:GetChild("Lst_birds")
list_niao_card:RemoveChildrenToPool()
for i = 1, #niao_list do
--顯示正面
local item = list_niao_card:AddItemFromPool()
local card = niao_list[i].card
item.icon = UIPackage.GetItemURL("Main_Majiang", "b202_" .. card)
if niao_list[i].score > 0 then
item:GetController("select").selectedIndex = 1
else
item:GetController("select").selectedIndex = 0
end
coroutine.wait(2 / #niao_list)
end
coroutine.wait(0.3)
self._niao:Dispose()
--统一显示弹出分数
for i = 1, #result.info_list do
local hu_info = result.info_list[i]
local head_info = self._player_info[self:GetPos(hu_info.seat)]
-- 扣分动画
head_info:UpdateScore(hu_info.total_score, true)
end
coroutine.wait(0.3)
if liuju then
self:PlayMJSound("liuju.mp3")
coroutine.wait(3)
self:PlayMJSound("end_music.mp3")
else
self:PlayMJSound("end_music.mp3")
end
coroutine.wait(0.5)
self.result._view.visible = true
end)
else
self.result._view.visible = true
end
end
if liuju then
self:PlayMJSound("liuju.mp3")
coroutine.wait(3)
self:PlayMJSound("end_music.mp3")
else
self:PlayMJSound("end_music.mp3")
end
coroutine.wait(0.5)
self.result._view.visible = true
end)
else
-- self.result._view.visible = true
end
end
--显示杠分
if step.cmd == Record_Event.Evt_GangScore then
local totalScoreList = step.totalScoreList
local playerList = step.playerList
local addScoreList = step.addScoreList
local scoreData = {}
for i = 1, #totalScoreList do
local p = {}
p.totalScore = totalScoreList[i]
p.player = playerList[i]
p.addScore = addScoreList[i]
scoreData[#scoreData + 1] = p
end
for _, p in pairs(scoreData) do
local player = self._room:GetPlayerById(p.player)
local infoView = self._player_info[self:GetPos(player.seat)]
player.cur_hp = p.totalScore
if p.addScore ~= 0 then
infoView:ScoreAnimation(p.addScore)
if player.cur_hp >= 0 then
infoView._view:GetChild("text_jifen").text = "+" .. player.cur_hp
else
infoView._view:GetChild("text_jifen").text = player.cur_hp
end
end
end
end
end
function M:GenerateAllStepData(data)
@ -426,6 +519,39 @@ function M:CmdPiao(cmd, index)
data.player_card_data[cmd.seat].piao_niao = cmd.data.num
end
function M:CmdFZTip(cmd, index)
local data = self:CopyLastStep(index)
data.cmd = cmd.cmd
data.seat = cmd.seat
local tiplist = FZTipList.new()
local list = cmd.data.tip_list
for i = 1, #list do
local dtip = list[i]
local tip = {}
tip.id = dtip["id"]
tip.weight = dtip["weight"]
tip.card = dtip["card"]
tip.type = dtip["type"]
tip.opcard = dtip["opcard"]
tiplist:AddTip(tip)
end
--排序规则,胡杠碰
tiplist:SortList(function(a, b)
return a.type < b.type
end)
data.tiplist = tiplist
data.weight = cmd.data.weight
end
function M:GangScore(cmd, index)
local data = self:CopyLastStep(index)
data.cmd = cmd.cmd
data.seat = cmd.seat
data.totalScoreList = cmd.data.totalScoreList
data.playerList = cmd.data.playerList
data.addScoreList = cmd.data.addScoreList
end
function M:CmdResult(cmd, index)
local data = self:CopyLastStep(index)
data.cmd = cmd.cmd

View File

@ -158,7 +158,7 @@ function M:FillPlayBackData(pd_data)
-- room.self_player = p
-- p.self_user = DataManager.SelfUser
-- else
if p.seat == 1 then room.self_player = p end
-- if p.seat == 1 then room.self_player = p end
local u = User.new()
u.account_id = pid
p.self_user = u
@ -180,6 +180,16 @@ function M:FillPlayBackData(pd_data)
room:AddPlayer(p)
end
local PlayerList = room.player_list
for i = 1, #PlayerList do
local p = PlayerList[i]
if DataManager.SelfUser.account_id == p.self_user.account_id then
room.self_player = p
end
end
if not room.self_player then
room.self_player = room:GetPlayerBySeat(1)
end
room.cmdList = pd_data["cmdList"]
end

View File

@ -6,6 +6,8 @@ local Record_Event = {
Evt_Niao = "Niao",
Evt_Piao = "PiaoNiao",
Evt_Result = "Result",
Evt_FZTip = "FizTip",
Evt_GangScore = "GangScore",
}
return Record_Event

View File

@ -122,7 +122,7 @@ function M:InitLastCard(cardList, mustPutMaxCard)
return
end
if self.type == 0 then
ViewUtil.ErrorTip(-1, "上一份牌型判断错误")
-- ViewUtil.ErrorTip(-1, "上一份牌型判断错误")
end
end

View File

@ -305,32 +305,60 @@ function M:LoadConfigToDetail(data, hpdata)
returnString = string.format("%s人数%s人", returnString, configData.maxPlayers)
if configData.leaf then
returnString = string.format("%s,%s", returnString, configData.leaf == 1 and "十五张手牌" or "十六张手牌")
returnString = string.format("%s,%s", returnString, configData.leaf == 1 and "15张手牌" or "16张手牌")
end
if configData.showlength then
returnString = string.format("%s,%s", returnString, configData.showlength == 0 and "不显示牌数" or "显示牌数")
end
if configData.planeNoBelt and configData.threeNoBelt then
if configData.planeNoBelt == 0 and configData.threeNoBelt == 0 then
returnString = string.format("%s,%s", returnString, "三张、飞机必带")
elseif configData.planeNoBelt == 0 then
returnString = string.format("%s,%s", returnString, "三张必带、飞机可不带")
elseif configData.threeNoBelt == 0 then
returnString = string.format("%s,%s", returnString, "三张可不带、飞机必带")
else
returnString = string.format("%s,%s", returnString, "三张、飞机可不带")
end
else
if configData.planeNoBelt then
returnString = string.format("%s%s", returnString, configData.planeNoBelt == 0 and "" or ",飞机可不带")
end
if configData.threeNoBelt then
returnString = string.format("%s%s", returnString, configData.threeNoBelt == 0 and "" or ",三张可不带")
end
end
if configData.planelack and configData.threelack then
if configData.planelack == 0 and configData.threelack == 0 then
returnString = string.format("%s,%s", returnString, "三张、飞机不可少带接完")
elseif configData.planelack == 0 then
returnString = string.format("%s,%s", returnString, "三张不可少带接完、飞机可少带接完")
elseif configData.threelack == 0 then
returnString = string.format("%s,%s", returnString, "三张可少带接完、飞机不可少带接完")
else
returnString = string.format("%s,%s", returnString, "三张、飞机可少带接完")
end
else
if configData.planelack then
returnString = string.format("%s%s", returnString, configData.planelack == 0 and "" or ",飞机可少带")
end
if configData.threelack then
returnString = string.format("%s%s", returnString, configData.threelack == 0 and "" or ",三张可少带")
end
end
if configData.fourDaiThree then
returnString = string.format("%s%s", returnString, configData.fourDaiThree and ",四带三" or "")
end
if configData.heartten then
returnString = string.format("%s%s", returnString, configData.heartten == 1 and "" or ",红桃10扎鸟")
end
if configData.rule then
returnString = string.format("%s%s", returnString,
configData.rule == 1 and ",黑桃三必出" or "")
end
if configData.planeNoBelt then
returnString = string.format("%s%s", returnString, configData.planeNoBelt == 0 and "" or ",飞机可不带")
end
if configData.threeNoBelt then
returnString = string.format("%s%s", returnString, configData.threeNoBelt == 0 and "" or ",三张可不带")
end
if configData.planelack then
returnString = string.format("%s%s", returnString, configData.planelack == 0 and "" or ",飞机可少带")
end
if configData.threelack then
returnString = string.format("%s%s", returnString, configData.threelack == 0 and "" or ",三张可少带")
end
if configData.fourDaiThree then
returnString = string.format("%s%s", returnString, configData.fourDaiThree and "" or ",四带三")
end
if configData.heartten then
returnString = string.format("%s%s", returnString, configData.heartten == 1 and "" or ",红桃扎鸟")
configData.rule == 1 and ",首局黑桃三必出" or "")
end
if configData.specilAdd then
returnString = string.format("%s%s", returnString, configData.specilAdd == 0 and "" or ",特殊加分")
returnString = string.format("%s%s", returnString, configData.specilAdd == 0 and "" or ",只出一张加扣10分出2-3张加扣5分")
end
returnString = returnString .. IGameInfo.LoadConfigToDetail(self, configData, hpData)

View File

@ -243,9 +243,9 @@ function M:OnPlaySuccCheck(evt_data)
local player = self._room:GetPlayerBySeat(seat)
local out_card_list = self:ChangeCodeByFrom(cards, true)
player.hand_count = remain
if remain ~= 0 then
self._cardCheck:InitLastCard(out_card_list)
end
-- if remain ~= 0 then
self._cardCheck:InitLastCard(out_card_list)
-- end
local card_type, number, length, plan_three_count = self:GetCardListInfo(out_card_list)
player.out_card_list = self:GetSortOutCardList(out_card_list, card_type, number, plan_three_count)
DispatchEvent(self._dispatcher, RunFast_GameEvent.OnPlaySucc, player, remain, card_type, number, otherList,

View File

@ -664,6 +664,7 @@ function M:EventInit()
if index == 1 then
self.caozuo = 0
end
coroutine.stop(self._leftClock_continue)
local head_info = self._player_info[index]
if head_info._view:GetChild("shengyu") ~= nil then
@ -707,7 +708,7 @@ function M:EventInit()
-- end
-- end
self:_Effect(self._cardCheck.type, p)
print("lingmeng end _Effect", self._cardCheck.type)
self:PlaySound(p.self_user.sex,
self:GetSoundFileName(self._cardCheck.type, num, self._room.is_new_bout))
-- self:PlaySound(p.self_user.sex, self:GetSoundFileName(cardstype, num, self._room.is_new_bout))

View File

@ -109,6 +109,7 @@ function M:init(url, data, roomid, over, win_seat, dissolve, remaincards)
self._view:GetChild('text_roomID').text = room.room_id
self._view:GetChild('text_time').text = os.date('%m-%d %H:%M', os.time())
self._view:GetChild('text_groupID').text = room.group_id or 0
self._view:GetController('num').selectedIndex = #data == 2 and 0 or 1
for i = 1, #data do
local info = data[i]
local playerInfo = room:GetPlayerBySeat(info.seat)

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="127,74" extention="Button">
<displayList>
<image id="n5_66fw" name="n5" src="66fw1jo" fileName="component/head/voice/图层 1.png" xy="81,1" flip="hz"/>
<image id="n6_66fw" name="n6" src="66fw1jp" fileName="component/head/voice/图层 2.png" xy="63,22" flip="hz"/>
<image id="n7_66fw" name="n7" src="66fw1jq" fileName="component/head/voice/图层 3.png" xy="49,8" flip="hz"/>
<image id="n8_66fw" name="n8" src="66fw1jq" fileName="component/head/voice/图层 3.png" xy="30,9" flip="hz"/>
<text id="n9_66fw" name="title" xy="-24,10" size="48,54" font="Arial" fontSize="40" color="#2f891e" bold="true" text="60">
<relation target="" sidePair="right-left"/>
</text>
</displayList>
<Button/>
<transition name="t0" autoPlay="true" autoPlayRepeat="-1">
<item time="0" type="Visible" target="n6_66fw" value="true"/>
<item time="0" type="Visible" target="n7_66fw" value="true"/>
<item time="0" type="Visible" target="n8_66fw" value="true"/>
<item time="3" type="Visible" target="n8_66fw" value="false"/>
<item time="6" type="Visible" target="n7_66fw" value="false"/>
<item time="9" type="Visible" target="n6_66fw" value="false"/>
<item time="12" type="Visible" target="n6_66fw" value="true"/>
<item time="15" type="Visible" target="n7_66fw" value="true"/>
<item time="18" type="Visible" target="n8_66fw" value="true"/>
</transition>
</component>

View File

@ -2255,6 +2255,7 @@
<image id="bm7d7jg1" name="vip_ring_ract_06.png" path="/component/hudong/jiezhi/"/>
<image id="bm7d7jg2" name="vip_ring_ract_07.png" path="/component/hudong/jiezhi/"/>
<movieclip id="bm7d7jg3" name="diamo.jta" path="/component/hudong/jiezhi/" exported="true" atlas="4"/>
<component id="100mb7jg4" name="VoiceMask2.xml" path="/component/head/" exported="true"/>
</resources>
<publish name="Common" path="..\wb_unity_pro\Assets\ART\base\common\ui" packageCount="2" maxAtlasSize="2048">
<atlas name="默认" index="0"/>

View File

@ -76,7 +76,7 @@
<image id="n57_n9qr" name="n57" src="n9qrclk" fileName="Main_new/Main/Image/gamechatback1(2).png" xy="-148,8" size="157,65" scale="1.3,1.3" flip="hz">
<gearDisplay controller="mask_voice" pages="1"/>
</image>
<component id="n58_n9qr" name="mask_voice" src="gq7m61" fileName="component/head/VoiceMask(1).xml" pkg="27vd145b" xy="-132,14" touchable="false">
<component id="n58_n9qr" name="mask_voice" src="100mb7jg4" fileName="component/head/VoiceMask2.xml" pkg="27vd145b" xy="-112,14" touchable="false">
<gearDisplay controller="mask_voice" pages="1"/>
</component>
<image id="n59_n9qr" name="n59" src="n9qrclp" fileName="Main_New/Image/coin.png" xy="-63,85" size="48,37">

View File

@ -69,7 +69,7 @@
<gearDisplay controller="shengyu" pages="1"/>
<relation target="" sidePair="left-center,right-center,top-bottom"/>
</component>
<component id="n55_n9qr" name="chat" src="gq7m6b" fileName="component/head/MsgBubble2.xml" pkg="27vd145b" xy="72,36" size="232,67" touchable="false"/>
<component id="n55_n9qr" name="chat" src="gq7m6b" fileName="component/head/MsgBubble2.xml" pkg="27vd145b" xy="72,36" size="232,67" alpha="0" touchable="false"/>
<component id="n56_n9qr" name="face" src="gq7m5x" fileName="component/head/Face3.xml" pkg="27vd145b" xy="0,0" size="144,144" alpha="0" touchable="false">
<relation target="" sidePair="width-width,height-height"/>
</component>

View File

@ -8,7 +8,7 @@
<controller name="zidongtishi" pages="0,,1," selected="0"/>
<controller name="voice" pages="0,,1," selected="0"/>
<controller name="Inclear" pages="0,,1," selected="0"/>
<controller name="witness" pages="0,,1," selected="0"/>
<controller name="witness" pages="0,,1," selected="1"/>
<displayList>
<graph id="n141_ckvb" name="bg_mask" xy="6,7" size="2532,751" type="rect" lineSize="0" fillColor="#00ffffff"/>
<component id="n76_rqeb" name="mask" src="prgzeq" fileName="component/mask.xml" xy="14,1956" alpha="0">
@ -250,12 +250,12 @@
<gearDisplay controller="state" pages="4"/>
<relation target="" sidePair="center-center,bottom-bottom"/>
</text>
<component id="n161_ukp7" name="n161" src="sx7x14f" fileName="Main_new/Main/Component/btn_bg.xml" pkg="v0j9abjy" xy="0,0" size="2532,1170">
<component id="n161_ukp7" name="n161" src="bm7dtcrd" fileName="Main_New/Component/btn_bg.xml" xy="0,0" size="2532,1170">
<gearDisplay controller="witness" pages="1"/>
<relation target="" sidePair="width-width,height-height"/>
<Button controller="witness" page="0"/>
</component>
<component id="n162_ukp7" name="comp_witness" src="bm7dtcr7" fileName="Main_New/Component/comp_witness.xml" xy="2537,30">
<component id="n162_ukp7" name="comp_witness" src="bm7dtcr7" fileName="Main_New/Component/comp_witness.xml" xy="2097,30">
<gearDisplay controller="witness" pages="1"/>
<gearXY controller="witness" pages="0" values="2537,30" default="2097,30" tween="true" ease="Linear" duration="0.5"/>
</component>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="1620,180">
<controller name="type" pages="0,玩法匹配,1,加入房间,6,正在游戏" selected="1"/>
<controller name="num" pages="0,,1,,2," selected="0"/>
<controller name="type" pages="0,玩法匹配,1,加入房间,6,正在游戏" selected="0"/>
<controller name="num" pages="0,,1,,2," selected="2"/>
<displayList>
<image id="n23_jrro" name="n23" src="q2iu7d5k" fileName="Main/Image/bg_mainListChild(1).png" xy="0,0" size="1326,180">
<relation target="" sidePair="width-width,height-height"/>
@ -18,21 +18,22 @@
<relation target="" sidePair="left-right"/>
<Button icon="ui://htcn7v3rofwa7d6j"/>
</component>
<component id="n15_in3i" name="player1" src="86ct7cwk" fileName="Main/Component/btn_head.xml" xy="12,51" size="90,75" group="n29_q2iu">
<component id="n15_in3i" name="player1" src="86ct7cwk" fileName="Main/Component/btn_head.xml" xy="12,12" size="90,75" group="n29_q2iu">
<gearDisplay controller="num" pages="0,1,2"/>
<gearXY controller="num" pages="0,1" values="12,51|62,12" default="12,12"/>
</component>
<component id="n16_in3i" name="player2" src="86ct7cwk" fileName="Main/Component/btn_head.xml" xy="108,51" size="90,75" group="n29_q2iu">
<gearDisplay controller="num" pages="0,2"/>
<gearXY controller="num" pages="0" values="108,51" default="108,12"/>
<component id="n16_in3i" name="player2" src="86ct7cwk" fileName="Main/Component/btn_head.xml" xy="108,12" size="90,75" group="n29_q2iu">
<gearDisplay controller="num" pages="0,1,2"/>
<gearXY controller="num" pages="0,1" values="108,51|12,90" default="108,12"/>
</component>
<component id="n17_in3i" name="player3" src="86ct7cwk" fileName="Main/Component/btn_head.xml" xy="12,90" size="90,72" group="n29_q2iu">
<component id="n17_in3i" name="player3" src="86ct7cwk" fileName="Main/Component/btn_head.xml" xy="11,90" size="90,72" group="n29_q2iu">
<gearDisplay controller="num" pages="1,2"/>
<gearXY controller="num" pages="2" values="11,90" default="109,90"/>
</component>
<component id="n18_in3i" name="player4" src="86ct7cwk" fileName="Main/Component/btn_head.xml" xy="108,90" size="90,72" group="n29_q2iu">
<gearDisplay controller="num" pages="1,2"/>
<gearDisplay controller="num" pages="2"/>
</component>
<group id="n29_q2iu" name="n29" xy="12,51" size="186,111"/>
<group id="n29_q2iu" name="n29" xy="11,12" size="187,150"/>
<richtext id="n2_in3i" name="game_type" xy="206,3" size="754,72" group="n30_q2iu" font="FZLanTingHeiS-R-GB" fontSize="54" vAlign="middle" leading="0" autoSize="none" bold="true" text="抚州麻将123123456">
<relation target="" sidePair="width-width"/>
</richtext>

View File

@ -47,7 +47,7 @@
<image id="n17_100mb" name="n17" src="100mb7jg8" fileName="component/GiftDiamond/Image/Vector.png" xy="900,383" group="n14_100mb">
<relation target="" sidePair="left-left,top-top%"/>
</image>
<text id="n18_100mb" name="text_name" xy="977,376" size="100,64" group="n14_100mb" font="Arial" fontSize="48" color="#833035" text="名字">
<text id="n18_100mb" name="text_name" xy="977,376" size="100,64" group="n14_100mb" font="Arial" fontSize="48" color="#833035" autoClearText="true" text="名字">
<relation target="n17_100mb" sidePair="left-right,top-top"/>
</text>
<group id="n14_100mb" name="page0" xy="630,118" size="1318,900" advanced="true">
@ -85,28 +85,34 @@
</component>
<component id="n32_100mb" name="n32" src="100mb7jgl" fileName="component/GiftDiamond/Component/btn_tag.xml" xy="592,200" group="n30_100mb">
<relation target="n31_100mb" sidePair="left-right,top-top"/>
<Button title="入记录" controller="detail" page="1"/>
<Button title="入记录" controller="detail" page="1"/>
</component>
<image id="n41_100mb" name="n41" src="100mb7jgm" fileName="component/GiftDiamond/Image/bg_main4.png" xy="264,296" group="n30_100mb">
<relation target="" sidePair="width-width%,height-height%"/>
<relation target="n34_100mb" sidePair="topext-top"/>
<relation target="n46_100mb" sidePair="bottomext-bottom"/>
<relation target="n33_100mb" sidePair="topext-top"/>
</image>
<image id="n33_100mb" name="n33" src="100mb7jgn" fileName="component/GiftDiamond/Image/Subtract.png" xy="264,294" group="n34_100mb">
<relation target="" sidePair="width-width%,height-height%"/>
<relation target="n31_100mb" sidePair="left-left,top-bottom"/>
</image>
<text id="n35_100mb" name="n35" xy="380,306" size="172,56" group="n34_100mb" font="FZCuYuan-M03" fontSize="42" color="#ffffff" text="转出昵称">
<text id="n35_100mb" name="n35" xy="380,306" size="172,56" group="n34_100mb" font="FZCuYuan-M03" fontSize="42" color="#ffffff" text="收入昵称">
<gearText controller="detail" pages="1" values="转出昵称" default="收入昵称"/>
<relation target="n33_100mb" sidePair="middle-middle,left-left%"/>
</text>
<text id="n36_100mb" name="n36" xy="714,306" size="126,56" group="n34_100mb" font="FZCuYuan-M03" fontSize="42" color="#ffffff" text="转出ID">
<text id="n36_100mb" name="n36" xy="714,306" size="126,56" group="n34_100mb" font="FZCuYuan-M03" fontSize="42" color="#ffffff" text="收入ID">
<gearText controller="detail" pages="1" values="转出ID" default="收入ID"/>
<relation target="n33_100mb" sidePair="middle-middle,left-left%"/>
</text>
<text id="n37_100mb" name="n37" xy="1088,306" size="88,56" group="n34_100mb" font="FZCuYuan-M03" fontSize="42" color="#ffffff" text="时间">
<relation target="n33_100mb" sidePair="middle-middle,left-left%"/>
</text>
<text id="n38_100mb" name="n38" xy="1410,306" size="172,56" group="n34_100mb" font="FZCuYuan-M03" fontSize="42" color="#ffffff" text="收入昵称">
<text id="n38_100mb" name="n38" xy="1410,306" size="172,56" group="n34_100mb" font="FZCuYuan-M03" fontSize="42" color="#ffffff" text="转出昵称">
<gearText controller="detail" pages="1" values="收入昵称" default="转出昵称"/>
<relation target="n33_100mb" sidePair="middle-middle,left-left%"/>
</text>
<text id="n39_100mb" name="n39" xy="1751,306" size="126,56" group="n34_100mb" font="FZCuYuan-M03" fontSize="42" color="#ffffff" text="收入ID">
<text id="n39_100mb" name="n39" xy="1751,306" size="126,56" group="n34_100mb" font="FZCuYuan-M03" fontSize="42" color="#ffffff" text="转出ID">
<gearText controller="detail" pages="1" values="收入ID" default="转出ID"/>
<relation target="n33_100mb" sidePair="middle-middle,left-left%"/>
</text>
<text id="n40_100mb" name="n40" xy="2044,306" size="88,56" group="n34_100mb" font="FZCuYuan-M03" fontSize="42" color="#ffffff" text="数量">
@ -114,16 +120,16 @@
</text>
<group id="n34_100mb" name="titleList" xy="264,294" size="2004,72" group="n30_100mb"/>
<component id="n42_100mb" name="btn_nextPage" src="100mb7jgo" fileName="Record/Component/btn_nextPage.xml" xy="2018,1004" group="n45_100mb">
<relation target="" sidePair="right-right%,bottom-bottom%"/>
<relation target="" sidePair="right-right%,top-bottom%"/>
</component>
<component id="n43_100mb" name="btn_lastPage" src="100mb7jgr" fileName="Record/Component/btn_lastPage.xml" xy="1758,1004" group="n45_100mb">
<relation target="" sidePair="right-right%,bottom-bottom%"/>
<relation target="" sidePair="right-right%,top-bottom%"/>
</component>
<text id="n44_100mb" name="text_pageNum" xy="1584,1026" size="130,66" group="n45_100mb" scale="1.3,1" font="Arial" fontSize="50" autoClearText="true" text="1/212">
<relation target="" sidePair="right-right%,bottom-bottom"/>
<relation target="" sidePair="right-right%,top-bottom%"/>
</text>
<group id="n45_100mb" name="page" xy="1584,1004" size="684,100" group="n30_100mb" advanced="true"/>
<list id="n46_100mb" name="list" xy="264,370" size="2004,612" group="n30_100mb" layout="pagination" lineGap="16" lineItemCount="1" lineItemCount2="4" defaultItem="ui://2d9xdj6z100mb7jgu" autoItemSize="true" align="center" vAlign="middle" autoClearItems="true">
<list id="n46_100mb" name="list" xy="264,370" size="2004,612" group="n30_100mb" layout="pagination" lineGap="16" lineItemCount="1" lineItemCount2="4" defaultItem="ui://2d9xdj6z100mb7jgu" autoItemSize="true" align="center" autoClearItems="true">
<relation target="" sidePair="width-width%,height-height%"/>
<relation target="n34_100mb" sidePair="top-bottom"/>
<relation target="n33_100mb" sidePair="top-bottom"/>

View File

@ -691,7 +691,7 @@
<component id="n9qr7d9i" name="btn_close.xml" path="/component/"/>
<component id="ukp77d9j" name="listChild_recordMain.xml" path="/component/Record/Component/"/>
<component id="ukp77d9l" name="listChild_recordListChild.xml" path="/component/Record/Component/"/>
<component id="if107jg4" name="GiftDiamond.xml" path="/component/GiftDiamond/Component/" exported="true"/>
<component id="if107jg4" name="GiftDiamond.xml" path="/component/GiftDiamond/" exported="true"/>
<component id="if107d9q" name="service.xml" path="/component/service/" exported="true"/>
<component id="if107d9r" name="listChild_one.xml" path="/component/service/Component/"/>
<image id="if107d9s" name="bg.png" path="/images/pop_oneInput/" scale="9grid" scale9grid="14,135,28,270"/>

View File

@ -5,6 +5,7 @@
<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"/>
<controller name="tip2" 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"/>
@ -115,5 +116,10 @@
<component id="n71_r8cy" name="area_clip_pg" src="gq7m8i" fileName="Main_style_2/Component1.xml" xy="1884,439" pivot="0.5,0.5" size="336,290" touchable="false">
<relation target="" sidePair="width-width%,height-height%"/>
</component>
<list id="n73_100mb" name="Comp_Back_FZTips" xy="1383,386" pivot="0.5,0.5" size="1540,396" scale="0.7,0.7" rotation="-90" layout="flow_hz" overflow="hidden" scroll="horizontal" colGap="16" lineItemCount="3" defaultItem="ui://v0j9abjynee3119" align="right" renderOrder="descent" autoClearItems="true">
<relation target="" sidePair="width-width,height-height"/>
<item/>
<item/>
</list>
</displayList>
</component>

View File

@ -9,6 +9,7 @@
<remark page="1" value="3人"/>
<remark page="2" value="4人"/>
</controller>
<controller name="tip2" pages="0,,1," selected="0"/>
<displayList>
<list id="n37_gi99" name="List_HandCard" xy="687,31" size="1076,99" touchable="false" layout="row" selectionMode="none" colGap="-9" defaultItem="ui://v0j9abjygi9910q" autoClearItems="true">
<relation target="" sidePair="width-width%,height-height%,top-top"/>
@ -94,5 +95,14 @@
<component id="n57_r8cy" name="area_clip_pg" src="gq7m8i" fileName="Main_style_2/Component1.xml" xy="1098,98" pivot="0.5,0.5" size="336,290" touchable="false">
<relation target="" sidePair="width-width%,height-height%"/>
</component>
<list id="n59_100mb" name="Comp_Back_FZTips" xy="503,140" size="2266,202" scale="0.7,0.7" layout="flow_hz" overflow="hidden" scroll="horizontal" colGap="16" defaultItem="ui://v0j9abjynee3119" vAlign="bottom" renderOrder="descent" autoClearItems="true">
<gearDisplay controller="tip2" pages="1"/>
<relation target="" sidePair="width-width,height-height"/>
<item/>
<item/>
<item/>
<item/>
<item/>
</list>
</displayList>
</component>

View File

@ -5,13 +5,14 @@
<controller name="site" pages="0,2-1,1,2-2" selected="0"/>
<controller name="getCard" pages="0,,1," selected="0"/>
<controller name="seletedGetCard" pages="0,,1," selected="0"/>
<controller name="tip" pages="0,,1," selected="0"/>
<controller name="tip" pages="0,,1," selected="1"/>
<controller name="showGuoHu" pages="0,,1," selected="0"/>
<controller name="cStie" exported="true" pages="0,,1,,2," selected="0">
<remark page="0" value="2人"/>
<remark page="1" value="3人"/>
<remark page="2" value="4人"/>
</controller>
<controller name="tip2" pages="0,,1," selected="0"/>
<displayList>
<list id="n33_gi99" name="List_FZ" xy="58,949" size="2468,214" touchable="false" layout="row" selectionMode="none" colGap="-4" defaultItem="ui://v0j9abjygi9910f" autoItemSize="false" vAlign="bottom" autoClearItems="true">
<relation target="" sidePair="width-width%,height-height%,left-left,bottom-bottom"/>
@ -113,6 +114,15 @@
<gearDisplay controller="tip" pages="1"/>
<relation target="" sidePair="bottom-bottom"/>
</component>
<list id="n63_100mb" name="Comp_Back_FZTips" xy="54,743" size="2266,202" layout="flow_hz" overflow="hidden" scroll="horizontal" colGap="16" defaultItem="ui://v0j9abjynee3119" align="right" vAlign="bottom" renderOrder="descent" autoClearItems="true">
<gearDisplay controller="tip2" pages="1"/>
<relation target="" sidePair="width-width,height-height"/>
<item/>
<item/>
<item/>
<item/>
<item/>
</list>
<image id="n41_kzuz" name="n41" src="kzuz142" fileName="Main_new/Main/Image/opt_hu_tips.png" xy="457,809" size="1314,208" group="n48_kzuz" aspect="true"/>
<component id="n45_kzuz" name="btn_guohu" src="kzuz148" fileName="Main_new/Main/Component/btn_guohu.xml" xy="2248,859" size="200,107" group="n48_kzuz" aspect="true">
<Button controller="showGuoHu" page="0"/>

View File

@ -5,6 +5,7 @@
<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"/>
<controller name="tip2" 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/>
@ -97,5 +98,11 @@
<component id="n69_r8cy" name="area_clip_pg" src="gq7m8i" fileName="Main_style_2/Component1.xml" xy="343,439" pivot="0.5,0.5" size="336,290" touchable="false">
<relation target="" sidePair="width-width%,height-height%"/>
</component>
<list id="n70_100mb" name="Comp_Back_FZTips" xy="-359,290" pivot="0.5,0.5" size="1540,396" scale="0.7,0.7" rotation="90" layout="flow_hz" overflow="hidden" scroll="horizontal" colGap="16" lineItemCount="3" defaultItem="ui://v0j9abjynee3119" align="right" renderOrder="descent" autoClearItems="true">
<relation target="" sidePair="width-width,height-height"/>
<item/>
<item/>
<item/>
</list>
</displayList>
</component>

View File

@ -1,41 +1,41 @@
[
{
"ver": "1.0.45",
"ver": "1.0.47",
"name": "跑得快",
"check": true,
"version": "1.0.45",
"version": "1.0.47",
"game_id": "66",
"bundle": "extend/poker/runfast"
},
{
"ver": "1.0.63",
"ver": "1.0.66",
"name": "南城麻将",
"check": true,
"version": "1.0.63",
"version": "1.0.66",
"game_id": "86",
"bundle": "extend/majiang/nancheng"
},
{
"ver": "1.0.66",
"ver": "1.0.69",
"name": "黎川麻将",
"check": true,
"version": "1.0.66",
"version": "1.0.69",
"game_id": "87",
"bundle": "extend/majiang/lichuan"
},
{
"ver": "1.0.50",
"ver": "1.0.53",
"name": "金溪麻将",
"check": true,
"version": "1.0.50",
"version": "1.0.53",
"game_id": "88",
"bundle": "extend/majiang/jinxi"
},
{
"ver": "1.0.49",
"ver": "1.0.52",
"name": "抚州麻将",
"check": true,
"version": "1.0.49",
"version": "1.0.52",
"game_id": "89",
"bundle": "extend/majiang/fuzhou"
}

View File

@ -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"
}
]