local base = require "K3Lua.Base.LuaPanelEx"
---@class Logics.NewServerActivity.EightGatesPanel : LuaPanel
local luaPanel = Class("EightGatesPanel", base)
function luaPanel:LoadOkInit(panel)
-- 初始化卦象物品面板
self.ItemPanel = {
[1] = self:getItembox(131),
[2] = self:getItembox(132),
[3] = self:getItembox(133),
[4] = self:getItembox(134),
[5] = self:getItembox(135),
[6] = self:getItembox(136),
[7] = self:getItembox(137),
[8] = self:getItembox(138)
}
-- 左侧物品面板
self.LeftItem = {
[1] = {self:getItembox(161), self:getItembox(162)},
[2] = {self:getItembox(167), self:getItembox(168)},
[3] = {self:getItembox(173), self:getItembox(174)}
}
-- self.rightItem = {
-- [1] = {self:getItembox(182), self:getItembox(185), self:getItembox(187), self:getItembox(189)},
-- [2] = {self:getItembox(193), self:getItembox(195), self:getItembox(197), self:getItembox(199)},
-- [3] = {self:getItembox(203), self:getItembox(205), self:getItembox(207), self:getItembox(209)}
-- }
-- 已购买标识
self.yiBuy = {
[1] = {self:getImage(216), self:getImage(217), self:getImage(228), self:getImage(229)},
[2] = {self:getImage(220), self:getImage(221), self:getImage(222), self:getImage(223)},
[3] = {self:getImage(224), self:getImage(225), self:getImage(226), self:getImage(227)}
}
self.ani_group = {
self:getAnimation(276),
self:getAnimation(277),
self:getAnimation(278),
self:getAnimation(279),
self:getAnimation(280),
self:getAnimation(281),
self:getAnimation(282),
self:getAnimation(283)
}
-- 动画控制变量
self.animSequence = {} -- 动画播放序列
self.currentAnimIndex = 1 -- 当前播放的动画索引
self.isPlayingAnim = false -- 是否正在播放动画
self.winPosition = 0 -- 中奖位置
self.drawnPositions = {} -- 已抽中的位置
self.remainingPositions = {} -- 剩余未抽中的位置
-- 初始化所有卦象为暗状态
for i = 1, 8 do
self.ani_group[i]:Stop()
self.ani_group[i]:SetVisible(false)
self["lightImage" .. i] = self["oneimage"] -- 这里需要根据实际图片变量名调整
end
self.yiBuy1 = {
[1] = self:getImage(216),
[2] = self:getImage(217),
[3] = self:getImage(228),
[4] = self:getImage(229)
}
self.yiBuy2 = {
[1] = self:getImage(220),
[2] = self:getImage(221),
[3] = self:getImage(222),
[4] = self:getImage(223)
}
self.yiBuy3 = {
[1] = self:getImage(224),
[2] = self:getImage(225),
[3] = self:getImage(226),
[4] = self:getImage(227)
}
-- self.cione = self:getLabel(230)
-- self.citwo = self:getLabel(231)
-- self.cithree = self:getLabel(232)
-- self.zhiBuy:AddEventListenerForLua(function ()
-- if not self.allGiftState <= 0 then
-- self:SDKBuy()
-- else
-- K3UIManager.Instance:AddHintMsg("您已进阶,不能重复进阶!")
-- end
-- end)
self.istypebtn = false
self.sipriceimage = self:getImage(105)
self.sigetimage = self:getImage(107)
self.pricesinan = self:getLabel(245)
self.onebtn = self:getButton(165)
self.twobtn = self:getButton(171)
self.threebtn = self:getButton(177)
self.oneimage = self:getImage(260)
self.twoimage = self:getImage(261)
self.threeimage = self:getImage(262)
self.fourimage = self:getImage(263)
self.fiveimage = self:getImage(264)
self.siximage = self:getImage(265)
self.siveimage = self:getImage(266)
self.enightimage = self:getImage(267)
local function bindGiftButton(btnIndex, giftIndex, sdkBuyFunc)
local btn = self:getButton(btnIndex)
btn:AddEventListenerForLua(
function()
if self.zhugouitem and self.zhugouitem[giftIndex] and self.zhugouitem[giftIndex].giftIdState then
K3UIManager.Instance:AddHintMsg("您已购买,不能重复购买!")
else
sdkBuyFunc()
end
end
)
end
-- 绑定三个购买按钮
bindGiftButton(
165,
1,
function()
self:SDKBuy2()
end
)
bindGiftButton(
171,
2,
function()
self:SDKBuy3()
end
)
bindGiftButton(
177,
3,
function()
self:SDKBuy4()
end
)
self.Dabao = self:getButton(268)
self.Dabao:AddEventListenerForLua(
function()
if not self.allGiftIdState and self.istypebtn == false then
self:SDKBuy()
self.istype = true
else
K3UIManager.Instance:AddHintMsg("您已进阶,不能重复进阶!")
end
end
)
self.child = {}
self.boFree = false
self.ntimes = 0
self.flag = 0
self.istype = 0
self.gettype = 0
self.btgetclose = self:getButton(259)
self.btgetclose:AddEventListenerForLua(
function()
self.getpanel:SetVisible(false)
end
)
self.btnone = self:getButton(103)
-- self.btnten = self:getButton(104)
self.labgetbtn = self:getLabel(108)
-- self.lableijibtn = self:getLabel(153)
self.getCheckBoxaim = self:getCheckBox(273)
-- self.closetiBox = self:getCheckBox(110)
self.getpanel = self:getPanel(141)
-- self.Leijipanel = self:getPanel(179)
--self.mFloatPanel = self:getPanel(176)
self.successanim = self:getAnimation(215)
self.zhuPanel = self:getPanel(102)
self.sinanimage = self:getImage(270)
self.sinanxiaohao = self:getImage(271)
self.lijiqianbtn = self:getLabelButton(256)
self.lijiqianbtn:AddEventListenerForLua(
function()
if self.zhugouitem ~= nil then
K3UIManager.Instance:GetDialog("ChuMoWeiDaoDialog")
end
end
)
self.labgetbtn:AddEventListenerForLua(
function()
GameLuaEngine.SendLuaPack("BaMenFenJinTaiDirectInfo")
end
)
-- self.lableijibtn:AddEventListenerForLua(
-- function()
-- self.Leijipanel:SetVisible(not self.Leijipanel.IsVisible)
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiPanel")
-- end
-- )
self.getpanel:SetVisible(false)
--self.Leijipanel:SetVisible(false)
self.btnone:AddEventListenerForLua(
function()
self:OneBuy()
end
)
-- self.btnten:AddEventListenerForLua(
-- function()
-- self:TwoBuy()
-- end
-- )
self.getCheckBoxaim:AddChecked(
function()
self.getCheckBoxaim.isChecked = self.getCheckBoxaim.isChecked
local istrue = self.getCheckBoxaim.isChecked == true and 1 or 2
self.xuhao = 1
GameLuaEngine.SendLuaPack("BaMenFenJinTaiSetState", self.xuhao, istrue)
end
)
-- self.closetiBox:AddChecked(
-- function()
-- self.closetiBox.isChecked = self.closetiBox.isChecked
-- local istrue = self.closetiBox.isChecked == true and 1 or 2
-- self.xuhao1 = 2
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiSetState", self.xuhao1, istrue)
-- end
-- )
for i = 1, LuaUtils.GetTabelLen(self.ItemPanel) do
self.ItemPanel[i].picName = "sxcf_icon_sx_" .. i .. "_hui"
self.ani_group[i]:Stop()
end
self.boPlayAnim = false -- 是否正在播放
self.boFinishAnim = false
end
function luaPanel:GenerateRandomSequence()
self.remainingPositions = {}
-- 收集所有未抽中的位置
for i = 1, 8 do
if not self.drawnPositions[i] then
table.insert(self.remainingPositions, i)
end
end
-- 如果所有位置都已抽中,重置(根据需求决定是否重置)
if #self.remainingPositions == 0 then
-- 如果所有位置都已抽中,可以选择重置或者不再抽奖
-- 这里根据需求决定,暂时不重置
return false
end
-- 随机打乱剩余位置
self.animSequence = self:ShuffleTable(self.remainingPositions)
-- 设置中奖位置(最后一个位置为中奖位置)
self.winPosition = self.animSequence[#self.animSequence]
return true
end
-- 打乱表格
function luaPanel:ShuffleTable(tbl)
local shuffled = {}
for i = 1, #tbl do
shuffled[i] = tbl[i]
end
for i = #shuffled, 2, -1 do
local j = math.random(i)
shuffled[i], shuffled[j] = shuffled[j], shuffled[i]
end
return shuffled
end
-- 开始播放抽奖动画
function luaPanel:StartDrawAnimation()
if self.isPlayingAnim then
K3UIManager.Instance:AddHintMsg("正在抽奖中,请稍候...")
return false
end
-- 生成随机序列
if not self:GenerateRandomSequence() then
K3UIManager.Instance:AddHintMsg("所有奖励已抽完!")
return false
end
self.isPlayingAnim = true
self.currentAnimIndex = 1
-- 隐藏所有动画
for i = 1, 8 do
self.ani_group[i]:Stop()
self.ani_group[i]:SetVisible(false)
end
self.successanim:Stop()
self.successanim:SetVisible(false)
-- 开始播放序列动画
self:PlayNextAnimation()
return true
end
-- 播放下一个动画
function luaPanel:PlayNextAnimation()
if self.currentAnimIndex > #self.animSequence then
self:ShowWinAnimation()
return
end
local currentPos = self.animSequence[self.currentAnimIndex]
-- 隐藏之前的所有动画
for i = 1, 8 do
self.ani_group[i]:SetVisible(false)
end
-- 显示并播放当前动画(暗-明-暗渐变效果)
self.ani_group[currentPos]:SetVisible(true)
self.ani_group[currentPos]:Play()
-- 特殊处理:根据剩余数量调整播放逻辑
local remainingCount = #self.remainingPositions - (self.currentAnimIndex - 1)
if remainingCount == 2 then
-- 剩余2个时,下一次就是中奖
self.currentAnimIndex = self.currentAnimIndex + 1
self:DelayedCall(
0.8,
function()
self:PlayNextAnimation()
end
)
elseif remainingCount == 1 then
-- 剩余1个时,直接播放中奖动画
self:ShowWinAnimation()
end
end
-- 显示中奖动画
function luaPanel:ShowWinAnimation()
local winPos = self.winPosition
-- 隐藏所有卦象动画
for i = 1, 8 do
self.ani_group[i]:SetVisible(false)
end
-- 播放中奖卦象动画和太极动画同时进行
self.ani_group[winPos]:SetVisible(true)
self.ani_group[winPos]:Play()
self.successanim:SetVisible(true)
self.successanim:Play()
-- 标记该位置为已抽中
self.drawnPositions[winPos] = true
-- 显示对应的对勾亮起标识
self:UpdateLightState(winPos)
-- 动画完成后恢复状态
self:DelayedCall(
2.0,
function()
self.isPlayingAnim = false
self.ani_group[winPos]:SetVisible(false)
self.successanim:SetVisible(false)
-- 对勾保持显示状态
if self.lightImages[winPos] then
self.lightImages[winPos]:SetVisible(true)
end
-- 抽奖完成,可以显示奖励
self:OnDrawComplete(winPos)
end
)
end
-- function luaPanel:Update()
-- -- self:PlayOnceAnim()
-- end
-- function luaPanel:PlayOnceAnim()
-- if self.boPlayAnimType == nil or self.boPlayAnimType ~= 1 then
-- return
-- end
-- if self.boPlayAnim == false or self.boFinishAnim == true then
-- return
-- end
-- if self.changeTime == nil then
-- if LuaUtils.GetCsTime() - self.ntimes >= 2 then
-- self:ShowResult(self.gongXiHuoDeTab)
-- end
-- end
-- end
function luaPanel:OneBuy()
if self.clickTime and Time.time - self.clickTime < 0.1 then
K3UIManager.Instance:AddHintMsg("点击过快")
return
end
if self.clickTime and Time.time - self.clickTime < 2.5 and self.getCheckBoxaim.isChecked == false then
return
end
self.clickTime = Time.time
if self.boFree == true and self.getCheckBoxaim.isChecked == true then
self.flag = 1
if self:StartDrawAnimation() then -- 开始播放动画
GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 1)
end
return
end
if self.boFree == true and self.getCheckBoxaim.isChecked == false then
self.flag = 0
if self:StartDrawAnimation() then -- 开始播放动画
GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 1)
end
self.istype = 1
return
end
-- if self.boFree == true and self.getCheckBoxaim.isChecked == true then
-- self.flag = 1
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 1)
-- return
-- end
-- if self.boFree == true and self.getCheckBoxaim.isChecked == false and self.closetiBox.isChecked == true then
-- self.flag = 0
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 1)
-- self.istype = 1
-- return
-- end
if self.getCheckBoxaim.isChecked == false then
self.flag = 0
if self.price >= self.onecostPrice then
if self:StartDrawAnimation() then -- 开始播放动画
GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 1)
end
self.istype = 1
-- local str = string.format("是否消耗<color=#10FF04>%s司南</color>进行一次抽奖?", self.onecostPrice)
-- GameLuaEngine.ShowAlert(
-- str,
-- function()
-- if self.price >= self.onecostPrice then
-- end
-- end,
-- "确 定",
-- true,
-- "温馨提示"
-- )
return
elseif self.price < self.onecostPrice then
self.istype = 0
K3UIManager.Instance:AddHintMsg("道具不足,无法抽奖!")
-- local str = string.format("司南不足,是否前往购买?", self.onecostPrice)
-- GameLuaEngine.ShowAlert(
-- str,
-- function()
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 1)
-- self.getpanel:SetVisible(true)
-- end,
-- "前 往",
-- true,
-- "温馨提示"
-- )
end
return
end
if self.getCheckBoxaim.isChecked == true then
self.flag = 1
if self.price >= self.onecostPrice then
GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 1)
else
-- local str = string.format("司南不足,是否前往购买?", self.onecostPrice)
-- GameLuaEngine.ShowAlert(
-- str,
-- function()
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 1)
-- self.getpanel:SetVisible(true)
-- end,
-- "前 往",
-- true,
-- "温馨提示"
-- )
K3UIManager.Instance:AddHintMsg("道具不足,无法抽奖!")
end
return
end
-- if self.getCheckBoxaim.isChecked == true then
-- self.flag = 1
-- if self.price >= self.onecostPrice then
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 1)
-- self.istype = 1
-- -- local str = string.format("是否消耗<color=#10FF04>%s司南</color>进行一次抽奖?", self.onecostPrice)
-- -- GameLuaEngine.ShowAlert(
-- -- str,
-- -- function()
-- -- if self.price >= self.onecostPrice then
-- --
-- -- end
-- -- end,
-- -- "确 定",
-- -- true,
-- -- "温馨提示"
-- -- )
-- return
-- elseif self.price < self.onecostPrice then
-- K3UIManager.Instance:AddHintMsg("货币不足,无法购买!")
-- local str = string.format("司南不足,是否前往购买?", self.onecostPrice)
-- GameLuaEngine.ShowAlert(
-- str,
-- function()
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 1)
-- self.getpanel:SetVisible(true)
-- end,
-- "前 往",
-- true,
-- "温馨提示"
-- )
-- end
--end
-- if self.closetiBox.isChecked == true then
-- self.flag = 0
-- if self.price >= self.onecostPrice then
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 1)
-- self.istype = 1
-- else
-- self.istype = 0
-- local str = string.format("司南不足,是否前往购买?", self.onecostPrice)
-- GameLuaEngine.ShowAlert(
-- str,
-- function()
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 1)
-- K3UIManager.Instance:AddHintMsg("货币不足,无法购买!")
-- self.getpanel:SetVisible(true)
-- end,
-- "前 往",
-- true,
-- "温馨提示"
-- )
-- end
-- end
--end
-- function luaPanel:TwoBuy()
-- if self.clickTime and Time.time - self.clickTime < 0.1 then
-- K3UIManager.Instance:AddHintMsg("点击过快")
-- return
-- end
-- if self.clickTime and Time.time - self.clickTime < 2.5 and self.getCheckBoxaim.isChecked == false then
-- --K3UIManager.Instance:AddHintMsg("正在抽奖中")
-- return
-- end
-- self.clickTime = Time.time
-- if self.boFree == true then
-- K3UIManager.Instance:AddHintMsg("当前有剩余免费次数,无法十连抽")
-- return
-- end
-- if self.getCheckBoxaim.isChecked == false and self.closetiBox.isChecked == false then
-- self.flag = 0
-- if self.price >= self.tencostPrice then
-- local str = string.format("是否消耗<color=#10FF04>%s司南</color>进行一次抽奖?", self.tencostPrice)
-- GameLuaEngine.ShowAlert(
-- str,
-- function()
-- if self.price >= self.tencostPrice then
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 10)
-- self.istype = 1
-- end
-- end,
-- "确 定",
-- true,
-- "温馨提示"
-- )
-- return
-- elseif self.price < self.tencostPrice then
-- self.istype = 0
-- local str = string.format("司南不足,是否前往购买?", self.tencostPrice)
-- GameLuaEngine.ShowAlert(
-- str,
-- function()
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 10)
-- K3UIManager.Instance:AddHintMsg("货币不足,无法购买!")
-- self.getpanel:SetVisible(true)
-- end,
-- "前 往",
-- true,
-- "温馨提示"
-- )
-- end
-- return
-- end
-- if self.getCheckBoxaim.isChecked == true and self.closetiBox.isChecked == true then
-- self.flag = 1
-- if self.price >= self.tencostPrice then
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 10)
-- -- else
-- -- local str = string.format("司南不足,是否前往购买?", self.tencostPrice)
-- -- GameLuaEngine.ShowAlert(
-- -- str,
-- -- function()
-- -- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 10)
-- -- K3UIManager.Instance:AddHintMsg("货币不足,无法购买!")
-- -- self.getpanel:SetVisible(true)
-- -- end,
-- -- "前 往",
-- -- true,
-- -- "温馨提示"
-- -- )
-- end
-- return
-- end
-- if self.getCheckBoxaim.isChecked == true then
-- self.flag = 1
-- if self.price >= self.tencostPrice then
-- local str = string.format("是否消耗<color=#10FF04>%s司南</color>进行一次抽奖?", self.tencostPrice)
-- -- GameLuaEngine.ShowAlert(
-- -- str,
-- -- function()
-- -- if self.price >= self.tencostPrice then
-- -- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 10)
-- -- self.istype = 1
-- -- end
-- -- end,
-- -- "确 定",
-- -- true,
-- -- "温馨提示"
-- -- )
-- return
-- elseif self.price < self.tencostPrice then
-- local str = string.format("司南不足,是否前往购买?", self.tencostPrice)
-- GameLuaEngine.ShowAlert(
-- str,
-- function()
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 10)
-- K3UIManager.Instance:AddHintMsg("货币不足,无法购买!")
-- self.getpanel:SetVisible(true)
-- end,
-- "前 往",
-- true,
-- "温馨提示"
-- )
-- end
-- end
-- if self.closetiBox.isChecked == true then
-- self.flag = 0
-- if self.price >= self.tencostPrice then
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 10)
-- self.istype = 1
-- else
-- self.istype = 0
-- local str = string.format("司南不足,是否前往购买?", self.tencostPrice)
-- GameLuaEngine.ShowAlert(
-- str,
-- function()
-- GameLuaEngine.SendLuaPack("BaMenFenJinTaiRraw", 10)
-- K3UIManager.Instance:AddHintMsg("货币不足,无法购买!")
-- self.getpanel:SetVisible(true)
-- end,
-- "前 往",
-- true,
-- "温馨提示"
-- )
-- end
-- end
end
function luaPanel:ShowTreasuresReaward(tab)
if self.child.PanelMafaMibaoSettle == nil then
self.child.PanelMafaMibaoSettle =
LuaUtils.ClonePanelEx(self:getPanel(242), "Logics.NewServerActivity.ShowEightAllGoodss")
end
self.child.PanelMafaMibaoSettle:SetVisible(true)
self.child.PanelMafaMibaoSettle:OnScriptMsg(tab)
end
function luaPanel:ShowGet(tab)
self.getpanel:SetVisible(not self.getpanel.IsVisible)
end
function luaPanel:CheckResultAnim(tab)
local count = LuaUtils.GetTabelLen(tab)
if self.getCheckBoxaim.isChecked == true then
self:ShowResult(tab)
else
self.boPlayAnimType = 0
if count == 1 then
self.boPlayAnimType = 1
self.boPlayAnim = true
self.boFinishAnim = false
elseif count == 10 then
self.boPlayAnimType = 2
self.boPlayAnim = true
self.boFinishAnim = false
end
end
end
function luaPanel:ShowResult(msg)
if self.boPlayAnim == true then
self.changeTime = nil
self.boPlayAnim = false
self.boFinishAnim = true
self.boPlayAnimType = 0
self.playAnimTimes = 0
self.playAnim2Time = nil
end
if self.flag == 1 then
self:ShowTreasuresReaward(msg)
end
end
function luaPanel:SetInfo(data, i, func)
self.info = data
-- 获取奖池数据
self.sinanimage:SetBaseInfo(self.info.allTab.drawNeedItemId)
self.sinanxiaohao:SetBaseInfo(self.info.allTab.drawNeedItemId)
self.price = getitemorcoinnum(self.info.allTab.drawNeedItemId or 0, 0) or 0
if self.price >= self.info.allTab.drawOneCount then
self.pricesinan.text =
string.format("<color=#13C144>%s</color>%s", self.price, "/" .. self.info.allTab.drawOneCount)
else
self.pricesinan.text =
string.format("<color=#ED1111>%s</color>%s", self.price, "/" .. self.info.allTab.drawOneCount)
end
if self.info.gongXiHuoDeTab ~= nil then
self.gongXiHuoDeTab = {self.jiangChiData[self.info.gongXiHuoDeTab].item}
end
if self.info.gongXiHuoDeTab ~= nil then
if self.istype == 1 then
self.successanim:Stop()
self.successanim:Play(
1.5,
function()
self:ShowTreasuresReaward(self.gongXiHuoDeTab)
end
)
end
self:CheckResultAnim(self.gongXiHuoDeTab)
self.istype = 0
end
self.zhugouitem = self.info.allTab and self.info.allTab.direct
if self.zhugouitem ~= nil then
self:ShowGet(self.BaMenFenJinTaiDirectInfo)
self.onebtn.text = self.zhugouitem[1].giftIdPrice .. "元购买"
self.twobtn.text = self.zhugouitem[2].giftIdPrice .. "元购买"
self.threebtn.text = self.zhugouitem[3].giftIdPrice .. "元购买"
self:GetZhiGou()
elseif self.zhugouitem == nil then
self.getpanel:SetVisible(false)
end
if func == false then
self.onecostPrice = self.info.allTab.drawOneCount
self.tencostPrice = self.info.allTab.drawTenCount
end
self.jiangChiData = self.info.allTab and self.info.allTab.jiangChi
if self.jiangChiData then
for index = 1, 8 do
local itemPanel = self.ItemPanel[index]
if itemPanel then
-- 获取对应的奖池物品数据
local itemData = self.jiangChiData[index]
if itemData then
self:SetItemInfo(itemPanel, itemData, index)
else
itemPanel[index]:SetVisible(false)
end
end
end
end
if self.jiangChiData then
for index = 1, 8 do
local itemData = self.jiangChiData[index]
if index == 1 and itemData.hasDraw == true then
self.oneimage:SetVisible(true)
elseif index == 2 and itemData.hasDraw == true then
self.twoimage:SetVisible(true)
elseif index == 3 and itemData.hasDraw == true then
self.threeimage:SetVisible(true)
elseif index == 4 and itemData.hasDraw == true then
self.fourimage:SetVisible(true)
elseif index == 5 and itemData.hasDraw == true then
self.fiveimage:SetVisible(true)
elseif index == 6 and itemData.hasDraw == true then
self.siximage:SetVisible(true)
elseif index == 7 and itemData.hasDraw == true then
self.siveimage:SetVisible(true)
elseif index == 8 and itemData.hasDraw == true then
self.enightimage:SetVisible(true)
end
end
end
-- if zhugouitem then
-- for row = 1, 3 do
-- for col = 1, 4 do
-- local rightItem = self.rightItem[row] and self.rightItem[row][col]
-- if rightItem then
-- -- 获取对应的奖池物品数据
-- local itemData = zhugouitem[row] and zhugouitem[row].item and zhugouitem[row].item[col]
-- if itemData then
-- self:SetLeiJi(rightItem, itemData, row)
-- end
-- end
-- end
-- end
-- end
if self.zhugouitem then
for row = 1, 3 do
for col = 1, 4 do
local LeftItem = self.LeftItem[row] and self.LeftItem[row][col]
if LeftItem then
-- 获取对应的奖池物品数据
local itemData =
self.zhugouitem[row] and self.zhugouitem[row].item and self.zhugouitem[row].item[col]
if itemData then
self:SetLeiJi(LeftItem, itemData, row)
end
end
end
end
end
self.getCheckBoxaim.isChecked = self.info.tiaoGuoState
-- self.closetiBox.isChecked = info.buyState
self.tab = {}
self.count = LuaUtils.GetTabelLen(self.info.globalTxtTab)
for i = 1, self.count do
self.tab[i] = self.info.globalTxtTab[self.count - i + 1]
end
-- self.cione.text = self.info.allTab.drawCount .. "/" .. self.info.allTab.leiJi[1].cnt
-- self.citwo.text = self.info.allTab.drawCount .. "/" .. self.info.allTab.leiJi[2].cnt
-- self.cithree.text = self.info.allTab.drawCount .. "/" .. self.info.allTab.leiJi[3].cnt
-- if self.info.allTab.drawCount>=self.info.allTab.leiJi[1].cnt then
-- self.onebtn.picName="btn_com_huang"
-- self.onebtn.text="领取"
-- self.info.allTab.drawCount=self.info.allTab.leiJi[1].cnt
-- elseif self.info.allTab.drawCount>=self.info.allTab.leiJi[2].cnt then
-- self.twobtn.picName="btn_com_huang"
-- self.twobtn.text="领取"
-- self.info.allTab.drawCount=self.info.allTab.leiJi[2].cnt
-- end
-- if self.onebtn.text=="领取" then
-- self.onebtn:AddEventListener(function()
-- self.onebtn.picName="xfth_widget_ygm"
-- self.onebtn.text=""
-- end)
-- end
self:RefreshListView(self.count, self.tab)
end
function luaPanel:GetZhiGou()
self.cmdproduct = Product.New()
self.cmdproduct.productID = "com.qk.gold" .. self.info.allTab.direct.allGiftId
self.cmdproduct.money = self.info.allTab.direct.allGiftPrice
self.cmdproduct.yuanbaoCount = 0
self.cmdproduct.productName = "八门金锁购买"
self.cmdproduct.itemCount = 1
self.cmdproduct.descri = self.info.allTab.direct.allGiftPrice .. self.cmdproduct.productName
self.cmdproduct.giftId = self.info.allTab.direct.allGiftId
self.allGiftIdState = self.info.allTab.direct.allGiftIdState
self.allGiftid = self.info.allTab.direct.allGiftId
self.allGiftPrice = self.info.allTab.direct.allGiftPrice
if self.allGiftIdState == true then
for _, imageGroup in ipairs(self.yiBuy) do
for _, image in ipairs(imageGroup) do
image:SetVisible(true)
end
end
self.onebtn.picName = "xfhd_widget_ylq"
self.twobtn.picName = "xfhd_widget_ylq"
self.threebtn.picName = "xfhd_widget_ylq"
self.onebtn.text = " "
self.twobtn.text = " "
self.threebtn.text = " "
self.istypebtn = true
self.Dabao.picName = "bmfjt_btn_dbgm_hui"
self.Dabao.text = " "
self.onebtn.IsDoScale = false
self.twobtn.IsDoScale = false
self.threebtn.IsDoScale = false
self.Dabao.IsDoScale = false
end
-- 初始化 3 个子礼包的独立 cmdproduct(关键修改点!)
self.cmdproduct1 = Product.New() -- 对应 SDKBuy2(礼包1)
self.cmdproduct2 = Product.New() -- 对应 SDKBuy3(礼包2)
self.cmdproduct3 = Product.New() -- 对应 SDKBuy4(礼包3)
-- 遍历 LeftItem 数据(假设 LeftItem 结构为 [行][列],行号 1~3 对应 3 个子礼包)
for row = 1, #self.LeftItem do
local giftData = self.info.allTab.direct[row] -- 获取第 row 行的礼包数据
if giftData then
-- 根据行号赋值给对应的 cmdproduct
if row == 1 then
-- 礼包1:绑定到 cmdproduct1(供 SDKBuy2 使用)
self.cmdproduct1.productID = "com.qk.gold" .. giftData.giftid
self.cmdproduct1.money = giftData.giftIdPrice
self.cmdproduct1.yuanbaoCount = 0
self.cmdproduct1.productName = "八门金锁购买(礼包1)"
self.cmdproduct1.itemCount = 1
self.cmdproduct1.descri = giftData.giftIdPrice .. self.cmdproduct1.productName
self.cmdproduct1.giftId = giftData.giftid
if giftData.giftIdState == true then
self.onebtn.picName = "xfhd_widget_ylq"
self.onebtn.text = " "
self.Dabao.picName = "bmfjt_btn_dbgm_hui"
self.onebtn.IsDoScale = false
self.Dabao.IsDoScale = false
self.Dabao.text = " "
self.istypebtn = true
for i, v in ipairs(self.yiBuy1) do
v:SetVisible(true)
end
end
elseif row == 2 then
-- 礼包2:绑定到 cmdproduct2(供 SDKBuy3 使用)
self.cmdproduct2.productID = "com.qk.gold" .. giftData.giftid
self.cmdproduct2.money = giftData.giftIdPrice
self.cmdproduct2.yuanbaoCount = 0
self.cmdproduct2.productName = "八门金锁购买(礼包2)"
self.cmdproduct2.itemCount = 1
self.cmdproduct2.descri = giftData.giftIdPrice .. self.cmdproduct2.productName
self.cmdproduct2.giftId = giftData.giftid
if giftData.giftIdState == true then
self.twobtn.picName = "xfhd_widget_ylq"
self.Dabao.picName = "bmfjt_btn_dbgm_hui"
self.twobtn.text = " "
self.twobtn.IsDoScale = false
self.Dabao.IsDoScale = false
self.Dabao.text = " "
self.istypebtn = true
for i, v in ipairs(self.yiBuy2) do
v:SetVisible(true)
end
end
elseif row == 3 then
-- 礼包3:绑定到 cmdproduct3(供 SDKBuy4 使用)
self.cmdproduct3.productID = "com.qk.gold" .. giftData.giftid
self.cmdproduct3.money = giftData.giftIdPrice
self.cmdproduct3.yuanbaoCount = 0
self.cmdproduct3.productName = "八门金锁购买(礼包3)"
self.cmdproduct3.itemCount = 1
self.cmdproduct3.descri = giftData.giftIdPrice .. self.cmdproduct3.productName
self.cmdproduct3.giftId = giftData.giftid
if giftData.giftIdState == true then
self.threebtn.picName = "xfhd_widget_ylq"
self.Dabao.picName = "bmfjt_btn_dbgm_hui"
self.threebtn.text = " "
self.threebtn.IsDoScale = false
self.Dabao.IsDoScale = false
self.Dabao.text = " "
self.istypebtn = true
for i, v in ipairs(self.yiBuy3) do
v:SetVisible(true)
end
end
end
end
end
self.zhugouitem.giftid = self.info.allTab.direct.giftid
self.zhugouitem.giftldPrice = self.info.allTab.direct.giftldPrice
end
function luaPanel:SDKBuy()
if self.cmdproduct then
if UserInfo.Instance.isThirdPlatform then
SDKFunction.Instance:Pay(self.cmdproduct)
else
GameLuaEngine.SendLuaPack("TestSendDirectBuy", self.allGiftid, tostring(self.allGiftPrice))
end
end
end
function luaPanel:SDKBuy2()
if self.cmdproduct1 then -- 改为 cmdproduct1(对应礼包1)
if UserInfo.Instance.isThirdPlatform then
SDKFunction.Instance:Pay(self.cmdproduct1) -- 支付礼包1的配置
else
GameLuaEngine.SendLuaPack(
"TestSendDirectBuy",
self.zhugouitem[1].giftid,
tostring(self.zhugouitem[1].giftIdPrice) -- 修正为 giftIdPrice
)
end
else
print("SDKBuy2 失效:cmdproduct1 未初始化!") -- 调试日志(可选)
end
end
function luaPanel:SDKBuy3()
if self.cmdproduct2 then -- 改为 cmdproduct2(对应礼包2)
if UserInfo.Instance.isThirdPlatform then
SDKFunction.Instance:Pay(self.cmdproduct2) -- 支付礼包2的配置
else
GameLuaEngine.SendLuaPack(
"TestSendDirectBuy",
self.zhugouitem[2].giftid,
tostring(self.zhugouitem[2].giftIdPrice) -- 修正为 giftIdPrice
)
end
else
print("SDKBuy3 失效:cmdproduct2 未初始化!") -- 调试日志(可选)
end
end
function luaPanel:SDKBuy4()
if self.cmdproduct3 then -- 改为 cmdproduct3(对应礼包3)
if UserInfo.Instance.isThirdPlatform then
SDKFunction.Instance:Pay(self.cmdproduct3) -- 支付礼包3的配置
else
GameLuaEngine.SendLuaPack(
"TestSendDirectBuy",
self.zhugouitem[3].giftid,
tostring(self.zhugouitem[3].giftIdPrice) -- 修正为 giftIdPrice
)
end
else
print("SDKBuy4 失效:cmdproduct3 未初始化!") -- 调试日志(可选)
end
end
function luaPanel:SetLeiJi(itemPanel, itemdata, index)
local itemid = itemdata.itemId
itemPanel:SetBaseInfo(itemid)
if itemid then
itemPanel:SetBaseInfo(itemdata.itemId, itemdata.num, itemdata.bind ~= nil and itemdata.bind == 1)
else
itemPanel.picName = "itemicon_default"
end
end
function luaPanel:SetItemInfo(itemPanel, itemData, index)
local itemid = itemData.item.itemId
itemPanel:SetBaseInfo(itemid)
if itemid then
itemPanel:SetBaseInfo(
itemData.item.itemId,
itemData.item.num,
itemData.item.bind ~= nil and itemData.item.bind == 1
)
else
-- 如果没有itemid,使用默认图标或根据index设置
itemPanel[index]:SetVisible(false)
itemPanel.picName = "itemicon_default"
end
end
return luaPanel
表现效果需要处理成:每次只亮一个卦象、三侧的边框和两侧的灯,亮起要一个暗-明-暗渐变的过程(4~8帧)
原太极放光的特效单独切一个
每个卦象亮起状态的静态效果
一个卦象亮起时,其他卦象处于暗的状态(已抽中的保持亮起状态)
抽奖效果为随机位置卦象明暗播放(未亮起的卦象,第一次抽取需全部明暗一次)
中奖效果为第三次卦像和中间太极发光特效同时播放(卦象特效播放完成后,替换为亮起状态)
当剩余未二时,第二次卦象播放中奖特效
当剩余为一时,直接播放卦象明暗和太极中奖特效
随机顺序播放,定义下位置(1~8),播放的时候先随机下播放顺序(比方 24651378 这样),按随机的顺序播放
有被抽到的奖励的时候,从里面拿掉,如1被抽过了,下一次就是(2~8)随机,比如随到了(5487632)
随到后就一直亮着,下次抽跳过
self.successanim = self:getAnimation(215)这个是中间太极发光特效
self.ani_group = {
self:getAnimation(276),
self:getAnimation(277),
self:getAnimation(278),
self:getAnimation(279),
self:getAnimation(280),
self:getAnimation(281),
self:getAnimation(282),
self:getAnimation(283)
}这个是卦象特效
self.oneimage = self:getImage(260)
self.twoimage = self:getImage(261)
self.threeimage = self:getImage(262)
self.fourimage = self:getImage(263)
self.fiveimage = self:getImage(264)
self.siximage = self:getImage(265)
self.siveimage = self:getImage(266)
self.enightimage = self:getImage(267)这个这是item的一个抽完的江之后的对勾的图片,特效和他没有关系
self:ShowTreasuresReaward(self.gongXiHuoDeTab)这个是抽完奖展示奖品的面板,麻烦根据修改的特效,放到合适的位置
亮起要一个暗-明-暗渐变的过程(4~8帧)是特效给的播放特效就可以,4~8帧需要自己调
根据这写需求更改一下,现在特效
最新发布