lcy
2026-04-24 35b255bd2c9451e49ca5dc7620627d1591930e18
262 幻境阁 支持解锁途径5形象解锁,对应头像解锁
2个文件已修改
28 ■■■■■ 已修改文件
Main/System/PhantasmPavilion/PhantasmPavilionManager.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/PhantasmPavilion/PhantasmPavilionUnlockButton.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
@@ -214,7 +214,7 @@
        int unlockValue = GetUnlockValue(type, id);
        int resourceType = GetResourceType(type, id);
        string resourceValue = GetResourceValue(type, id);
        if ((UnlockWay == 3 || UnlockWay == 4) && resourceValue == "")
        if ((UnlockWay == 3 || UnlockWay == 4 || UnlockWay == 5) && resourceValue == "")
        {
            int skinID = 0;
            if (UnlockWay == 3)
@@ -226,6 +226,12 @@
            else if (UnlockWay == 4)
            {
                skinID = unlockValue; // UnlockValue 直接就是 skinID
            }
            else if (UnlockWay == 5)
            {
                int modelID = unlockValue; // UnlockValue 是 ModelID
                if (!ModelConfig.HasKey(modelID)) return;
                skinID = ModelConfig.Get(modelID).SkinID; // 拿到形象对应的皮肤ID
            }
            if (!HeroSkinConfig.HasKey(skinID)) return;
@@ -551,6 +557,9 @@
            case PhantasmPavilionUnlockWay.Skin:
                bool hasSkin = HeroUIManager.Instance.IsHeroSkinActive(HeroConfig.GetHeroIDBySkinID(unlockValue), unlockValue);
                return hasSkin;
            case PhantasmPavilionUnlockWay.Model:
                // 如果对应的形象已解锁,则该头像也解锁
                return IsUnlock(PhantasmPavilionType.Model, unlockValue);
            default:
                return false;
        }
@@ -594,6 +603,10 @@
                    : PhantasmPavilionState.Locked;
            case PhantasmPavilionUnlockWay.Skin:
                return HeroUIManager.Instance.IsHeroSkinActive(HeroConfig.GetHeroIDBySkinID(unlockValue), unlockValue)
                    ? PhantasmPavilionState.Activated
                    : PhantasmPavilionState.Locked;
            case PhantasmPavilionUnlockWay.Model:
                return IsUnlock(PhantasmPavilionType.Model, unlockValue)
                    ? PhantasmPavilionState.Activated
                    : PhantasmPavilionState.Locked;
            default:
@@ -941,7 +954,9 @@
    Activate = 1,               // 默认(创角色就可以用的)
    Item,                       // 道具
    Hero,                       // 武将
    Skin,                   // 皮肤
    Skin,                       // 皮肤
    Model,                      // 形象
}
/// 幻境阁物品的状态
Main/System/PhantasmPavilion/PhantasmPavilionUnlockButton.cs
@@ -49,6 +49,15 @@
                    return;
                }
            }
            else if (unlockWay == 5) // 如果是形象解锁
            {
                bool hasModel = manager.IsUnlock(PhantasmPavilionType.Model, unlockValue);
                if (!hasModel)
                {
                    SysNotifyMgr.Instance.ShowTip("UnLockFail1"); // 可以根据需要换成对应的语言包 Key,如 "形象未解锁"
                    return;
                }
            }
            manager.SendOPPack(type, PhantasmPavilionOperation.Activate, (uint)id);
            SysNotifyMgr.Instance.ShowTip("UnLockSuccess");
        });