增加宁乡麻将玩法
|
|
@ -16,7 +16,7 @@ end
|
|||
local _LocalConfigAllGame={
|
||||
10,13,14,15,22,33,65,66,67,77,88,
|
||||
|
||||
101,102,103,104,105,106,107,108,
|
||||
101,102,103,104,105,106,107,108,16,
|
||||
|
||||
301,201,202,203
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
local CS_GameEvent = {
|
||||
-- 发牌
|
||||
SendCards = "SendCards",
|
||||
|
||||
EventTurn = "EventTurn",
|
||||
|
||||
OutHint = "OutHint",
|
||||
|
||||
GetCard = "GetCard",
|
||||
|
||||
OutCard = "OutCard",
|
||||
|
||||
FangziAction = "FangziAction",
|
||||
|
||||
FZTips = "FZTips",
|
||||
-- 胡牌
|
||||
ZPHuCard = "ZPHuCard",
|
||||
-- 结算事件
|
||||
ZPResult1 = "ZPResult1",
|
||||
-- 大结算事件
|
||||
ZPResult2 = "ZPResult2",
|
||||
|
||||
EventNiao = "EventNiao",
|
||||
|
||||
EventQSTip = "EventQSTip",
|
||||
|
||||
EvnetQSAction = "EvnetQSAction",
|
||||
|
||||
EventKaiGang = "EventKaiGang",
|
||||
|
||||
EvnetHaiDi = "EvnetHaiDi",
|
||||
|
||||
EvnetPiaoTip = "EvnetPiaoTip",
|
||||
|
||||
EvnetPiao = "EvnetPiao",
|
||||
|
||||
EventTingTip = "EventTingTip",
|
||||
|
||||
EventTing = "EventTing",
|
||||
|
||||
EventXiPai="EventXiPai",
|
||||
}
|
||||
return CS_GameEvent
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
local CS_Win_Type = {
|
||||
"小七对",
|
||||
"将将胡",
|
||||
"清一色",
|
||||
"碰碰胡",
|
||||
"杠上花",
|
||||
"杠上炮",
|
||||
"全求人",
|
||||
"海底捞月",
|
||||
"海底炮",
|
||||
"抢杠胡",
|
||||
"小胡",
|
||||
"天胡",
|
||||
"天听胡",
|
||||
"门清",
|
||||
}
|
||||
return CS_Win_Type
|
||||
|
||||
|
|
@ -0,0 +1,295 @@
|
|||
-- 检测牌是否存在
|
||||
local function checkCard(eventCard,cardList,num)
|
||||
num = num == nil and 1 or num
|
||||
local result = 0
|
||||
for i = 1,#cardList do
|
||||
if (cardList[i] == eventCard) then
|
||||
result = result + 1
|
||||
if(result ==num) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- 移除指定数量的牌
|
||||
local function removeCard(cardList, card,count)
|
||||
for i=1,count do
|
||||
list_remove(cardList,card)
|
||||
end
|
||||
end
|
||||
|
||||
local function checkCardAndRomve(eventCard,cardList,num)
|
||||
if(checkCard(eventCard,cardList,num)) then
|
||||
removeCard(cardList,eventCard,num)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- 获取列表中牌数量
|
||||
local function cardNum(eventCard,cardList)
|
||||
local result = 0
|
||||
for i=1,#cardList do
|
||||
local card = cardList[i]
|
||||
if (card == eventCard) then
|
||||
result = result + 1
|
||||
end
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
local zhongid = 412
|
||||
|
||||
|
||||
local M = {
|
||||
pair_count = 0,
|
||||
cardList = nil,
|
||||
stack = nil,
|
||||
jiang = true
|
||||
}
|
||||
|
||||
|
||||
function M:push(cardGroup)
|
||||
self.stack[#self.stack+1] = cardGroup
|
||||
end
|
||||
|
||||
function M:rollBack()
|
||||
local cardGroup = self.stack[#self.stack]
|
||||
table.remove(self.stack,#self.stack)
|
||||
for _,card in ipairs(cardGroup) do
|
||||
self.cardList[#self.cardList + 1] = card
|
||||
end
|
||||
table.sort(self.cardList)
|
||||
end
|
||||
|
||||
function M:tryShunzi(card)
|
||||
if (card < 400 and card % 100 > 7) then
|
||||
return false
|
||||
end
|
||||
if (checkCard(card + 1, self.cardList) and checkCard(card + 2, self.cardList)) then
|
||||
removeCard(self.cardList, card, 1)
|
||||
removeCard(self.cardList, card + 1, 1)
|
||||
removeCard(self.cardList, card + 2, 1)
|
||||
local cardGroup = {card,card+1,card+2}
|
||||
self:push(cardGroup)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function M:tryKezi(card)
|
||||
if (checkCardAndRomve(card, self.cardList, 3)) then
|
||||
local cardGroup = {card,card,card}
|
||||
self:push(cardGroup)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function M:tryPair(card)
|
||||
if (self.pair_count > 0) then
|
||||
return false
|
||||
end
|
||||
if (self.jiang) then
|
||||
if (not (card % 100 == 2 or card % 100 == 5 or card % 100 == 8)) then
|
||||
return false
|
||||
end
|
||||
end
|
||||
if (checkCardAndRomve(card, self.cardList, 2)) then
|
||||
local cardGroup = {card,card}
|
||||
self:push(cardGroup)
|
||||
self.pair_count = 1
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function M:tryWin()
|
||||
if (#self.cardList == 0 and self.pair_count == 1) then
|
||||
return true
|
||||
end
|
||||
|
||||
if (#self.cardList == 0) then
|
||||
return false
|
||||
end
|
||||
|
||||
local activeCard = self.cardList[1]
|
||||
if (self:tryPair(activeCard)) then
|
||||
if (self:tryWin()) then
|
||||
return true
|
||||
end
|
||||
self.pair_count = 0
|
||||
self:rollBack()
|
||||
end
|
||||
|
||||
if (self:tryKezi(activeCard)) then
|
||||
if (self:tryWin()) then
|
||||
return true
|
||||
end
|
||||
self:rollBack()
|
||||
end
|
||||
|
||||
if (self:tryShunzi(activeCard)) then
|
||||
if (self:tryWin()) then
|
||||
return true
|
||||
end
|
||||
self:rollBack()
|
||||
end
|
||||
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
|
||||
|
||||
local function init(self,cardInhand,addCard,jiang)
|
||||
self.stack = {}
|
||||
self.pair_count = 0
|
||||
self.jiang = jiang
|
||||
self.cardList = membe_clone(cardInhand)
|
||||
self.cardList[#self.cardList+1] = addCard
|
||||
table.sort(self.cardList)
|
||||
return self:tryWin()
|
||||
end
|
||||
|
||||
local function quanqiuren(cardInhand,drawCard)
|
||||
if (#cardInhand > 1) then
|
||||
return false
|
||||
end
|
||||
if (cardInhand[1] ~= drawCard) then
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
local function qingyise(fzList, cardInhand, drawCard)
|
||||
local se = math.floor(cardInhand[1] / 100)
|
||||
if (math.floor(drawCard / 100) ~= se) then
|
||||
return false
|
||||
end
|
||||
for i=1,#fzList do
|
||||
local fz = fzList[i]
|
||||
if (se ~= math.floor(fz.card / 100)) then
|
||||
return false
|
||||
end
|
||||
end
|
||||
for i=1,#cardInhand do
|
||||
if (se ~= math.floor(cardInhand[i] / 100)) then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
|
||||
local function jiangjiang(fzList, cardInhand,drawCard)
|
||||
if (drawCard % 100 ~= 2 and drawCard % 100 ~= 5 and drawCard % 100 ~= 8) then
|
||||
return false
|
||||
end
|
||||
for i=1,#fzList do
|
||||
local fz = fzList[i]
|
||||
if (fz.type == FZType.Chi) then
|
||||
return false
|
||||
end
|
||||
if (fz.card % 100 ~= 2 and fz.card % 100 ~= 5 and fz.card % 100 ~= 8) then
|
||||
return false
|
||||
end
|
||||
end
|
||||
for i=1,#cardInhand do
|
||||
local card = cardInhand[i]
|
||||
if (card % 100 ~= 2 and card % 100 ~= 5 and card % 100 ~= 8) then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
local function checkQidui(cardList)
|
||||
if (#cardList== 0) then
|
||||
return true
|
||||
end
|
||||
local card = cardList[1]
|
||||
if (cardNum(card, cardList) >= 2) then
|
||||
removeCard(cardList, card, 2)
|
||||
if checkQidui(cardList) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function qixiaodui(cardInhand, drawCard)
|
||||
if (#cardInhand ~= 13) then
|
||||
return false
|
||||
end
|
||||
|
||||
local cardlist = membe_clone(cardInhand)
|
||||
cardlist[#cardlist+1] = drawCard
|
||||
return checkQidui(cardlist)
|
||||
end
|
||||
|
||||
|
||||
local function CheckPengPeng(cardList, jiang)
|
||||
if (#cardList== 0) then
|
||||
return true
|
||||
end
|
||||
local card = cardList[1]
|
||||
if (cardNum(card, cardList) >= 3) then
|
||||
removeCard(cardList, card, 3)
|
||||
return CheckPengPeng(cardList, jiang)
|
||||
elseif (cardNum(card, cardList) == 2) and not jiang then
|
||||
removeCard(cardList, card, 3)
|
||||
jiang = true
|
||||
return CheckPengPeng(cardList, jiang)
|
||||
end
|
||||
end
|
||||
local function pengpenghu(cardInhand, fzList, drawCard)
|
||||
for i = 1, #fzList do
|
||||
local tem = fzList[i]
|
||||
if tem.type == FZType.Chi then
|
||||
return false
|
||||
end
|
||||
end
|
||||
local cardlist = membe_clone(cardInhand)
|
||||
cardlist[#cardlist+1] = drawCard
|
||||
return CheckPengPeng(cardlist, false)
|
||||
end
|
||||
|
||||
function M.tingPai(cardInhand,fzList)
|
||||
local self = setmetatable({}, {__index = M})
|
||||
local tingList = {}
|
||||
if not cardInhand or #cardInhand == 0 then
|
||||
return tingList
|
||||
end
|
||||
for k=100,300,100 do
|
||||
for i=1,9 do
|
||||
local tem = k + i
|
||||
local result = false
|
||||
result = qixiaodui(cardInhand,tem)
|
||||
if not result then
|
||||
result = quanqiuren(cardInhand,tem)
|
||||
end
|
||||
if not result then
|
||||
result = jiangjiang(fzList,cardInhand,tem)
|
||||
end
|
||||
if not result then
|
||||
if qingyise(fzList,cardInhand,tem) then
|
||||
result = init(self,cardInhand,tem,false)
|
||||
else
|
||||
result = init(self,cardInhand,tem,true)
|
||||
end
|
||||
end
|
||||
if not result then
|
||||
result = pengpenghu(cardInhand, fzList, tem)
|
||||
end
|
||||
if(result) then
|
||||
tingList[#tingList + 1] = tem
|
||||
end
|
||||
end
|
||||
end
|
||||
return tingList
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,559 @@
|
|||
require("Game.View.ResultView")
|
||||
local CS_Win_Type = import(".CS_Win_Type")
|
||||
|
||||
local CS_ClearingView = {}
|
||||
|
||||
local M = CS_ClearingView
|
||||
|
||||
function CS_ClearingView.new(blur_view)
|
||||
setmetatable(M, {__index = ResultView})
|
||||
local self = setmetatable({}, {__index = M})
|
||||
-- self._full = true
|
||||
ResultView.init(self, "ui://Main_Majiang/clearing")
|
||||
|
||||
self._currenIndex = 0
|
||||
self._blur_view = blur_view
|
||||
self._close_zone = false
|
||||
self._close_destroy = true
|
||||
|
||||
self.xiPaiCtr=self._view:GetController("xipai")
|
||||
|
||||
self:InitMaPai()
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
function M:InitMaPai()
|
||||
self.maPaiCtr=self._view:GetController("mapai")
|
||||
self.maPaiCtr.selectedIndex=0
|
||||
|
||||
self.maPaiList={}
|
||||
|
||||
for i=1,10 do
|
||||
local tempMP=self._view:GetChild("niao"..i)
|
||||
table.insert(self.maPaiList,tempMP)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
function M:IsMapaiShow(niao,isShow)
|
||||
if niao then
|
||||
niao.visible=isShow
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function M:SetMaPaiValue(niao,value)
|
||||
if niao then
|
||||
niao.icon='ui://Main_Majiang/' ..get_majiang_prefix(DataManager.CurrenRoom.game_id).."201_"..value
|
||||
end
|
||||
end
|
||||
|
||||
function M:SetMaPaiColor(niao,num)
|
||||
niao:GetController("color").selectedIndex=num
|
||||
end
|
||||
|
||||
function M:HideAllMapai()
|
||||
for i=1,#self.maPaiList do
|
||||
self:IsMapaiShow(self.maPaiList[i],false)
|
||||
self:SetMaPaiColor(self.maPaiList[i],0)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
function M:ShowSelectMaPai(niaoList)
|
||||
if niaoList and #niaoList>0 then
|
||||
self.maPaiCtr.selectedIndex=1
|
||||
self:HideAllMapai()
|
||||
for i=1,#niaoList do
|
||||
self:IsMapaiShow(self.maPaiList[i],true)
|
||||
self:SetMaPaiValue(self.maPaiList[i],niaoList[i].card)
|
||||
if niaoList[i].score>0 then
|
||||
self:SetMaPaiColor(self.maPaiList[i],2)
|
||||
end
|
||||
end
|
||||
else
|
||||
self.maPaiCtr.selectedIndex=0
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function M:InitData(over, room, result, total_result, callback)
|
||||
self._callback = callback
|
||||
local _overCtr = self._view:GetController("over")
|
||||
local btn_confirm = self._view:GetChild("btn_confirm")
|
||||
local btn_result = self._view:GetChild("btn_showResult")
|
||||
local btn_close = self._view:GetChild("big_result"):GetChild("btn_close")
|
||||
local _btnCtr = self._view:GetController("button")
|
||||
local _sdkCtr = self._view:GetController("sdk")
|
||||
local ctr_type = self._view:GetController("type")
|
||||
self._view:GetChild("tex_roominfo").text = string.format("房号%s 局%s/%s %s", room.room_id, room.curren_round, room.room_config.round, os.date("%Y-%m-%d %H:%M:%S", os.time()))
|
||||
self._view:GetChild("tex_gameinfo").text = string.gsub(room.room_config:GetDes(), "\r", "")
|
||||
-- self._view:GetChild("tex_roomnum").text = room.room_id
|
||||
-- self._view:GetChild("tex_data").text = os.date("%Y-%m-%d %H:%M", os.time())
|
||||
-- self._view:GetChild("tex_time").text = os.date("%H:%M", os.time())
|
||||
|
||||
local paixingxiangqing=self._view:GetChild("btn_detal")
|
||||
paixingxiangqing.visible=false
|
||||
local fanhuipaixing=self._view:GetChild("btn_fanhuipaixing")
|
||||
fanhuipaixing.visible=false
|
||||
|
||||
local round=DataManager.CurrenRoom.room_config.config.times or 1
|
||||
local xpconfig=DataManager.CurrenRoom.room_config.config.xi_pai
|
||||
if xpconfig and round>1 then
|
||||
self.xiPaiCtr.selectedIndex=1
|
||||
else
|
||||
self.xiPaiCtr.selectedIndex=0
|
||||
end
|
||||
|
||||
|
||||
if result then
|
||||
self:ShowSelectMaPai(result.niao)
|
||||
end
|
||||
|
||||
-- 初始化查看桌面状态标记
|
||||
|
||||
|
||||
if over ~= 2 then
|
||||
local xipai=self._view:GetChild("btn_xipai")
|
||||
xipai.touchable=true
|
||||
xipai.onClick:Add(function()
|
||||
local xiPaiCallBack=function ()
|
||||
xipai.touchable=false
|
||||
self.xiPaiCtr.selectedIndex=0
|
||||
ViewUtil.ErrorTip(1000000,"申请洗牌成功")
|
||||
end
|
||||
local _gamectr = ControllerManager.GetController(GameController)
|
||||
_gamectr:SendXiPaiAction(xiPaiCallBack)
|
||||
end)
|
||||
if result and result.xipai_score then
|
||||
--xipai.text="洗牌 积分x"..result.xipai_score
|
||||
end
|
||||
|
||||
if result.liuju then
|
||||
ctr_type.selectedIndex = 3
|
||||
else
|
||||
local info_list = result.info_list
|
||||
for i = 1, #info_list do
|
||||
local is_win = info_list[i].is_win
|
||||
if is_win then
|
||||
if info_list[i].seat == room.self_player.seat then
|
||||
ctr_type.selectedIndex = 1
|
||||
else
|
||||
ctr_type.selectedIndex = 2
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if over == 0 then
|
||||
_btnCtr.selectedIndex = 0
|
||||
_sdkCtr.selectedIndex = 1
|
||||
btn_confirm.onClick:Add(function()
|
||||
local _gamectr = ControllerManager.GetController(GameController)
|
||||
_gamectr:PlayerReady()
|
||||
self:DestroyWithCallback()
|
||||
end)
|
||||
self:AddClearItem(room, result.info_list, nil, over, result.niao, result.active_player)
|
||||
elseif over == 1 then
|
||||
self.xiPaiCtr.selectedIndex=0
|
||||
_btnCtr.selectedIndex = 1
|
||||
_sdkCtr.selectedIndex = 1
|
||||
btn_result.onClick:Add(function()
|
||||
_overCtr.selectedIndex = 1
|
||||
_btnCtr.selectedIndex = 0
|
||||
_sdkCtr.selectedIndex = 0
|
||||
self.maPaiCtr.selectedIndex=0
|
||||
if self._qsinfo_view then
|
||||
self._qsinfo_view:Dispose()
|
||||
end
|
||||
end)
|
||||
btn_close.onClick:Add(function()
|
||||
ViewManager.ChangeView(ViewManager.View_Lobby)
|
||||
end)
|
||||
self:AddClearItem(room, result.info_list, total_result.info_list, over, result.niao, result.active_player)
|
||||
end
|
||||
else
|
||||
self.xiPaiCtr.selectedIndex=0
|
||||
_overCtr.selectedIndex = 1
|
||||
self.maPaiCtr.selectedIndex=0
|
||||
btn_close.onClick:Add(function()
|
||||
ViewManager.ChangeView(ViewManager.View_Lobby)
|
||||
end)
|
||||
self:AddClearItem(room, nil, total_result.info_list, over)
|
||||
end
|
||||
end
|
||||
|
||||
function M:AddClearItem(room, data, total_data,over, niao, active_player)
|
||||
local n = over + 1
|
||||
local list_view1 = self._view:GetChild("player_list_1")
|
||||
local list_view2 = self._view:GetChild("player_list_2")
|
||||
if 0 == over or 1 == over then
|
||||
-- 把鸟放到中的人列表中
|
||||
for i = 1, #niao do
|
||||
if niao[i].score > 0 then
|
||||
local p = room:GetPlayerById(niao[i].playerId)
|
||||
for j = 1, #data do
|
||||
if data[j].seat == p.seat then
|
||||
if not data[j].niao then
|
||||
data[j].niao = {}
|
||||
end
|
||||
table.insert(data[j].niao, niao[i].card)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
table.sort(data, function(a,b) return a.seat > b.seat end)
|
||||
list_view1:RemoveChildrenToPool()
|
||||
for i=1,#data do
|
||||
local item = list_view1:AddItemFromPool()
|
||||
self:FillItemData(room, data[i], item, active_player, niao)
|
||||
end
|
||||
if #data == 3 then
|
||||
list_view1.lineGap = 54
|
||||
elseif #data == 2 then
|
||||
list_view1.lineGap = 108
|
||||
end
|
||||
if 1 == over then
|
||||
self:FillItemData2(room, total_data, list_view2)
|
||||
end
|
||||
elseif 2 == over then
|
||||
self:FillItemData2(room, total_data, list_view2)
|
||||
end
|
||||
end
|
||||
|
||||
function M:FillItemData(room, data, item, active_player)
|
||||
local _gamectr = ControllerManager.GetController(GameController)
|
||||
local p = room:GetPlayerBySeat(data["seat"])
|
||||
item:GetChild("playerName").text = p.self_user.nick_name
|
||||
if data.win_count > 3 then
|
||||
item:GetController("mult_win").selectedIndex = 1
|
||||
-- item:GetChild("tex_win_count").text = string.char(97 + data.win_count - 4) .. "连"
|
||||
end
|
||||
|
||||
local huadd = data["hu_score"]
|
||||
local qsadd = data["qs_score"]
|
||||
local birdadd = data["niao_score"]
|
||||
local qs_niao_list = data["qs_niao_list"]
|
||||
local total = data["round_score"]
|
||||
|
||||
-- if room.room_config.fengding and huadd + birdadd >= 28 then
|
||||
if data.fengding then
|
||||
item:GetController("fengding").selectedIndex = 1
|
||||
else
|
||||
item:GetController("fengding").selectedIndex = 0
|
||||
end
|
||||
|
||||
local sp = " "
|
||||
local str = "胡:"..huadd.."分"
|
||||
str = str..sp.."扎鸟:"..birdadd.."分"
|
||||
str = str..sp.."起手胡:"..qsadd.."分"
|
||||
-- if #qs_niao_list > 0 then
|
||||
-- str = str .. "(摇骰点数:" .. qs_niao_list[1].card .. " " .. qs_niao_list[2].card .. ")"
|
||||
-- end
|
||||
if data["piao_niao_score"] then
|
||||
str = str..sp.."飘鸟:"..data["piao_niao_score"].."分"
|
||||
end
|
||||
item:GetChild("score1").text = str
|
||||
local win_list = data["win_list"]
|
||||
local remove_win_card = true
|
||||
if win_list then
|
||||
local str1 = ""
|
||||
item:GetController("hu_list").selectedIndex = 1
|
||||
for i = 1, #win_list do
|
||||
local str2 = ""
|
||||
if win_list[i].type == 1 then
|
||||
local value = win_list[i].value
|
||||
str2 = value == 1 and "" or (value == 2 and "豪华" or (value == 3 and "双豪华" or "三豪华"))
|
||||
str2 = str2 .. "小七对"
|
||||
else
|
||||
if win_list[i].type == 5 then
|
||||
remove_win_card = false
|
||||
end
|
||||
str2 = CS_Win_Type[win_list[i].type]
|
||||
end
|
||||
str1 = str1..str2..sp
|
||||
end
|
||||
item:GetChild("score3").text = str1
|
||||
end
|
||||
|
||||
-- 手牌
|
||||
local hand_cards = data["hand_card"]
|
||||
table.sort(hand_cards, ViewUtil.HandCardSort)
|
||||
local hand_list_view = item:GetChild("hand_card_list")
|
||||
hand_list_view:RemoveChildrenToPool()
|
||||
if data["is_win"] and active_player == p.self_user.account_id and remove_win_card then
|
||||
list_remove(hand_cards, data["win_card"])
|
||||
end
|
||||
for i=1,#hand_cards do
|
||||
local card = hand_list_view:AddItemFromPool()
|
||||
card.icon = "ui://Main_Majiang/" .. self:GetPrefix() .. "202_"..hand_cards[i]
|
||||
end
|
||||
hand_list_view.width = 52 * #hand_cards
|
||||
|
||||
local fz_card = p.fz_list
|
||||
local fz_card_list = item:GetChild("fz_card_list")
|
||||
fz_card_list.width = 157 * #fz_card * 0.8
|
||||
fz_card_list:RemoveChildrenToPool()
|
||||
for i=1,#fz_card do
|
||||
if fz_card[i].type == FZType.Peng then
|
||||
local item = fz_card_list:AddItemFromPool("ui://Main_Majiang/clearing_fz_3")
|
||||
for j=1,3 do
|
||||
local card = item:GetChild("card_" .. j)
|
||||
card.icon = "ui://Main_Majiang/" .. self:GetPrefix() .. "202_"..fz_card[i].card
|
||||
end
|
||||
elseif fz_card[i].type == FZType.Chi then
|
||||
local item = fz_card_list:AddItemFromPool("ui://Main_Majiang/clearing_fz_3")
|
||||
for j = 1,3 do
|
||||
local card = item:GetChild("card_" .. j)
|
||||
card.icon = "ui://Main_Majiang/" .. self:GetPrefix() .. "202_"..fz_card[i].opcard[j]
|
||||
end
|
||||
elseif fz_card[i].type == FZType.Gang or fz_card[i].type == FZType.Gang_An or fz_card[i].type == FZType.Gang_Peng then
|
||||
local item = fz_card_list:AddItemFromPool("ui://Main_Majiang/clearing_fz_4")
|
||||
for j=1,4 do
|
||||
local card = item:GetChild("card_" .. j)
|
||||
if fz_card[i].type == FZType.Gang_An and j == 4 then
|
||||
card.icon = "ui://Main_Majiang/202_00"
|
||||
else
|
||||
card.icon = "ui://Main_Majiang/" .. self:GetPrefix() .. "202_"..fz_card[i].card
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- local total_score = data["total_score"]
|
||||
if total >= 0 then
|
||||
item:GetChild("score2win").text = "+" .. total
|
||||
-- item:GetChild("score2win").grayed = false
|
||||
else
|
||||
item:GetChild("score2lose").text = total
|
||||
-- item:GetChild("score2win").grayed = true
|
||||
end
|
||||
|
||||
local hp_nonnegative = room:checkHpNonnegative()
|
||||
item:GetController("nonnegative").selectedIndex = hp_nonnegative and 1 or 0
|
||||
if hp_nonnegative then
|
||||
local hp_info = data.hp_info
|
||||
local ctr_hp_limit = item:GetController("hp_limit")
|
||||
local hp = d2ad(hp_info.round_actual_hp)
|
||||
if hp >= 0 then hp = "+" .. tostring(hp) end
|
||||
item:GetChild("tex_hp").text = hp
|
||||
ctr_hp_limit.selectedIndex = hp_info.upper_limit and 1 or 0
|
||||
end
|
||||
|
||||
local is_win = data["is_win"] or false
|
||||
item:GetController("win").selectedIndex = is_win and 0 or 1
|
||||
--print(p.self_user.account_id, active_player)
|
||||
if p.self_user.account_id == active_player and is_win == false and not data["liuju"] then
|
||||
item:GetController("win").selectedIndex = 2
|
||||
end
|
||||
local win_card = item:GetChild("win_card")
|
||||
if is_win then
|
||||
win_card.icon = "ui://Main_Majiang/" .. self:GetPrefix() .. "202_"..data["win_card"]
|
||||
end
|
||||
if data.niao then
|
||||
item:GetController("niao").selectedIndex = 1
|
||||
local lst_niao = item:GetChild("list_niao")
|
||||
lst_niao:RemoveChildrenToPool()
|
||||
local niao = data.niao
|
||||
for i = 1, #niao do
|
||||
local card_niao = lst_niao:AddItemFromPool()
|
||||
card_niao.icon = "ui://Main_Majiang/" .. self:GetPrefix() .. "202_" .. niao[i]
|
||||
end
|
||||
end
|
||||
if p.seat == room.banker_seat then
|
||||
item:GetController("bank").selectedIndex = 1
|
||||
end
|
||||
|
||||
-- item.onClick:Set(function()
|
||||
-- self:__AddQSInfo(data.qs_info_list, p.self_user.nick_name, room)
|
||||
-- end)
|
||||
end
|
||||
|
||||
function M:FillItemData2(room, data, list)
|
||||
-- 赋值result_info,聊天室分享需要
|
||||
local player_list = {}
|
||||
for i = 1, #data do
|
||||
player_list[i] = {}
|
||||
local user = room:GetPlayerBySeat(data[i].seat).self_user
|
||||
player_list[i].id = user.account_id
|
||||
player_list[i].hp_info = data[i].hp_info
|
||||
player_list[i].score = data[i].total_score
|
||||
player_list[i].house = room.owner_id == player_list[i].id and 1 or 0
|
||||
player_list[i].nick = user.nick_name
|
||||
player_list[i].head_url = user.head_url
|
||||
|
||||
local settle_log = data[i].settle_log
|
||||
player_list[i].param = {}
|
||||
player_list[i].param[1]={}
|
||||
player_list[i].param[1].key = "大胡自摸:"
|
||||
player_list[i].param[1].value = tostring(data[i].settle_log.da_zimo)
|
||||
player_list[i].param[2]={}
|
||||
player_list[i].param[2].key = "小胡自摸:"
|
||||
player_list[i].param[2].value = tostring(data[i].settle_log.xiao_zimo)
|
||||
player_list[i].param[3]={}
|
||||
player_list[i].param[3].key = "大胡接炮:"
|
||||
player_list[i].param[3].value = tostring(data[i].settle_log.da_jie_pao)
|
||||
player_list[i].param[4]={}
|
||||
player_list[i].param[4].key = "小胡接炮:"
|
||||
player_list[i].param[4].value = tostring(data[i].settle_log.xiao_jie_pao)
|
||||
player_list[i].param[5]={}
|
||||
player_list[i].param[5].key = "大胡点炮:"
|
||||
player_list[i].param[5].value = tostring(data[i].settle_log.da_dian_pao)
|
||||
player_list[i].param[6]={}
|
||||
player_list[i].param[6].key = "小胡点炮:"
|
||||
player_list[i].param[6].value = tostring(data[i].settle_log.xiao_dian_pao)
|
||||
end
|
||||
local round = room.room_config.round
|
||||
self:GenerateRoomResultInfo(round, room.room_config:GetGameName(), room.room_id, room.create_time, player_list)
|
||||
-- self:SetGSListlineGap(-10)
|
||||
|
||||
local big_result = self._view:GetChild("big_result")
|
||||
big_result:GetChild("txt_room_info").text = string.format("%s 房号%s 局%s/%s", os.date("%Y/%m/%d", os.time()), room.room_id, room.curren_round, room.room_config.round)
|
||||
local lst_p = big_result:GetChild("player_list")
|
||||
if #player_list == 3 then
|
||||
lst_p.columnGap = 108
|
||||
elseif #player_list == 2 then
|
||||
lst_p.columnGap = 208
|
||||
end
|
||||
self:InitBigResult(room, 30)
|
||||
local show_detail = room.hpOnOff == 1
|
||||
for i = 1, lst_p.numChildren do
|
||||
local com_p = lst_p:GetChildAt(i - 1)
|
||||
local list_param = com_p:GetChild("list_param")
|
||||
for j = 1, list_param.numChildren do
|
||||
local tem = list_param:GetChildAt(j - 1)
|
||||
tem:GetChild("txt_value").textFormat.size = 30
|
||||
end
|
||||
if show_detail then
|
||||
local score = 0
|
||||
if com_p:GetController("pn").selectedIndex == 0 then
|
||||
score = com_p:GetChild("txt_navigate").text
|
||||
else
|
||||
score = com_p:GetChild("txt_positive").text
|
||||
end
|
||||
score = score / room.score_times
|
||||
com_p:GetChild("tex_detail_score").text = string.format("%s × %s倍", score, room.score_times)
|
||||
end
|
||||
end
|
||||
if room.group_id ~= 0 then
|
||||
big_result:GetController("group").selectedIndex = 1
|
||||
end
|
||||
DataManager.CurrenRoom = nil
|
||||
end
|
||||
|
||||
-- 起手胡详情
|
||||
function M:__AddQSInfo(data, nick, room)
|
||||
if self._qsinfo_view then
|
||||
self._qsinfo_view:Dispose()
|
||||
end
|
||||
local qsinfo = UIPackage.CreateObjectFromURL("ui://Extend_MJ_NingXiang/qs_info")
|
||||
self._qsinfo_view = qsinfo
|
||||
qsinfo:GetChild("btn_close").onClick:Add(function()
|
||||
qsinfo:Dispose()
|
||||
end)
|
||||
qsinfo:GetChild("tex_nick").text = nick
|
||||
local lst_qs = qsinfo:GetChild("lst_qs")
|
||||
lst_qs:RemoveChildrenToPool()
|
||||
if #data > 0 then
|
||||
for i = 1, #data do
|
||||
local tem = data[i]
|
||||
local item = lst_qs:AddItemFromPool()
|
||||
local lst_card = item:GetChild("lst_card")
|
||||
-- 整理起手胡板牌
|
||||
local card_map = {}
|
||||
for j = 1, #tem.win_list do
|
||||
local opcard = tem.win_list[j].opcard
|
||||
local cards = {}
|
||||
for k = 1, #opcard do
|
||||
local card = opcard[k]
|
||||
if cards[card] then
|
||||
cards[card] = cards[card] + 1
|
||||
else
|
||||
cards[card] = 1
|
||||
end
|
||||
end
|
||||
for k,v in pairs(cards) do
|
||||
local card = k
|
||||
if card_map[card] then
|
||||
if card_map[card] < cards[card] then
|
||||
card_map[card] = cards[card]
|
||||
end
|
||||
else
|
||||
card_map[card] = cards[card]
|
||||
end
|
||||
end
|
||||
end
|
||||
local all_cards = {}
|
||||
for j,v in pairs(card_map) do
|
||||
for k = 1, v do
|
||||
table.insert(all_cards, j)
|
||||
end
|
||||
end
|
||||
table.sort(all_cards)
|
||||
for j = 1, #all_cards do
|
||||
local citem = lst_card:AddItemFromPool()
|
||||
citem.touchable = false
|
||||
citem.icon = "ui://Main_Majiang/" .. self:GetPrefix() .. "202_"..all_cards[j]
|
||||
end
|
||||
local cs_zhua_niao = room.room_config.niao_type == 2
|
||||
qsinfo:GetController("niao").selectedIndex = cs_zhua_niao and 1 or 0
|
||||
item:GetChild("tex_touzi").text = cs_zhua_niao and (tem.niao[1].card .. " " .. tem.niao[2].card) or ""
|
||||
item:GetChild("tex_score").text = tem.score
|
||||
item:GetChild("tex_niao_score").text = cs_zhua_niao and tem.niao_score or ""
|
||||
end
|
||||
else
|
||||
qsinfo:GetController("c1").selectedIndex = 1
|
||||
end
|
||||
if #data > 1 then
|
||||
qsinfo.height = qsinfo.height + 56 * (#data - 1)
|
||||
end
|
||||
|
||||
local _view_start_pos = nil
|
||||
local _touch_start_pos = nil
|
||||
self._view:AddChild(qsinfo)
|
||||
local btn_di = qsinfo:GetChild("btn_di")
|
||||
btn_di.onTouchBegin:Add(function(context)
|
||||
_view_start_pos = Vector2(qsinfo.x, qsinfo.y)
|
||||
_touch_start_pos = self._view:GlobalToLocal(Vector2(context.inputEvent.x, context.inputEvent.y))
|
||||
end)
|
||||
btn_di.onTouchMove:Add(function(context)
|
||||
local xy = self._view:GlobalToLocal(Vector2.New(context.inputEvent.x,context.inputEvent.y))
|
||||
local dist = Vector2(xy.x - _touch_start_pos.x, xy.y - _touch_start_pos.y)
|
||||
local posx = _view_start_pos.x + dist.x
|
||||
local posy = _view_start_pos.y + dist.y
|
||||
local max_x = self._view.width - qsinfo.width
|
||||
local max_y = self._view.height - qsinfo.height
|
||||
qsinfo.x = posx < 0 and 0 or posx > max_x and max_x or posx
|
||||
qsinfo.y = posy < 0 and 0 or posy > max_y and max_y or posy
|
||||
end)
|
||||
qsinfo:Center()
|
||||
end
|
||||
|
||||
function M:LoadHead(p, room)
|
||||
local btn_head = self._view:GetChild("btn_head")
|
||||
for i = 1, #room.player_list do
|
||||
local player = room.player_list[i]
|
||||
if p.seat == player.seat and player.self_user.head_url ~= "" then
|
||||
ImageLoad.Load(player.self_user.head_url, btn_head.icon)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local prefix
|
||||
function M:GetPrefix()
|
||||
-- if not prefix then
|
||||
prefix = get_majiang_prefix(10)
|
||||
-- end
|
||||
return prefix
|
||||
end
|
||||
|
||||
function M:DestroyWithCallback()
|
||||
if self._callback then
|
||||
self._callback()
|
||||
end
|
||||
self:Destroy()
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,427 @@
|
|||
local CS_Protocol = import(".Protocol")
|
||||
local FZTipList = require("main.majiang.FZData")
|
||||
local CS_GameEvent = import(".CS_GameEvent")
|
||||
|
||||
local M = {}
|
||||
|
||||
--- Create a new CS_GameController
|
||||
function M.new()
|
||||
setmetatable(M,{__index = GameController})
|
||||
local self = setmetatable({}, {__index = M})
|
||||
self:init("测试麻将")
|
||||
self.class = "CS_GameController"
|
||||
return self
|
||||
end
|
||||
|
||||
function M:init(name)
|
||||
GameController.init(self,name)
|
||||
|
||||
self._eventmap[CS_Protocol.GAME_EVT_PLAYER_DEAL] = self.OnEventSendCards
|
||||
self._eventmap[CS_Protocol.GAME_EVT_CHANGE_ACTIVE_PLAYER] = self.OnEventTurn
|
||||
|
||||
self._eventmap[CS_Protocol.GAME_EVT_DRAW] = self.OnEventTakeCard
|
||||
self._eventmap[CS_Protocol.GAME_EVT_DISCARD_TIP] = self.OnEventOutHint
|
||||
self._eventmap[CS_Protocol.GAME_EVT_DISCARD] = self.OnEventOutCard
|
||||
|
||||
self._eventmap[CS_Protocol.GAME_EVT_FZTIPS] = self.OnEventFzTips
|
||||
self._eventmap[CS_Protocol.GAME_EVT_ACTION] = self.OnEventFzAction
|
||||
|
||||
self._eventmap[CS_Protocol.GAME_EVT_HU] = self.OnEventHu
|
||||
|
||||
self._eventmap[CS_Protocol.GAME_EVT_RESULT1] = self.OneventResult1
|
||||
self._eventmap[CS_Protocol.GAME_EVT_RESULT2] = self.OnEventResult2
|
||||
self._eventmap[CS_Protocol.GAME_EVT_NIAO] = self.OnEventNiao
|
||||
|
||||
self._eventmap[CS_Protocol.GAME_EVT_QSTIP] = self.OnEventQSTip
|
||||
self._eventmap[CS_Protocol.GAME_EVT_QSWIN] = self.OnEventQSAction
|
||||
self._eventmap[CS_Protocol.GAME_EVT_OPENKONG] = self.OnEventKaiGang
|
||||
self._eventmap[CS_Protocol.GAME_EVT_HAIDI] = self.OnEventHaidi
|
||||
self._eventmap[CS_Protocol.GAME_EVT_PIAOTIP] = self.OnEventPiaoTip
|
||||
self._eventmap[CS_Protocol.GAME_EVT_PIAO] = self.OnEventPiao
|
||||
self._eventmap[CS_Protocol.GAME_EVT_TING_TIP] = self.OnEventTingTip
|
||||
self._eventmap[CS_Protocol.GAME_EVT_TING] = self.OnEventTing
|
||||
self._eventmap[CS_Protocol.GAME_EVENT_XIPAI] = self.OnEventXiPai
|
||||
self._eventmap[CS_Protocol.GAME_EVENT_NOTIFY_XIPAI] = self.OnEventXiPaiAnim
|
||||
end
|
||||
|
||||
local __pre_delete_card = false
|
||||
-- 发送出牌指令到服务器
|
||||
function M:SendOutCard(card, callback)
|
||||
local _room = self._room
|
||||
local p = _room.self_player
|
||||
|
||||
local _data = {}
|
||||
_data["card"] = card
|
||||
_data["card_list"] = p.card_list
|
||||
if p.outcard_list and #p.outcard_list>0 then
|
||||
_data["outcard_list"] = p.outcard_list
|
||||
end
|
||||
|
||||
|
||||
local _client = ControllerManager.GameNetClinet
|
||||
_client:send(CS_Protocol.GAME_DIS_CARD, _data)
|
||||
|
||||
-- 进行预删牌处理
|
||||
|
||||
_room.curren_outcard_seat = -1
|
||||
list_remove(p.card_list,card)
|
||||
table.sort(p.card_list, ViewUtil.HandCardSort)
|
||||
p.hand_left_count = p.hand_left_count - 1
|
||||
if not p.outcard_list then p.outcard_list = {} end
|
||||
p.outcard_list[#p.outcard_list+1] = card
|
||||
__pre_delete_card = true
|
||||
callback()
|
||||
end
|
||||
|
||||
-- 发送放子选择到服务器
|
||||
function M:SendAction(id)
|
||||
local _data = {}
|
||||
_data["id"] = id
|
||||
local _client = ControllerManager.GameNetClinet
|
||||
_client:send(CS_Protocol.GAME_ACTION, _data)
|
||||
end
|
||||
|
||||
|
||||
function M:SendXiPaiAction(callBack)
|
||||
local _data = {}
|
||||
local _client = ControllerManager.GameNetClinet
|
||||
_client:send(CS_Protocol.GAME_XIPAI, _data)
|
||||
self.XiPaiCallBack=callBack
|
||||
end
|
||||
|
||||
function M:OnEventXiPai(evt_data)
|
||||
if evt_data["result"]==0 then
|
||||
if self.XiPaiCallBack then
|
||||
self.XiPaiCallBack()
|
||||
end
|
||||
else
|
||||
ViewUtil.ErrorTip(1000000,"申请洗牌失败")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
function M:OnEventXiPaiAnim(evt_data)
|
||||
printlog("洗牌动画===》》》》")
|
||||
pt(evt_data)
|
||||
local playeridList = evt_data["list"]
|
||||
local my_isXiPai=false
|
||||
local other_isXiPai=false
|
||||
if playeridList and #playeridList>0 then
|
||||
for i=1,#playeridList do
|
||||
local p = self._room:GetPlayerById(playeridList[i])
|
||||
if p== self._room.self_player then
|
||||
my_isXiPai=true
|
||||
else
|
||||
other_isXiPai=true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
self._cacheEvent:Enqueue(function()
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.EventXiPai,my_isXiPai,other_isXiPai)
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
function M:OnEventSendCards(evt_data)
|
||||
if ViewManager.GetCurrenView().dview_class == LobbyView then
|
||||
self:ReturnToRoom()
|
||||
return
|
||||
end
|
||||
local _room = self._room
|
||||
-- if(_room.CurnrenState == StateType.Ready) then
|
||||
-- _room.CurnrenState = StateType.Palying
|
||||
-- end
|
||||
-- _room.curren_round = _room.curren_round + 1
|
||||
_room.curren_round = evt_data["round"]
|
||||
if _room.curren_round > 0 then _room.playing = true end
|
||||
|
||||
-- _room.SelfPlayer.AutoOutCard = false
|
||||
local handcards = evt_data["card_list"]
|
||||
local p = _room.self_player
|
||||
local seat = evt_data["bank_seat"]
|
||||
local left_count = evt_data["left_count"]
|
||||
self._cacheEvent:Enqueue(function()
|
||||
_room.banker_seat = seat
|
||||
for i=1,#_room.player_list do
|
||||
_room.player_list[i].hand_left_count = _room.player_list[i].seat == _room.banker_seat and 14 or 13
|
||||
_room.player_list[i].fz_list = {}
|
||||
_room.player_list[i].card_list = {}
|
||||
end
|
||||
p.card_list = handcards
|
||||
self._room.self_player.hand_left_count = #handcards
|
||||
table.sort( handcards, ViewUtil.HandCardSort )
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.SendCards, left_count)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventOutCard(evt_data)
|
||||
local seat = evt_data["seat"]
|
||||
local card = evt_data["card"]
|
||||
local p = self._room:GetPlayerBySeat(seat)
|
||||
self._cacheEvent:Enqueue(function()
|
||||
local _room = self._room
|
||||
if seat == _room.self_player.seat and __pre_delete_card then
|
||||
__pre_delete_card = false
|
||||
else
|
||||
if seat == _room.self_player.seat then
|
||||
list_remove(p.card_list, card)
|
||||
table.sort(p.card_list, ViewUtil.HandCardSort)
|
||||
end
|
||||
p.hand_left_count = p.hand_left_count - 1
|
||||
if not p.outcard_list then p.outcard_list = {} end
|
||||
p.outcard_list[#p.outcard_list+1] = card
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.OutCard, p, card)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
function M:OnEventTakeCard(evt_data)
|
||||
local _room = self._room
|
||||
local seat = evt_data["seat"]
|
||||
local card = evt_data["card"]
|
||||
local left_count = evt_data["left_count"]
|
||||
local p = _room:GetPlayerBySeat(seat)
|
||||
self._cacheEvent:Enqueue(function()
|
||||
p.hand_left_count = p.hand_left_count +1
|
||||
if (seat == _room.self_player.seat) then
|
||||
_room.self_player.card_list[#_room.self_player.card_list+1] = card
|
||||
-- table.sort( _room.self_player.card_list, ViewUtil.HandCardSort )
|
||||
end
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.GetCard, seat, card, left_count)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventOutHint(evt_data)
|
||||
self._cacheEvent:Enqueue(function()
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.OutHint, evt_data)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventTurn(evt_data)
|
||||
local seat = evt_data["seat"]
|
||||
self._cacheEvent:Enqueue(function()
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.EventTurn, seat)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventFzTips(evt_data)
|
||||
self._cacheEvent:Enqueue(function()
|
||||
local tiplist = FZTipList.new()
|
||||
local list = evt_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
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.FZTips, tiplist)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventFzAction(evt_data)
|
||||
local _room = self._room
|
||||
local playerid = evt_data["playerid"]
|
||||
local card = evt_data["card"]
|
||||
local actice_card = evt_data["active_card"]
|
||||
local type = evt_data["type"]
|
||||
local from_seat = evt_data["from_seat"]
|
||||
local opcard = evt_data["opcard"]
|
||||
local opengang = evt_data["opengang"]
|
||||
-- local openkong = evt_data["openkong"]
|
||||
|
||||
local p = _room:GetPlayerById(playerid)
|
||||
self._cacheEvent:Enqueue(function()
|
||||
local fz = nil
|
||||
local index = -1
|
||||
local ftype = type
|
||||
if (ftype == FZType.Gang_Peng) then
|
||||
for i=1,#p.fz_list do
|
||||
if (p.fz_list[i].card == card) then
|
||||
p.fz_list[i].card = card
|
||||
fz = p.fz_list[i]
|
||||
fz.type = type
|
||||
index = i -1
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
fz = {}
|
||||
fz.card = card
|
||||
fz.type = type
|
||||
fz.opengang = opengang
|
||||
if (index == -1) then
|
||||
if (ftype == FZType.Chi) then
|
||||
local data ={}
|
||||
data[1] = opcard[1]
|
||||
data[2] = card
|
||||
data[3] = opcard[2]
|
||||
fz.opcard =data
|
||||
end
|
||||
p.fz_list[#p.fz_list+1] = fz
|
||||
end
|
||||
fz.from_seat = from_seat
|
||||
local remove_num = #opcard
|
||||
|
||||
if (p == _room.self_player) then
|
||||
for i=1,remove_num do
|
||||
list_remove(p.card_list,opcard[i])
|
||||
end
|
||||
end
|
||||
|
||||
p.hand_left_count = p.hand_left_count - remove_num
|
||||
if not (fz.type == FZType.Gang_An or (fz.type == FZType.Gang_Peng and not fz.opengang)) then
|
||||
-- if (fz.Type == FZType.Chi) then card = actice_card end
|
||||
local fp = _room:GetPlayerBySeat(from_seat)
|
||||
if card == fp.outcard_list[#fp.outcard_list] then
|
||||
table.remove(fp.outcard_list,#fp.outcard_list)
|
||||
else
|
||||
table.remove(fp.outcard_list,#fp.outcard_list - 1)
|
||||
end
|
||||
end
|
||||
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.FangziAction, fz, p, index)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventHu(evt_data)
|
||||
local cards = evt_data["card"]
|
||||
local win_p = self._room:GetPlayerBySeat(evt_data["seat"])
|
||||
local lose_p = self._room:GetPlayerBySeat(evt_data["from_seat"])
|
||||
local win_card = evt_data["win_card"]
|
||||
local win_list = evt_data["win_list"]
|
||||
|
||||
self._cacheEvent:Enqueue(function()
|
||||
win_p.card_list = cards
|
||||
table.sort( win_p.card_list, ViewUtil.HandCardSort)
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.ZPHuCard, evt_data["seat"], evt_data["from_seat"], win_card, cards, win_list)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OneventResult1(evt_data)
|
||||
local over = evt_data.type
|
||||
--0:小结算 1:小大结算 2:大结算
|
||||
self._room.playing = false
|
||||
if 0 == over then
|
||||
local result = evt_data.result
|
||||
self._cacheEvent:Enqueue(function()
|
||||
for i = 1, #self._room.player_list do
|
||||
local p = self._room.player_list[i]
|
||||
p.hand_left_count = 0
|
||||
p.outcard_list = {}
|
||||
end
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.ZPResult1, result);
|
||||
end)
|
||||
elseif 1 == over or 2 == over then
|
||||
DataManager.CurrenRoom.Over = true
|
||||
ControllerManager.SetGameNetClient(nil,true)
|
||||
local total_result = evt_data.total_result
|
||||
local result = evt_data.result
|
||||
self._cacheEvent:Enqueue(function()
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.ZPResult2, result, total_result, over);
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
function M:OnEventNiao(evt_data)
|
||||
local list = evt_data["niao"]
|
||||
local start_seat = evt_data["start_seat"]
|
||||
self._cacheEvent:Enqueue(function()
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.EventNiao, list, start_seat)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventQSTip(evt_data)
|
||||
self._cacheEvent:Enqueue(function()
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.EventQSTip, evt_data)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventQSAction(evt_data)
|
||||
self._cacheEvent:Enqueue(function()
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.EvnetQSAction, evt_data)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventKaiGang(evt_data)
|
||||
local seat = evt_data["seat"]
|
||||
local p = self._room:GetPlayerBySeat(seat)
|
||||
local cardList = evt_data.info.cardList
|
||||
local card = evt_data.card
|
||||
self._room.remain_cards = evt_data.left_count
|
||||
self._cacheEvent:Enqueue(function()
|
||||
for i = 1, #cardList do
|
||||
p.outcard_list[#p.outcard_list + 1] = cardList[i]
|
||||
end
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.EventKaiGang, evt_data, self._room.self_player.outcard_list)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventHaidi()
|
||||
self._cacheEvent:Enqueue(function()
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.EvnetHaiDi, evt_data)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventPiaoTip(evt_data)
|
||||
if ViewManager.GetCurrenView().dview_class == LobbyView then
|
||||
self:ReturnToRoom()
|
||||
return
|
||||
end
|
||||
|
||||
self._cacheEvent:Enqueue(function()
|
||||
self._room.playing = true
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.EvnetPiaoTip, evt_data)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventTingTip()
|
||||
self._cacheEvent:Enqueue(function()
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.EventTingTip)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventTing(evt_data)
|
||||
self._cacheEvent:Enqueue(function()
|
||||
local seat = evt_data.seat
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.EventTing, seat)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventPiao(evt_data)
|
||||
self._cacheEvent:Enqueue(function()
|
||||
DispatchEvent(self._dispatcher,CS_GameEvent.EvnetPiao, evt_data.seat, evt_data.num)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:GetPosString( seat )
|
||||
if DataManager.CurrenRoom.room_config.people_num ~= 4 then return"" end
|
||||
if seat == 1 then
|
||||
return "北"
|
||||
elseif seat == 2 then
|
||||
return "西"
|
||||
elseif seat == 3 then
|
||||
return "南"
|
||||
elseif seat == 4 then
|
||||
return "东"
|
||||
end
|
||||
end
|
||||
|
||||
function M:Discard(card)
|
||||
local _data = {}
|
||||
_data["card"] = card
|
||||
local _room = self._room
|
||||
local _client = ControllerManager.GameNetClinet
|
||||
-- list_remove(_room.SelfPlayer.Cards,card)
|
||||
-- table.sort(_room.SelfPlayer.Cards)
|
||||
_client:send(CS_Protocol.Game_Da, _data)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,354 @@
|
|||
local EXGameInfo = {}
|
||||
|
||||
local M = EXGameInfo
|
||||
|
||||
|
||||
function EXGameInfo.new(blur_view)
|
||||
setmetatable(M, {__index = IGameInfo})
|
||||
local self = setmetatable({}, {__index = M})
|
||||
self.class = "EXGameInfo"
|
||||
|
||||
UIPackage.AddPackage("extend/majiang/ningxiang/ui/Info_MJ_NingXiang")
|
||||
return self
|
||||
end
|
||||
|
||||
function M:FillData()
|
||||
self._maxPlayer = 4 -- 默认玩家人数
|
||||
self._roundChoice = 4 -- 回合选项数
|
||||
if oldGameVersion==1 then
|
||||
self._config = UIPackage.CreateObjectFromURL("ui://Info_MJ_NingXiang/Cgm_create_room")
|
||||
else
|
||||
self._config = UIPackage.CreateObjectFromURL("ui://Info_MJ_NingXiang/Cgm_create_room_yueyang")
|
||||
end
|
||||
|
||||
if oldGameVersion==2 then
|
||||
self._config:GetController("xipai").selectedIndex=0
|
||||
|
||||
self.xipaiValueText=self._config:GetChild('xipaifen')
|
||||
self.xipaiValueText.text=1
|
||||
self.xipaiValue=1
|
||||
|
||||
self.anchouValueText=self._config:GetChild('anchoufen')
|
||||
self.anchouValueText.text=1
|
||||
self.anchouValue=1
|
||||
|
||||
local btn_cr = self._config:GetChild('sdsrbtn')
|
||||
btn_cr.onClick:Set(
|
||||
function()
|
||||
|
||||
local gniv = GroupNumberInputView_Game.new(nil, function(num)
|
||||
|
||||
local value = limit
|
||||
if otype == 1 then
|
||||
value = value + ad2d(num)
|
||||
elseif otype == - 1 then
|
||||
value = value - ad2d(num)
|
||||
else
|
||||
value = ad2d(num)
|
||||
end
|
||||
|
||||
if value < 0 then
|
||||
ViewUtil.ErrorTip(1,"输入数据异常!")
|
||||
end
|
||||
|
||||
self.xipaiValueText.text=value/d2ad
|
||||
self.xipaiValue=value/d2ad
|
||||
|
||||
end, 3, nil)
|
||||
gniv:Show()
|
||||
|
||||
|
||||
end
|
||||
)
|
||||
|
||||
|
||||
local btn_cr2 = self._config:GetChild('anchoubtn')
|
||||
btn_cr2.onClick:Set(
|
||||
function()
|
||||
|
||||
local gniv = GroupNumberInputView_Game.new(nil, function(num)
|
||||
|
||||
local value = limit
|
||||
if otype == 1 then
|
||||
value = value + ad2d(num)
|
||||
elseif otype == - 1 then
|
||||
value = value - ad2d(num)
|
||||
else
|
||||
value = ad2d(num)
|
||||
end
|
||||
|
||||
if value < 0 then
|
||||
ViewUtil.ErrorTip(1,"输入数据异常!")
|
||||
end
|
||||
|
||||
self.anchouValueText.text=value/d2ad
|
||||
self.anchouValue=value/d2ad
|
||||
|
||||
end, 3, nil)
|
||||
gniv:Show()
|
||||
|
||||
|
||||
end
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
local _help_url= "ui://Info_MJ_NingXiang/Com_help"
|
||||
function M:GetHelpUrl()
|
||||
return _help_url
|
||||
end
|
||||
|
||||
local _icon_url = "ui://Info_MJ_NingXiang/icon"
|
||||
function M:GetIconUrl()
|
||||
return _icon_url
|
||||
end
|
||||
|
||||
local _icon_url1 = "ui://Info_MJ_NingXiang/icon1"
|
||||
function M:GetIconUrl1()
|
||||
return _icon_url1
|
||||
end
|
||||
|
||||
local _play_list ={} --{"长沙麻将","三人长沙","二人长沙"}
|
||||
function M:GetPlayList()
|
||||
return _play_list
|
||||
end
|
||||
|
||||
function M:SelectedConfigData()
|
||||
local _config = self._config
|
||||
local round = _config:GetController("round").selectedIndex + 1 --== 0 and 1 or 2
|
||||
self._maxPlayer = _config:GetController("play_list").selectedIndex+2
|
||||
|
||||
local zhuangxian = _config:GetChild("btn_zhuangxian").selected and true or false
|
||||
-- local piaofen = _config:GetChild("btn_piaofen").selected and true or false
|
||||
local zimo = _config:GetChild("btn_zimo").selected and true or false
|
||||
local AA = _config:GetController("Cost").selectedIndex
|
||||
-- local liuliushun = _config:GetChild("btn_liuliushun").selected and true or false
|
||||
-- local queyise = _config:GetChild("btn_queyise").selected and true or false
|
||||
-- local banbanhu = _config:GetChild("btn_banbanhu").selected and true or false
|
||||
-- local dasixi = _config:GetChild("btn_dasixi").selected and true or false
|
||||
local jiejiegao = _config:GetChild("btn_jiejiegao").selected and true or false
|
||||
local santong = _config:GetChild("btn_santong").selected and true or false
|
||||
local yizhihua = _config:GetChild("btn_yizhihua").selected and true or false
|
||||
local zhongtusixi = _config:GetChild("btn_zhongtusixi").selected and true or false
|
||||
local zhongtuliuliushun = _config:GetChild("btn_zhongtuliuliushun").selected and true or false
|
||||
|
||||
local niao_type = _config:GetController("niao").selectedIndex
|
||||
local niao_num = _config:GetController("niao_num").selectedIndex
|
||||
local niao_db_num = _config:GetController("niao_db_num").selectedIndex
|
||||
local niao = niao_type == 1 and (niao_db_num == 0 and 1 or 2) or (niao_type == 0 and (niao_num == 0 and 2 or (niao_num == 1 and 4 or 6)) or 2)
|
||||
local piao_niao = _config:GetChild("btn_piao_niao").selected
|
||||
local two_pair = _config:GetChild("btn_two_pair").selected
|
||||
local no_jiang = _config:GetChild("btn_no_jiang").selected
|
||||
local four_win = _config:GetChild("btn_four_win").selected
|
||||
local native_hu = _config:GetChild("btn_native_hu").selected
|
||||
local queyimen = _config:GetChild("btn_queyimen").selected
|
||||
|
||||
--获取封顶控制器状态
|
||||
local fengding_score = 0
|
||||
local fengding = false
|
||||
|
||||
if _config:GetController("fengding") then
|
||||
fengding_score=_config:GetController("fengding").selectedIndex
|
||||
-- 判断:0 为 false,1/2/3 等为 true
|
||||
fengding = (fengding_score > 0)
|
||||
end
|
||||
|
||||
local banyiquan = _config:GetChild("btn_banyiquan").selected
|
||||
local menqing = _config:GetChild("btn_menqing").selected
|
||||
local piao_niao1=0
|
||||
if _config:GetController('piao') then
|
||||
piao_niao1=_config:GetController('piao').selectedIndex
|
||||
end
|
||||
local piao1=false
|
||||
local piao2=false
|
||||
local piao3=false
|
||||
local piao_niao_opt=0
|
||||
if piao_niao1==2 then
|
||||
piao_niao_opt=_config:GetController("piaofen").selectedIndex
|
||||
end
|
||||
|
||||
local xi_pai=false
|
||||
local xi_paifen=0
|
||||
if _config:GetChild("xipai") then
|
||||
xi_pai=_config:GetChild("xipai").selected
|
||||
end
|
||||
|
||||
local niaofen_opt=0
|
||||
local niaofen_score=1
|
||||
local difen_score=1
|
||||
local kai_gong=0
|
||||
if oldGameVersion==2 then
|
||||
niaofen_opt=_config:GetController("niaoadd").selectedIndex
|
||||
niaofen_score= tonumber(_config:GetController("niaodf").selectedPage)
|
||||
difen_score= tonumber(_config:GetController("jcdifen").selectedPage)
|
||||
kai_gong=_config:GetController("kaigang").selectedIndex
|
||||
end
|
||||
|
||||
|
||||
---------
|
||||
local _data = {}
|
||||
_data["opt"] = round
|
||||
_data["maxPlayers"] = self._maxPlayer
|
||||
|
||||
_data["zhuangxian"] = zhuangxian
|
||||
_data["zimo"] = zimo
|
||||
_data["AA"] = AA
|
||||
-- _data["piaofen"] = piaofen
|
||||
-- _data["liuliushun"] = liuliushun
|
||||
-- _data["queyise"] = queyise
|
||||
-- _data["banbanhu"] = banbanhu
|
||||
-- _data["dasixi"] = dasixi
|
||||
_data["jiejiegao"] = jiejiegao
|
||||
_data["santong"] = santong
|
||||
_data["yizhihua"] = yizhihua
|
||||
_data["zhongtusixi"] = zhongtusixi
|
||||
_data["zhongtuliuliushun"] = zhongtuliuliushun
|
||||
|
||||
_data["niao_type"] = niao_type
|
||||
|
||||
|
||||
if oldGameVersion==1 then
|
||||
_data["niao"] = niao
|
||||
else
|
||||
_data["niao"] = tonumber(_config:GetController("niao_num").selectedPage)
|
||||
end
|
||||
|
||||
|
||||
if oldGameVersion==1 then
|
||||
_data["piao_niao"] = piao_niao
|
||||
else
|
||||
_data["piao_niao"] = piao_niao1
|
||||
end
|
||||
_data["two_pair"] = two_pair
|
||||
_data["no_jiang"] = no_jiang
|
||||
_data["four_win"] = four_win
|
||||
_data["native_hu"] = native_hu
|
||||
_data["queyimen"] = queyimen
|
||||
_data["fengding"] = fengding
|
||||
_data["banyiquan"] = banyiquan
|
||||
_data["menqing"] = menqing
|
||||
_data["fengding_score"] = fengding_score
|
||||
--_data['piao'] = piao
|
||||
_data['piao1'] = piao1
|
||||
_data['piao2'] = piao2
|
||||
_data['piao3'] = piao3
|
||||
|
||||
auto_piao=false
|
||||
if piao_niao1==2 then
|
||||
if piao1 or piao2 or piao3 then
|
||||
auto_piao=true
|
||||
end
|
||||
end
|
||||
|
||||
if oldGameVersion==2 then
|
||||
_data['auto_piao'] = auto_piao
|
||||
end
|
||||
|
||||
_data['xi_pai'] = xi_pai
|
||||
_data['piao_niao_opt'] = piao_niao_opt
|
||||
|
||||
local xi_pai_score=0
|
||||
local an_chou_score=0
|
||||
if oldGameVersion==2 then
|
||||
xi_pai_score=self.xipaiValue
|
||||
an_chou_score=self.anchouValue
|
||||
end
|
||||
|
||||
_data['xi_pai_score'] = ad2d(xi_pai_score)
|
||||
_data['an_chou_score'] = ad2d(an_chou_score)
|
||||
|
||||
if oldGameVersion==2 then
|
||||
_data['niaofen_opt'] = niaofen_opt
|
||||
_data['niaofen_score'] = niaofen_score
|
||||
_data['difen_score'] = difen_score
|
||||
_data['kai_gong'] = kai_gong
|
||||
|
||||
end
|
||||
|
||||
|
||||
pt(_data)
|
||||
return _data
|
||||
end
|
||||
|
||||
|
||||
|
||||
function M:LoadConfigData(data)
|
||||
pt(data)
|
||||
local _config = self._config
|
||||
_config:GetController("round").selectedIndex = data.opt - 1 -- == 1 and 0 or 1
|
||||
_config:GetController("play_list").selectedIndex = data.maxPlayers-2
|
||||
|
||||
_config:GetChild("btn_zhuangxian").selected = data.zhuangxian
|
||||
_config:GetChild("btn_zimo").selected = data.zimo
|
||||
_config:GetController("Cost").selectedIndex = data.AA
|
||||
-- _config:GetChild("btn_piaofen").selected = data.piaofen
|
||||
-- _config:GetChild("btn_liuliushun").selected = data.liuliushun
|
||||
-- _config:GetChild("btn_queyise").selected = data.queyise
|
||||
-- _config:GetChild("btn_banbanhu").selected = data.banbanhu
|
||||
-- _config:GetChild("btn_dasixi").selected = data.dasixi
|
||||
_config:GetChild("btn_jiejiegao").selected = data.jiejiegao
|
||||
_config:GetChild("btn_santong").selected = data.santong
|
||||
_config:GetChild("btn_yizhihua").selected = data.yizhihua
|
||||
_config:GetChild("btn_zhongtusixi").selected = data.zhongtusixi
|
||||
_config:GetChild("btn_zhongtuliuliushun").selected = data.zhongtuliuliushun
|
||||
|
||||
_config:GetController("niao").selectedIndex = data.niao_type
|
||||
|
||||
if oldGameVersion==1 then
|
||||
_config:GetController("niao_num").selectedIndex = data.niao_type ~= 0 and 0 or (data.niao == 4 and 1 or (data.niao == 6 and 2 or 0))
|
||||
else
|
||||
_config:GetController("niao_num").selectedIndex=data.niao/2-1
|
||||
end
|
||||
_config:GetController("niao_db_num").selectedIndex = data.niao_type ~= 1 and 0 or (data.niao == 1 and 0 or 1)
|
||||
if oldGameVersion==1 then
|
||||
_config:GetChild("btn_piao_niao").selected = data.piao_niao
|
||||
end
|
||||
_config:GetChild("btn_two_pair").selected = data.two_pair
|
||||
_config:GetChild("btn_no_jiang").selected = data.no_jiang
|
||||
_config:GetChild("btn_four_win").selected = data.four_win
|
||||
_config:GetChild("btn_native_hu").selected = data.native_hu
|
||||
_config:GetChild("btn_queyimen").selected = data.queyimen
|
||||
_config:GetChild("btn_fengding").selected = data.fengding or false
|
||||
_config:GetChild("btn_banyiquan").selected = data.banyiquan or false
|
||||
_config:GetChild("btn_menqing").selected = data.menqing or false
|
||||
|
||||
if _config:GetController("fengding") then
|
||||
_config:GetController("fengding").selectedIndex=data.fengding_score
|
||||
end
|
||||
|
||||
if _config:GetController("piao") then
|
||||
_config:GetController("piao").selectedIndex=data.piao_niao
|
||||
_config:GetChild('pf1').selected=data.piao1
|
||||
_config:GetChild('pf2').selected=data.piao2
|
||||
_config:GetChild('pf3').selected=data.piao3
|
||||
end
|
||||
|
||||
if _config:GetChild("xipai") then
|
||||
_config:GetChild("xipai").selected=data.xi_pai
|
||||
end
|
||||
|
||||
if _config:GetController("piaofen") then
|
||||
_config:GetController("piaofen").selectedIndex=data.piao_niao_opt
|
||||
end
|
||||
|
||||
if oldGameVersion==2 then
|
||||
self.xipaiValueText.text=data.xi_pai_score/d2ad(1000)
|
||||
self.xipaiValue=data.xi_pai_score/d2ad(1000)
|
||||
|
||||
self.anchouValueText.text=data.an_chou_score/d2ad(1000)
|
||||
self.anchouValue=data.an_chou_score/d2ad(1000)
|
||||
end
|
||||
|
||||
if oldGameVersion==2 then
|
||||
_config:GetController("niaoadd").selectedIndex=data.niaofen_opt or 0
|
||||
_config:GetController("niaodf").selectedIndex=data.niaofen_score-1
|
||||
_config:GetController("jcdifen").selectedIndex=data.difen_score-1
|
||||
_config:GetController("kaigang").selectedIndex=data.kai_gong
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
return M
|
||||
|
||||
|
|
@ -0,0 +1,395 @@
|
|||
local MJPlayBackView = require("main.majiang.MJPlayBackView")
|
||||
local EXRoomConfig = import(".EXRoomConfig")
|
||||
local PlayerInfoView = require("Game.View.PlayerInfoView")
|
||||
local EXClearingView = import(".EXClearingView")
|
||||
|
||||
local Record_Event = import(".RecordEvent")
|
||||
|
||||
|
||||
local M = {}
|
||||
|
||||
--- Create a new
|
||||
function M.new()
|
||||
setmetatable(M,{__index = MJPlayBackView})
|
||||
local self = setmetatable({}, {__index = M})
|
||||
self.class = "CS_PlayBackView"
|
||||
self:init()
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
function M:InitView(url)
|
||||
local room = self._room
|
||||
UIPackage.AddPackage("extend/majiang/ningxiang/ui/Extend_MJ_NingXiang")
|
||||
MJPlayBackView.InitView(self,"ui://Main_Majiang/Main_"..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 = {}
|
||||
|
||||
self._cmdmap = {}
|
||||
self._cmdmap[Record_Event.Evt_QiShou] = self.CmdQiShou
|
||||
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_KaiGang] = self.CmdKaiGang
|
||||
self._cmdmap[Record_Event.Evt_Piao] = self.CmdPiao
|
||||
self._cmdmap[Record_Event.Evt_Result] = self.CmdResult
|
||||
end
|
||||
|
||||
function M:FillRoomData(data)
|
||||
MJPlayBackView.FillRoomData(self)
|
||||
local room = self._room
|
||||
-- if room.room_config.people_num ~= 4 then
|
||||
-- for i = 1, 4 do
|
||||
-- self._view:GetChild("player_info" .. i).visible = false
|
||||
-- end
|
||||
-- local num
|
||||
-- for i = 1, room.room_config.people_num do
|
||||
-- if room.room_config.people_num == 3 and i == 3 then
|
||||
-- num = 4
|
||||
-- elseif room.room_config.people_num == 2 and i == 2 then
|
||||
-- num = 3
|
||||
-- else
|
||||
-- num = i
|
||||
-- end
|
||||
-- local tem= self._view:GetChild("player_card_info" .. num)
|
||||
-- self._player_card_info[i] = self:NewMJPlayerCardInfoView(tem, i)
|
||||
|
||||
-- local tem = self._view:GetChild("player_info" .. num)
|
||||
-- self._player_info[i] = PlayerInfoView.new(tem, self)
|
||||
-- end
|
||||
-- for i = 1,#room.player_list do
|
||||
-- local p = room.player_list[i]
|
||||
-- local index = self:GetPos(p.seat)
|
||||
-- local card_info = self._player_card_info[index]
|
||||
-- local info = self._player_info[index]
|
||||
-- card_info:SetPlayer(p)
|
||||
-- card_info:FillData()
|
||||
-- info:FillData(p)
|
||||
-- info._view.visible = true
|
||||
-- end
|
||||
-- end
|
||||
|
||||
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()
|
||||
|
||||
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, ViewUtil.HandCardSort)
|
||||
card_info:UpdateHandCard(false, true)
|
||||
self._player_info[i]._view:GetController("piao_niao").selectedIndex = 0
|
||||
end
|
||||
|
||||
self:GenerateAllStepData(data)
|
||||
self:UpdateStep(1)
|
||||
-- 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(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 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._mask_liangpai: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_NingXiang/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", self:GetPrefix() .."201_"..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()
|
||||
elseif step.cmd == Record_Event.Evt_KaiGang then
|
||||
self._kaigang = UIPackage.CreateObject("Extend_MJ_NingXiang", "kai_gang")
|
||||
local cards = step.card
|
||||
local gang_list = self._kaigang:GetChild("list")
|
||||
gang_list:RemoveChildrenToPool()
|
||||
for i = 1, #cards do
|
||||
local item = gang_list:AddItemFromPool()
|
||||
item.icon = UIPackage.GetItemURL("Main_Majiang", self:GetPrefix() .."201_" .. cards[i])
|
||||
end
|
||||
self._view:AddChild(self._kaigang)
|
||||
self._kaigang:Center()
|
||||
elseif step.cmd == Record_Event.Evt_QiShou then
|
||||
local data = step.qs_data
|
||||
self._QS = UIPackage.CreateObject("Extend_MJ_NingXiang", "showAll")
|
||||
local list = self._QS:GetChild("n0")
|
||||
list:RemoveChildrenToPool()
|
||||
for i = 1, #data do
|
||||
local item = list:AddItemFromPool()
|
||||
item:GetChild("icon").url = "ui://Extend_MJ_NingXiang/qs" .. data[i].type
|
||||
item:GetChild("num").text = data[i].value
|
||||
end
|
||||
local info = self._player_card_info[self:GetPos(step.qs_seat)]
|
||||
info._mask_liangpai:AddChild(self._QS)
|
||||
self._QS:Center()
|
||||
else
|
||||
-- 因为 开杠 和 鸟 不会连续出现,不然此处需要分开判断
|
||||
if self._niao then
|
||||
self._niao:Dispose()
|
||||
end
|
||||
if self._kaigang then
|
||||
self._kaigang:Dispose()
|
||||
end
|
||||
if self._QS then
|
||||
self._QS:Dispose()
|
||||
end
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_Result then
|
||||
if not self.result then
|
||||
self.result = EXClearingView.new(self._root_view, 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
|
||||
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
|
||||
|
||||
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
|
||||
end
|
||||
|
||||
function M:CmdQiShou(cmd, index)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.qs_seat = cmd.seat
|
||||
data.qs_data = cmd.data.data
|
||||
-- data.qs_card = cmd.data.card
|
||||
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
|
||||
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, ViewUtil.HandCardSort)
|
||||
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 fz = {}
|
||||
fz.type = cmd.data.type
|
||||
fz.card = cmd.data.card
|
||||
fz.opcard = cmd.data.opcard
|
||||
fz.kaigang = cmd.data.opengang
|
||||
local u = data.player_card_data[cmd.seat]
|
||||
for i = 1, #fz.opcard do
|
||||
list_remove(u.card_list, fz.opcard[i])
|
||||
end
|
||||
|
||||
if fz.type == 1 then
|
||||
fz.type = FZType.Chi
|
||||
fz.opcard[#fz.opcard + 1] = fz.card
|
||||
elseif fz.type ==2 then
|
||||
fz.type = FZType.Peng
|
||||
elseif fz.type == 3 or fz.type == 4 then
|
||||
if #fz.opcard == 1 then
|
||||
fz.type = FZType.Gang_Peng
|
||||
elseif #fz.opcard == 3 then
|
||||
fz.type = FZType.Gang
|
||||
elseif #fz.opcard == 4 then
|
||||
fz.type = FZType.Gang_An
|
||||
end
|
||||
end
|
||||
|
||||
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:CmdKaiGang(cmd, index)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.left_card = cmd.data.left_count
|
||||
data.card = cmd.data.info.cardList
|
||||
end
|
||||
|
||||
function M:CmdWin(cmd, index)
|
||||
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
|
||||
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
|
||||
end
|
||||
|
||||
function M:CmdResult(cmd, index)
|
||||
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
|
||||
end
|
||||
|
||||
function M:UpdateLeftCard(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
|
||||
end
|
||||
|
||||
function M:UpdateRound(round)
|
||||
self._tex_round.text = "第 "..round.."/"..self._room.room_config.round.." 局"
|
||||
end
|
||||
|
||||
function M:UpdateStep(step)
|
||||
self._record:GetChild("tex_step").text = "第 " .. step .. " / " .. #self._step .. "步"
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
|
||||
|
||||
local EXPlayer = {
|
||||
auto,
|
||||
-- 手牌列表
|
||||
card_list = nil,
|
||||
-- 剩余牌数
|
||||
hand_left_count = 0,
|
||||
-- 出牌列表
|
||||
outcard_list = nil,
|
||||
-- 牌组列表
|
||||
fz_list = nil,
|
||||
|
||||
win_count = 0
|
||||
}
|
||||
|
||||
local M = EXPlayer
|
||||
|
||||
--- Create a new EXPlayer
|
||||
function M.new()
|
||||
setmetatable(M,{__index = Player})
|
||||
local self = setmetatable({}, {__index = M})
|
||||
self.card_list = {}
|
||||
self.outcard_list = {}
|
||||
self.fz_list = {}
|
||||
return self
|
||||
end
|
||||
|
||||
-- 清理玩家数据
|
||||
function M:Clear()
|
||||
Player.Clear(self)
|
||||
self.card_list = {}
|
||||
self.outcard_list = {}
|
||||
self.fz_list = {}
|
||||
self.hand_left_count = 0
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
local PlayerInfoView = require("Game.View.PlayerInfoView")
|
||||
|
||||
local M = {}
|
||||
|
||||
function M.new(view, mainView)
|
||||
setmetatable(M, {__index = PlayerInfoView})
|
||||
local self = setmetatable({}, {__index = M})
|
||||
self._view = view
|
||||
self._main_view = mainView
|
||||
self:init()
|
||||
return self
|
||||
end
|
||||
|
||||
function M:init()
|
||||
PlayerInfoView.init(self)
|
||||
self._tex_score = self._view:GetChild("info"):GetChild("tex_score1")
|
||||
self._tex_score2 = self._view:GetChild("info"):GetChild("tex_score2")
|
||||
self._ct_score = self._view:GetChild("info"):GetController("score")
|
||||
end
|
||||
|
||||
function M:ShowInteraction(type,str)
|
||||
if type == 3 then
|
||||
Voice.DownLoad(str, function(clip)
|
||||
if (clip ) then
|
||||
self:ShowMaskVoice(clip.length)
|
||||
GameApplication.Instance:PlayVoice(clip)
|
||||
end
|
||||
end)
|
||||
elseif type == 4 then
|
||||
self:SetChat(str)
|
||||
elseif type == 2 then
|
||||
local chat_index = tonumber(str)
|
||||
self._main_view:PlayChatSound(self._player.self_user.sex,chat_index)
|
||||
local language, index = self._main_view:GetChatMsgLanguage(chat_index)
|
||||
self:SetChat(self._main_view.Fix_Msg_Chat[index])
|
||||
elseif type == 1 then
|
||||
self:SetBiaoqing("ui://Chat/"..str)
|
||||
end
|
||||
end
|
||||
|
||||
function M:UpdateRemainCard(card_num, hide)
|
||||
if hide then
|
||||
self._view:GetController("show_remain").selectedIndex = 0
|
||||
else
|
||||
self._view:GetController("show_remain").selectedIndex = 1
|
||||
end
|
||||
self._view:GetChild("com_remain"):GetChild("tex_remain").text = card_num
|
||||
end
|
||||
|
||||
function M:FillData(player)
|
||||
PlayerInfoView.FillData(self, player)
|
||||
self:UpdateScore(player.total_score)
|
||||
end
|
||||
|
||||
function M:UpdateScore()
|
||||
local score = self._player.total_score
|
||||
local room = DataManager.CurrenRoom
|
||||
if room:checkHpNonnegative() then
|
||||
score = d2ad(self._player.cur_hp)
|
||||
end
|
||||
if not score then
|
||||
score = 0
|
||||
end
|
||||
if score < 0 then
|
||||
self._ct_score.selectedIndex = 1
|
||||
self._tex_score2.text = score
|
||||
else
|
||||
self._ct_score.selectedIndex = 0
|
||||
if not room:checkHpNonnegative() then
|
||||
score = "+" .. score
|
||||
end
|
||||
self._tex_score.text = score
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
|
||||
|
||||
|
||||
---
|
||||
local M = {}
|
||||
|
||||
|
||||
--- Create a new RoomConfig
|
||||
function M.new(config)
|
||||
setmetatable(M,{__index = RoomConfig})
|
||||
local self = setmetatable({}, {__index = M})
|
||||
RoomConfig.init(self,config)
|
||||
self.class = "CS_RoomConfig"
|
||||
self.round = config["times"]
|
||||
self.config=config
|
||||
self.zhuangxian = config["zhuangxian"]
|
||||
-- self.piaofen = config["piaofen"]
|
||||
self.zimo = config["zimo"]
|
||||
self.liuliushun = config["liuliushun"]
|
||||
self.queyise = config["queyise"]
|
||||
self.banbanhu = config["banbanhu"]
|
||||
self.dasixi = config["dasixi"]
|
||||
self.jiejiegao = config["jiejiegao"]
|
||||
self.santong = config["santong"]
|
||||
self.yizhihua = config["yizhihua"]
|
||||
self.zhongtusixi = config["zhongtusixi"]
|
||||
self.zhongtuliuliushun = config["zhongtuliuliushun"]
|
||||
|
||||
self.niao_type = config["niao_type"]
|
||||
self.niao = config["niao"]
|
||||
self.piao_niao = config["piao_niao"]
|
||||
self.two_pair = config["two_pair"]
|
||||
self.no_jiang = config["no_jiang"]
|
||||
self.four_win = config["four_win"]
|
||||
self.native_hu = config["native_hu"]
|
||||
self.queyimen = config["queyimen"]
|
||||
self.fengding = config["fengding"]
|
||||
self.banyiquan = config["banyiquan"]
|
||||
self.menqing = config["menqing"]
|
||||
self.isHidden = config.isHidden
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
function M:GetDes(sp)
|
||||
sp = sp or " "
|
||||
local str = self.round and self.round .. "局" .. sp or ""
|
||||
str = str .. RoomConfig.GetDes(self, sp)
|
||||
|
||||
if (self.zhuangxian) then
|
||||
str = str .. "庄闲(算分)"
|
||||
str = str .. sp
|
||||
end
|
||||
|
||||
if (self.zimo) then
|
||||
str = str .. "自摸胡"
|
||||
else
|
||||
str = str .. "点炮胡"
|
||||
end
|
||||
str = str .. sp
|
||||
|
||||
if self.fengding then
|
||||
str = str .. "封顶" .. sp
|
||||
end
|
||||
|
||||
if self.banyiquan then
|
||||
str = str .. "起手胡板一圈" .. sp
|
||||
end
|
||||
|
||||
if (self.liuliushun) then
|
||||
str = str .. "六六顺"
|
||||
str = str .. sp
|
||||
end
|
||||
|
||||
if (self.queyise) then
|
||||
str = str .. "缺一色"
|
||||
str = str .. sp
|
||||
end
|
||||
|
||||
if (self.banbanhu) then
|
||||
str = str .. "板板胡"
|
||||
str = str .. sp
|
||||
end
|
||||
|
||||
if (self.dasixi) then
|
||||
str = str .. "大四喜"
|
||||
str = str .. sp
|
||||
end
|
||||
|
||||
if (self.jiejiegao) then
|
||||
str = str .. "节节高"
|
||||
str = str .. sp
|
||||
end
|
||||
|
||||
if (self.santong) then
|
||||
str = str .. "三同"
|
||||
str = str .. sp
|
||||
end
|
||||
|
||||
if (self.yizhihua) then
|
||||
str = str .. "一枝花"
|
||||
str = str .. sp
|
||||
end
|
||||
|
||||
if (self.zhongtusixi) then
|
||||
str = str .. "中途四喜"
|
||||
str = str .. sp
|
||||
end
|
||||
|
||||
if (self.zhongtuliuliushun) then
|
||||
str = str .. "中途六六顺"
|
||||
str = str .. sp
|
||||
end
|
||||
|
||||
if (self.piao_niao) then
|
||||
str = str .. "飘鸟" .. sp
|
||||
end
|
||||
|
||||
if self.two_pair then
|
||||
str = str .. "金童玉女" .. sp
|
||||
end
|
||||
|
||||
if self.no_jiang then
|
||||
str = str .. "假将胡" .. sp
|
||||
end
|
||||
|
||||
if self.four_win then
|
||||
str = str .. "四连冠" .. sp
|
||||
end
|
||||
|
||||
if self.native_hu then
|
||||
str = str .. "天听天胡" .. sp
|
||||
end
|
||||
|
||||
if self.queyimen then
|
||||
str = str .. "缺一门" .. sp
|
||||
end
|
||||
|
||||
if self.menqing then
|
||||
str = str .. "门清" ..sp
|
||||
end
|
||||
|
||||
str = str .. (self.niao_type == 0 and "鸟加分" or (self.niao_type == 1 and "鸟翻倍" or "长沙抓2鸟"))
|
||||
str = str .. sp
|
||||
|
||||
if (self.niao) then
|
||||
str = str .. "抓" .. self.niao .. "鸟" .. sp
|
||||
end
|
||||
|
||||
str = str.sub(str,1,string.len(str)-string.len(sp))
|
||||
return str
|
||||
end
|
||||
|
||||
function M:GetGameName()
|
||||
return "长沙麻将"
|
||||
end
|
||||
|
||||
function M:GetGameJS()
|
||||
local gamerulepanel= UIPackage.CreateObjectFromURL("ui://Extend_MJ_NingXiang/gamerule")
|
||||
return gamerulepanel
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,182 @@
|
|||
local EXTEND_MODEL_NAME = ...
|
||||
|
||||
local EXGameInfo = import(".EXGameInfo")
|
||||
local EXMainView = import(".EXMainView")
|
||||
local EXGameController = import(".EXGameController")
|
||||
local EXRoomConfig = import(".EXRoomConfig")
|
||||
local EXPlayBackView =import(".EXPlayBackView")
|
||||
local MJRoom = require("main.majiang.MJRoom")
|
||||
|
||||
local ExtendConfig = {}
|
||||
|
||||
local M = ExtendConfig
|
||||
|
||||
|
||||
function ExtendConfig.new()
|
||||
setmetatable(M, {__index = IExtendConfig})
|
||||
local self = setmetatable({}, {__index = M})
|
||||
self.class = "ExtendConfig"
|
||||
self._viewMap = {}
|
||||
self._viewMap[ViewManager.View_Main] = EXMainView
|
||||
self._viewMap[ViewManager.View_PlayBack] = EXPlayBackView
|
||||
return self
|
||||
end
|
||||
|
||||
--卸载资源
|
||||
function M:UnAllAssets()
|
||||
UIPackage.RemovePackage("extend/majiang/ningxiang/ui/Info_MJ_NingXiang")
|
||||
self:UnAssets()
|
||||
end
|
||||
|
||||
--卸载资源
|
||||
function M:UnAssets()
|
||||
UIPackage.RemovePackage("extend/majiang/ningxiang/ui/Extend_MJ_NingXiang")
|
||||
ResourcesManager.UnLoadGroup("NingXiang_MJ")
|
||||
end
|
||||
|
||||
local _gameInfo = nil
|
||||
function M:GetGameInfo()
|
||||
if not _gameInfo then
|
||||
_gameInfo = EXGameInfo.new()
|
||||
end
|
||||
return _gameInfo
|
||||
end
|
||||
|
||||
local _ctr_game = nil
|
||||
function M:GetGameController()
|
||||
if _ctr_game == nil then
|
||||
_ctr_game = EXGameController.new()
|
||||
end
|
||||
return _ctr_game
|
||||
end
|
||||
|
||||
function M:NewRoom()
|
||||
return MJRoom.new()
|
||||
end
|
||||
|
||||
function M:FillRoomConfig(room,_config)
|
||||
room.room_config = EXRoomConfig.new(_config)
|
||||
end
|
||||
|
||||
function M:FillRoomData(s2croom)
|
||||
local room = DataManager.CurrenRoom
|
||||
|
||||
local reload = s2croom["reload"]
|
||||
local _tableInfo = s2croom["tableInfo"]
|
||||
|
||||
local _config = _tableInfo["config"]
|
||||
room.room_config = EXRoomConfig.new(_config)
|
||||
|
||||
local playerList = _tableInfo["playerData"]
|
||||
room.curren_round = _tableInfo["round"]
|
||||
if room.curren_round == 0 and reload then room.curren_round = 1 end
|
||||
self:FillPlayerData(playerList)
|
||||
|
||||
if (reload) then
|
||||
local _reloadInfo = s2croom["reloadInfo"]
|
||||
local _hand_card = _reloadInfo["hand_card"]
|
||||
room.self_player.card_list = _hand_card
|
||||
table.sort(_hand_card, ViewUtil.HandCardSort)
|
||||
|
||||
local active_seat = _reloadInfo["active_seat"]
|
||||
local bank_seat = _reloadInfo["banker_seat"]
|
||||
local playing = _reloadInfo["playing"]
|
||||
local _info_list = _reloadInfo["info_list"]
|
||||
local last_outcard_seat = _reloadInfo["last_outcard_seat"]
|
||||
room.left_count = _reloadInfo["left_card"]
|
||||
room.banker_seat = bank_seat
|
||||
room.curren_outcard_seat = _reloadInfo["curren_outcard_seat"]
|
||||
room.active_seat = _reloadInfo["active_seat"]
|
||||
room.last_outcard_seat = last_outcard_seat
|
||||
room.playing = playing
|
||||
local _ok_list = _reloadInfo["okinfo"]
|
||||
if _ok_list then room.kg_card = _ok_list.cardList end
|
||||
for i=1,#_info_list do
|
||||
local tem = _info_list[i]
|
||||
local playerid = tem["playerid"]
|
||||
local auto_play = tem["auto"]
|
||||
local p = room:GetPlayerById(playerid)
|
||||
local outcard_list = tem["outcard_list"]
|
||||
p.outcard_list = outcard_list
|
||||
p.total_score = tem["score"]
|
||||
p.hand_left_count = tem["card_count"]
|
||||
p.auto_play = auto_play
|
||||
if auto_play then
|
||||
p.draw_card = tem["draw_card"]
|
||||
end
|
||||
p.ting = tem["ting"]
|
||||
p.win_count = tem["win_count"]
|
||||
p.piao_niao = tem["piao_niao"] or 0
|
||||
-- p.entrust = tem["entrust"] or false
|
||||
local opcard = tem["opcard"]
|
||||
for k=1,#opcard do
|
||||
local op = opcard[k]
|
||||
local fz = {}
|
||||
fz.type = op["type"]
|
||||
fz.card = op["card"]
|
||||
fz.opengang = op["opengang"]
|
||||
if fz.type == FZType.Chi then
|
||||
fz.opcard = {}
|
||||
fz.opcard[1] = op["opcard"][1]
|
||||
fz.opcard[2] = fz.card
|
||||
fz.opcard[3] = op["opcard"][2]
|
||||
end
|
||||
p.fz_list[#p.fz_list+1] = fz
|
||||
end
|
||||
if (not playing and room.curren_round > 0) or room.status == 1 then
|
||||
self.GetGameController():PlayerReady()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function M:FillPlayBackData(pd_data)
|
||||
local room = DataManager.CurrenRoom
|
||||
local _tableInfo = pd_data["info"]
|
||||
|
||||
local _config = _tableInfo["config"]
|
||||
room.room_id = _tableInfo.roomid
|
||||
room.room_config = EXRoomConfig.new(_config)
|
||||
room.owner_id = _config["ownerid"]
|
||||
local active_seat = _tableInfo["active_seat"]
|
||||
local bank_seat = _tableInfo["banker_seat"]
|
||||
room.left_count = _tableInfo["left_card"]
|
||||
room.banker_seat = bank_seat
|
||||
room.curren_turn_seat = active_seat
|
||||
room.curren_round = _tableInfo["round"]
|
||||
|
||||
local _info_list = _tableInfo["playerData"]
|
||||
for i = 1,#_info_list do
|
||||
local _jp = _info_list[i]
|
||||
local p = room:NewPlayer()
|
||||
p.seat = _jp["seat"]
|
||||
local online = _jp["online"]
|
||||
p.line_state = online
|
||||
p.ready = _jp["ready"] == 1 and true or false
|
||||
local pid = _jp["aid"]
|
||||
p.piao_niao = _jp["piao_niao"]
|
||||
if p.seat == 1 then room.self_player = p end
|
||||
local u = User.new()
|
||||
u.account_id = pid
|
||||
p.self_user = u
|
||||
u.nick_name = _jp["nick"]
|
||||
u.head_url = _jp["portrait"]
|
||||
u.sex = _jp["sex"]
|
||||
p.self_user.host_ip = p.self_user.host_ip
|
||||
local _hand_card = _jp["hand_card"]
|
||||
p.card_list = _hand_card
|
||||
--room.self_player.card_list = _hand_card
|
||||
table.sort(_hand_card, ViewUtil.HandCardSort)
|
||||
p.total_score = _jp["score"]
|
||||
p.hand_left_count = #_hand_card
|
||||
if _jp.hp_info then
|
||||
room.room_config.isNonnegative = 1
|
||||
p.cur_hp = _jp.hp_info.cur_hp
|
||||
end
|
||||
|
||||
room:AddPlayer(p)
|
||||
end
|
||||
room.cmdList = pd_data["cmdList"]
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
local FZTipList = require("main.majiang.FZData")
|
||||
|
||||
local HuTipView = {
|
||||
_view_start_pos = nil,
|
||||
_touch_start_pos = nil,
|
||||
}
|
||||
|
||||
local M = HuTipView
|
||||
|
||||
function M.new(main_view)
|
||||
local self = {}
|
||||
self.class = "HuTipView"
|
||||
setmetatable(self,{__index = HuTipView})
|
||||
self._main_view = main_view
|
||||
self:init()
|
||||
return self
|
||||
end
|
||||
|
||||
local function SetObjEnabled(obj, enabled)
|
||||
obj.visible = enabled
|
||||
obj.touchable = enabled
|
||||
end
|
||||
|
||||
function M:OnTouchBegin(context)
|
||||
self._view_start_pos = Vector2(self._view.x, self._view.y)
|
||||
self._touch_start_pos = self._main_view._view:GlobalToLocal(Vector2(context.inputEvent.x, context.inputEvent.y))
|
||||
end
|
||||
function M:OnTouchMove(context)
|
||||
local xy = self._main_view._view:GlobalToLocal(Vector2.New(context.inputEvent.x,context.inputEvent.y))
|
||||
local dist = Vector2(xy.x - self._touch_start_pos.x, xy.y - self._touch_start_pos.y)
|
||||
local posx = self._view_start_pos.x + dist.x
|
||||
local posy = self._view_start_pos.y + dist.y
|
||||
local max_x = self._main_view._view.width - self._view.width
|
||||
local max_y = self._main_view._view.height - self._view.height
|
||||
self._view.x = posx < 0 and 0 or posx > max_x and max_x or posx
|
||||
self._view.y = posy < 0 and 0 or posy > max_y and max_y or posy
|
||||
end
|
||||
|
||||
function M:init()
|
||||
UIPackage.AddPackage("extend/majiang/ningxiang/ui/Extend_MJ_NingXiang")
|
||||
self._view = UIPackage.CreateObjectFromURL("ui://Extend_MJ_NingXiang/Hu_tip")
|
||||
self._main_view._view:AddChild(self._view)
|
||||
local width = self._view.width
|
||||
local m_width = self._main_view._view.width
|
||||
local m_height = self._main_view._view.height
|
||||
-- 初始位置
|
||||
self._view.x = 0
|
||||
self._view.y = 0.75 * m_height
|
||||
SetObjEnabled(self._view, false)
|
||||
self._view.onTouchBegin:Add(handler(self, self.OnTouchBegin))
|
||||
self._view.onTouchMove:Add(handler(self, self.OnTouchMove))
|
||||
end
|
||||
|
||||
function M:FillData(cards)
|
||||
local lst_card = self._view:GetChild("lst_card")
|
||||
lst_card:RemoveChildrenToPool()
|
||||
local num = #cards
|
||||
if num > 0 then
|
||||
if num > 3 and num <= 28 then
|
||||
self._view.width = 191 + (num - 3) * 38
|
||||
-- self._view.height = 69 + (math.ceil(num / 7) - 1) * 56
|
||||
else
|
||||
self._view.width = 191
|
||||
end
|
||||
for i = 1, num do
|
||||
local item = lst_card:AddItemFromPool()
|
||||
local card = cards[i]
|
||||
item:GetChild("icon").icon = "ui://Main_Majiang/" .. self:GetPrefix() .. "202_" .. card
|
||||
item:GetChild("tex_num").text = self:CountCardLeftNum(card) .. "张"
|
||||
end
|
||||
SetObjEnabled(self._view, true)
|
||||
else
|
||||
SetObjEnabled(self._view, false)
|
||||
end
|
||||
end
|
||||
|
||||
function M:CountCardLeftNum(card)
|
||||
local player_list = DataManager.CurrenRoom.player_list
|
||||
local count = 4
|
||||
for i = 1, #player_list do
|
||||
local p = player_list[i]
|
||||
if p.card_list then
|
||||
for j = 1, #p.card_list do
|
||||
if p.card_list[j] == card then
|
||||
count = count - 1
|
||||
end
|
||||
end
|
||||
end
|
||||
for j = 1, #p.outcard_list do
|
||||
if p.outcard_list[j] == card then
|
||||
count = count - 1
|
||||
end
|
||||
end
|
||||
for j = 1, #p.fz_list do
|
||||
local fz = p.fz_list[j]
|
||||
if fz.type == FZType.Chi then
|
||||
for k = 1, #fz.opcard do
|
||||
if card == fz.opcard[k] then
|
||||
count = count - 1
|
||||
break
|
||||
end
|
||||
end
|
||||
else
|
||||
local num = fz.type == FZType.Peng and 3 or 4
|
||||
if card == fz.card then
|
||||
count = count - num
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return count
|
||||
end
|
||||
|
||||
function M:GetPrefix()
|
||||
return get_majiang_prefix(DataManager.CurrenRoom.game_id)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
local MJPlayerCardInfoView = require("main.majiang.MJPlayerCardInfoView")
|
||||
local ViewUtil = require("Game.View.ViewUtil")
|
||||
local M = {}
|
||||
|
||||
function M.new(view,mainView)
|
||||
setmetatable(M, {__index = MJPlayerCardInfoView})
|
||||
local self = setmetatable({},{__index = M})
|
||||
self.class = "PlayerCardInfoView"
|
||||
self._view = view
|
||||
self._mainView = mainView
|
||||
self:init()
|
||||
return self
|
||||
end
|
||||
|
||||
local function CardPos(obj, area, oder, loc, offset)
|
||||
offset = offset or 0
|
||||
local location = loc
|
||||
if oder == AreaOderType.left_right then
|
||||
obj.x = location + offset
|
||||
location = obj.x + obj.width
|
||||
elseif oder == AreaOderType.up_down then
|
||||
obj.y = location + offset
|
||||
location = obj.y + obj.height
|
||||
elseif oder == AreaOderType.right_left then
|
||||
obj.x = (area.width - obj.width) - location - offset
|
||||
location = location + obj.width
|
||||
elseif oder == AreaOderType.down_up then
|
||||
obj.y = area.height - obj.height - location - offset
|
||||
location = location + obj.height
|
||||
end
|
||||
return location
|
||||
end
|
||||
|
||||
-- function M:UpdateHandCard(getcard, mp, opcard)
|
||||
-- -- mp 是否明牌
|
||||
-- -- 如果不明牌,但是有 opcard 表示是起手胡
|
||||
-- getcard = getcard or false
|
||||
-- mp = mp or false
|
||||
-- local handcard_list = self._mask_data["handcard_list"]
|
||||
-- local oder = handcard_list["oder"]
|
||||
-- local _player = self._player
|
||||
-- local comp_back = handcard_list["comp_back"]
|
||||
-- local comp = handcard_list["comp"]
|
||||
-- local outcard_list = self._mask_data["outcard_list"]
|
||||
-- local card = outcard_list["card"]
|
||||
|
||||
-- self._area_handcard_list:RemoveChildren(0, -1, true)
|
||||
-- local opnum = opcard and #opcard or -1
|
||||
-- if not mp and opnum > -1 then
|
||||
-- -- 起手胡板牌记录,手牌变化两次后,板牌收回
|
||||
-- self.__show_qs_hu_times = 1
|
||||
-- self.__qs_hu_cards = opcard
|
||||
-- elseif self.__qs_hu_cards and opnum == -1 and self.__show_qs_hu_times > 0 then
|
||||
-- self.__show_qs_hu_times = self.__show_qs_hu_times - 1
|
||||
-- opcard = self.__qs_hu_cards
|
||||
-- opnum = #opcard
|
||||
-- end
|
||||
-- local loc = 0
|
||||
-- if not mp then
|
||||
-- local comp_back = handcard_list["comp_back"]
|
||||
-- if self._current_card_type == 2 then
|
||||
-- comp_back = comp_back.."_3d"
|
||||
-- end
|
||||
-- for i = 0, _player.hand_left_count -1 do
|
||||
-- local obj
|
||||
-- local offset = (getcard and i == _player.hand_left_count - 1) and 15 or 0
|
||||
-- if i < opnum then
|
||||
-- obj = UIPackage.CreateObject("Main_Majiang", comp)
|
||||
-- self:fillCard(obj, card, opcard[i + 1])
|
||||
-- else
|
||||
-- obj = UIPackage.CreateObject("Main_Majiang", comp_back)
|
||||
-- end
|
||||
-- if opnum ~= -1 then
|
||||
-- loc = CardPos(obj, self._area_handcard_list, oder, loc, offset)
|
||||
-- else
|
||||
-- ViewUtil.CardPos(obj, self._area_handcard_list, oder, i, offset)
|
||||
-- end
|
||||
-- --改变左右两边的手牌的x值
|
||||
-- if self._current_card_type == 2 and (oder == AreaOderType.down_up or oder == AreaOderType.up_down) then
|
||||
-- obj.x = i * -7.0
|
||||
-- end
|
||||
-- if (oder == AreaOderType.down_up) then
|
||||
-- self._area_handcard_list:AddChildAt(obj, 0)
|
||||
-- else
|
||||
-- self._area_handcard_list:AddChild(obj)
|
||||
-- end
|
||||
-- end
|
||||
-- else
|
||||
-- local outcard_list = self._mask_data["outcard_list"]
|
||||
-- local comp = handcard_list["comp"]
|
||||
-- local card = outcard_list["card"]
|
||||
-- --print("comp"..comp)
|
||||
-- -- print(vardump(_player.card_list))
|
||||
|
||||
-- if self._current_card_type == 2 then
|
||||
-- comp = comp.."_3d"
|
||||
-- end
|
||||
-- for i = 0, #_player.card_list -1 do
|
||||
-- local obj = UIPackage.CreateObject("Main_Majiang", comp)
|
||||
-- self:fillCard(obj,card,_player.card_list[i+1])
|
||||
-- local offset = getcard and (i == _player.hand_left_count - 1 and 15 or 0)
|
||||
-- ViewUtil.CardPos(obj, self._area_handcard_list, oder, i, offset)
|
||||
-- --改变左右两边的手牌的x值
|
||||
-- if self._current_card_type == 2 and (oder == AreaOderType.down_up or oder == AreaOderType.up_down) then
|
||||
-- obj.x = i * -7
|
||||
-- end
|
||||
-- if (oder == AreaOderType.down_up) then
|
||||
-- self._area_handcard_list:AddChildAt(obj, 0)
|
||||
-- else
|
||||
-- self._area_handcard_list:AddChild(obj)
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,207 @@
|
|||
local MJPlayerSelfCardInfoView = require("main.majiang.MJPlayerSelfCardInfoView")
|
||||
local MJPlayerCardInfoView = require("main.majiang.MJPlayerCardInfoView")
|
||||
local CardCheck = import(".CardCheck")
|
||||
|
||||
local M = {}
|
||||
--
|
||||
function M.new(view,mainView)
|
||||
setmetatable(MJPlayerSelfCardInfoView, {__index = MJPlayerCardInfoView})
|
||||
setmetatable(M, {__index = MJPlayerSelfCardInfoView})
|
||||
local self = setmetatable({},{__index = M})
|
||||
self.class = "PlayerSelfCardInfoView"
|
||||
self._view = view
|
||||
self._mainView = mainView
|
||||
self:init()
|
||||
return self
|
||||
end
|
||||
|
||||
function M:ShowHuTip(card_list)
|
||||
local fz_list = DataManager.CurrenRoom.self_player.fz_list
|
||||
local tingList = CardCheck.tingPai(card_list, fz_list, DataManager.CurrenRoom.room_config.no_jiang)
|
||||
self._mainView._hu_tip:FillData(tingList)
|
||||
end
|
||||
|
||||
function M:UpdateHandCard(getcard, mp, opcard)
|
||||
MJPlayerSelfCardInfoView.UpdateHandCard(self, getcard, mp)
|
||||
local _carViewList = self._carViewList
|
||||
local card_list = DataManager.CurrenRoom.self_player.card_list
|
||||
self:ShowHuTip(card_list)
|
||||
if getcard then
|
||||
self._out_card = true
|
||||
local card_list = membe_clone(DataManager.CurrenRoom.self_player.card_list)
|
||||
-- 记录需要标记听牌提示的牌
|
||||
local lst_mark = {}
|
||||
local total_num = 0
|
||||
for i = 1, #_carViewList do
|
||||
local btn = _carViewList[i].card
|
||||
local card = self:GetCard(btn)
|
||||
list_remove(card_list, card)
|
||||
local tingList = CardCheck.tingPai(card_list, DataManager.CurrenRoom.self_player.fz_list, DataManager.CurrenRoom.room_config.no_jiang)
|
||||
if #tingList > 0 then
|
||||
local count = 0
|
||||
for j = 1, #tingList do
|
||||
count = count + self._mainView:CountCardLeftNum(tingList[j])
|
||||
end
|
||||
local tem = {}
|
||||
tem.item = btn
|
||||
tem.count = count
|
||||
total_num = total_num + count
|
||||
table.insert(lst_mark, tem)
|
||||
end
|
||||
table.insert(card_list, card)
|
||||
end
|
||||
table.sort(lst_mark, function(a, b)
|
||||
return a.count > b.count
|
||||
end)
|
||||
-- 如果几张牌的可胡牌数一致,也只显示'三角',可胡牌数不一致才显示'多'
|
||||
local all_same = #lst_mark ~= 0 and lst_mark[1].count == total_num / #lst_mark or false
|
||||
for i = 1, #lst_mark do
|
||||
local tem = lst_mark[i]
|
||||
if all_same or tem.count < lst_mark[1].count then
|
||||
tem.item:GetController("mark_ting").selectedIndex = 1
|
||||
else
|
||||
tem.item:GetController("mark_ting").selectedIndex = 2
|
||||
end
|
||||
end
|
||||
else
|
||||
for i = 1, #_carViewList do
|
||||
local btn = _carViewList[i].card
|
||||
if btn:GetController("mark_ting").selectedIndex ~= 0 then
|
||||
btn:GetController("mark_ting").selectedIndex = 0
|
||||
end
|
||||
end
|
||||
self._out_card = false
|
||||
end
|
||||
local opnum = opcard and #opcard or -1
|
||||
if not mp and opnum > -1 then
|
||||
-- 起手胡板牌记录,手牌变化两次后,板牌收回
|
||||
self.__show_qs_hu_times = 2
|
||||
self.__qs_hu_cards = opcard
|
||||
elseif self.__qs_hu_cards and opnum == -1 and self.__show_qs_hu_times > 0 then
|
||||
self.__show_qs_hu_times = self.__show_qs_hu_times - 1
|
||||
opcard = self.__qs_hu_cards
|
||||
opnum = #opcard
|
||||
end
|
||||
if opcard then
|
||||
if #opcard > 0 then
|
||||
for i = #opcard, 1, -1 do
|
||||
for j = 1, #_carViewList do
|
||||
local btn = _carViewList[j].card
|
||||
local card = self:GetCard(btn)
|
||||
local tem = string.gsub(btn.icon, "ui://Main_Majiang/" .. self:GetPrefix(), "")
|
||||
if card == tonumber(opcard[i]) and string.sub(tem, 1, 3) == "201" then
|
||||
btn.icon = "ui://Main_Majiang/" .. self:GetPrefix() .. "202_" .. card
|
||||
-- list_remove(opcard, card)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
for i = 1, #_carViewList do
|
||||
local btn = _carViewList[i].card
|
||||
local tem = string.gsub(btn.icon, "ui://Main_Majiang/", "")
|
||||
local tlist = string.split(tem, "_")
|
||||
btn.icon = "ui://Main_Majiang/" .. self:GetPrefix() .. "201_" .. tlist[2]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function M:__OnClickHandCard(context)
|
||||
local button = context.sender
|
||||
local _carViewList = self._carViewList
|
||||
local refresh = true
|
||||
local card_list = {}
|
||||
for i=1,#_carViewList do
|
||||
local btn = _carViewList[i].card
|
||||
local card = self:GetCard(btn)
|
||||
if btn ~= button and btn.selected == true then
|
||||
if button.data.card_item == card then
|
||||
refresh = false
|
||||
else
|
||||
self._mainView:markOutCards(false, card)
|
||||
end
|
||||
btn.selected = false
|
||||
end
|
||||
if not btn.selected then
|
||||
table.insert(card_list, card)
|
||||
end
|
||||
end
|
||||
|
||||
if self._out_card then
|
||||
self:ShowHuTip(card_list)
|
||||
end
|
||||
|
||||
if refresh then
|
||||
if button.selected then
|
||||
self._mainView:markOutCards(true, button.data.card_item)
|
||||
else
|
||||
self._mainView:markOutCards(false, button.data.card_item)
|
||||
end
|
||||
end
|
||||
|
||||
local _room = DataManager.CurrenRoom
|
||||
-- if (Utils.IsDoubleClick(context) and _room.curren_outcard_seat == _room.self_player.seat) then
|
||||
-- local card = button.data
|
||||
-- self._mainView:OutCard(card.card_item)
|
||||
-- end
|
||||
if not button.selected and _room.curren_outcard_seat == _room.self_player.seat then
|
||||
local card = button.data
|
||||
self._mainView:OutCard(card.card_item)
|
||||
end
|
||||
end
|
||||
|
||||
function M:__OnDragEnd(context, offset)
|
||||
if self.outcard_button then
|
||||
self.outcard_button:Dispose()
|
||||
self.outcard_button = nil
|
||||
end
|
||||
local button = context.sender
|
||||
--
|
||||
--button:RemoveFromParent()
|
||||
local card = button.data
|
||||
local _room = DataManager.CurrenRoom
|
||||
|
||||
-- print("button.y"..button.y .. "_room.curren_outcard_seat".._room.curren_outcard_seat)
|
||||
-- print(button.y - card.old_postion.y)
|
||||
-- if (button.y < -55 and _room.curren_outcard_seat == _room.self_player.seat) and self:CheckPlayerOnlineState() then
|
||||
if (button.y - card.old_postion.y < -50 and _room.curren_outcard_seat == _room.self_player.seat) then
|
||||
self._mainView:OutCard(card.card_item)
|
||||
button.touchable = false
|
||||
self.outcard_button = button
|
||||
else
|
||||
self._area_handcard_list:AddChildAt(button, card.index)
|
||||
button:TweenMove(card.old_postion, 0.2)
|
||||
end
|
||||
end
|
||||
|
||||
function M:CheckPlayerOnlineState()
|
||||
local room = DataManager.CurrenRoom
|
||||
for i = 1, #room.player_list do
|
||||
if room.player_list[i].line_state == 0 then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
function M:Clear(bskip)
|
||||
--self._ctr_state.selectedIndex = 0
|
||||
self._area_fz_list.x = self._src_fz_list.x
|
||||
self._area_fz_list.y = self._src_fz_list.y
|
||||
self._area_fz_list.width = self._src_fz_list.z
|
||||
self._area_fz_list.height = self._src_fz_list.w
|
||||
|
||||
self._area_fz_list:RemoveChildren(0, -1, true)
|
||||
self._area_handcard_list:RemoveChildren(0, -1, true)
|
||||
self._area_outcard_list:RemoveChildren(0, -1, true)
|
||||
if bskip == nil or bskip == false then
|
||||
self._mask_liangpai:RemoveChildren(0, -1, true)
|
||||
end
|
||||
|
||||
for i=1,#self._carViewList do
|
||||
self._carViewList[i].card:Dispose()
|
||||
end
|
||||
self._carViewList = {}
|
||||
|
||||
end
|
||||
return M
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
local Protocol = {
|
||||
-- 发牌协议
|
||||
GAME_EVT_PLAYER_DEAL = "811",
|
||||
|
||||
-- 出牌
|
||||
GAME_DIS_CARD = "611",
|
||||
|
||||
-- 出牌事件
|
||||
GAME_EVT_DISCARD = "812",
|
||||
|
||||
-- 出牌提示事件
|
||||
GAME_EVT_DISCARD_TIP = "813",
|
||||
|
||||
-- 放子提示事件
|
||||
GAME_EVT_FZTIPS = "814",
|
||||
|
||||
-- 提示选择行为
|
||||
GAME_ACTION = "612",
|
||||
|
||||
-- action 事件
|
||||
GAME_EVT_ACTION = "815",
|
||||
|
||||
-- 胡牌事件
|
||||
GAME_EVT_HU = "816",
|
||||
|
||||
-- 小结算
|
||||
GAME_EVT_RESULT1 = "817",
|
||||
|
||||
-- 大结算
|
||||
GAME_EVT_RESULT2 = "818",
|
||||
|
||||
-- 抓牌
|
||||
GAME_EVT_DRAW = "819",
|
||||
|
||||
-- 转盘指向事件
|
||||
GAME_EVT_CHANGE_ACTIVE_PLAYER = "820",
|
||||
|
||||
-- 鸟
|
||||
GAME_EVT_NIAO = "821",
|
||||
|
||||
-- 起手胡提示
|
||||
GAME_EVT_QSTIP = "822",
|
||||
|
||||
-- 起手胡事件
|
||||
GAME_EVT_QSWIN = "823",
|
||||
|
||||
-- 开杠
|
||||
GAME_EVT_OPENKONG = "824",
|
||||
|
||||
-- 海底
|
||||
GAME_EVT_HAIDI = "825",
|
||||
|
||||
-- 飘鸟提示
|
||||
GAME_EVT_PIAOTIP = "833",
|
||||
|
||||
-- 飘鸟事件
|
||||
GAME_EVT_PIAO = "834",
|
||||
|
||||
GAME_EVT_TING_TIP = "835",
|
||||
|
||||
GAME_EVT_TING = "836",
|
||||
|
||||
GAME_XIPAI = "20836",
|
||||
GAME_EVENT_XIPAI = "20837",
|
||||
GAME_EVENT_NOTIFY_XIPAI = "20838",
|
||||
}
|
||||
|
||||
return Protocol
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
local Record_Event = {
|
||||
Evt_QiShou = "QSWin",
|
||||
Evt_GetCard = "GetCard",
|
||||
Evt_OutCard = "OutCard",
|
||||
Evt_Action = "Action",
|
||||
-- Evt_HaiDi = "HaiDi",
|
||||
Evt_KaiGang = "OpenKong",
|
||||
Evt_Win = "Win",
|
||||
Evt_Niao = "Niao",
|
||||
Evt_Piao = "PiaoNiao",
|
||||
Evt_Result = "Result",
|
||||
}
|
||||
|
||||
return Record_Event
|
||||
|
|
@ -37,6 +37,9 @@
|
|||
"n51_fmkv": {
|
||||
"collapsed": true
|
||||
},
|
||||
"n89_qmn4": {
|
||||
"collapsed": true
|
||||
},
|
||||
"n15_pt1r": {
|
||||
"hidden": true
|
||||
},
|
||||
|
|
|
|||
|
|
@ -15,56 +15,7 @@
|
|||
"auxline2": true,
|
||||
"doc.activeDoc": "ui://niy3ldiwl9mn14",
|
||||
"libview.twoColumn": false,
|
||||
"libview.expandedNodes": [
|
||||
"egnzysm7",
|
||||
"/",
|
||||
"egnzysm7",
|
||||
"/component/",
|
||||
"egnzysm7",
|
||||
"/component/EPCDWHZMui/",
|
||||
"egnzysm7",
|
||||
"/component/clearing/",
|
||||
"egnzysm7",
|
||||
"/images/",
|
||||
"egnzysm7",
|
||||
"/images/EPCDXTMui/",
|
||||
"ypulwxjh",
|
||||
"/",
|
||||
"ypulwxjh",
|
||||
"/images/",
|
||||
"ypulwxjh",
|
||||
"/images/EPFLSXTMui/",
|
||||
"4ismcalc",
|
||||
"/",
|
||||
"442j0uep",
|
||||
"/",
|
||||
"442j0uep",
|
||||
"/images/",
|
||||
"3n2top74",
|
||||
"/",
|
||||
"3n2top74",
|
||||
"/buttons/",
|
||||
"3n2top74",
|
||||
"/images/",
|
||||
"3n2top74",
|
||||
"/images/EPRXTMui/",
|
||||
"3n2top74",
|
||||
"/images/MMXTMui/",
|
||||
"niy3ldiw",
|
||||
"/",
|
||||
"niy3ldiw",
|
||||
"/images/",
|
||||
"niy3ldiw",
|
||||
"/images/EPYYXTMui/",
|
||||
"3z9lj55v",
|
||||
"/",
|
||||
"3z9lj55v",
|
||||
"/buttons/",
|
||||
"3z9lj55v",
|
||||
"/images/",
|
||||
"3z9lj55v",
|
||||
"/images/MMXTMui/"
|
||||
],
|
||||
"libview.expandedNodes": [],
|
||||
"auxline1": true,
|
||||
"snapToGrid": true,
|
||||
"test.orientation": "landscape",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="74,74" extention="Button">
|
||||
<controller name="button" pages="0,up,1,down" selected="0"/>
|
||||
<controller name="ban" exported="true" pages="0,,1,,2," selected="2"/>
|
||||
<displayList>
|
||||
<loader id="n3_h1uu" name="icon" xy="0,0" size="74,74" url="ui://wima7r3pn52nbf" align="center" vAlign="middle">
|
||||
<gearIcon controller="ban" pages="1,2" values="ui://wima7r3pn52nbg|ui://wima7r3pn52nbf" default="ui://wima7r3pn52nbh"/>
|
||||
</loader>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="84,161">
|
||||
<controller name="voice" pages="0,,1," selected="0"/>
|
||||
<controller name="sdk" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<component id="n1_h1uu" name="n1" src="n52nc2" fileName="Btn_chat.xml" xy="8,87" controller="ban,0">
|
||||
<Button icon="ui://wima7r3pn52nbf"/>
|
||||
</component>
|
||||
<component id="n2_h1uu" name="n2" src="n52n9f" fileName="component/VoiceMask(1).xml" xy="7,-47">
|
||||
<gearDisplay controller="voice" pages="1"/>
|
||||
</component>
|
||||
<component id="n3_h1uu" name="btn_record" src="n52nc2" fileName="Btn_chat.xml" xy="8,0" controller="ban,0">
|
||||
<gearDisplay controller="sdk" pages="0"/>
|
||||
<Button icon="ui://wima7r3pn52nbi"/>
|
||||
</component>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="1334,750" designImage="ui://wima7r3pn52nc8" adaptationTest="FitSize">
|
||||
<controller name="state" pages="0,准备状态,1,游戏状态,2,回合间状态,3,回放状态" selected="1"/>
|
||||
<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"/>
|
||||
<displayList>
|
||||
<component id="n12" name="btn_wxyqhy" src="n52nv" fileName="buttons/Btn_wxyq.xml" xy="448,258" group="n13">
|
||||
<gearDisplay controller="sdk" pages="0"/>
|
||||
<relation target="" sidePair="middle-middle"/>
|
||||
</component>
|
||||
<group id="n13" name="n13" xy="448,258" size="438,147" advanced="true" collapsed="true">
|
||||
<gearDisplay controller="state" pages="0"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</group>
|
||||
<component id="n37_kba2" name="roominfo_panel1" src="n52nc5" fileName="RoomInfoPanel1.xml" xy="12,110" size="400,67" touchable="false">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
<relation target="n33_hp0b" sidePair="top-bottom"/>
|
||||
</component>
|
||||
<component id="n41_ppzk" name="player_card_info2" src="n52n9c" fileName="component/Player_card_info_3(1).xml" xy="0,86" size="1334,99">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
</component>
|
||||
<component id="n39_ppzk" name="player_card_info1" src="n52n9e" fileName="component/Player_card_info_1(1).xml" xy="-1,535">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
<relation target="" sidePair="bottom-bottom"/>
|
||||
</component>
|
||||
<component id="n24" name="right_panel" src="n52nc6" fileName="RightPanel_new.xml" xy="969,-1">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
<relation target="" sidePair="right-right,top-top"/>
|
||||
</component>
|
||||
<component id="n17" name="player_info2" src="7q1m2e" fileName="PlayerHead_3.xml" xy="989,-2" pkg="3qr8nmi4">
|
||||
<relation target="" sidePair="right-right,top-top"/>
|
||||
</component>
|
||||
<component id="n7" name="player_info1" src="7q1m2c" fileName="PlayerHead_1.xml" xy="17,416" pkg="3qr8nmi4">
|
||||
<relation target="" sidePair="bottom-bottom"/>
|
||||
<relation target="" sidePair="left-left,bottom-bottom"/>
|
||||
</component>
|
||||
<component id="n31_h1uu" name="roominfo_panel" src="n52nc7" fileName="RoomInfoPanel.xml" xy="0,0">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
</component>
|
||||
<component id="n46_u4l2" name="btn_rule" src="n52n14" fileName="buttons/Btn_Introduce.xml" xy="1269,114" hideByEditor="true" visible="false">
|
||||
<relation target="" sidePair="right-right"/>
|
||||
</component>
|
||||
<component id="n33_hp0b" name="btn_back_lobby" src="n52n16" fileName="buttons/Btn_back_lobby.xml" xy="0,-1">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</component>
|
||||
<component id="n34_k3io" name="btn_ready" src="n52nq" fileName="buttons/Btn_Yellow.xml" xy="575,654" group="n36_k3io">
|
||||
<gearDisplay controller="action" pages="0"/>
|
||||
<Button icon="ui://wima7r3pn52nae"/>
|
||||
</component>
|
||||
<component id="n35_k3io" name="btn_start" src="n52nq" fileName="buttons/Btn_Yellow.xml" xy="575,654" group="n36_k3io">
|
||||
<gearDisplay controller="action" pages="1"/>
|
||||
<Button icon="ui://wima7r3pn52naf"/>
|
||||
</component>
|
||||
<group id="n36_k3io" name="n36" xy="575,654" size="184,85" advanced="true" collapsed="true">
|
||||
<gearDisplay controller="state" pages="0"/>
|
||||
<relation target="" sidePair="bottom-bottom"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</group>
|
||||
<text id="n58_zzcq" name="tex_version" xy="1200,590" size="130,38" group="n52_cnxs" hideByEditor="true" visible="false" fontSize="30" color="#ffffff" align="center" autoSize="none" text="v2.0.0">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
</text>
|
||||
<component id="n32_h1uu" name="gcm_chat" src="n52nc3" fileName="Gcm_chat.xml" xy="1222,364" group="n52_cnxs">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
</component>
|
||||
<component id="n50_cnxs" name="btn_getRoomNum" src="n52n19" fileName="buttons/Btn_blue_long.xml" xy="900,644" group="n52_cnxs">
|
||||
<gearDisplay controller="state" pages="0"/>
|
||||
<Button icon="ui://wima7r3pn52nak"/>
|
||||
</component>
|
||||
<group id="n52_cnxs" name="n52" xy="900,364" size="430,360" advanced="true" collapsed="true">
|
||||
<relation target="" sidePair="right-right,bottom-bottom"/>
|
||||
</group>
|
||||
<component id="n57_rayb" name="panel_record" src="n52n88" fileName="component/record/Record.xml" xy="379,435" group="n59_v38k" alpha="0.5">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</component>
|
||||
<component id="n56_cnxs" name="mask_tips" src="n52n1l" fileName="component/Component1.xml" xy="662,480" group="n59_v38k">
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</component>
|
||||
<group id="n59_v38k" name="n59" xy="379,435" size="575,137" collapsed="true"/>
|
||||
<text id="n42_lryk" name="tex_round" xy="686,285" size="119,27" group="n60_syw1" fontSize="20" color="#cccccc" align="center" autoSize="none" text="剩余 5 张牌 1/8局">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
</text>
|
||||
<text id="n27" name="remaining_card" xy="540,285" size="141,27" group="n60_syw1" fontSize="20" color="#cccccc" align="center" autoSize="none" text="剩余 5 张牌 ">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
</text>
|
||||
<group id="n60_syw1" name="n60" xy="540,285" size="265,27" group="n61_syw1" advanced="true" collapsed="true">
|
||||
<gearXY controller="3d" pages="0,1" values="540,285|540,236"/>
|
||||
</group>
|
||||
<component id="n5" name="cardbox" src="n52n8z" fileName="component/turn/Gcm_box_4.xml" xy="598,312" pivot="0.5,0.5" group="n61_syw1">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
<gearXY controller="3d" pages="0" values="598,312" default="598,254"/>
|
||||
</component>
|
||||
<group id="n61_syw1" name="n61" xy="540,285" size="265,153" advanced="true" collapsed="true">
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</group>
|
||||
</displayList>
|
||||
<transition name="t0"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="1334,750" designImage="ui://wima7r3pn52nc8" adaptationTest="FitSize">
|
||||
<controller name="state" pages="0,准备状态,1,游戏状态,2,回合间状态,3,回放状态" selected="3"/>
|
||||
<controller name="sdk" pages="0,,1," selected="0"/>
|
||||
<controller name="action" pages="2,空,0,准备,1,开始" selected="0"/>
|
||||
<controller name="3d" pages="0,,1," selected="1"/>
|
||||
<displayList>
|
||||
<component id="n12" name="btn_wxyqhy" src="n52nv" fileName="buttons/Btn_wxyq.xml" xy="448,258" group="n13">
|
||||
<gearDisplay controller="sdk" pages="0"/>
|
||||
<relation target="" sidePair="middle-middle"/>
|
||||
</component>
|
||||
<group id="n13" name="n13" xy="448,258" size="438,147" advanced="true">
|
||||
<gearDisplay controller="state" pages="0"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</group>
|
||||
<component id="n37_kba2" name="roominfo_panel1" src="n52nc5" fileName="RoomInfoPanel1.xml" xy="12,110" size="400,67" visible="false" touchable="false">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
<relation target="n33_hp0b" sidePair="top-bottom"/>
|
||||
</component>
|
||||
<component id="n38_ppzk" name="player_card_info2" src="n52n9j" fileName="component/Player_card_info_2.xml" xy="981,2" size="202,750">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
<relation target="" sidePair="middle-middle"/>
|
||||
</component>
|
||||
<component id="n40_ppzk" name="player_card_info3" src="n52n9k" fileName="component/Player_card_info_4.xml" xy="153,7">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
<relation target="" sidePair="middle-middle"/>
|
||||
</component>
|
||||
<component id="n39_ppzk" name="player_card_info1" src="n52n9l" fileName="component/Player_card_info_1.xml" xy="-1,535">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
<relation target="" sidePair="bottom-bottom"/>
|
||||
</component>
|
||||
<component id="n18" name="player_info2" src="7q1m2d" fileName="PlayerHead_2.xml" xy="1197,206" pkg="3qr8nmi4">
|
||||
<relation target="" sidePair="right-right,bottom-bottom"/>
|
||||
</component>
|
||||
<component id="n16" name="player_info3" src="7q1m2f" fileName="PlayerHead_4.xml" xy="0,212" pkg="3qr8nmi4">
|
||||
<relation target="" sidePair="left-left,top-top"/>
|
||||
</component>
|
||||
<component id="n7" name="player_info1" src="7q1m2c" fileName="PlayerHead_1.xml" xy="17,468" pkg="3qr8nmi4">
|
||||
<relation target="" sidePair="left-left,bottom-bottom"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</component>
|
||||
<component id="n24" name="right_panel" src="n52nc6" fileName="RightPanel_new.xml" xy="969,-1">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
<relation target="" sidePair="right-right"/>
|
||||
</component>
|
||||
<component id="n31_h1uu" name="roominfo_panel" src="n52nc7" fileName="RoomInfoPanel.xml" xy="0,0">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
</component>
|
||||
<component id="n46_u4l2" name="btn_rule" src="n52n14" fileName="buttons/Btn_Introduce.xml" xy="1269,114" hideByEditor="true" visible="false">
|
||||
<relation target="" sidePair="right-right"/>
|
||||
</component>
|
||||
<component id="n33_hp0b" name="btn_back_lobby" src="n52n16" fileName="buttons/Btn_back_lobby.xml" xy="0,-1" visible="false">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</component>
|
||||
<component id="n34_k3io" name="btn_ready" src="n52nq" fileName="buttons/Btn_Yellow.xml" xy="575,654" group="n36_k3io">
|
||||
<gearDisplay controller="action" pages="0"/>
|
||||
<Button icon="ui://wima7r3pn52nae"/>
|
||||
</component>
|
||||
<component id="n35_k3io" name="btn_start" src="n52nq" fileName="buttons/Btn_Yellow.xml" xy="575,654" group="n36_k3io">
|
||||
<gearDisplay controller="action" pages="1"/>
|
||||
<Button icon="ui://wima7r3pn52naf"/>
|
||||
</component>
|
||||
<group id="n36_k3io" name="n36" xy="575,654" size="184,85" advanced="true">
|
||||
<gearDisplay controller="state" pages="0"/>
|
||||
<relation target="" sidePair="bottom-bottom"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</group>
|
||||
<text id="n58_zzcq" name="tex_version" xy="1200,590" size="130,38" group="n52_cnxs" hideByEditor="true" visible="false" fontSize="30" color="#ffffff" align="center" autoSize="none" text="v2.0.0">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
</text>
|
||||
<component id="n32_h1uu" name="gcm_chat" src="n52nc3" fileName="Gcm_chat.xml" xy="1222,364" group="n52_cnxs">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
</component>
|
||||
<component id="n50_cnxs" name="btn_getRoomNum" src="n52n19" fileName="buttons/Btn_blue_long.xml" xy="900,644" group="n52_cnxs">
|
||||
<gearDisplay controller="state" pages="0"/>
|
||||
<Button icon="ui://wima7r3pn52nak"/>
|
||||
</component>
|
||||
<group id="n52_cnxs" name="n52" xy="900,364" size="430,360" advanced="true">
|
||||
<relation target="" sidePair="right-right,bottom-bottom"/>
|
||||
</group>
|
||||
<component id="n57_rayb" name="panel_record" src="n52n88" fileName="component/record/Record.xml" xy="379,435" group="n59_v38k" alpha="0.5">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</component>
|
||||
<component id="n56_cnxs" name="mask_tips" src="n52n1l" fileName="component/Component1.xml" xy="662,480" group="n59_v38k">
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</component>
|
||||
<group id="n59_v38k" name="n59" xy="379,435" size="575,137"/>
|
||||
<component id="n62_pikf" name="btn_distance" src="n52n68" fileName="component/gps/distance/btn_distance.xml" xy="24,399" group="n63_hg2i">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
</component>
|
||||
<group id="n63_hg2i" name="n63" xy="24,399" size="80,80" hideByEditor="true" visible="false" advanced="true">
|
||||
<gearDisplay controller="sdk" pages="0"/>
|
||||
</group>
|
||||
<text id="n42_lryk" name="tex_round" xy="691,239" size="119,27" group="n64_syw1" fontSize="20" color="#cccccc" align="center" autoSize="none" text="剩余 5 张牌 1/8局">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
</text>
|
||||
<text id="n27" name="remaining_card" xy="545,239" size="141,27" group="n64_syw1" fontSize="20" color="#cccccc" align="center" autoSize="none" text="剩余 5 张牌 ">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
</text>
|
||||
<group id="n64_syw1" name="n64" xy="545,239" size="265,27" group="n65_syw1" advanced="true" collapsed="true">
|
||||
<gearXY controller="3d" pages="0,1" values="540,285|545,239"/>
|
||||
</group>
|
||||
<component id="n5" name="cardbox" src="n52n8z" fileName="component/turn/Gcm_box_4.xml" xy="603,256" pivot="0.5,0.5" group="n65_syw1">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
<gearXY controller="3d" pages="0,1" values="603,312|603,256"/>
|
||||
</component>
|
||||
<group id="n65_syw1" name="n65" xy="545,239" size="265,143" advanced="true">
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</group>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="1334,750" designImage="ui://wima7r3pn52nc8" adaptationTest="FitSize">
|
||||
<controller name="state" pages="0,准备状态,1,游戏状态,2,回合间状态,3,回放状态" selected="1"/>
|
||||
<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"/>
|
||||
<displayList>
|
||||
<component id="n12" name="btn_wxyqhy" src="n52nv" fileName="buttons/Btn_wxyq.xml" xy="448,258" group="n13">
|
||||
<gearDisplay controller="sdk" pages="0"/>
|
||||
<relation target="" sidePair="middle-middle"/>
|
||||
</component>
|
||||
<group id="n13" name="n13" xy="448,258" size="438,147" advanced="true">
|
||||
<gearDisplay controller="state" pages="0"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</group>
|
||||
<component id="n37_kba2" name="roominfo_panel1" src="n52nc5" fileName="RoomInfoPanel1.xml" xy="12,110" size="400,67" visible="false" touchable="false">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
<relation target="n33_hp0b" sidePair="top-bottom"/>
|
||||
</component>
|
||||
<component id="n38_ppzk" name="player_card_info2" src="n52n9j" fileName="component/Player_card_info_2.xml" xy="981,2" size="202,750">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
<relation target="" sidePair="middle-middle"/>
|
||||
</component>
|
||||
<component id="n40_ppzk" name="player_card_info4" src="n52n9k" fileName="component/Player_card_info_4.xml" xy="153,7">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
<relation target="" sidePair="middle-middle"/>
|
||||
</component>
|
||||
<component id="n41_ppzk" name="player_card_info3" src="n52n9m" fileName="component/Player_card_info_3.xml" xy="0,86" size="1334,99">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
</component>
|
||||
<component id="n39_ppzk" name="player_card_info1" src="n52n9l" fileName="component/Player_card_info_1.xml" xy="-1,535">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
<relation target="" sidePair="bottom-bottom"/>
|
||||
</component>
|
||||
<component id="n18" name="player_info2" src="7q1m2d" fileName="PlayerHead_2.xml" xy="1197,206" pkg="3qr8nmi4">
|
||||
<relation target="" sidePair="right-right,bottom-bottom"/>
|
||||
</component>
|
||||
<component id="n24" name="right_panel" src="n52nc6" fileName="RightPanel_new.xml" xy="969,-1">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
<relation target="" sidePair="right-right"/>
|
||||
</component>
|
||||
<component id="n17" name="player_info3" src="7q1m2e" fileName="PlayerHead_3.xml" xy="982,-1" pkg="3qr8nmi4">
|
||||
<relation target="" sidePair="left-left,top-top"/>
|
||||
</component>
|
||||
<component id="n16" name="player_info4" src="7q1m2f" fileName="PlayerHead_4.xml" xy="4,212" pkg="3qr8nmi4">
|
||||
<relation target="" sidePair="left-left,top-top"/>
|
||||
</component>
|
||||
<component id="n7" name="player_info1" src="7q1m2c" fileName="PlayerHead_1.xml" xy="17,468" pkg="3qr8nmi4">
|
||||
<relation target="" sidePair="left-left,bottom-bottom"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</component>
|
||||
<component id="n31_h1uu" name="roominfo_panel" src="n52nc7" fileName="RoomInfoPanel.xml" xy="0,0">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
</component>
|
||||
<component id="n46_u4l2" name="btn_rule" src="n52n14" fileName="buttons/Btn_Introduce.xml" xy="1269,114" hideByEditor="true" visible="false">
|
||||
<relation target="" sidePair="right-right"/>
|
||||
</component>
|
||||
<component id="n33_hp0b" name="btn_back_lobby" src="n52n16" fileName="buttons/Btn_back_lobby.xml" xy="0,-1">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
</component>
|
||||
<component id="n34_k3io" name="btn_ready" src="n52nq" fileName="buttons/Btn_Yellow.xml" xy="575,654" group="n36_k3io">
|
||||
<gearDisplay controller="action" pages="0"/>
|
||||
<Button icon="ui://wima7r3pn52nae"/>
|
||||
</component>
|
||||
<component id="n35_k3io" name="btn_start" src="n52nq" fileName="buttons/Btn_Yellow.xml" xy="575,654" group="n36_k3io">
|
||||
<gearDisplay controller="action" pages="1"/>
|
||||
<Button icon="ui://wima7r3pn52naf"/>
|
||||
</component>
|
||||
<group id="n36_k3io" name="n36" xy="575,654" size="184,85" advanced="true">
|
||||
<gearDisplay controller="state" pages="0"/>
|
||||
<relation target="" sidePair="bottom-bottom"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</group>
|
||||
<text id="n58_zzcq" name="tex_version" xy="1200,590" size="130,38" group="n52_cnxs" hideByEditor="true" visible="false" fontSize="30" color="#ffffff" align="center" autoSize="none" text="v2.0.0">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
</text>
|
||||
<component id="n32_h1uu" name="gcm_chat" src="n52nc3" fileName="Gcm_chat.xml" xy="1222,364" group="n52_cnxs">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
</component>
|
||||
<component id="n50_cnxs" name="btn_getRoomNum" src="n52n19" fileName="buttons/Btn_blue_long.xml" xy="900,644" group="n52_cnxs">
|
||||
<gearDisplay controller="state" pages="0"/>
|
||||
<Button icon="ui://wima7r3pn52nak"/>
|
||||
</component>
|
||||
<group id="n52_cnxs" name="n52" xy="900,364" size="430,360" advanced="true">
|
||||
<relation target="n52_cnxs" sidePair="right-right,bottom-bottom"/>
|
||||
</group>
|
||||
<component id="n57_rayb" name="panel_record" src="n52n88" fileName="component/record/Record.xml" xy="379,435" group="n59_v38k" alpha="0.5">
|
||||
<gearDisplay controller="state" pages="3"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</component>
|
||||
<component id="n56_cnxs" name="mask_tips" src="n52n1l" fileName="component/Component1.xml" xy="662,480" group="n59_v38k">
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</component>
|
||||
<group id="n59_v38k" name="n59" xy="379,435" size="575,137" collapsed="true"/>
|
||||
<component id="n64_pikf" name="btn_distance" src="n52n68" fileName="component/gps/distance/btn_distance.xml" xy="24,399" group="n65_hg2i">
|
||||
<gearDisplay controller="state" pages="0,1,2"/>
|
||||
</component>
|
||||
<group id="n65_hg2i" name="n65" xy="24,399" size="80,80" hideByEditor="true" visible="false" advanced="true">
|
||||
<gearDisplay controller="sdk" pages="0"/>
|
||||
</group>
|
||||
<text id="n42_lryk" name="tex_round" xy="686,285" size="119,27" group="n67_syw1" fontSize="20" color="#cccccc" align="center" autoSize="none" text="剩余 5 张牌 1/8局">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
</text>
|
||||
<text id="n27" name="remaining_card" xy="540,285" size="141,27" group="n67_syw1" fontSize="20" color="#cccccc" align="center" autoSize="none" text="剩余 5 张牌 ">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
</text>
|
||||
<group id="n67_syw1" name="n67" xy="540,285" size="265,27" group="n66_syw1" advanced="true" collapsed="true">
|
||||
<gearXY controller="3d" pages="0,1" values="540,285|540,233"/>
|
||||
</group>
|
||||
<component id="n5" name="cardbox" src="n52n8z" fileName="component/turn/Gcm_box_4.xml" xy="603,312" pivot="0.5,0.5" group="n66_syw1">
|
||||
<gearDisplay controller="state" pages="1,3"/>
|
||||
<gearXY controller="3d" pages="0,1" values="603,312|603,254"/>
|
||||
</component>
|
||||
<group id="n66_syw1" name="n66" xy="540,285" size="265,153" advanced="true">
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</group>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="100,174" opaque="false" initName="gcm_info">
|
||||
<controller name="room_owner" pages="0,,1," selected="0"/>
|
||||
<controller name="bank" pages="0,,1," selected="0"/>
|
||||
<controller name="read" pages="0,,1," selected="0"/>
|
||||
<controller name="offline" pages="0,,1," selected="0"/>
|
||||
<controller name="mask_voice" pages="0,,1," selected="0"/>
|
||||
<controller name="piao_niao" pages="0,,1," selected="0"/>
|
||||
<controller name="three_win" pages="0,,1," selected="0"/>
|
||||
<controller name="ting" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<image id="n28_e54q" name="n28" src="n52nah" fileName="images/head/index_bg_01.png" xy="-1,14" size="100,98" group="n33_e7qn" aspect="true"/>
|
||||
<component id="n5" name="btn_head" src="n52n2v" fileName="component/head/Head.xml" xy="10,24" size="79,79" group="n33_e7qn" aspect="true"/>
|
||||
<graph id="n32_kba2" name="offLine" xy="4,18" size="90,90" group="n33_e7qn" aspect="true" touchable="false" type="eclipse" lineSize="0" fillColor="#b3000000">
|
||||
<gearDisplay controller="offline" pages="1"/>
|
||||
</graph>
|
||||
<text id="n37_aawn" name="n37" xy="16,48" size="65,38" group="n33_e7qn" fontSize="30" color="#ffffff" text="离线">
|
||||
<gearDisplay controller="offline" pages="1"/>
|
||||
</text>
|
||||
<image id="n6" name="fangzhu" src="n52nbj" fileName="images/z02.png" xy="-4,83" group="n33_e7qn">
|
||||
<gearDisplay controller="room_owner" pages="1"/>
|
||||
</image>
|
||||
<image id="n34_u4l2" name="zhuang" src="n52n2y" fileName="images/z01.png" xy="65,2" group="n33_e7qn">
|
||||
<gearDisplay controller="bank" pages="1"/>
|
||||
</image>
|
||||
<group id="n33_e7qn" name="n33" xy="-4,2" size="109,124"/>
|
||||
<image id="n8" name="ready" src="n52nag" fileName="images/game/game_fonts_01.png" xy="96,-42">
|
||||
<gearDisplay controller="read" pages="1"/>
|
||||
</image>
|
||||
<component id="n29_e54q" name="info" src="n52n6e" fileName="component/head/HeadNameBG.xml" xy="-13,115" touchable="false"/>
|
||||
<component id="n31_e54q" name="chat" src="n52n9n" fileName="component/MsgBubble2.xml" xy="-18,-82" alpha="0" touchable="false"/>
|
||||
<component id="n27_e54q" name="face" src="n52n9p" fileName="component/Face3.xml" xy="99,-88" alpha="0" touchable="false"/>
|
||||
<image id="n38_tla5" name="n38" src="n52n9o" fileName="images/game_icon_07.png" xy="-59,-81">
|
||||
<gearDisplay controller="mask_voice" pages="1"/>
|
||||
</image>
|
||||
<component id="n18" name="mask_voice" src="n52n9f" fileName="component/VoiceMask(1).xml" xy="-8,-56" touchable="false">
|
||||
<gearDisplay controller="mask_voice" pages="1"/>
|
||||
</component>
|
||||
<component id="n39_nip5" name="mask_piao" src="n52n7o" fileName="component/piao_niao/mask_piao.xml" xy="-21,82" touchable="false">
|
||||
<gearDisplay controller="piao_niao" pages="1"/>
|
||||
</component>
|
||||
<component id="n40_7q1m" name="com_three_win" src="n52n8n" fileName="tip_continue_win/com_continual_win.xml" xy="-23,-5">
|
||||
<gearDisplay controller="three_win" pages="1"/>
|
||||
</component>
|
||||
<component id="n41_7q1m" name="n41" src="n52ncc" fileName="ting.xml" xy="-3,7">
|
||||
<gearDisplay controller="ting" pages="1"/>
|
||||
</component>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="144,151" opaque="false" initName="gcm_info">
|
||||
<controller name="room_owner" pages="0,,1," selected="0"/>
|
||||
<controller name="bank" pages="0,,1," selected="0"/>
|
||||
<controller name="read" pages="0,,1," selected="0"/>
|
||||
<controller name="offline" pages="0,,1," selected="0"/>
|
||||
<controller name="mask_voice" pages="0,,1," selected="0"/>
|
||||
<controller name="dismiss_room" pages="0,,1," selected="0"/>
|
||||
<controller name="piao_niao" pages="0,,1," selected="0"/>
|
||||
<controller name="three_win" pages="0,,1," selected="0"/>
|
||||
<controller name="ting" pages="0,,1," selected="1"/>
|
||||
<displayList>
|
||||
<image id="n34_e7qn" name="n34" src="n52nah" fileName="images/head/index_bg_01.png" xy="18,0" size="100,98" group="n39_e7qn" aspect="true"/>
|
||||
<component id="n35_e7qn" name="btn_head" src="n52n2v" fileName="component/head/Head.xml" xy="29,10" size="79,79" group="n39_e7qn" aspect="true"/>
|
||||
<graph id="n36_e7qn" name="offLine" xy="23,4" size="90,90" group="n39_e7qn" aspect="true" touchable="false" type="eclipse" lineSize="0" fillColor="#b3000000">
|
||||
<gearDisplay controller="offline" pages="1"/>
|
||||
</graph>
|
||||
<image id="n37_e7qn" name="fangzhu" src="n52nbj" fileName="images/z02.png" xy="11,64" group="n39_e7qn">
|
||||
<gearDisplay controller="room_owner" pages="1"/>
|
||||
</image>
|
||||
<image id="n38_e7qn" name="zhuang" src="n52n2y" fileName="images/z01.png" xy="88,-8" group="n39_e7qn" aspect="true">
|
||||
<gearDisplay controller="bank" pages="1"/>
|
||||
</image>
|
||||
<component id="n41_h4ge" name="n41" xy="29,10" group="n39_e7qn" touchable="false">
|
||||
<gearDisplay controller="dismiss_room" pages="1"/>
|
||||
</component>
|
||||
<text id="n42_aawn" name="n42" xy="36,33" size="65,37" group="n39_e7qn" fontSize="30" color="#ffffff" text="离线">
|
||||
<gearDisplay controller="offline" pages="1"/>
|
||||
</text>
|
||||
<group id="n39_e7qn" name="n39" xy="11,-8" size="118,118"/>
|
||||
<image id="n8" name="ready" src="n52nag" fileName="images/game/game_fonts_01.png" xy="-135,50">
|
||||
<gearDisplay controller="read" pages="1"/>
|
||||
</image>
|
||||
<component id="n31_e54q" name="chat" src="n52n9q" fileName="component/MsgBubble1.xml" xy="-73,-95" alpha="0"/>
|
||||
<component id="n27_e54q" name="face" src="n52n9p" fileName="component/Face3.xml" xy="-131,4" alpha="0"/>
|
||||
<component id="n29_e54q" name="info" src="n52n6e" fileName="component/head/HeadNameBG.xml" xy="4,101" size="140,52"/>
|
||||
<image id="n43_tla5" name="n43" src="n52n9o" fileName="images/game_icon_07.png" xy="-22,-89">
|
||||
<gearDisplay controller="mask_voice" pages="1"/>
|
||||
</image>
|
||||
<component id="n18" name="mask_voice" src="n52n9f" fileName="component/VoiceMask(1).xml" xy="27,-63">
|
||||
<gearDisplay controller="mask_voice" pages="1"/>
|
||||
</component>
|
||||
<component id="n44_nip5" name="mask_piao" src="n52n7o" fileName="component/piao_niao/mask_piao.xml" xy="1,69" touchable="false">
|
||||
<gearDisplay controller="piao_niao" pages="1"/>
|
||||
</component>
|
||||
<component id="n45_7q1m" name="com_three_win" src="n52n8n" fileName="tip_continue_win/com_continual_win.xml" xy="-3,-20">
|
||||
<gearDisplay controller="three_win" pages="1"/>
|
||||
</component>
|
||||
<component id="n46_7q1m" name="n46" src="n52ncc" fileName="ting.xml" xy="16,-7">
|
||||
<gearDisplay controller="ting" pages="1"/>
|
||||
</component>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="100,100" opaque="false" initName="gcm_info">
|
||||
<controller name="room_owner" pages="0,,1," selected="0"/>
|
||||
<controller name="bank" pages="0,,1," selected="0"/>
|
||||
<controller name="read" pages="0,,1," selected="0"/>
|
||||
<controller name="offline" pages="0,,1," selected="0"/>
|
||||
<controller name="mask_voice" pages="0,,1," selected="0"/>
|
||||
<controller name="dismiss_room" pages="0,,1," selected="0"/>
|
||||
<controller name="piao_niao" pages="0,,1," selected="0"/>
|
||||
<controller name="three_win" pages="0,,1," selected="0"/>
|
||||
<controller name="ting" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<image id="n32_e7qn" name="n32" src="n52nah" fileName="images/head/index_bg_01.png" xy="2,3" size="100,98" group="n37_e7qn" aspect="true"/>
|
||||
<component id="n33_e7qn" name="btn_head" src="n52n2v" fileName="component/head/Head.xml" xy="13,12" size="79,79" group="n37_e7qn" aspect="true"/>
|
||||
<graph id="n34_e7qn" name="offLine" xy="7,7" size="90,90" group="n37_e7qn" aspect="true" touchable="false" type="eclipse" lineSize="0" fillColor="#b3000000">
|
||||
<gearDisplay controller="offline" pages="1"/>
|
||||
</graph>
|
||||
<image id="n35_e7qn" name="fangzhu" src="n52nbj" fileName="images/z02.png" xy="-1,66" group="n37_e7qn">
|
||||
<gearDisplay controller="room_owner" pages="1"/>
|
||||
</image>
|
||||
<image id="n36_e7qn" name="zhuang" src="n52n2y" fileName="images/z01.png" xy="64,-7" group="n37_e7qn" aspect="true">
|
||||
<gearDisplay controller="bank" pages="1"/>
|
||||
</image>
|
||||
<component id="n39_h4ge" name="n39" xy="12,13" group="n37_e7qn" touchable="false">
|
||||
<gearDisplay controller="dismiss_room" pages="1"/>
|
||||
</component>
|
||||
<text id="n40_aawn" name="n40" xy="20,33" size="65,38" group="n37_e7qn" fontSize="30" color="#ffffff" text="离线">
|
||||
<gearDisplay controller="offline" pages="1"/>
|
||||
</text>
|
||||
<group id="n37_e7qn" name="n37" xy="-1,-7" size="113,120"/>
|
||||
<component id="n31_e54q" name="chat" src="n52n9r" fileName="component/MsgBubble3.xml" xy="-16,74" size="163,121" alpha="0"/>
|
||||
<component id="n27_e54q" name="face" src="n52n9p" fileName="component/Face3.xml" xy="100,72" alpha="0"/>
|
||||
<image id="n8" name="ready" src="n52nag" fileName="images/game/game_fonts_01.png" xy="103,80">
|
||||
<gearDisplay controller="read" pages="1"/>
|
||||
</image>
|
||||
<component id="n29_e54q" name="info" src="n52n6e" fileName="component/head/HeadNameBG.xml" xy="-14,102"/>
|
||||
<image id="n41_tla5" name="n41" src="n52n9o" fileName="images/game_icon_07.png" xy="-35,209" scale="1,-1">
|
||||
<gearDisplay controller="mask_voice" pages="1"/>
|
||||
</image>
|
||||
<component id="n18" name="mask_voice" src="n52n9f" fileName="component/VoiceMask(1).xml" xy="13,140">
|
||||
<gearDisplay controller="mask_voice" pages="1"/>
|
||||
</component>
|
||||
<component id="n44_nip5" name="mask_piao" src="n52n7o" fileName="component/piao_niao/mask_piao.xml" xy="-19,67" touchable="false">
|
||||
<gearDisplay controller="piao_niao" pages="1"/>
|
||||
</component>
|
||||
<component id="n45_7q1m" name="com_three_win" src="n52n8n" fileName="tip_continue_win/com_continual_win.xml" xy="241,24" pivot="0.5,0.5">
|
||||
<gearDisplay controller="three_win" pages="1"/>
|
||||
</component>
|
||||
<component id="n46_7q1m" name="n46" src="n52ncc" fileName="ting.xml" xy="0,-3">
|
||||
<gearDisplay controller="ting" pages="1"/>
|
||||
</component>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="136,150" opaque="false" initName="gcm_info">
|
||||
<controller name="room_owner" pages="0,,1," selected="0"/>
|
||||
<controller name="bank" pages="0,,1," selected="0"/>
|
||||
<controller name="read" pages="0,,1," selected="0"/>
|
||||
<controller name="offline" pages="0,,1," selected="0"/>
|
||||
<controller name="mask_voice" pages="0,,1," selected="0"/>
|
||||
<controller name="dismiss_room" pages="0,,1," selected="0"/>
|
||||
<controller name="piao_niao" pages="0,,1," selected="0"/>
|
||||
<controller name="three_win" pages="0,,1," selected="0"/>
|
||||
<controller name="ting" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<image id="n32_e7qn" name="n32" src="n52nah" fileName="images/head/index_bg_01.png" xy="11,1" size="100,98" group="n37_e7qn" aspect="true"/>
|
||||
<component id="n33_e7qn" name="btn_head" src="n52n2v" fileName="component/head/Head.xml" xy="22,11" size="79,79" group="n37_e7qn" aspect="true"/>
|
||||
<graph id="n34_e7qn" name="offLine" xy="17,4" size="90,90" group="n37_e7qn" aspect="true" touchable="false" type="eclipse" lineSize="0" fillColor="#b3000000">
|
||||
<gearDisplay controller="offline" pages="1"/>
|
||||
</graph>
|
||||
<text id="n40_aawn" name="n40" xy="30,33" size="65,37" group="n37_e7qn" fontSize="30" color="#ffffff" text="离线">
|
||||
<gearDisplay controller="offline" pages="1"/>
|
||||
</text>
|
||||
<image id="n35_e7qn" name="fangzhu" src="n52nbj" fileName="images/z02.png" xy="6,68" group="n37_e7qn">
|
||||
<gearDisplay controller="room_owner" pages="1"/>
|
||||
</image>
|
||||
<image id="n36_e7qn" name="zhuang" src="n52n2y" fileName="images/z01.png" xy="80,-6" group="n37_e7qn" aspect="true">
|
||||
<gearDisplay controller="bank" pages="1"/>
|
||||
</image>
|
||||
<component id="n39_h4ge" name="n39" xy="21,10" group="n37_e7qn" touchable="false">
|
||||
<gearDisplay controller="dismiss_room" pages="1"/>
|
||||
</component>
|
||||
<group id="n37_e7qn" name="n37" xy="6,-6" size="115,117"/>
|
||||
<component id="n31_e54q" name="chat" src="n52n9n" fileName="component/MsgBubble2.xml" xy="-11,-94" alpha="0"/>
|
||||
<component id="n27_e54q" name="face" src="n52n9p" fileName="component/Face3.xml" xy="136,5" alpha="0"/>
|
||||
<image id="n8" name="ready" src="n52nag" fileName="images/game/game_fonts_01.png" xy="122,50">
|
||||
<gearDisplay controller="read" pages="1"/>
|
||||
</image>
|
||||
<component id="n29_e54q" name="info" src="n52n6e" fileName="component/head/HeadNameBG.xml" xy="-2,96" size="140,52"/>
|
||||
<image id="n42_tla5" name="n42" src="n52n9o" fileName="images/game_icon_07.png" xy="-28,-86">
|
||||
<gearDisplay controller="mask_voice" pages="1"/>
|
||||
</image>
|
||||
<component id="n18" name="mask_voice" src="n52n9f" fileName="component/VoiceMask(1).xml" xy="23,-60">
|
||||
<gearDisplay controller="mask_voice" pages="1"/>
|
||||
</component>
|
||||
<component id="n44_nip5" name="mask_piao" src="n52n7o" fileName="component/piao_niao/mask_piao.xml" xy="-5,68" touchable="false">
|
||||
<gearDisplay controller="piao_niao" pages="1"/>
|
||||
</component>
|
||||
<component id="n45_7q1m" name="com_three_win" src="n52n8n" fileName="tip_continue_win/com_continual_win.xml" xy="-11,-20">
|
||||
<gearDisplay controller="three_win" pages="1"/>
|
||||
</component>
|
||||
<component id="n46_7q1m" name="n46" src="n52ncc" fileName="ting.xml" xy="10,-6">
|
||||
<gearDisplay controller="ting" pages="1"/>
|
||||
</component>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="363,106" opaque="false">
|
||||
<controller name="xinhao" pages="0,,1," selected="0"/>
|
||||
<controller name="log" pages="0,,1," selected="0"/>
|
||||
<controller name="game_menu" pages="0,,1," selected="1"/>
|
||||
<controller name="style" exported="true" pages="0,1,1,2,2,3" selected="2">
|
||||
<action type="change_page" fromPage="" toPage="1" objectId="n16_iba9" controller="style" targetPage="1"/>
|
||||
<action type="change_page" fromPage="" toPage="2" objectId="n16_iba9" controller="style" targetPage="2"/>
|
||||
<action type="change_page" fromPage="" toPage="0" objectId="n16_iba9" controller="style" targetPage="0"/>
|
||||
</controller>
|
||||
<controller name="game_start" pages="0,,1," selected="1"/>
|
||||
<displayList>
|
||||
<component id="n1" name="btn_setting" src="n52n7k" fileName="component/phone_info/Btn_game_menu.xml" xy="259,1"/>
|
||||
<text id="n15_r03n" name="tex_version" xy="270,79" size="82,25" aspect="true" fontSize="18" color="#938a87" align="center" autoSize="none" text="v2.0.0"/>
|
||||
<component id="n5" name="pb_batteryLevel" src="n52n7l" fileName="component/phone_info/ProgressBar2.xml" xy="229,41" group="n17_n6cm" touchable="false">
|
||||
<ProgressBar value="62" max="100"/>
|
||||
</component>
|
||||
<component id="n6" name="gcm_xinhao" src="n52n7j" fileName="component/phone_info/Component3(1).xml" xy="135,37" group="n17_n6cm" touchable="false">
|
||||
<gearDisplay controller="xinhao" pages="0"/>
|
||||
</component>
|
||||
<component id="n9" name="gcm_wifi" src="n52n7m" fileName="component/phone_info/Component3.xml" xy="139,39" group="n17_n6cm" aspect="true" touchable="false">
|
||||
<gearDisplay controller="xinhao" pages="1"/>
|
||||
</component>
|
||||
<component id="n13_j0h7" name="btn_log" src="n52n7n" fileName="component/phone_info/Btn_log.xml" xy="59,9" group="n17_n6cm">
|
||||
<gearDisplay controller="log" pages="1"/>
|
||||
</component>
|
||||
<text id="n7" name="tex_data" xy="140,10" size="69,26" group="n14_j0h7" fontSize="20" color="#ffffff" align="right" vAlign="middle" autoSize="none" text="5-17"/>
|
||||
<text id="n12_yyhx" name="tex_time" xy="195,10" size="69,26" group="n14_j0h7" fontSize="20" color="#ffffff" align="right" vAlign="middle" autoSize="none" text="19:30"/>
|
||||
<group id="n14_j0h7" name="n14" xy="140,10" size="124,26" group="n17_n6cm" advanced="true"/>
|
||||
<group id="n17_n6cm" name="style1" xy="59,9" size="205,54" advanced="true">
|
||||
<gearDisplay controller="style" pages="0"/>
|
||||
</group>
|
||||
<component id="n16_iba9" name="game_menu" src="n52nx" fileName="buttons/game_menu.xml" xy="277,103" controller="style,2">
|
||||
<gearDisplay controller="game_menu" pages="1"/>
|
||||
<relation target="" sidePair="right-right,top-top"/>
|
||||
</component>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="362,100" initName="roominfo_panel" designImageLayer="1">
|
||||
<displayList>
|
||||
<image id="n0_h1uu" name="n0" src="h1uu31" fileName="images/game/game_bg_02.png" pkg="27vd145b" xy="323,0" scale="-1,1" visible="false"/>
|
||||
<image id="n7_r03n" name="n7" src="n52nbe" fileName="images/zcdk.png" xy="0,12" group="n5_h1uu"/>
|
||||
<text id="n1_h1uu" name="n1" xy="13,16" size="60,28" group="n5_h1uu" fontSize="24" color="#ffffff" text="房号:"/>
|
||||
<text id="n2_h1uu" name="tex_roomid" xy="80,16" size="83,28" group="n5_h1uu" fontSize="24" color="#ffffff" text="333333"/>
|
||||
<image id="n8_r03n" name="n8" src="n52nbe" fileName="images/zcdk.png" xy="0,51" size="186,41" group="n5_h1uu"/>
|
||||
<text id="n3_h1uu" name="tex_gametype" xy="10,56" size="101,28" group="n5_h1uu" fontSize="24" color="#ffffff" text="转转麻将"/>
|
||||
<text id="n4_h1uu" name="tex_roomconfig" xy="-4,55" size="315,32" group="n5_h1uu" visible="false" fontSize="24" color="#cccccc" align="center" autoSize="none" text="红中赖子"/>
|
||||
<text id="n6_e8zl" name="tex_times" xy="113,55" size="74,32" group="n5_h1uu" fontSize="24" color="#ffffff" autoSize="none" autoClearText="true" text="5倍">
|
||||
<relation target="n3_h1uu" sidePair="left-right"/>
|
||||
</text>
|
||||
<group id="n5_h1uu" name="n5" xy="-4,12" size="315,80"/>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="563,63" initName="roominfo_panel">
|
||||
<displayList>
|
||||
<text id="n1_h1uu" name="n1" xy="9,3" size="55,28" fontSize="22" color="#ffffff" text="房号:"/>
|
||||
<text id="n2_h1uu" name="tex_roomid" xy="63,3" size="77,28" fontSize="22" color="#ffffff" text="333333"/>
|
||||
<text id="n3_h1uu" name="tex_gametype" xy="162,3" size="93,28" fontSize="22" color="#ffffff" text="转转麻将"/>
|
||||
<text id="n4_h1uu" name="tex_roomconfig" xy="8,31" size="555,32" visible="false" fontSize="20" color="#ffffff" autoSize="none" text="红中赖子"/>
|
||||
<text id="n5_e8zl" name="tex_times" xy="276,3" size="40,28" fontSize="22" color="#ffffff" autoClearText="true" text="4倍"/>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="2100,631" extention="Button">
|
||||
<controller name="show_line" exported="true" pages="0,,1," selected="0"/>
|
||||
<controller name="show_di" exported="true" pages="0,,1," selected="0"/>
|
||||
<controller name="style" exported="true" pages="0,,1,,2,,3," selected="0"/>
|
||||
<displayList>
|
||||
<image id="n7_trjm" name="n7" pkg="27vd145b" src="trjmcih" fileName="images/win/zstk.png" xy="-2,2" size="2100,631">
|
||||
<gearDisplay controller="style" pages="1"/>
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</image>
|
||||
<image id="n9_k24k" name="n9" src="n52n81" fileName="font/images/win/tydk1.png" xy="0,0" size="2100,631">
|
||||
<gearDisplay controller="style" pages="3"/>
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</image>
|
||||
<image id="n0_lwcl" name="bg" src="n52n3i" fileName="font/images/win/tkd.png" xy="0,0" size="2100,631" visible="false">
|
||||
<gearDisplay controller="style" pages="0"/>
|
||||
<relation target="" sidePair="height-height,width-width"/>
|
||||
</image>
|
||||
<image id="n5_eeqm" name="n5" src="n52n5s" fileName="component/ENJCSMui/Rectangle 5579.png" xy="79,129" size="1941,338">
|
||||
<gearDisplay controller="show_di" pages="0"/>
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</image>
|
||||
<loader id="n4_lwcl" name="icon" xy="753,9" size="593,118" url="ui://wima7r3pn52n82" align="center" vAlign="middle">
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</loader>
|
||||
</displayList>
|
||||
<Button/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="87,136" pivot="0.5,0.5" extention="Button">
|
||||
<controller name="color" pages="0,,1," selected="0"/>
|
||||
<controller name="bg" pages="0,,1,,2," selected="0">
|
||||
<action type="play_transition" fromPage="0" toPage="1" transition="score"/>
|
||||
</controller>
|
||||
<displayList>
|
||||
<image id="n5_yyhx" name="n5" src="n52n1" fileName="images/fangkuang.png" xy="-90,-58" size="270,256">
|
||||
<gearDisplay controller="bg" pages="1,2"/>
|
||||
</image>
|
||||
<loader id="n3_hp0b" name="icon" xy="19,54" pivot="0.5,0.5" size="50,30" url="ui://lxhyy2sdh1uu1s" autoSize="true">
|
||||
<gearColor controller="color" pages="0,1" values="#ffffff|#ffff66"/>
|
||||
</loader>
|
||||
<text id="n6_n9k8" name="tex_score" xy="-22,-43" size="133,76" visible="false" font="ui://wima7r3pn52n2" fontSize="48" color="#ffffff" align="center" vAlign="middle" autoSize="none" text="+10">
|
||||
<gearDisplay controller="bg" pages="1"/>
|
||||
</text>
|
||||
</displayList>
|
||||
<Button mode="Check"/>
|
||||
<transition name="appear">
|
||||
<item time="0" type="Alpha" target="n3_hp0b" tween="true" startValue="0" endValue="1" duration="24"/>
|
||||
<item time="24" type="Alpha" target="n3_hp0b" tween="true" startValue="1"/>
|
||||
</transition>
|
||||
<transition name="score">
|
||||
<item time="0" type="Alpha" target="n6_n9k8" tween="true" startValue="-22" endValue="1" duration="6"/>
|
||||
<item time="0" type="XY" target="n6_n9k8" tween="true" startValue="-23,58" endValue="-23,-43" duration="24"/>
|
||||
<item time="24" type="Alpha" target="n6_n9k8" value="1"/>
|
||||
</transition>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="1334,239" bgColorEnabled="true" bgColor="#333333">
|
||||
<displayList>
|
||||
<image id="n4_daen" name="n4" src="n52nj" xy="0,0" size="1334,239"/>
|
||||
<list id="n1_lxhz" name="Lst_birds" xy="320,51" size="694,136" touchable="false" layout="row" colGap="34" defaultItem="ui://wima7r3pn52nk" align="center" vAlign="middle"/>
|
||||
<image id="n5_daen" name="n5" src="n52nl" xy="114,111" group="n8_daen"/>
|
||||
<image id="n7_daen" name="n7" src="n52nl" xy="1029,111" pivot="0.5,0.5" group="n8_daen" scale="-1,1"/>
|
||||
<group id="n8_daen" name="n8" xy="114,111" size="1106,128"/>
|
||||
</displayList>
|
||||
</component>
|
||||
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="233,90" extention="Button">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<displayList>
|
||||
<image id="n4_vthd" name="n4" src="n52nn" fileName="images/game_bottom_02.png" xy="0,0"/>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="163,67" extention="Button">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<displayList>
|
||||
<image id="n3_vthd" name="n3" src="n52np" fileName="images/button.png" xy="0,0"/>
|
||||
<loader id="n2" name="icon" xy="0,0" size="164,66" align="center" vAlign="middle">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</loader>
|
||||
<text id="n4_irlq" name="title" xy="0,0" size="163,67" fontSize="30" color="#ffffff" align="center" vAlign="middle" autoSize="shrink" text=""/>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="61,61" extention="Button" initName="btn_rule">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<displayList>
|
||||
<image id="n2_u4l2" name="n2" src="n52n13" fileName="images/dw.png" xy="0,0"/>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="53,53" extention="Button" initName="btn_rule">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<displayList>
|
||||
<image id="n2_u4l2" name="n2" src="n52n15" xy="0,0"/>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="61,62" extention="Button" initName="btn_rule">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<displayList>
|
||||
<image id="n2_u4l2" name="n2" src="n52n11" fileName="images/info1.png" xy="0,8"/>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="61,61" extention="Button" initName="btn_rule">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<displayList>
|
||||
<image id="n2_u4l2" name="n2" src="n52nz" fileName="images/sz.png" xy="0,0"/>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="184,85" extention="Button">
|
||||
<displayList>
|
||||
<loader id="n2" name="icon" xy="0,0" size="184,85" align="center" vAlign="middle">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</loader>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="400,169" extention="Button">
|
||||
<displayList>
|
||||
<image id="n1" name="n1" src="n52nu" fileName="component/ENJCSMui/Group 519.png" xy="0,0" size="400,169"/>
|
||||
<loader id="n2" name="icon" xy="0,0" size="400,169" align="center" vAlign="middle"/>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue=".8"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="323,106" extention="Button" initName="btn_back_lobby">
|
||||
<controller name="button" pages="0,up,1,down" selected="0"/>
|
||||
<displayList>
|
||||
<image id="n2_hp0b" name="n2" src="h1uu31" fileName="images/game/game_bg_02.png" xy="321,0" scale="-1,1" pkg="27vd145b"/>
|
||||
<image id="n1" name="n1" src="n52n17" fileName="images/game/Button_Close.png" xy="98,28" scale="1.5,1.5"/>
|
||||
<image id="n3_hp0b" name="n3" src="n52n18" fileName="images/game/game_icon_01.png" xy="12,23" scale="1.5,1.5"/>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="161,65" extention="Button">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<displayList>
|
||||
<image id="n1" name="n1" src="n52n1a" fileName="images/button00.png" xy="0,0" size="160,65">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</image>
|
||||
<loader id="n2" name="icon" xy="0,0" size="161,65" align="center" vAlign="middle">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</loader>
|
||||
<text id="n3_irlq" name="title" xy="0,0" size="161,65" fontSize="30" color="#ffffff" align="center" vAlign="middle" autoSize="shrink" text=""/>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="132,132" extention="Button" initName="btn_close">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<controller name="style" exported="true" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<loader id="n3_j046" name="icon" xy="0,0" size="132,132" url="ui://wima7r3pn52ns" fill="scaleFree"/>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue=".8"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="438,147" extention="Button">
|
||||
<controller name="button" pages="0,up,1,down" selected="0"/>
|
||||
<displayList>
|
||||
<image id="n0_jes7" name="n0" src="n52nw" xy="0,0"/>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="64,263">
|
||||
<controller name="sdk" pages="0,,1," selected="0"/>
|
||||
<controller name="game_start" pages="0,,1," selected="0"/>
|
||||
<controller name="style" exported="true" pages="0,,1,,2," selected="0"/>
|
||||
<displayList>
|
||||
<component id="n69_r03n" name="btn_setting" src="n52ny" fileName="buttons/Btn_Setting.xml" xy="0,70"/>
|
||||
<component id="n46_u4l2" name="btn_rule" src="n52n10" fileName="buttons/Btn_Rule.xml" xy="3,204">
|
||||
<gearDisplay controller="style" pages="0"/>
|
||||
</component>
|
||||
<component id="n71_r03n" name="btn_gps" src="n52n12" fileName="buttons/Btn_GPS.xml" xy="2,138">
|
||||
<gearDisplay controller="sdk" pages="0"/>
|
||||
</component>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="402,214">
|
||||
<controller name="type" pages="0,gang,1,chi" selected="1"/>
|
||||
<displayList>
|
||||
<component id="n7_hyow" name="card1" src="n52n1d" fileName="component/card/Btn_Card.xml" xy="48,39" group="n11_hyow" touchable="false">
|
||||
<gearXY controller="type" pages="0,1" values="107,39|48,39"/>
|
||||
</component>
|
||||
<component id="n8_hyow" name="card2" src="n52n1d" fileName="component/card/Btn_Card.xml" xy="157,39" group="n11_hyow" touchable="false">
|
||||
<gearXY controller="type" pages="0,1" values="202,39|157,39"/>
|
||||
</component>
|
||||
<component id="n9_hyow" name="card3" src="n52n1d" fileName="component/card/Btn_Card.xml" xy="-1,39" group="n11_hyow" touchable="false">
|
||||
<gearDisplay controller="type" pages="0"/>
|
||||
</component>
|
||||
<component id="n10_hyow" name="card4" src="n52n1d" fileName="component/card/Btn_Card.xml" xy="268,39" group="n11_hyow" touchable="false">
|
||||
<gearXY controller="type" pages="0,1" values="314,39|268,39"/>
|
||||
</component>
|
||||
<group id="n11_hyow" name="n1" xy="-1,39" size="356,136"/>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="1000,680">
|
||||
<controller name="state" pages="0,3个选择,1,2个选择,2,4,3,5,4,6" selected="0"/>
|
||||
<displayList>
|
||||
<image id="n20_v38k" name="n20" src="n52n1k" fileName="images/game_bg_01.png" xy="0,19" pivot="0,0.5" size="1000,641">
|
||||
<gearSize controller="state" pages="1" values="1000,428,1,1" default="1000,641,1,1"/>
|
||||
</image>
|
||||
<component id="n13" name="cards" src="n52n1l" fileName="component/Component1.xml" xy="46,43" size="2,160"/>
|
||||
<list id="n16_hyow" name="Lst_choose" xy="299,38" size="402,641" group="n24_v38k" overflow="hidden" defaultItem="ui://wima7r3pn52n1m" align="center" vAlign="middle">
|
||||
<gearXY controller="state" pages="2,3,4" values="54,38|54,38|54,38" default="299,38"/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
</list>
|
||||
<image id="n18_jrw4" name="split1" src="n52n1n" fileName="choose/component/choose/game_icon_02.png" xy="316,247" group="n24_v38k">
|
||||
<gearXY controller="state" pages="1,2,3,4" values="316,355|71,247|71,247|71,247" default="316,247"/>
|
||||
</image>
|
||||
<image id="n19_jrw4" name="split2" src="n52n1n" fileName="choose/component/choose/game_icon_02.png" xy="316,465" group="n24_v38k">
|
||||
<gearDisplay controller="state" pages="0,2,3,4"/>
|
||||
<gearXY controller="state" pages="2,3,4" values="71,465|71,465|71,465" default="316,465"/>
|
||||
</image>
|
||||
<group id="n24_v38k" name="n24" xy="299,38" size="402,641" group="n26_v38k"/>
|
||||
<list id="n21_v38k" name="Lst_choose2" xy="299,38" size="402,641" group="n25_v38k" overflow="hidden" defaultItem="ui://wima7r3pn52n1m" align="center">
|
||||
<gearDisplay controller="state" pages="2,3,4"/>
|
||||
<gearXY controller="state" pages="2,3,4" values="541,38|541,38|541,38" default="299,38"/>
|
||||
<item/>
|
||||
</list>
|
||||
<image id="n22_v38k" name="split3" src="n52n1n" fileName="choose/component/choose/game_icon_02.png" xy="316,247" group="n25_v38k">
|
||||
<gearDisplay controller="state" pages="3,4"/>
|
||||
<gearXY controller="state" pages="1,2,3,4" values="316,355|566,247|532,247|532,247" default="316,247"/>
|
||||
</image>
|
||||
<image id="n23_v38k" name="split4" src="n52n1n" fileName="choose/component/choose/game_icon_02.png" xy="316,247" group="n25_v38k">
|
||||
<gearDisplay controller="state" pages="4"/>
|
||||
<gearXY controller="state" pages="1,2,3,4" values="316,355|560,466|316,247|532,465" default="316,247"/>
|
||||
</image>
|
||||
<group id="n25_v38k" name="n25" xy="299,38" size="402,641" group="n26_v38k"/>
|
||||
<group id="n26_v38k" name="n26" xy="299,38" size="402,641"/>
|
||||
<component id="n17_jrw4" name="Btn_cross" src="n52n1o" fileName="component/choose/Btn_cross.xml" xy="864,56">
|
||||
<gearXY controller="state" pages="1,2,3,4" values="864,165|907,28|907,28|907,28" default="864,56"/>
|
||||
</component>
|
||||
</displayList>
|
||||
</component>
|
||||
|
After Width: | Height: | Size: 311 B |
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="199,45">
|
||||
<controller name="c1" pages="0,,1,,2,,3," selected="1"/>
|
||||
<displayList>
|
||||
<loader id="n2_nrno" name="0" xy="0,-21" size="199,72" url="ui://lxhyy2sdfux2e1" align="center" vAlign="middle">
|
||||
<gearDisplay controller="c1" pages="0"/>
|
||||
</loader>
|
||||
<loader id="n5_nrno" name="2" xy="0,-18" size="199,72" url="ui://lxhyy2sdfux2e3" align="center" vAlign="middle">
|
||||
<gearDisplay controller="c1" pages="2"/>
|
||||
</loader>
|
||||
<loader id="n6_nrno" name="3" xy="0,-23" size="199,72" url="ui://lxhyy2sdfux2e0" align="center" vAlign="middle">
|
||||
<gearDisplay controller="c1" pages="3"/>
|
||||
</loader>
|
||||
<image id="n7_nrno" name="1" src="nrnoms" pkg="lxhyy2sd" xy="9,-19">
|
||||
<gearDisplay controller="c1" pages="1"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="210,421" extention="Button">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<displayList>
|
||||
<graph id="n1" name="n1" xy="0,0" size="210,421" touchable="false" type="rect" lineSize="0" fillColor="#fff0f0f0">
|
||||
<gearDisplay controller="button" pages="0"/>
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</graph>
|
||||
<graph id="n2" name="n2" xy="0,0" size="210,421" touchable="false" type="rect" lineSize="0" fillColor="#fffafafa">
|
||||
<gearDisplay controller="button" pages="2"/>
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</graph>
|
||||
<graph id="n3" name="n3" xy="0,0" size="210,421" touchable="false" type="rect" lineSize="0" fillColor="#ffcccccc">
|
||||
<gearDisplay controller="button" pages="1,3"/>
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</graph>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="1334,750" bgColorEnabled="true" adaptationTest="FitHeightAndSetCenter">
|
||||
<controller name="over" pages="0,,1," selected="0"/>
|
||||
<controller name="button" pages="0,,1," selected="0"/>
|
||||
<controller name="sdk" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<component id="n20_pt1r" name="win_base" src="e6awcd0" fileName="Win_Frame_Old.xml" pkg="27vd145b" xy="0,0" size="1334,750" group="n29_10imx">
|
||||
<Button icon="ui://lxhyy2sdfux2e9"/>
|
||||
</component>
|
||||
<list id="n3_fux2" name="player_list_1" xy="0,85" size="1334,580" group="n29_10imx" lineGap="5" defaultItem="ui://wima7r3pn52n2g" autoItemSize="false" align="center" vAlign="middle">
|
||||
<gearDisplay controller="over" pages="0"/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
</list>
|
||||
<list id="n7_jt1k" name="player_list_2" xy="17,140" size="1300,428" group="n29_10imx" layout="row" colGap="51" defaultItem="ui://wima7r3pn52n35" align="center" vAlign="middle">
|
||||
<gearDisplay controller="over" pages="1"/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
</list>
|
||||
<text id="n14_pt1r" name="n14" xy="139,39" size="93,26" group="n19_pt1r" fontSize="22" color="#ffffff" align="center" vAlign="middle" text="房间号:"/>
|
||||
<text id="n15_pt1r" name="tex_roomnum" xy="223,39" size="79,29" group="n19_pt1r" fontSize="22" color="#ffffff" vAlign="middle" autoClearText="true" text="123456
"/>
|
||||
<text id="n16_pt1r" name="tex_game" xy="321,39" size="93,26" group="n19_pt1r" fontSize="22" color="#ffffff" vAlign="middle" text="长沙麻将"/>
|
||||
<text id="n17_pt1r" name="tex_data" xy="953,39" size="123,26" group="n19_pt1r" fontSize="22" color="#ffffff" align="center" vAlign="middle" autoClearText="true" text="2017-02-12"/>
|
||||
<group id="n19_pt1r" name="room_info" xy="139,39" size="932,31" group="n29_10imx" collapsed="true"/>
|
||||
<text id="n22_xtwh" name="n22" xy="12,724" size="401,22" group="n29_10imx" fontSize="18" color="#ffffff" text="此页面仅用于娱乐竞技展示,禁止一切赌博行为!"/>
|
||||
<component id="n6_jt1k" name="btn_share" src="n52nm" fileName="buttons/Btn_Blue.xml" xy="807,665" group="n24_gfyh">
|
||||
<gearDisplay controller="sdk" pages="0"/>
|
||||
<Button icon="ui://wima7r3pn52n39"/>
|
||||
</component>
|
||||
<component id="n23_m3cn" name="btn_chat_room" src="n52no" fileName="buttons/Btn_Blue2.xml" xy="1037,665" group="n24_gfyh">
|
||||
<gearDisplay controller="over" pages="1"/>
|
||||
<Button icon="ui://wima7r3pn52n3a"/>
|
||||
</component>
|
||||
<component id="n27_xhvg" name="btn_share_str" src="n52nq" fileName="buttons/Btn_Yellow.xml" xy="583,665" group="n24_gfyh">
|
||||
<gearDisplay controller="over" pages="1"/>
|
||||
<Button icon="ui://wima7r3pn52n3b"/>
|
||||
</component>
|
||||
<component id="n4_fux2" name="btn_confirm" src="n52nq" fileName="buttons/Btn_Yellow.xml" xy="582,665" group="n28_xhvg">
|
||||
<gearDisplay controller="button" pages="0"/>
|
||||
<Button icon="ui://wima7r3pn52n3c"/>
|
||||
</component>
|
||||
<group id="n28_xhvg" name="n28" xy="582,665" size="184,85" group="n24_gfyh" advanced="true">
|
||||
<gearDisplay controller="over" pages="0"/>
|
||||
</group>
|
||||
<group id="n24_gfyh" name="btns" xy="582,665" size="636,86" group="n29_10imx" advanced="true">
|
||||
<gearXY controller="over" pages="0,1" values="582,665|348,638"/>
|
||||
</group>
|
||||
<component id="n12_nrno" name="btn_showResult" src="n52n3d" fileName="component/head/Btn_realname.xml" xy="523,666" group="n29_10imx">
|
||||
<gearDisplay controller="button" pages="1"/>
|
||||
<Button icon="ui://wima7r3pn52n3f"/>
|
||||
</component>
|
||||
<component id="n26_xhvg" name="btn_close" src="n52nr" fileName="buttons/Btn_close.xml" xy="1228,3" group="n29_10imx">
|
||||
<gearDisplay controller="over" pages="1"/>
|
||||
</component>
|
||||
<group id="n29_10imx" name="n29" xy="0,0" size="1334,751" advanced="true">
|
||||
<gearDisplay controller="over" pages="0"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</group>
|
||||
<component id="n30_10imx" name="big_result" src="n52n3g" fileName="component/result/component/result_main.xml" xy="0,0">
|
||||
<gearDisplay controller="over" pages="1"/>
|
||||
</component>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="1300,141">
|
||||
<controller name="win" pages="0,,1,,2," selected="0"/>
|
||||
<controller name="hu_list" pages="0,,1," selected="0"/>
|
||||
<controller name="bank" pages="0,,1," selected="0"/>
|
||||
<controller name="niao" pages="0,,1," selected="0"/>
|
||||
<controller name="mult_win" pages="0,,1," selected="0"/>
|
||||
<controller name="fengding" pages="0,,1," selected="0"/>
|
||||
<controller name="hp_limit" pages="0,,1," selected="0"/>
|
||||
<controller name="nonnegative" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<graph id="n31_128w8" name="n31" xy="0,0" size="1300,141" type="rect" lineSize="0" fillColor="#801c5360"/>
|
||||
<loader id="n2_fux2" name="seat" xy="42,47" size="51,50" url="ui://lxhyy2sdfux2ee" align="right" vAlign="middle"/>
|
||||
<text id="n5_fux2" name="playerName" xy="0,110" size="130,24" fontSize="18" color="#ffffff" align="center" vAlign="middle" autoSize="shrink" singleLine="true" autoClearText="true" text="fsdafdsafdsa"/>
|
||||
<text id="n7_fux2" name="tex_hp" xy="1086,1" size="144,52" font="ui://wima7r3pn52n2h" fontSize="48" color="#ffffff" align="center" vAlign="middle" ubb="true" autoSize="shrink" autoClearText="true" text="+10000">
|
||||
<gearDisplay controller="nonnegative" pages="1"/>
|
||||
</text>
|
||||
<component id="n9_nrno" name="btn_head" src="n52n2v" fileName="component/head/Head.xml" xy="16,7" size="95,95"/>
|
||||
<image id="n17_jqcw" name="n17" src="n52n2y" fileName="images/z01.png" xy="84,0">
|
||||
<gearDisplay controller="bank" pages="1"/>
|
||||
</image>
|
||||
<image id="n13_yyhx" name="n13" src="n52n2z" fileName="images/fangpao.png" xy="835,79">
|
||||
<gearDisplay controller="win" pages="2"/>
|
||||
</image>
|
||||
<list id="n3_fux2" name="hand_card_list" xy="140,56" size="675,79" group="n16_iqv0" layout="row" selectionMode="none" defaultItem="ui://wima7r3pn52n30">
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
</list>
|
||||
<list id="n8_jt1k" name="fz_card_list" xy="832,57" size="10,79" group="n16_iqv0" layout="row" selectionMode="none" defaultItem="ui://wima7r3pn52n30">
|
||||
<relation target="n3_fux2" sidePair="leftext-right"/>
|
||||
</list>
|
||||
<component id="n12_nrno" name="win_card" src="n52n30" fileName="clearing/clearing_card.xml" xy="861,54" group="n16_iqv0">
|
||||
<gearDisplay controller="win" pages="0"/>
|
||||
</component>
|
||||
<list id="n18_8kzv" name="list_niao" xy="927,55" size="269,79" group="n16_iqv0" layout="row" selectionMode="none" defaultItem="ui://wima7r3pn52n30">
|
||||
<gearDisplay controller="niao" pages="1"/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
</list>
|
||||
<group id="n16_iqv0" name="n16" xy="140,54" size="1056,82" advanced="true" collapsed="true">
|
||||
<gearXY controller="hu_list" pages="0,1" values="140,54|140,8"/>
|
||||
</group>
|
||||
<text id="n6_fux2" name="score1" xy="149,8" size="433,31" fontSize="24" color="#ffffff" vAlign="middle" autoClearText="true" text="胡:-2分 扎鸟:-3分 起手胡:-2分 飘分:-2分">
|
||||
<gearXY controller="hu_list" pages="0,1" values="149,8|146,0"/>
|
||||
</text>
|
||||
<text id="n15_iqv0" name="score3" xy="146,25" size="413,31" fontSize="24" color="#ffffff" vAlign="middle" autoClearText="true" text="清一色 将将胡 全球人 碰碰胡 抢杠胡">
|
||||
<gearDisplay controller="hu_list" pages="1"/>
|
||||
</text>
|
||||
<image id="n21_7q1m" name="n21" src="n52n27" fileName="clearing/font/d01.png" xy="-6,-3" group="n23_7q1m"/>
|
||||
<image id="n24_hhtd" name="n24" src="n52n1s" fileName="clearing/font/w03.png" xy="20,-7" group="n23_7q1m"/>
|
||||
<image id="n25_hhtd" name="n25" src="n52n1r" fileName="clearing/font/w00.png" xy="47,-7" group="n23_7q1m"/>
|
||||
<group id="n23_7q1m" name="n23" xy="-6,-7" size="137,39" advanced="true">
|
||||
<gearDisplay controller="mult_win" pages="1"/>
|
||||
</group>
|
||||
<image id="n26_gsb6" name="n26" src="n52n31" fileName="clearing/fd.png" xy="1239,-5">
|
||||
<gearDisplay controller="fengding" pages="1"/>
|
||||
</image>
|
||||
<image id="n27_nyna" name="n27" src="n52n32" fileName="clearing/xqan(2).png" xy="1254,25" aspect="true"/>
|
||||
<text id="n28_r4s4" name="score2" xy="966,1" size="127,52" fontSize="28" color="#ffffff" align="center" vAlign="middle" ubb="true" autoSize="shrink" autoClearText="true" text="+10000"/>
|
||||
<text id="n29_r4s4" name="n29" xy="1052,56" size="201,37" group="n30_r4s4" fontSize="28" color="#ffffff" text="(已达到上限)">
|
||||
<gearDisplay controller="hp_limit" pages="1"/>
|
||||
</text>
|
||||
<group id="n30_r4s4" name="n30" xy="1052,56" size="201,32" advanced="true">
|
||||
<gearDisplay controller="nonnegative" pages="1"/>
|
||||
</group>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="210,464">
|
||||
<controller name="owner" pages="0,,1," selected="1"/>
|
||||
<controller name="zan" pages="0,,1," selected="0"/>
|
||||
<controller name="winner" pages="0,,1," selected="0"/>
|
||||
<controller name="times" pages="0,,1," selected="1"/>
|
||||
<controller name="hp_limit" pages="0,,1," selected="1"/>
|
||||
<displayList>
|
||||
<image id="n25_xtwh" name="n25" src="xtwh97" fileName="component/result/di(1).png" pkg="27vd145b" xy="0,0" size="205,464"/>
|
||||
<text id="n2_fux2" name="name" xy="0,84" size="210,39" fontSize="24" color="#ffffff" align="center" vAlign="middle" autoSize="none" strokeColor="#174a4b" strokeSize="2" text="玩家的名字則麽長~~"/>
|
||||
<text id="n41_kgcp" name="pscore" xy="38,151" size="135,62" font="ui://wima7r3pn52n2" fontSize="50" color="#ffffff" align="center" vAlign="middle" autoSize="shrink" singleLine="true" text="+5">
|
||||
<gearDisplay controller="times" pages="1"/>
|
||||
</text>
|
||||
<text id="n42_kgcp" name="score" xy="77,200" size="128,78" font="ui://wima7r3pn52n2" fontSize="56" color="#ffffff" align="center" vAlign="middle" autoSize="shrink" singleLine="true" text="+180">
|
||||
<gearXY controller="times" pages="0,1" values="41,171|77,200"/>
|
||||
</text>
|
||||
<image id="n43_kgcp" name="n43" src="n52n36" fileName="component/result/bd.png" xy="24,217" group="n46_kgcp"/>
|
||||
<image id="n44_kgcp" name="n44" src="n52n37" fileName="component/result/bsxz.png" xy="50,220" group="n46_kgcp"/>
|
||||
<text id="n45_kgcp" name="tex_times" xy="-36,202" pivot="0.5,0.5" size="124,64" group="n46_kgcp" scale="0.4,0.4" font="ui://wima7r3pn52n2" fontSize="60" color="#ffffff" align="center" vAlign="middle" autoClearText="true" text="500"/>
|
||||
<group id="n46_kgcp" name="n46" xy="-36,203" size="123,62" advanced="true">
|
||||
<gearDisplay controller="times" pages="1"/>
|
||||
</group>
|
||||
<component id="n18_nrno" name="btn_head" src="n52n2v" fileName="component/head/Head.xml" xy="65,4" size="80,80" touchable="false"/>
|
||||
<image id="n19_pt1r" name="n19" src="n52n38" fileName="images/head/owner.png" xy="144,57">
|
||||
<gearDisplay controller="owner" pages="1"/>
|
||||
</image>
|
||||
<image id="n26_xtwh" name="n26" src="xtwh99" fileName="component/result/zan.png" pkg="27vd145b" xy="112,1" grayed="true">
|
||||
<gearLook controller="zan" pages="0,1" values="1,0,1,1|1,0,0,1"/>
|
||||
</image>
|
||||
<image id="n40_pikf" name="n40" src="fux2e3" fileName="images/clearing/renshengyingjia.png" pkg="lxhyy2sd" xy="50,102" scale="0.8,0.8">
|
||||
<gearDisplay controller="winner" pages="1"/>
|
||||
</image>
|
||||
<text id="n27_pikf" name="n27" xy="5,278" size="103,27" group="n39_pikf" fontSize="23" text="大胡自摸:"/>
|
||||
<text id="n32_pikf" name="n32" xy="5,306" size="103,27" group="n39_pikf" fontSize="23" text="小胡自摸:"/>
|
||||
<text id="n29_pikf" name="n29" xy="5,334" size="103,27" group="n39_pikf" fontSize="23" text="大胡接炮:"/>
|
||||
<text id="n31_pikf" name="n31" xy="5,362" size="103,27" group="n39_pikf" fontSize="23" text="小胡接炮:"/>
|
||||
<text id="n30_pikf" name="n30" xy="5,390" size="103,27" group="n39_pikf" fontSize="23" text="大胡点炮:"/>
|
||||
<text id="n28_pikf" name="n28" xy="5,418" size="103,27" group="n39_pikf" fontSize="23" text="小胡点炮:"/>
|
||||
<text id="n33_pikf" name="tex_zimo1" xy="84,278" size="117,32" group="n39_pikf" fontSize="23" align="right" autoSize="none" text="5"/>
|
||||
<text id="n34_pikf" name="tex_zimo2" xy="84,306" size="117,32" group="n39_pikf" fontSize="23" align="right" autoSize="none" text="5"/>
|
||||
<text id="n35_pikf" name="tex_hu1" xy="84,334" size="117,32" group="n39_pikf" fontSize="23" align="right" autoSize="none" text="5"/>
|
||||
<text id="n36_pikf" name="tex_hu2" xy="84,362" size="117,32" group="n39_pikf" fontSize="23" align="right" autoSize="none" text="5"/>
|
||||
<text id="n37_pikf" name="tex_dianpao1" xy="84,390" size="117,32" group="n39_pikf" fontSize="23" align="right" autoSize="none" text="5"/>
|
||||
<text id="n38_pikf" name="tex_dianpao2" xy="84,418" size="117,32" group="n39_pikf" fontSize="23" align="right" autoSize="none" text="5"/>
|
||||
<group id="n39_pikf" name="detail" xy="5,278" size="196,172" collapsed="true"/>
|
||||
<component id="n23_n9k8" name="btn_zan" src="aj7d6e" fileName="component/result/btn_zan.xml" pkg="27vd145b" xy="0,0" size="210,426" hideByEditor="true" alpha="0"/>
|
||||
<text id="n48_r4s4" name="n48" xy="70,253" size="145,24" fontSize="20" text="(已达到上限)">
|
||||
<gearDisplay controller="hp_limit" pages="1"/>
|
||||
</text>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="52,79" extention="Button">
|
||||
<controller name="bg" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<image id="n2_yyhx" name="n2" src="n52n1" fileName="images/fangkuang.png" xy="-24,-18" scale="0.3,0.3">
|
||||
<gearDisplay controller="bg" pages="1"/>
|
||||
</image>
|
||||
<loader id="n0_jt1k" name="icon" xy="-3,0" size="96,132" scale="0.6,0.6" url="ui://lxhyy2sd6cpqu1"/>
|
||||
</displayList>
|
||||
<Button/>
|
||||
</component>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
|
|
@ -0,0 +1,17 @@
|
|||
info resizable=true colored=false
|
||||
char id=36830 img=n52n1r xoffset=0 yoffset=0 xadvance=0
|
||||
char id=98 img=n52n1s xoffset=0 yoffset=0 xadvance=0
|
||||
char id=99 img=n52n1t xoffset=0 yoffset=0 xadvance=0
|
||||
char id=100 img=n52n1u xoffset=0 yoffset=0 xadvance=0
|
||||
char id=101 img=n52n1v xoffset=0 yoffset=0 xadvance=0
|
||||
char id=102 img=n52n1w xoffset=0 yoffset=0 xadvance=0
|
||||
char id=103 img=n52n1x xoffset=0 yoffset=0 xadvance=0
|
||||
char id=104 img=n52n1y xoffset=0 yoffset=0 xadvance=0
|
||||
char id=105 img=n52n1z xoffset=0 yoffset=0 xadvance=0
|
||||
char id=106 img=n52n20 xoffset=0 yoffset=0 xadvance=0
|
||||
char id=107 img=n52n21 xoffset=0 yoffset=0 xadvance=0
|
||||
char id=108 img=n52n22 xoffset=0 yoffset=0 xadvance=0
|
||||
char id=109 img=n52n23 xoffset=0 yoffset=0 xadvance=0
|
||||
char id=110 img=n52n24 xoffset=0 yoffset=0 xadvance=0
|
||||
char id=97 img=n52n25 xoffset=0 yoffset=0 xadvance=0
|
||||
char id=32988 img=n52n26 xoffset=0 yoffset=-5 xadvance=0
|
||||
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 558 B |
|
After Width: | Height: | Size: 892 B |
|
After Width: | Height: | Size: 969 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 746 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 581 B |
|
After Width: | Height: | Size: 563 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1000 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="21,21" extention="Button">
|
||||
<displayList>
|
||||
<image id="n6_nyna" name="n6" src="n52n1p" fileName="images/1_05.png" xy="0,0" scale="0.5,0.5">
|
||||
<relation target="" sidePair="left-right"/>
|
||||
</image>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="11,5" extention="Button">
|
||||
<displayList>
|
||||
<image id="n3_nyna" name="n3" src="n52n2c" fileName="clearing/jiantou.png" xy="0,0" pivot="0.5,0.5" scale="2,2" rotation="90">
|
||||
<relation target="" sidePair="middle-middle"/>
|
||||
</image>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue="0.80"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="382,142" extention="Button">
|
||||
<displayList>
|
||||
<image id="n1_nyna" name="n1" src="n52n2f" fileName="clearing/di(1).png" xy="0,0" size="382,142">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</image>
|
||||
</displayList>
|
||||
<Button/>
|
||||
</component>
|
||||
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 192 B |
|
|
@ -0,0 +1,36 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="529,171" extention="Button">
|
||||
<controller name="c1" pages="0,,1," selected="0"/>
|
||||
<controller name="niao" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<image id="n0_nyna" name="btn_di" src="n52n29" fileName="component/clearing/clearing1/task_cell_bg.png" xy="0,0" size="529,171">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</image>
|
||||
<component id="n6_nyna" name="btn_close" src="n52n2a" fileName="clearing/qsinfo/btn_close.xml" xy="391,16" size="103,43">
|
||||
<relation target="" sidePair="right-right"/>
|
||||
</component>
|
||||
<text id="n12_nyna" name="n12" xy="223,9" size="77,31" fontSize="24" color="#663333" text="板板胡">
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</text>
|
||||
<text id="n1_nyna" name="tex_nick" xy="42,13" size="115,39" fontSize="26" color="#663333" vAlign="middle" autoSize="none" bold="true" singleLine="true" text="player"/>
|
||||
<text id="n3_nyna" name="n3" xy="118,62" size="63,31" group="n13_nyna" fontSize="24" color="#663333" autoSize="none" text="牌型"/>
|
||||
<text id="n4_nyna" name="n4" xy="280,62" size="53,31" group="n13_nyna" fontSize="24" color="#663333" text="骰子">
|
||||
<gearDisplay controller="niao" pages="1"/>
|
||||
</text>
|
||||
<list id="n2_nyna" name="lst_qs" xy="35,91" size="234,55" group="n13_nyna" lineGap="2" defaultItem="ui://wima7r3pn52n2b" autoClearItems="true">
|
||||
<item/>
|
||||
</list>
|
||||
<text id="n9_nyna" name="n9" xy="363,62" size="53,31" group="n13_nyna" fontSize="24" color="#663333" text="胡分"/>
|
||||
<text id="n10_nyna" name="n10" xy="438,62" size="53,31" group="n13_nyna" fontSize="24" color="#663333" text="鸟分">
|
||||
<gearDisplay controller="niao" pages="1"/>
|
||||
</text>
|
||||
<group id="n13_nyna" name="n13" xy="35,62" size="458,84" advanced="true">
|
||||
<gearDisplay controller="c1" pages="0"/>
|
||||
</group>
|
||||
<text id="n14_nyna" name="n14" xy="190,85" size="145,36" fontSize="28" color="#663333" text="没有板板胡">
|
||||
<gearDisplay controller="c1" pages="1"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</text>
|
||||
</displayList>
|
||||
<Button/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="449,54">
|
||||
<displayList>
|
||||
<image id="n3_nyna" name="n3" src="n52n2c" fileName="clearing/jiantou.png" xy="0,25" pivot="0.5,0.5" rotation="90"/>
|
||||
<image id="n4_nyna" name="n4" src="n52n2c" fileName="clearing/jiantou.png" xy="223,25" pivot="0.5,0.5" rotation="-90"/>
|
||||
<list id="n0_nyna" name="lst_card" xy="12,0" size="526,136" scale="0.4,0.4" layout="row" overflow="scroll" scroll="horizontal" defaultItem="ui://wima7r3pn52n1d" autoClearItems="true">
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
</list>
|
||||
<text id="n1_nyna" name="tex_touzi" xy="275,14" pivot="0.5,0" anchor="true" size="32,27" fontSize="20" color="#663333" autoClearText="true" text="2 2"/>
|
||||
<text id="n5_nyna" name="tex_score" xy="356,14" pivot="0.5,0" anchor="true" size="24,27" fontSize="20" color="#663333" autoClearText="true" text="10"/>
|
||||
<text id="n6_nyna" name="tex_niao_score" xy="426,14" pivot="0.5,0" anchor="true" size="24,27" fontSize="20" color="#663333" autoClearText="true" text="10"/>
|
||||
</displayList>
|
||||
</component>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="10,10">
|
||||
<displayList/>
|
||||
</component>
|
||||
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 9.3 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 18 KiB |