From 1ec983f61def3ad0ee85da87b197259c054644dd Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 25 八月 2025 18:55:44 +0800
Subject: [PATCH] 125 战斗 技能bug修复

---
 Main/System/Battle/Skill/SkillBase.cs |   13 ++++++
 Main/Config/Configs/SkillConfig.cs    |   61 ++++++++++++++----------------
 2 files changed, 42 insertions(+), 32 deletions(-)

diff --git a/Main/Config/Configs/SkillConfig.cs b/Main/Config/Configs/SkillConfig.cs
index 60f9918..8c60c4e 100644
--- a/Main/Config/Configs/SkillConfig.cs
+++ b/Main/Config/Configs/SkillConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           Friday, August 22, 2025
+//    [  Date ]:           Monday, August 25, 2025
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -37,7 +37,6 @@
 	public int[] EffectValues2;
 	public int EffectID3;
 	public int[] EffectValues3;
-	public int ConnSkill;
 	public int CoolDownTime;
 	public int[] EnhanceSkillList;
 	public int FightPower;
@@ -52,7 +51,7 @@
 	public int BulletEffectId;
 	public int BulletPos;
 	public int BulletPath;
-	public int BulletFlyTime;
+	public float BulletFlyTime;
 	public int ExplosionEffectId;
 	public int ExplosionPos;
 	public string SkillMotionName;
@@ -150,17 +149,15 @@
 				}
 			}
 
-			int.TryParse(tables[21],out ConnSkill); 
+			int.TryParse(tables[21],out CoolDownTime); 
 
-			int.TryParse(tables[22],out CoolDownTime); 
-
-			if (tables[23].Contains("["))
+			if (tables[22].Contains("["))
 			{
-				EnhanceSkillList = JsonMapper.ToObject<int[]>(tables[23]);
+				EnhanceSkillList = JsonMapper.ToObject<int[]>(tables[22]);
 			}
 			else
 			{
-				string[] EnhanceSkillListStringArray = tables[23].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				string[] EnhanceSkillListStringArray = tables[22].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
 				EnhanceSkillList = new int[EnhanceSkillListStringArray.Length];
 				for (int i=0;i<EnhanceSkillListStringArray.Length;i++)
 				{
@@ -168,17 +165,17 @@
 				}
 			}
 
-			int.TryParse(tables[24],out FightPower); 
+			int.TryParse(tables[23],out FightPower); 
 
-			int.TryParse(tables[25],out StartupFrames); 
+			int.TryParse(tables[24],out StartupFrames); 
 
-			if (tables[26].Contains("["))
+			if (tables[25].Contains("["))
 			{
-				ActiveFrames = JsonMapper.ToObject<int[]>(tables[26]);
+				ActiveFrames = JsonMapper.ToObject<int[]>(tables[25]);
 			}
 			else
 			{
-				string[] ActiveFramesStringArray = tables[26].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				string[] ActiveFramesStringArray = tables[25].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
 				ActiveFrames = new int[ActiveFramesStringArray.Length];
 				for (int i=0;i<ActiveFramesStringArray.Length;i++)
 				{
@@ -186,41 +183,41 @@
 				}
 			}
 
-			int.TryParse(tables[27],out RecoveryFrames); 
+			int.TryParse(tables[26],out RecoveryFrames); 
 
-			int.TryParse(tables[28],out LoopCount); 
+			int.TryParse(tables[27],out LoopCount); 
 
-			int.TryParse(tables[29],out CastPosition); 
+			int.TryParse(tables[28],out CastPosition); 
 
-			int.TryParse(tables[30],out CastIndexNum); 
+			int.TryParse(tables[29],out CastIndexNum); 
 
-			float.TryParse(tables[31],out CastDistance); 
+			float.TryParse(tables[30],out CastDistance); 
 
-			DamageDivide = JsonMapper.ToObject<int[][]>(tables[32].Replace("(", "[").Replace(")", "]")); 
+			DamageDivide = JsonMapper.ToObject<int[][]>(tables[31].Replace("(", "[").Replace(")", "]")); 
 
-			int.TryParse(tables[33],out BulletEffectId); 
+			int.TryParse(tables[32],out BulletEffectId); 
 
-			int.TryParse(tables[34],out BulletPos); 
+			int.TryParse(tables[33],out BulletPos); 
 
-			int.TryParse(tables[35],out BulletPath); 
+			int.TryParse(tables[34],out BulletPath); 
 
-			int.TryParse(tables[36],out BulletFlyTime); 
+			float.TryParse(tables[35],out BulletFlyTime); 
 
-			int.TryParse(tables[37],out ExplosionEffectId); 
+			int.TryParse(tables[36],out ExplosionEffectId); 
 
-			int.TryParse(tables[38],out ExplosionPos); 
+			int.TryParse(tables[37],out ExplosionPos); 
 
-			SkillMotionName = tables[39];
+			SkillMotionName = tables[38];
 
-			int.TryParse(tables[40],out EffectId); 
+			int.TryParse(tables[39],out EffectId); 
 
-			int.TryParse(tables[41],out EffectPos); 
+			int.TryParse(tables[40],out EffectPos); 
 
-			int.TryParse(tables[42],out EffectType); 
+			int.TryParse(tables[41],out EffectType); 
 
-			IconName = tables[43];
+			IconName = tables[42];
 
-			int.TryParse(tables[44],out ExplosionEffect2); 
+			int.TryParse(tables[43],out ExplosionEffect2); 
         }
         catch (Exception exception)
         {
diff --git a/Main/System/Battle/Skill/SkillBase.cs b/Main/System/Battle/Skill/SkillBase.cs
index 605ede7..6282832 100644
--- a/Main/System/Battle/Skill/SkillBase.cs
+++ b/Main/System/Battle/Skill/SkillBase.cs
@@ -551,6 +551,11 @@
 			{
 				return false;
 			}
+			else
+			{
+				OnSkillFinished();
+				skillEffect = null;
+			}
 		}
 
 		return isFinished;
@@ -563,6 +568,14 @@
 
 	public void OnSkillFinished()
 	{
+		if (skillEffect != null)
+		{
+			if (!skillEffect.IsFinished())
+			{
+				return;
+			}
+		}
+
 		BattleDebug.LogError(GetType().Name + " Skill Finished");
 		while (packList.Count > 0)
 		{

--
Gitblit v1.8.0