From 7233e49b8737d54c3d634e53e36274271c016439 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 15 十月 2025 11:47:55 +0800
Subject: [PATCH] 125 战斗 连击问题修复 新增特效错误配置销毁容错、技能表现配置错误容错
---
Main/System/Battle/Skill/SkillBase.cs | 4 +++-
Main/System/Battle/Buff/BattleObjectBuffMgr.cs | 14 ++++++++++++--
Main/System/Battle/SkillEffect/SkillEffectFactory.cs | 3 ++-
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
index 2143f97..e221da3 100644
--- a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
+++ b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -24,12 +24,13 @@
public void Run()
{
+ List<int> removeEffectList = new List<int>();
// 璺熼殢BattleObject
foreach (var kv in buffEffectDict)
{
- // foreach (var kv2 in effectDict)
+ BattleEffectPlayer effectPlayer = kv.Value.Key;
+ if (null != effectPlayer)
{
- BattleEffectPlayer effectPlayer = kv.Value.Key;
effectPlayer.transform.position = battleObject.heroRectTrans.position;
var effectPos = effectPlayer.effectConfig.effectPos;
if (null != effectPos && effectPos.Length >= 2)
@@ -37,6 +38,15 @@
effectPlayer.rectTrans.anchoredPosition += new Vector2(effectPos[0], effectPos[1]);
}
}
+ else
+ {
+ removeEffectList.Add(kv.Key);
+ }
+ }
+
+ foreach (var effectId in removeEffectList)
+ {
+ buffEffectDict.Remove(effectId);
}
}
diff --git a/Main/System/Battle/Skill/SkillBase.cs b/Main/System/Battle/Skill/SkillBase.cs
index 639bde7..57bd849 100644
--- a/Main/System/Battle/Skill/SkillBase.cs
+++ b/Main/System/Battle/Skill/SkillBase.cs
@@ -251,7 +251,8 @@
skillEffect.Play(OnHitTargets);
foreach (var subSkillPack in tagUseSkillAttack.subSkillList)
{
- RecordAction recordAction = CustomHB426CombinePack.CreateSkillAction(battleField.guid, new List<GameNetPackBasic>() { subSkillPack });
+ SkillRecordAction recordAction = CustomHB426CombinePack.CreateSkillAction(battleField.guid, new List<GameNetPackBasic>() { subSkillPack });
+ otherSkillActionList.Add(recordAction);
battleField.recordPlayer.ImmediatelyPlay(recordAction);
}
isPlay = true;
@@ -669,6 +670,7 @@
BattleDebug.LogError("other skill casting " + combinePack.startTag.Tag);
var otherSkillAction = combinePack.CreateSkillAction();
otherSkillAction.fromSkillId = skillConfig.SkillID;
+ otherSkillActionList.Add(otherSkillAction);
return;
}
diff --git a/Main/System/Battle/SkillEffect/SkillEffectFactory.cs b/Main/System/Battle/SkillEffect/SkillEffectFactory.cs
index 755c163..9e30aa7 100644
--- a/Main/System/Battle/SkillEffect/SkillEffectFactory.cs
+++ b/Main/System/Battle/SkillEffect/SkillEffectFactory.cs
@@ -20,7 +20,8 @@
case SkillEffectType.NoEffect:
return new NoEffect(skillConfig, caster, tagUseSkillAttack);
default:
- BattleDebug.LogError("Unknown Skill Effect Type");
+ UnityEngine.Debug.LogError("Unknown Skill Effect Type " + skillConfig.effectType + " skill id is " + skillConfig.SkillID);
+ return new NoEffect(skillConfig, caster, tagUseSkillAttack);
break;
}
return null;
--
Gitblit v1.8.0