lcy
11 小时以前 3b6d600c2fc137b9417fb632c15c649f05268843
492 武将登场 修复武将登场和武将返场皮肤商店的物品读取
2个文件已修改
96 ■■■■ 已修改文件
Main/System/HeroDebut/HeroDebutManager.cs 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroReturn/HeroReturnManager.cs 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroDebut/HeroDebutManager.cs
@@ -874,51 +874,21 @@
        return int.MaxValue;
    }
    //<skinID,ctgID>
    Dictionary<int, int> ctgDict = new();
    public int GetCtgIDBySkinID(int skinID)
    {
        if (ctgDict.IsNullOrEmpty())
        {
            GetSkinIDToCtgIDDict();
        }
        var act = GetOperationHeroAppearInfo();
        if (act == null) return 0;
        int ctgID;
        ctgDict.TryGetValue(skinID, out ctgID);
        return ctgID;
    }
        var config = ActHeroAppearConfig.Get(act.CfgID);
        if (config == null || config.ActHeroIDList == null || config.SkinCTGIDList == null) return 0;
    Dictionary<int, int> GetSkinIDToCtgIDDict()
    {
        if (!ctgDict.IsNullOrEmpty())
        {
            return ctgDict;
        }
        int heroID = GetHeroIDBySkinID(skinID);
        if (heroID == 0) return 0;
        foreach (var config in ActHeroAppearConfig.GetValues())
        {
            if (config == null || config.SkinCTGIDList == null) return null;
        int index = System.Array.IndexOf(config.ActHeroIDList, heroID);
        if (index < 0 || index >= config.SkinCTGIDList.Length) return 0;
            for (int i = 0; i < config.SkinCTGIDList.Length; i++)
            {
                var ctgID = config.SkinCTGIDList[i];
                var ctgConfig = CTGConfig.Get(ctgID);
                if (ctgConfig == null || ctgConfig.GainItemList == null) continue;
                for (int j = 0; j < ctgConfig.GainItemList.Length; j++)
                {
                    var itemID = ctgConfig.GainItemList[j][0];
                    var itemConfig = ItemConfig.Get(itemID);
                    if (itemConfig == null) continue;
                    if (!HeroSkinAttrConfig.TryGetSkinIDByItemID(itemID, out var skinID)) continue;
                    if (ctgDict.ContainsKey(skinID)) continue;
                    ctgDict[skinID] = ctgID;
                }
            }
        }
        return ctgDict;
        return config.SkinCTGIDList[index];
    }
    public bool HasItemInSkinCTGIDList(int cfgID, int findItemID)
Main/System/HeroReturn/HeroReturnManager.cs
@@ -993,51 +993,21 @@
        return int.MaxValue;
    }
    //<skinID,ctgID>
    Dictionary<int, int> ctgDict = new();
    public int GetCtgIDBySkinID(int skinID)
    {
        if (ctgDict.IsNullOrEmpty())
        {
            GetSkinIDToCtgIDDict();
        }
        var act = GetOperationHeroAppearInfo();
        if (act == null) return 0;
        int ctgID;
        ctgDict.TryGetValue(skinID, out ctgID);
        return ctgID;
    }
        var config = ActHeroAppearConfig.Get(act.CfgID);
        if (config == null || config.ActHeroIDList == null || config.SkinCTGIDList == null) return 0;
    Dictionary<int, int> GetSkinIDToCtgIDDict()
    {
        if (!ctgDict.IsNullOrEmpty())
        {
            return ctgDict;
        }
        int heroID = GetHeroIDBySkinID(skinID);
        if (heroID == 0) return 0;
        foreach (var config in ActHeroAppearConfig.GetValues())
        {
            if (config == null || config.SkinCTGIDList == null) return null;
        int index = System.Array.IndexOf(config.ActHeroIDList, heroID);
        if (index < 0 || index >= config.SkinCTGIDList.Length) return 0;
            for (int i = 0; i < config.SkinCTGIDList.Length; i++)
            {
                var ctgID = config.SkinCTGIDList[i];
                var ctgConfig = CTGConfig.Get(ctgID);
                if (ctgConfig == null || ctgConfig.GainItemList == null) continue;
                for (int j = 0; j < ctgConfig.GainItemList.Length; j++)
                {
                    var itemID = ctgConfig.GainItemList[j][0];
                    var itemConfig = ItemConfig.Get(itemID);
                    if (itemConfig == null) continue;
                    if (!HeroSkinAttrConfig.TryGetSkinIDByItemID(itemID, out var skinID)) continue;
                    if (ctgDict.ContainsKey(skinID)) continue;
                    ctgDict[skinID] = ctgID;
                }
            }
        }
        return ctgDict;
        return config.SkinCTGIDList[index];
    }
    public bool HasItemInSkinCTGIDList(int cfgID, int findItemID)