---@class KLRecoverPanel:UIKmlLuaPanelBase ---@field view KLRecoverPanelView ---@field typeList cfg_recovery_column[] ---@field goodsItem table ---@field getList table local KLRecoverPanel = class(UIKmlLuaPanelBase) local this = KLRecoverPanel ---创建时调用一次 function this:Init() self.cfgNameStr = "cfg_recovery" self.recoverBagPanel = nil ---回收所得列表 self.getList = {} ---回收所得道具展示 self.goodsItem = {} ---回收类型列表 self.typeList = {} self.selectItemList = {} ---回收所得列表 GUI:DataListInitData(self.view.loopscrollviewData, function() return self:ItemCountFunc() end, function(realIndex) return self:ItemGetFunc(realIndex) end, function(realIndex, kmlCtrl) return self:ItemInitFunc(realIndex, kmlCtrl) end, function(realIndex, kmlCtrl) return self:ItemUpdateFunc(realIndex, kmlCtrl) end) ---获取类型列表 self:GetTypeList() self.cfg_recovery_screen = SL:GetConfigTable("cfg_recovery_screen") ---类型选择列表 -- for k, v in pairs(self.typeList) do -- ---@type KLRecoverTypeItem -- local homeTab = GUI:UIPanel_Open("dev/ui/Recover/Item/KLRecoverType/KLRecoverTypeItem", self.view.TypeContent, self, v, true) -- GUI:Toggle_setIsOn(homeTab.view.KmlRecycleTypeItemTemplate, SL:GetRecoverTypeState(v.id, self.cfgNameStr)) -- GUI:SetToggleOnValueChange(homeTab.view.KmlRecycleTypeItemTemplate, self, self.TypeToggleChange, v.id) -- end self.recover_all_item = {} self.recover_data = nil for k, v in ipairs(self.typeList) do local id = v.id local _typeList = {} for ii, one in ipairs(self.cfg_recovery_screen) do if one.groupLevel == v.id then one.groupName1 = one.screenName table.insert(_typeList,one) end end v.typeList = _typeList ---@param homeTab KLRecoverTypeItem GUI:UIPanel_Open("dev/ui/Recover/Item/KLRecoverType/KLRecoverTypeItem", self.view.TypeContent, self, v, true,function(homeTab) GUI:SetToggleOnValueChange(homeTab.view.KmlRecycleTypeItemTemplate, self, self.ToggleChange, v.id) self.recover_all_item[tostring(id)] = homeTab end) end end ---创建或者刷新界面数据时调用 function this:Refresh() SL.HideMainPanel() ---刷新特权展示 self:RefreshPrivilegeInfo() ---刷新自动拾取勾选显示 local isOpenPick = SL:GetPlayerAutoPickIsOpen() if isOpenPick then --isOpenPick = PrivilegeCardManager.isautoPotion() isOpenPick = InfoManager.monthCardInfo:IsHaveMonthCardRights("pickUp") end GUI:Toggle_setIsOn(self.view.AutoPickToggle, isOpenPick) local isOpenRecover = SL:GetPlayerAutoRecoverIsOpen() if isOpenRecover then isOpenRecover = PrivilegeCardManager.isautoRecovery() --isOpenRecover = InfoManager.monthCardInfo:IsHaveMonthCardRights("recovery") end ---刷新自动回收勾选 GUI:Toggle_setIsOn(self.view.AutoRecoverToggle, isOpenRecover) -- ---刷新回收所得道具 -- self:GetRecoverGetItem() -- ---显示背包 -- self.recoverBagPanel = GUI:UIPanel_Open("dev/ui/Bag/Panel/KLRecoverBag/KLRecoverBagPanel", nil, nil, { x = -415, bagType = EBagShowType.Recycle, itemClickCallBack = self.ClickItemCallBack, selectList = self.selectItemList, callBackUI = self }) SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_GET_RECYCLING_TYPE) end ---获取回收所得道具展示 function this:GetRecoverGetItem() ---选中道具列表 ---@type table self.selectItemList = {} self.selectItemCount = {} ---选中道具索引列表 self.SelectItemIndexList = {} ---@type table self.getList = {} ---@type number[] local typeList = SL:GetAutoRecoverTypeSetData(self.cfgNameStr) ---@param v CommonProtos.Item for i, v in pairs(SL:GetCanRecycleItemList(self.cfgNameStr)) do --(not自身职业的武器or评分不高于自身武器)and 强化等级==0 and 追加等级==0 if (not SL:CheckEquipBaseCareer(v) or not self:CompareInitGrage(v)) and (EquipFunc.GetEquipStrengthLevel(v) == 0) and EquipFunc.GetEquipAppendLevel(v) == 0 then local configData = SL:GetConfig("cfg_item", v.cfgId) if table.contains(typeList, configData.recoveryGroup) then local recycleCfg = SL:GetConfig(self.cfgNameStr, configData.recoveryGroup) for k = 1, table.count(recycleCfg.material) do if not self:CheckExsit(recycleCfg.material[k], self.getList, configData.recoveryUp, v.count) then ---@type {count:number,cfgId:number} local getType = {} getType.cfgId = recycleCfg.material[k][1] getType.count = recycleCfg.material[k][2] * (1 + configData.recoveryUp / 100) * (1 + self.privilegeUp / 100) getType.count = getType.count * v.count table.insert(self.getList, getType) end end table.insert(self.SelectItemIndexList, { idxOfBags = SL:MeData_GetIndexBaseOnItemId(v.id), count = v.count }) self.selectItemList[v.id] = true end end end self:ShowGetItemList() end ---获取回收所得道具展示 --多级页签选择的回收 function this:GetRecoverGetItemMultistage() ---选中道具列表 ---@type table self.selectItemList = {} self.selectItemCount = {} ---选中道具索引列表 self.SelectItemIndexList = {} ---@type table self.getList = {} ---@type number[] local typeList = {} if self.recover_data and next(self.recover_data) then for key, v in pairs(self.recover_data) do table.insert(typeList,tonumber(key)) end end local allItem = self:GetCanRecover() ---@param v CommonProtos.Item for i, v in ipairs(allItem) do --(not自身职业的武器or评分不高于自身武器)and 强化等级==0 and 追加等级==0 if (not SL:CheckEquipBaseCareer(v) or not self:CompareInitGrage(v)) and (EquipFunc.GetEquipStrengthLevel(v) == 0) and EquipFunc.GetEquipAppendLevel(v) == 0 then local configData = SL:GetConfig("cfg_item", v.cfgId) if table.contains(typeList, configData.recoveryGroup) then local group_str = tostring(configData.recoveryGroup) local is_add = false --如果是白装这种没有子页签的直接添加 if self.recover_data[group_str] and self.recover_data[group_str]["1"] then for kk, group_id in pairs(self.recover_data[group_str]) do local one_tab = SL:GetConfig("cfg_recovery_screen",group_id) --比较阶数是否相等 if one_tab.type == 1 then if configData.rank == one_tab.rank then is_add = true end --比较词条数是否相等 elseif one_tab.type == 2 then local entryAttr = SL:GetEquipValue(EMetaVarGetKey.EQUIP_ENTRY_ATTR, "bag", v.cfgId, v.id) if entryAttr and #entryAttr == one_tab.count then is_add = true end --比较职业等级是否相等 elseif one_tab.type == 3 then local career = one_tab.career local equip_job = configData.job for iii, one_list in ipairs(career) do for jjj, job_list in ipairs(equip_job) do if one_list[1] == job_list[1] and one_list[2] == job_list[2] then is_add = true break end end if is_add then break end end end end else is_add = true end if is_add then local recycleCfg = SL:GetConfig(self.cfgNameStr, configData.recoveryGroup) for k = 1, table.count(recycleCfg.material) do if not self:CheckExsit(recycleCfg.material[k], self.getList, configData.recoveryUp, v.count) then ---@type {count:number,cfgId:number} local getType = {} getType.cfgId = recycleCfg.material[k][1] getType.count = recycleCfg.material[k][2] * (1 + configData.recoveryUp / 100) * (1 + self.privilegeUp / 100) getType.count = getType.count * v.count table.insert(self.getList, getType) end end table.insert(self.SelectItemIndexList, { idxOfBags = SL:MeData_GetIndexBaseOnItemId(v.id), count = v.count }) self.selectItemList[v.id] = true end end end end self:ShowGetItemList() end function this:GetCanRecover() local list = {} local bagData = SL:GetMetaValue(EMetaVarGetKey.BAG_DATA) local items = bagData[1] for i, v in pairs(items) do if SL:HasConfig("cfg_item", v.cfgId) then local item = SL:GetConfig("cfg_item",v.cfgId) if SL:HasConfig(self.cfgNameStr, item.recoveryGroup) then if self:FilterMedicine(v.cfgId) then table.insert(list,v) end end end end return list end local medicineLevel function this:CalculateMedicineLevelIfNeed() if medicineLevel then return end medicineLevel = {} ---@type cfg_npcShop_column[] local table = SL:GetConfigTable("cfg_npcShop") for _, v in pairs(table) do if v.shopId == 1 and not string.isNullOrEmpty(v.conditions) then --药水分类 local itemId = v.itemId[1] local hightestLevel = tonumber(string.match(v.conditions,"checkLevel<=(%d+)")) medicineLevel[itemId] = hightestLevel end end end ---@药水回收规则:根据等级动态划分低级药水 function this:FilterMedicine(itemId) self:CalculateMedicineLevelIfNeed() local level = SL:GetMetaValue(EMetaVarGetKey.LEVEL) if medicineLevel[itemId] then return medicineLevel[itemId] < level end return true end ---展示回收所得道具 function this:ShowGetItemList() GUI:DataListUpdateData(self.view.loopscrollviewData) end ---点击背包item回调 ---@param itemControl KLBagItemItemView ---@param itemData CommonProtos.Item function this:ClickItemCallBack(itemControl, itemData, itemSelf) if itemData.count > 1 and not self.selectItemList[itemData.id] then self.itemControl = itemControl self.itemSelf = itemSelf GUI:UIPanel_Open("dev/outui/SelectCount/Panel/KLSelectCount/KLSelectCountPanel", _, _, { itemid = itemData.cfgId, callbackUI = self, max = itemData.count, sure = self.CountSelect, id = itemData.id }) return end self.selectItemList[itemData.id] = not self.selectItemList[itemData.id] self:SetSelectState(itemControl, itemSelf, self.selectItemList[itemData.id]) ---根据背包内勾选刷新回收收益 self:ShowGetItemListBySelect() end function this:CountSelect(id, count) self.selectItemCount[id] = count self.selectItemList[id] = not self.selectItemList[id] self:SetSelectState(self.itemControl, self.itemSelf, self.selectItemList[id]) self:ShowGetItemListBySelect() end ---设置选中状态 function this:SetSelectState(itemControl, itemSelf, isShow) itemSelf:SetSelectEffect(isShow, true) end ---根据背包内勾选刷新回收收益 function this:ShowGetItemListBySelect() ---选中道具索引列表 self.SelectItemIndexList = {} ---@type table self.getList = {} ---@type number[] -- local typeList=SL:GetAutoRecoverTypeSetData() ---@param v CommonProtos.Item for i, v in pairs(SL:GetCanRecycleItemList(self.cfgNameStr)) do local configData = SL:GetConfig("cfg_item", v.cfgId) local count = v.count ---主动勾选列表中为true if self.selectItemList[v.id] then local recycleCfg = SL:GetConfig(self.cfgNameStr, configData.recoveryGroup) for k = 1, table.count(recycleCfg.material) do count = self.selectItemCount[v.id] and self.selectItemCount[v.id] or v.count if not self:CheckExsit(recycleCfg.material[k], self.getList, configData.recoveryUp, count) then ---@type {count:number,cfgId:number} local getType = {} getType.cfgId = recycleCfg.material[k][1] getType.count = recycleCfg.material[k][2] * (1 + configData.recoveryUp / 100) * (1 + self.privilegeUp / 100) getType.count = getType.count * count table.insert(self.getList, getType) end end table.insert(self.SelectItemIndexList, { idxOfBags = SL:MeData_GetIndexBaseOnItemId(v.id), count = count }) end end self:ShowGetItemList() end ---@param list table function this:CheckExsit(data, list, addUpNum, itemCount) for i, v in pairs(list) do if v.cfgId == data[1] then v.count = v.count + data[2] * (1 + addUpNum / 100) * (1 + self.privilegeUp / 100) * itemCount return true end end return false end function this:RefreshPrivilegeInfo() self.privilegeUp = PrivilegeCardManager.GetReclaimUp() if self.privilegeUp > 0 then GUI:setVisible(self.view.privilege_tip, true) GUI:Text_setString(self.view.privilege_tip, "已激活钻石特权:回收收益增加" .. self.privilegeUp .. "%") else GUI:setVisible(self.view.privilege_tip, false) end end ---注册UI事件和服务器消息 function this:RegistEvents() GUI:AddOnClickEvent(self.view.closeBtn, self, self.BtnCloseOnClick) GUI:AddOnClickEvent(self.view.BtnRecover, self, self.BtnRecover) GUI:SetToggleOnValueChange(self.view.AutoPickToggle, self, self.AutoPickToggleChaneg) GUI:SetToggleOnValueChange(self.view.AutoRecoverToggle, self, self.AutoRecoverToggleChaneg) SL:RegisterLUAEvent(LUA_EVENT_Item_Recover, self.LUA_EVENT_Item_Recover, self) SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_GET_RECYCLING_TYPE,self.RES_GET_RECYCLING_TYPE,self) SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RECOVERY_REWARD,self.RES_RECOVERY_REWARD,self) end function this:UnRegistEvents() SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.RES_GET_RECYCLING_TYPE,self.RES_GET_RECYCLING_TYPE,self) SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.RES_RECOVERY_REWARD,self.RES_RECOVERY_REWARD,self) end function this:Close() self:UnRegistEvents() SL.ShowMainPanel() end ---关闭页面 function this:BtnCloseOnClick() GUI:UIPanel_Close("dev/ui/Recover/Panel/KLRecover/KLRecoverPanel") GUI:UIPanel_Close("dev/ui/Bag/Panel/KLRecoverBag/KLRecoverBagPanel") GUI:UIPanel_Close("dev/ui/Recover/Panel/KLRecoverDetailedSettings/KLRecoverDetailedSettingsPanel") end ---请求回收 function this:BtnRecover() --SL:SendRecoverItem(self.SelectItemIndexList) if not self.SelectItemIndexList or not next(self.SelectItemIndexList) then return end --新的回收逻辑 local list = {} for i, v in ipairs(self.SelectItemIndexList) do list[tostring(v.idxOfBags)] = v.count end SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_ITEM_RECOVERY,list) end ---自动回收勾选修改 function this:AutoRecoverToggleChaneg(_, customData, eventData) -- local IsNeedMonthCard, IsNeedDailyCard = InfoManager.monthCardInfo:IsNeedMonthAndDailyCard("recovery") -- if IsNeedMonthCard then -- if not InfoManager.monthCardInfo.IsGetMonthCard then -- if IsNeedDailyCard and not InfoManager.monthCardInfo.IsGetDailyCard then -- GUI:Toggle_setIsOn(self.view.AutoRecoverToggle, false) -- SL:CommonTipsMessage({ stringTblID = 231, showTips = "充值月卡开通自动回收", ui = self, sureBtnText = "确定", cancelBtnText = "取消", -- callback = self.OpenFirsh }) -- return -- end -- if not IsNeedDailyCard then -- GUI:Toggle_setIsOn(self.view.AutoRecoverToggle, false) -- SL:CommonTipsMessage({ stringTblID = 231, showTips = "充值月卡开通自动回收", ui = self, sureBtnText = "确定", cancelBtnText = "取消", -- callback = self.OpenFirsh }) -- return -- end -- end -- else -- if eventData[1] and not PrivilegeCardManager.isautoRecovery() then -- GUI:Toggle_setIsOn(self.view.AutoRecoverToggle, false) -- self:TipCardRecover() -- return -- end -- end if eventData[1] and not PrivilegeCardManager.isautoRecovery() then GUI:Toggle_setIsOn(self.view.AutoRecoverToggle, false) self:TipCardRecover() return end if eventData[1] == SL:GetPlayerAutoRecoverIsOpen() then return end ---设置一下数据 -- SL:SetPlayerAutoRecover(eventData[1]) ---发给服务器 SL:SendPlayerAutoRecoverChange(eventData[1]) end function this:TipCardRecover() SL:CommonTipsMessage({ stringTblID = 480, showTips = "", ui = self, sureBtnText = "确定", cancelBtnText = "取消", callback = self.OpenFirsh }) end ---自动拾取勾选修改 function this:AutoPickToggleChaneg(_, customData, eventData) -- local IsNeedMonthCard, IsNeedDailyCard = InfoManager.monthCardInfo:IsNeedMonthAndDailyCard("recovery") -- if IsNeedMonthCard then -- if not InfoManager.monthCardInfo.IsGetMonthCard then -- if IsNeedDailyCard and not InfoManager.monthCardInfo.IsGetDailyCard then -- GUI:Toggle_setIsOn(self.view.AutoPickToggle, false) -- SL:CommonTipsMessage({ stringTblID = 233, showTips = "充值月卡开通自动拾取", ui = self, sureBtnText = "确定", cancelBtnText = "取消", -- callback = self.OpenFirsh }) -- return -- end -- if not IsNeedDailyCard then -- GUI:Toggle_setIsOn(self.view.AutoPickToggle, false) -- SL:CommonTipsMessage({ stringTblID = 233, showTips = "充值月卡开通自动拾取", ui = self, sureBtnText = "确定", cancelBtnText = "取消", -- callback = self.OpenFirsh }) -- return -- end -- end -- else -- if eventData[1] and not PrivilegeCardManager.isautoPick() then -- GUI:Toggle_setIsOn(self.view.AutoPickToggle, false) -- self:TipCardPick() -- return -- end -- end if eventData[1] and not PrivilegeCardManager.isautoPick() then GUI:Toggle_setIsOn(self.view.AutoPickToggle, false) self:TipCardPick() return end if eventData[1] == SL:GetPlayerAutoPickIsOpen() then return end ---设置一下数据 SL:SetPlayerAutoPick(eventData[1]) ---发给服务器 SL:SendPlayerAutoPickChange(eventData[1]) end function this:TipCardPick() SL:CommonTipsMessage({ stringTblID = 479, showTips = "", ui = self, sureBtnText = "确定", cancelBtnText = "取消", callback = self.OpenFirsh }) end function this:SetAutoRecover(val) GUI:Toggle_setIsOn(self.view.AutoRecoverToggle, val) end function this:OpenFirsh() --SL:TipMessage({ "首充还未开通", 1, NoticeType.NoticeMid }) GUI:UIPanel_Close("dev/ui/Recover/Panel/KLRecover/KLRecoverPanel") GUI:UIPanel_Close("dev/ui/Bag/Panel/KLRecoverBag/KLRecoverBagPanel") --GUI:UIPanel_Open("dev/ui/ShopMall/Panel/KLShopMall/KLShopMallPanel") --GUI:UIPanel_Open("dev/outui/MonthCard/Panel/KLUIMonthCardMain/KLUIMonthCardMainPanel") GUI:UIPanel_Open("dev/outui/ShopMain/Panel/KLShopMain/KLShopMainPanel",nil,nil,2) end ---获取勾选类型列表 function this:GetTypeList() ---@param v cfg_recovery_column for i, v in pairs(SL:GetConfigTable(self.cfgNameStr)) do if v.group == 1 and v.recoverType ~= 0 then table.insert(self.typeList, v) end end table.sort(self.typeList, function(a, b) return a.id < b.id end) end ---回收获得列表数量 function this:ItemCountFunc() return table.count(self.getList) end function this:ItemGetFunc() ---@type KLRecycleIncomeItemItem local item = GUI:UIPanel_Open("dev/ui/Recover/Item/KLRecycleIncomeItem/KLRecycleIncomeItemItem", self.view.loopscrollviewData, self, nil, true) self.goodsItem[item.view.root] = item return item.view.root end ---回收获得数据初始化 function this:ItemInitFunc(realIndex, kmlcontrol) end ---回收获得数据刷新 function this:ItemUpdateFunc(realIndex, kmlCtrl) local data = self.getList[realIndex + 1] ---@type KLRecycleIncomeItemItem local goodsItem = self.goodsItem[kmlCtrl] goodsItem:RefreshItem(data) end ---勾选类型变更 ---@param customData number @cfg_recovery表id function this:TypeToggleChange(_, customData, eventData) ---刷新勾选装备 ---设置玩家当前勾选数据 SL:SetAutoRecoverType(customData, eventData[1], self.cfgNameStr) ---发给服务器 SL:SendPlayerAutoRecoverTypeChange({ customData }, { eventData[1] }, self.cfgNameStr) self:RefreshSelect() end function this:RefreshSelect_Old() ---刷新回收所得道具 self:GetRecoverGetItem() ---刷新勾选 --EventManager.Dispatch(Event.RecoverSelectChange, self.selectItemList) SL:onLUAEvent(Event.RecoverSelectChange, self.selectItemList) end function this:RefreshSelect() ---刷新回收所得道具 self:GetRecoverGetItemMultistage() ---刷新勾选 --EventManager.Dispatch(Event.RecoverSelectChange, self.selectItemList) SL:onLUAEvent(Event.RecoverSelectChange, self.selectItemList) end function this:LUA_EVENT_Item_Recover(id, itemList) SL:OpenRewardTipsByItemList(itemList, 0) ---刷新回收所得道具 --self:GetRecoverGetItem() ---@type table --self.selectItemList = {} -- --self.selectItemCount = {} -----选中道具索引列表 --self.SelectItemIndexList = {} -----@type table --self.getList = {} --self:ShowGetItemList() self:RefreshSelect() end function this:ShowTips() SL:CommonStrTipsMessage({ str = "1.道具回收后将返回对应的资源\n2.道具被回收后将从背包中移除\n3.道具被移除后将无法找回" }) end ---与当前身上穿戴装备比较评分 ---@param equip CommonProtos.Item function this:CompareInitGrage(equip) ---@type cfg_item_column local itemCfg = SL:GetConfig("cfg_item", equip.cfgId) ---@type cfg_equip_entryLib_column local entryLib = SL:GetConfig("cfg_equip_entryLib", equip.cfgId) local wearBars = SL:GetMetaValue(EMetaVarGetKey.GET_OPEN_WEARBARS) local wearBar = itemCfg.wearBarID[1] if wearBars and table.count(itemCfg.wearBarID) > 0 then for _, v in pairs(itemCfg.wearBarID) do if table.contains(wearBars, v) then wearBar = v break end end end local targetGrade --如果有多个穿戴位置 --如果有位置没穿装备则算作该评分大于身上装备评分 --如果都穿装备了,则与评分最低的装备做比较 for _, pos in pairs(itemCfg.strPart) do local target = SL:GetMetaValue("EQUIP_TARGET_DATA", wearBar, pos) if target then ---@type cfg_equip_entryLib_column local targetEntryLib = SL:GetConfig("cfg_equip_entryLib", target.cfgId) if not targetGrade then targetGrade = targetEntryLib.replaceRating[2] else if targetEntryLib.replaceRating[2] < targetGrade then targetGrade = targetEntryLib.replaceRating[2] end end else targetGrade = -1 break end end targetGrade = targetGrade or -1 if entryLib.replaceRating[2] < targetGrade then return false elseif entryLib.replaceRating[2] == targetGrade then return false end return true end -- 返回回收类型 function this:RES_GET_RECYCLING_TYPE(_id,message) --SL:LogTable(message,true) if message then self.recover_data = message else self.recover_data = {} end local all_true = {} for id,one_list in pairs(self.recover_data) do if self.recover_all_item[id] then GUI:Toggle_setIsOn(self.recover_all_item[id].view.KmlRecycleTypeItemTemplate, true) table.insert(all_true,id) end end for k, v in pairs(self.recover_all_item) do if table.contains(all_true,k) then else GUI:Toggle_setIsOn(v.view.KmlRecycleTypeItemTemplate,false) end end self:RefreshSelect() if not self.recoverBagPanel then ---显示背包 self.recoverBagPanel = GUI:UIPanel_Open("dev/ui/Bag/Panel/KLRecoverBag/KLRecoverBagPanel", nil, nil, { x = -415, bagType = EBagShowType.Recycle, itemClickCallBack = self.ClickItemCallBack, selectList = self.selectItemList, callBackUI = self }) end end ---勾选类型变更 一级页签 ---@param customData number @cfg_recovery表id function this:ToggleChange(_, customData, eventData) if not self.recover_data then return end local key_str = tostring(customData) if not self.recover_data then self.recover_data = {} end if not self.recover_data[key_str] then if not eventData[1] then return end self.recover_data[key_str] = {} -- 一级页签直接勾选的时候,二级页签全部选中 local _typeList = {} local index = 1 for ii, one in ipairs(self.cfg_recovery_screen) do if one.groupLevel == customData then _typeList[tostring(index)] = one.id index = index + 1 end end self.recover_data[key_str] = _typeList SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SETTING_RECYCLING_TYPE,self.recover_data) else if eventData[1] then return end self.recover_data[key_str] = nil -- 一级页签直接取消的时候,二级页签取消 SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SETTING_RECYCLING_TYPE,self.recover_data) end end function this:RES_RECOVERY_REWARD(_id,message) if message then self:RefreshSelect() end end return this