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