From ae68791b8b2b60c847327d3d2063d948bb857873 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 24 三月 2026 10:35:19 +0800
Subject: [PATCH] 262 幻境阁 修复获取气泡、头像、头像框、形象、称号的激活物品,外层没显示红点bug

---
 Main/System/PhantasmPavilion/PhantasmPavilionManager.Redpoint.cs |   29 ++++++++++++++++++++++++++++-
 Main/System/PhantasmPavilion/PhantasmPavilionManager.cs          |    5 ++---
 2 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionManager.Redpoint.cs b/Main/System/PhantasmPavilion/PhantasmPavilionManager.Redpoint.cs
index ebd4974..e1cd0d9 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionManager.Redpoint.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionManager.Redpoint.cs
@@ -180,6 +180,32 @@
         }
     }
 
+    private HashSet<int> UpdateRedPointItemSet = new HashSet<int>();
+    public HashSet<int> GetUpdateRedPointItemSet()
+    {
+        if (UpdateRedPointItemSet.Count > 0)
+            return UpdateRedPointItemSet;
+
+        var types = (PhantasmPavilionType[])System.Enum.GetValues(typeof(PhantasmPavilionType));
+        foreach (var type in types)
+        {
+            List<int> keys = GetTableKeys(type);
+            if (keys == null)
+                continue;
+
+            foreach (var id in keys)
+            {
+                if (GetUnlockWay(type, id) != 2)
+                    continue;
+
+                int itemId = GetUnlockValue(type, id);
+                UpdateRedPointItemSet.Add(itemId);
+            }
+        }
+
+        return UpdateRedPointItemSet;
+    }
+
     public List<int> newSkinIDModelList = new List<int>();
     public List<int> newSkinIDFaceList = new List<int>();
     string modelSkinKey { get { return StringUtility.Concat("PhantasmPavilion_Redponit_ModelSkin_", PlayerDatas.Instance.PlayerId.ToString()); } }
@@ -318,7 +344,8 @@
         {
             int[] arr = LocalSave.GetIntArray(faceSkinKey);
             newSkinIDFaceList = arr.IsNullOrEmpty() ? new List<int>() : arr.ToList();
-        }else
+        }
+        else
         {
             newSkinIDFaceList = new List<int>();
         }
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs b/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
index c58fd37..27f384c 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
@@ -99,9 +99,8 @@
     {
         if (type != PackType.Item)
             return;
-        if (itemID <= 0)
-            return;
-        if (ItemConfig.Get(itemID).Type != 146)
+        var map = GetUpdateRedPointItemSet();
+        if (!map.Contains(itemID))
             return;
         UpdateRedPoint();
     }

--
Gitblit v1.8.0