Files
JJBB/Assets/Project/Script/LuaScripts/UI/Lua/SuperBenefitFirstRecharge.txt

248 lines
8.5 KiB
Plaintext
Raw Normal View History

2024-08-23 15:49:34 +08:00
-- 超值首充
require("MarketingActBase")
require("LuaUtil")
--超值首冲活动
--注意:本活动特殊,需要显示两个模型,所以将协议中的 “序列帧ID” 当做第二个模型ID
SuperBenefitFirstRecharge = MarketingActBase:new()
local UIName = "SuperBenefitFirstRecharge"
local ActId = 205
local _SelecNodeId = 0 --默认0
function SuperBenefitFirstRecharge.Awake( ... )
if CS.MarketingActsRoot.Instance() ~= nil then
local allComponents = CS.MarketingActsRoot.Instance()._ActContainer_L:GetComponentsInChildren(typeof(CS.MarketingMainMenu))
if allComponents[0].MyActState.actID == 15 then
ActId = 205
else
ActId = 2000
end
end
_LeftStuff = _LeftStuff:GetComponent("Image")
_RightStuff = _RightStuff:GetComponent("Image")
_CloseBtn = _CloseBtn:GetComponent("Button")
_CloseBtn.onClick:RemoveAllListeners()
_CloseBtn.onClick:AddListener(SuperBenefitFirstRecharge.OnCloseBtn)
_ChargeBtn = _ChargeBtn:GetComponent("Button")
_ChargeBtn.onClick:RemoveAllListeners()
_ChargeBtn.onClick:AddListener(SuperBenefitFirstRecharge.OnChargeBtn)
_GetBtn = _GetBtn:GetComponent("Button")
_GetBtn.onClick:RemoveAllListeners()
_GetBtn.onClick:AddListener(SuperBenefitFirstRecharge.OnGetBtn)
_WeaponModelCamera = _WeaponModelCamera:GetComponent(typeof(CS.UICameraTexture))
_RideModelCamera = _RideModelCamera:GetComponent(typeof(CS.UICameraTexture))
_RewContainer = _RewContainer:GetComponent(typeof(CS.UIContainerBase))
_MenuItemContainer = _MenuItemContainer:GetComponent(typeof(CS.UIContainerBase))
end
function SuperBenefitFirstRecharge.OnEnable()
SuperBenefitFirstRecharge.AskForInfo()
end
--请求当前页面信息及状态
function SuperBenefitFirstRecharge.AskForInfo()
print("--------------------------req AskForInfo--------------------------")
require("LuaDistributesMarketingActAwardPageReq")
local req = {actID = ActId, updateOrInit = 2}
LuaDistributesMarketingActAwardPageReq.SendPacket(req)
end
function SuperBenefitFirstRecharge.OnMenuItemClick(nodeId)
print("OnMenuItem click node id : " .. nodeId)
_SelecNodeId = nodeId
_MenuItemContainer:ForeachActiveBaseItemL2L(SuperBenefitFirstRecharge.RefreshMenuItemState)
SuperBenefitFirstRecharge.InitPage()
end
local weaponModeId = -1
local rideModelId = -1
function SuperBenefitFirstRecharge.InitPage()
if PacketData == nil then
print("PacketData is nil")
return
end
local nodePacket = SuperBenefitFirstRecharge.GetNodeSubPacket()
--初始化奖励Item
local rewDataIdList = {}
for rewIndex = 1, #nodePacket.awardItems do
rewDataIdList[rewIndex] = nodePacket.awardItems[rewIndex]
end
_RewContainer:InitContentItemL2L(rewDataIdList)
--设置描述Icon
CS.LoadAssetBundle.Instance:SetImageSprite(_LeftStuff,nodePacket.iconPath[1])
CS.LoadAssetBundle.Instance:SetImageSprite(_RightStuff,nodePacket.iconPath[2])
--刷新模型
weaponModeId = nodePacket.modleID
local weaponModel = CS.GCGame.Table.TableManager.GetCharModelByID(nodePacket.modleID, 0)
if weaponModel then
_WeaponModelCamera.gameObject:SetActive(true)
_WeaponModelCamera:InitModelPath(weaponModel.ResPath, weaponModel, CS.LoadAssetBundle.BUNDLE_PATH_MODEL, true)
else
_WeaponModelCamera.gameObject:SetActive(false)
end
rideModelId = nodePacket.SequenceID
local rideModel = CS.GCGame.Table.TableManager.GetCharModelByID(nodePacket.SequenceID, 0)
if rideModel then
_RideModelCamera.gameObject:SetActive(true)
_RideModelCamera:InitModelPath(rideModel.ResPath, rideModel, CS.LoadAssetBundle.BUNDLE_PATH_MODEL, true)
else
_RideModelCamera.gameObject:SetActive(false)
end
--刷新充值 领取按钮状态
SuperBenefitFirstRecharge.RefreshOperationBtnState()
end
local _CurPageRewState = 1
function SuperBenefitFirstRecharge.RefreshOperationBtnState()
local firstPageRewState = PacketData.awardTags[1].state
local nodePacket = SuperBenefitFirstRecharge.GetNodeSubPacket()
_CurPageRewState = nodePacket.state
-- _Geted.gameObject:SetActive(_CurPageRewState == 2)
-- _GetBtn.gameObject:SetActive(_CurPageRewState == 1)
-- _ChargeBtn.gameObject:SetActive(_CurPageRewState == 0)
if _SelecNodeId == 0 then
_Geted.gameObject:SetActive(firstPageRewState == 2)
_GetBtn.gameObject:SetActive(firstPageRewState == 1)
_ChargeBtn.gameObject:SetActive(firstPageRewState == 0)
else
if firstPageRewState == 1 or firstPageRewState == 2 then
if _CurPageRewState ~= 2 then
_Geted.gameObject:SetActive(false)
_GetBtn.gameObject:SetActive(true)
_ChargeBtn.gameObject:SetActive(false)
else
_Geted.gameObject:SetActive(true)
_GetBtn.gameObject:SetActive(false)
_ChargeBtn.gameObject:SetActive(false)
end
else
_Geted.gameObject:SetActive(false)
_GetBtn.gameObject:SetActive(false)
_ChargeBtn.gameObject:SetActive(true)
end
end
end
function SuperBenefitFirstRecharge.GetNodeSubPacket()
for index = 1, #PacketData.awardTags do
if PacketData.awardTags[index].tagID == _SelecNodeId then
return PacketData.awardTags[index]
end
end
print("Can't find node id : " .. _SelecNodeId)
return nil
end
function SuperBenefitFirstRecharge.RefreshMenuItemState(luaMenuItemBase)
local nodeId = luaMenuItemBase:GetValue("menuNodeId")
luaMenuItemBase:CallScriptFuncAtPath("ShowMark", nodeId == _SelecNodeId)
end
function SuperBenefitFirstRecharge.OnCloseBtn()
isFirstOpen = true
LuaUIMan:CloseUI(UIName)
end
function SuperBenefitFirstRecharge.OnChargeBtn()
SuperBenefitFirstRecharge.OnCloseBtn()
CS.YuanBaoShopLogic.OpenChargePage()
end
function SuperBenefitFirstRecharge.OnGetBtn()
if _CurPageRewState == 0 then
CS.GUIData.AddNotifyData(CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{62938}", _SelecNodeId + 1))
return
end
require ("LuaDistributesMarketingActAwardPageGetAward")
local req = {actID = ActId, tagID = _SelecNodeId}
LuaDistributesMarketingActAwardPageGetAward.SendPacket(req)
end
PacketData = nil
local isFirstOpen = true
function SuperBenefitFirstRecharge.MarketingActPageAwardRetDel(packet)
print("---------------------Receive paket---------------------")
PacketData = packet
if packet.actID ~= ActId then
print("actID != ActID")
return
end
local NodeIdList = {}
local hasFindCanSelect = false
local needSelectNodeId
for index = 1, #packet.awardTags do
NodeIdList[index] = packet.awardTags[index].tagID
if not hasFindCanSelect and packet.awardTags[index].state == 1 then
hasFindCanSelect = true
needSelectNodeId = packet.awardTags[index].tagID
end
end
if not hasFindCanSelect then
needSelectNodeId = NodeIdList[1]
end
--刷新MenuItemContainer
_MenuItemContainer:InitContentItemL2L(NodeIdList)
if isFirstOpen then
isFirstOpen = false
SuperBenefitFirstRecharge.OnMenuItemClick(needSelectNodeId)
end
end
function SuperBenefitFirstRecharge.OnDisable()
isFirstOpen = true
if CS.MarketingActsRoot.Instance() then
CS.MarketingActsRoot.Instance():ClearShowingWin(ActID)
end
end
--LuaDistributesMarketingActAwardPageGetAwardRet
--,,onpay,648,8
function SuperBenefitFirstRecharge.MarketingActPageGetAwardRet(packet)
if packet.tagID == 0 and _SelecNodeId == 0 then
_Geted.gameObject:SetActive(packet.btnState == 2)
_GetBtn.gameObject:SetActive(packet.btnState == 1)
_ChargeBtn.gameObject:SetActive(packet.btnState == 0)
else
if packet.btnState == 2 then
_Geted.gameObject:SetActive(packet.btnState == 2)
_GetBtn.gameObject:SetActive(packet.btnState == 1)
_ChargeBtn.gameObject:SetActive(packet.btnState == 0)
else
local firstPageRewState = PacketData.awardTags[1].state
if firstPageRewState ~= 0 then
_Geted.gameObject:SetActive(true)
_GetBtn.gameObject:SetActive(false)
_ChargeBtn.gameObject:SetActive(false)
else
_Geted.gameObject:SetActive(false)
_GetBtn.gameObject:SetActive(false)
_ChargeBtn.gameObject:SetActive(true)
end
end
end
end