From d78d5df5f2a9777163aa276dcb64bbfd6e22d739 Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1545929779@qq.com> Date: Thu, 30 Nov 2023 15:11:06 +0800 Subject: [PATCH] =?UTF-8?q?=E9=AD=82=E5=8D=B0=E6=A0=BC=E5=AD=90=E5=BC=80?= =?UTF-8?q?=E5=90=AF=E6=9D=A1=E4=BB=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 0116983588d873197a5586424d06b363d568088b) --- .../~Lua/Modules/Hero/HeroManager.lua | 33 +++++++++---- .../~Lua/Modules/SoulPrint/SoulPrintPanel.lua | 47 +++++++++++++++---- 2 files changed, 62 insertions(+), 18 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Hero/HeroManager.lua b/Assets/ManagedResources/~Lua/Modules/Hero/HeroManager.lua index 1013293541..b7eaa76609 100644 --- a/Assets/ManagedResources/~Lua/Modules/Hero/HeroManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Hero/HeroManager.lua @@ -17,6 +17,7 @@ local jewelConfig = ConfigManager.GetConfig(ConfigName.JewelConfig) local jewelRankupConfig = ConfigManager.GetConfig(ConfigName.JewelRankupConfig) local jewelResonanceConfig = ConfigManager.GetConfig(ConfigName.JewelResonanceConfig) local EquipStrengthen = ConfigManager.GetConfig(ConfigName.EquipStrengthen) +local EquipSignSetting = ConfigManager.GetConfig(ConfigName.EquipSignSetting) local EquipRankUp = ConfigManager.GetConfig(ConfigName.EquipRankUp) local heroDatas = {} this.heroSortedDatas={}--排序后的英雄数据 @@ -4024,29 +4025,41 @@ end --单个英雄魂印红点 --获取魂印环形布局数据 didMaxLen最大槽位数量 didLen可装备槽位数量 didLv最大动态等级 maxLv配置最大等级 -function this.GetSoulPrintLoopUIMaxData() - local d = string.split(ConfigManager.GetConfigData(ConfigName.SpecialConfig, 37).Value, "#") +function this.GetSoulPrintLoopUIMaxData(_heroData) + --local d = string.split(ConfigManager.GetConfigData(ConfigName.SpecialConfig, 37).Value, "#") + --local d =#EquipSignSetting + LogError("#EquipSignSetting==============="..#EquipSignSetting) local _d = {} - for n = 1, #d do - local v = d[n] - if PlayerManager.level >= tonumber(v) then - table.insert(_d, v) + local maxLv = 0 + for k, v in ConfigPairs(EquipSignSetting) do + if v.OpenRules then + if v.OpenRules[1]==1 then + if PlayerManager.level >= v.OpenRules[2] then + table.insert(_d, v.SlotPosition) + end + elseif v.OpenRules[1]==2 then + if _heroData.star>=v.OpenRules[2] then + table.insert(_d, v.SlotPosition) + end + end + maxLv=v.Id end end + --当前动态最大等级 local didLv = 0 --最大槽位数量 local didMaxLen = 0 --可装备槽位数量(与是否装备英雄无关) local didLen = 0 - if #_d < #d then --未达到最大等级 +1显示锁定 + if #_d < maxLv then --未达到最大等级 +1显示锁定 didMaxLen = #_d + 1 else didMaxLen = #_d end - didLv = tonumber(d[didMaxLen]) + didLv = EquipSignSetting[didMaxLen].SlotPosition didLen = #_d - local maxLv = tonumber(d[#d]) + return didMaxLen, didLen, didLv, maxLv end @@ -4078,7 +4091,7 @@ function this.GetIsShowSoulPrintRedPoint(curHeroData) if not soulPrintIsOpen then return false end - local didMaxLen, didLen, didLv, maxLv = this.GetSoulPrintLoopUIMaxData() + local didMaxLen, didLen, didLv, maxLv = this.GetSoulPrintLoopUIMaxData(curHeroData) if curHeroData.soulPrintList and #curHeroData.soulPrintList >= didLen then return false --空位置 已装满 end diff --git a/Assets/ManagedResources/~Lua/Modules/SoulPrint/SoulPrintPanel.lua b/Assets/ManagedResources/~Lua/Modules/SoulPrint/SoulPrintPanel.lua index 60af34a50f..6817ab7300 100644 --- a/Assets/ManagedResources/~Lua/Modules/SoulPrint/SoulPrintPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/SoulPrint/SoulPrintPanel.lua @@ -239,8 +239,8 @@ function this.SetLoopUI() local maxLv = 0 --LogBlue("动态最大等级 "..didLv) - loopCount,didLen,didLv,maxLv= HeroManager.GetSoulPrintLoopUIMaxData() - -- LogBlue("最大槽位数量"..loopCount.." 可装备槽位数量"..didLen.." 最大动态等级"..didLv.." 配置最大等级"..maxLv) + loopCount,didLen,didLv,maxLv= HeroManager.GetSoulPrintLoopUIMaxData(curHeroData) + LogError("最大槽位数量"..loopCount.." 可装备槽位数量"..didLen.." 最大动态等级"..didLv.." 配置最大等级"..maxLv) --初始化 for i=1,loopCount do @@ -261,17 +261,48 @@ function this.SetLoopUI() end end --最后一位锁定 - if PlayerManager.level= didLen then table.sort(allData, function(a,b) if equipConfig[a.id].Quality == equipConfig[b.id].Quality then