-- 超值首充 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