From 43e446f72a08be8b08c5e70a9e9065083897cc99 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 31 十二月 2025 12:12:42 +0800
Subject: [PATCH] 125 战斗 修复战斗卡死问题  增加处理因未知原因(可能是配置可能是其他)无法播放的技能的时候 强制跳过该技能

---
 Main/System/Battle/RecordPlayer/RecordPlayer.cs |    5 +++++
 Main/System/Battle/Skill/SkillFactory.cs        |    1 +
 Main/System/Battle/BattleUtility.cs             |   24 ++++++++++++++++++++++++
 3 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/Main/System/Battle/BattleUtility.cs b/Main/System/Battle/BattleUtility.cs
index f076f67..9f43f2b 100644
--- a/Main/System/Battle/BattleUtility.cs
+++ b/Main/System/Battle/BattleUtility.cs
@@ -341,6 +341,30 @@
         return totalSuckHp;
     }
 
+    public static void ForceFinishBattlePackList(BattleField battleField, List<GameNetPackBasic> packList)
+    {
+        try
+        {
+            battleField.recordPlayer.EnableForceFinish(true);
+            foreach (var pack in packList)
+            {
+                if (pack is CustomHB426CombinePack cbPack)
+                {
+                    cbPack.Distribute();
+                }
+                else
+                {
+                    PackageRegedit.Distribute(pack);
+                }
+            }
+            battleField.recordPlayer.EnableForceFinish(false);
+        }
+        catch (System.Exception ex)
+        {
+            battleField.recordPlayer.EnableForceFinish(false);
+        }
+    }
+
     public static BattleHurtParam CalcBattleHurtParam(SkillBase skillBase, int hitIndex, BattleObject target, 
         HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, BattleDrops battleDrops, BattleDeadPack deadPack, bool bSuckHp = true)
     {
diff --git a/Main/System/Battle/RecordPlayer/RecordPlayer.cs b/Main/System/Battle/RecordPlayer/RecordPlayer.cs
index 3fcb5cf..f95cc7b 100644
--- a/Main/System/Battle/RecordPlayer/RecordPlayer.cs
+++ b/Main/System/Battle/RecordPlayer/RecordPlayer.cs
@@ -198,6 +198,11 @@
         ForceFinish();
     }
 
+    public void EnableForceFinish(bool enable)
+    {
+        isForceFinish = enable;
+    }
+
     public void ForceFinish()
     {
         isForceFinish = true;
diff --git a/Main/System/Battle/Skill/SkillFactory.cs b/Main/System/Battle/Skill/SkillFactory.cs
index a1d6e3e..043a4bc 100644
--- a/Main/System/Battle/Skill/SkillFactory.cs
+++ b/Main/System/Battle/Skill/SkillFactory.cs
@@ -58,6 +58,7 @@
 		switch (skillConfig.SkillType)
 		{
 			case 1:
+			case 11:
 				//	鍏堝疄鐜颁竴涓敾鍑荤殑 鍚庣画鏈夊啀鎱㈡參澧炲姞
 				skill = new DirectlyDamageSkill(_caster, skillConfig, vNetData, packList, battleField);
 				break;

--
Gitblit v1.8.0