From c0eed687e252a1be7d0cd9c34d5b42cf425819b2 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 04 十一月 2025 20:04:41 +0800
Subject: [PATCH] 0312 任务进度防范倒退情况

---
 Main/System/Battle/SkillEffect/SkillEffect.cs |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/Main/System/Battle/SkillEffect/SkillEffect.cs b/Main/System/Battle/SkillEffect/SkillEffect.cs
index 5acf824..6932b1c 100644
--- a/Main/System/Battle/SkillEffect/SkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/SkillEffect.cs
@@ -10,6 +10,8 @@
 
     protected bool isFinish = false;
 
+    protected bool isFinishFrameEnd = false;
+
     protected Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit;
 
     public SkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
@@ -25,11 +27,11 @@
         onHit = _onHit;
         if (skillConfig.EffectId > 0)
         {
-            caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.EffectId, caster.heroRectTrans, caster.Camp);
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.EffectId, caster.heroRectTrans, caster.Camp);
         }
         if (skillConfig.EffectId2 > 0)
         {
-            caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.EffectId2, caster.heroRectTrans, caster.Camp);
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.EffectId2, caster.heroRectTrans, caster.Camp);
         }
     }
 
@@ -48,7 +50,7 @@
         if (skillConfig.MStartEffectId <= 0)
             return;
         //  涓憞鍥哄畾鐗规晥
-        caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.MStartEffectId, caster.heroGo.transform, caster.Camp);
+        caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.MStartEffectId, caster.heroGo.transform, caster.Camp);
     }
     
     /// <summary>
@@ -64,16 +66,17 @@
     /// </summary>
     public virtual void OnFinalFrameEnd()
     {
-
+        isFinishFrameEnd = true;
     }
     
     public virtual bool IsFinished()
     {
-        return isFinish;
+        return isFinish && isFinishFrameEnd;
     }
 
     public virtual void ForceFinished()
     {
         isFinish = true;
+        isFinishFrameEnd = true;
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0