From 45d3d873a7740886fa09f35c9fea2830f4563072 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 11 二月 2026 11:04:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into h5version

---
 Main/System/Battle/Buff/BattleObjectBuffMgr.cs |   54 +++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 45 insertions(+), 9 deletions(-)

diff --git a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
index a1c406c..20013c0 100644
--- a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
+++ b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -101,6 +101,7 @@
         {
             HB428_tagSCBuffRefresh buffData = null;
 
+
             bool isRemove = false;
 
             if (buffDataDict.TryGetValue(tempvNetData.BuffID, out buffData))
@@ -114,22 +115,38 @@
                 return;
             }
 
+            BattleObject buffCaster = battleObject.battleField.battleObjMgr.GetBattleObject((int)buffData.OwnerID);
+            
+            if (null == buffCaster)
+            {
+                Debug.LogError("鎵句笉鍒癰uff caster 瀵硅薄 id is " + buffData.OwnerID + " buff id is " + tempvNetData.BuffID + " pack uid is " + vNetData.packUID);
+            }
+
             bool isRemoveEffect = false;
 
             int remainCnt = -1;
 
-            if (buffData != null)
+            if (buffData != null && buffCaster != null)
             {
                 SkillConfig skillConfig = SkillConfig.Get((int)buffData.SkillID);
+                SkillSkinConfig skillSkinConfig = null;
+                if (buffCaster is HeroBattleObject heroBattleObject)
+                {
+                    skillSkinConfig = skillConfig.GetSkillSkinConfig(heroBattleObject.teamHero.SkinID);
+                }
+                else
+                {
+                    skillSkinConfig = skillConfig.GetOriginSkinConfig();
+                }
 
-                if (null == skillConfig || skillConfig.BuffEffect <= 0)
+                if (null == skillConfig || skillSkinConfig.BuffEffect <= 0)
                 {
                     return;
                 }
 
                 KeyValuePair<BattleEffectPlayer, HashSet<uint>> effectPair;
 
-                if (buffEffectDict.TryGetValue(skillConfig.BuffEffect, out effectPair))
+                if (buffEffectDict.TryGetValue(skillSkinConfig.BuffEffect, out effectPair))
                 {
                     effectPair.Value.Remove(buffData.BuffID);
 
@@ -139,8 +156,8 @@
                     {
                         //  娌℃湁杩欎釜buff浜�
                         isRemoveEffect = true;
-                        battleObject.battleField.battleEffectMgr.RemoveEffect(skillConfig.BuffEffect, effectPair.Key);
-                        buffEffectDict.Remove(skillConfig.BuffEffect);
+                        battleObject.battleField.battleEffectMgr.RemoveEffect(skillSkinConfig.BuffEffect, effectPair.Key);
+                        buffEffectDict.Remove(skillSkinConfig.BuffEffect);
                     }
                 }
 
@@ -276,22 +293,41 @@
         if (battleObject.IsDead())
             return;
 
-        if (skillConfig.BuffEffect > 0)
+        BattleObject buffCaster = battleObject.battleField.battleObjMgr.GetBattleObject((int)buffRefresh.OwnerID);
+
+        if (null == buffCaster)
         {
-            if (buffEffectDict.TryGetValue(skillConfig.BuffEffect, out var pair))
+            Debug.LogError("鎵句笉鍒癰uff caster 瀵硅薄 id is " + buffRefresh.OwnerID + " buff id is " + buffRefresh.BuffID + " pack uid is " + buffRefresh.packUID);
+        }
+
+        SkillSkinConfig skillSkinConfig = null;
+
+        if (buffCaster is HeroBattleObject heroBattleObject)
+        {
+            skillSkinConfig = skillConfig.GetSkillSkinConfig(heroBattleObject.teamHero.SkinID);
+        }
+        else
+        {
+            skillSkinConfig = skillConfig.GetOriginSkinConfig();
+        }
+
+
+        if (skillSkinConfig.BuffEffect > 0)
+        {
+            if (buffEffectDict.TryGetValue(skillSkinConfig.BuffEffect, out var pair))
             {
                 pair.Value.Add(buffRefresh.BuffID);
             }
             else
             {
                 BattleEffectPlayer effect = battleObject.battleField.battleEffectMgr
-                    .PlayEffect(battleObject, skillConfig.BuffEffect, battleObject.GetRectTransform(), battleObject.Camp, battleObject.GetModelScale());
+                    .PlayEffect(battleObject, skillSkinConfig.BuffEffect, battleObject.GetRectTransform(), battleObject.Camp, battleObject.GetModelScale());
 
                 effect.BindBone(battleObject, effect.effectConfig.nodeName);
 
                 var buffIdSet = new HashSet<uint> { buffRefresh.BuffID };
                 buffEffectDict.Add(
-                    skillConfig.BuffEffect,
+                    skillSkinConfig.BuffEffect,
                     new KeyValuePair<BattleEffectPlayer, HashSet<uint>>(effect, buffIdSet));
             }
         }

--
Gitblit v1.8.0