From 19a7598ad9ae6e30a6e5096c104091ebe116d414 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 14 一月 2026 18:37:28 +0800
Subject: [PATCH] 125 战斗 修复内嵌技能中死亡播放技能的顺序问题(司马懿) 修复卑弥呼复活报错的问题
---
Main/System/Battle/RecordPlayer/RecordAction.cs | 42 ++++
Main/Core/NetworkPackage/DataToCtl/PackageRegeditEx.cs.meta | 11 +
Main/System/Battle/BattleObject/BattleObject.cs | 8
Main/System/Battle/Define/BattleDeadPack.cs | 4
Main/System/Battle/Skill/SkillBase.cs | 232 ++++++++++++++++++++---
Main/System/Battle/Motion/MotionBase.cs | 6
Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs | 97 +++++++++
Main/System/Battle/Buff/BattleObjectBuffMgr.cs | 27 ++
Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs | 8
Main/Core/NetworkPackage/DataToCtl/PackageRegeditEx.cs | 145 ++++++++++++++
10 files changed, 534 insertions(+), 46 deletions(-)
diff --git a/Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs b/Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs
index e85f647..2d0f79b 100644
--- a/Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs
+++ b/Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs
@@ -366,6 +366,10 @@
else
{
pack.commonMark = true;
+ // 銆愪娇鐢� BattleField.recordPlayer銆�
+ // 鍘熷洜锛氳繖閲屾槸鍦–reateSkillAction闈欐�佹柟娉曚腑锛岃繕娌℃湁鍒涘缓SkillRecordAction
+ // 杩欎簺鍖呮槸鍦ㄦ壘鍒版妧鑳藉寘涔嬪墠閬囧埌鐨勶紝闇�瑕佹彁鍓嶅鐞嗘帀
+ // 姝ゆ椂娌℃湁RecordAction涓婁笅鏂囷紝搴旇浣跨敤BattleField鐨勪富RecordPlayer
PackageRegedit.Distribute(pack);
}
}
@@ -414,6 +418,10 @@
else
{
pack.commonMark = true;
+ // 銆愪娇鐢� BattleField.recordPlayer銆�
+ // 鍘熷洜锛氳繖閲屾槸鍦–reateSkillAction鏂规硶涓紝杩樻病鏈夊垱寤篠killRecordAction
+ // 杩欎簺鍖呮槸鍦ㄦ壘鍒版妧鑳藉寘涔嬪墠閬囧埌鐨勶紙濡侭uff鍖咃級锛岄渶瑕佹彁鍓嶅鐞�
+ // 姝ゆ椂娌℃湁RecordAction涓婁笅鏂囷紝搴旇浣跨敤BattleField鐨勪富RecordPlayer
PackageRegedit.Distribute(pack);
}
}
diff --git a/Main/Core/NetworkPackage/DataToCtl/PackageRegeditEx.cs b/Main/Core/NetworkPackage/DataToCtl/PackageRegeditEx.cs
new file mode 100644
index 0000000..f3f9343
--- /dev/null
+++ b/Main/Core/NetworkPackage/DataToCtl/PackageRegeditEx.cs
@@ -0,0 +1,145 @@
+using UnityEngine;
+using System;
+
+/// <summary>
+/// PackageRegedit鐨勬墿灞曠被
+/// 鎻愪緵鏂扮殑鍖呭垎鍙戞帴鍙o紝鏀寔灏嗗寘鍒嗗彂鍒癛ecordAction鐨勫唴閮≧ecordPlayer
+/// 涓嶄慨鏀瑰師鏈夌殑PackageRegedit.Distribute鎺ュ彛锛岄噰鐢ㄦ柊鎺ュ彛缁曡繃
+/// </summary>
+public class PackageRegeditEx
+{
+ /// <summary>
+ /// 灏嗗寘鍒嗗彂鍒版寚瀹歊ecordAction鐨勫唴閮≧ecordPlayer
+ /// 杩欎釜鏂规硶鐢ㄤ簬澶勭悊RecordAction鍐呴儴浜х敓鐨勫寘锛堝鎶�鑳藉唴閮ㄧ殑Buff娣诲姞銆佸瓙鎶�鑳界瓑锛�
+ ///
+ /// 浣跨敤鍦烘櫙锛�
+ /// 1. SkillBase涓�氳繃PackageRegedit.Distribute浜х敓鐨勫寘锛屽簲璇ヤ娇鐢⊿killRecordAction鐨刬nnerRecordPlayer
+ /// 2. 纭繚杩欎簺鍖呯殑鐢熷懡鍛ㄦ湡涓庣埗RecordAction缁戝畾
+ /// 3. ForceFinish鏃跺彲浠ヤ竴骞跺鐞�
+ /// </summary>
+ /// <param name="pack">瑕佸垎鍙戠殑鍖�</param>
+ /// <param name="parentRecordAction">鐖禦ecordAction锛屽寘搴旇鐢卞畠鐨刬nnerRecordPlayer绠$悊</param>
+ public static void DistributeToRecordAction(GameNetPackBasic pack, RecordAction parentRecordAction)
+ {
+ if (pack == null)
+ {
+ Debug.LogError("PackageRegeditEx.DistributeToRecordAction: pack is null");
+ return;
+ }
+
+ if (parentRecordAction == null)
+ {
+ // 濡傛灉娌℃湁鐖禦ecordAction锛屼娇鐢ㄥ師鏈夌殑鍒嗗彂閫昏緫锛堜細浣跨敤BattleField鐨勪富RecordPlayer锛�
+ Debug.LogWarning("PackageRegeditEx.DistributeToRecordAction: parentRecordAction is null, 浣跨敤榛樿鍒嗗彂");
+ PackageRegedit.Distribute(pack);
+ return;
+ }
+
+ // 鏍囪杩欎釜鍖呮槸鍦≧ecordAction鍐呴儴澶勭悊鐨�
+ // 杩欐牱鍙互鍦≒ackageRegedit鐨勫鐞嗛�昏緫涓瘑鍒苟浣跨敤姝g‘鐨凴ecordPlayer
+ pack.commonMark = true;
+
+ // 涓存椂淇濆瓨褰撳墠姝e湪澶勭悊鐨凴ecordAction涓婁笅鏂�
+ // 杩欐牱鍦―TC澶勭悊绫讳腑鍙互鑾峰彇鍒扮埗RecordAction锛屼粠鑰屼娇鐢ㄦ纭殑RecordPlayer
+ CurrentRecordActionContext.Push(parentRecordAction);
+
+ try
+ {
+ // 璋冪敤鍘熸湁鐨勫垎鍙戦�昏緫
+ PackageRegedit.Distribute(pack);
+ }
+ finally
+ {
+ // 鎭㈠涓婁笅鏂�
+ CurrentRecordActionContext.Pop();
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇褰撳墠搴旇浣跨敤鐨凴ecordPlayer
+ ///
+ /// 鍒ゆ柇閫昏緫锛�
+ /// 1. 濡傛灉鏈夊綋鍓峈ecordAction涓婁笅鏂囷紝浣跨敤RecordAction.innerRecordPlayer锛圧ecordAction鍐呴儴浜х敓鐨勶級
+ /// 2. 鍚﹀垯浣跨敤BattleField.recordPlayer锛堥《灞傚寘锛岀洿鎺ヤ粠鏈嶅姟鍣ㄦ潵鐨勶級
+ /// </summary>
+ /// <param name="battleField">鎴樺満</param>
+ /// <returns>搴旇浣跨敤鐨凴ecordPlayer</returns>
+ public static RecordPlayer GetTargetRecordPlayer(BattleField battleField)
+ {
+ if (battleField == null)
+ {
+ Debug.LogError("PackageRegeditEx.GetTargetRecordPlayer: battleField is null");
+ return null;
+ }
+
+ // 妫�鏌ユ槸鍚﹀湪RecordAction涓婁笅鏂囦腑
+ var currentRecordAction = CurrentRecordActionContext.Current;
+ if (currentRecordAction != null)
+ {
+ // 浣跨敤RecordAction鐨刬nnerRecordPlayer
+ // 鍘熷洜锛氳繖涓寘鏄湪RecordAction鍐呴儴浜х敓鐨勶紝搴旇鐢盧ecordAction绠$悊
+ var innerPlayer = currentRecordAction.GetInnerRecordPlayer();
+ if (innerPlayer != null)
+ {
+ return innerPlayer;
+ }
+ else
+ {
+ Debug.LogWarning($"PackageRegeditEx.GetTargetRecordPlayer: RecordAction {currentRecordAction.GetType().Name} 鐨� innerRecordPlayer 涓� null锛屼娇鐢� BattleField.recordPlayer");
+ }
+ }
+
+ // 浣跨敤BattleField鐨勪富RecordPlayer
+ // 鍘熷洜锛氳繖鏄《灞傚寘锛岀洿鎺ヤ粠鏈嶅姟鍣ㄦ潵鐨勶紝鎴栬�呮病鏈塕ecordAction涓婁笅鏂�
+ return battleField.recordPlayer;
+ }
+}
+
+/// <summary>
+/// 褰撳墠RecordAction涓婁笅鏂�
+/// 浣跨敤鏍堢粨鏋勭鐞嗗祵濂楃殑RecordAction涓婁笅鏂�
+/// 杩欐牱鍙互鍦ㄥ寘鍒嗗彂杩囩▼涓煡閬撳綋鍓嶅浜庡摢涓猂ecordAction鍐呴儴
+/// </summary>
+public static class CurrentRecordActionContext
+{
+ private static System.Collections.Generic.Stack<RecordAction> contextStack =
+ new System.Collections.Generic.Stack<RecordAction>();
+
+ public static RecordAction Current
+ {
+ get
+ {
+ if (contextStack.Count > 0)
+ {
+ return contextStack.Peek();
+ }
+ return null;
+ }
+ }
+
+ public static void Push(RecordAction recordAction)
+ {
+ if (recordAction != null)
+ {
+ contextStack.Push(recordAction);
+ }
+ }
+
+ public static void Pop()
+ {
+ if (contextStack.Count > 0)
+ {
+ contextStack.Pop();
+ }
+ }
+
+ public static void Clear()
+ {
+ contextStack.Clear();
+ }
+
+ public static int Depth
+ {
+ get { return contextStack.Count; }
+ }
+}
diff --git a/Main/Core/NetworkPackage/DataToCtl/PackageRegeditEx.cs.meta b/Main/Core/NetworkPackage/DataToCtl/PackageRegeditEx.cs.meta
new file mode 100644
index 0000000..a8dbb3b
--- /dev/null
+++ b/Main/Core/NetworkPackage/DataToCtl/PackageRegeditEx.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs b/Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs
index 288d3ea..f1ef77c 100644
--- a/Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs
+++ b/Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs
@@ -19,6 +19,9 @@
protected bool hasDeathTriggerSkill = false;
+ // 鏍囪鏄惁宸茬粡鍒嗗彂浜嗘浜″悗鐨勫寘
+ protected bool hasDistributedPacksAfterDeath = false;
+
public DeathRecordAction(BattleField _battleField, List<BattleDeadPack> _deadPackList, RecordAction _causingRecordAction = null)
: base(RecordActionType.Death, _battleField, null)
{
@@ -60,9 +63,13 @@
if (null != skillAction)
{
deathActionDict.Add(battleDeadPack, skillAction);
- // 姝讳骸瑙﹀彂鎶�鑳介兘璁剧疆WaitingPlay=true锛岀瓑寰呯埗鑺傜偣鍔ㄤ綔瀹屾垚
- // 濡傛灉DeathRecordAction鏈夌埗鑺傜偣锛堝鑷存浜$殑鎶�鑳斤級锛屽垯绛夊緟閭d釜鐖惰妭鐐�
- // 鍚﹀垯绛夊緟DeathRecordAction鏈韩
+
+ // 銆愪娇鐢� BattleField.recordPlayer銆�
+ // 鍘熷洜锛氭浜¤Е鍙戞妧鑳芥槸椤跺眰鐨凴ecordAction锛屼笉鏄湪鏌愪釜RecordAction鍐呴儴浜х敓鐨�
+ // 铏界劧鍙兘鏄洜涓烘妧鑳藉鑷寸殑姝讳骸锛屼絾姝讳骸瑙﹀彂鐨勬妧鑳芥湰韬簲璇ユ槸鐙珛鐨�
+ // 浣跨敤ImmediatelyPlay骞惰缃甒aitingPlay=true锛屽彲浠ヨ姝讳骸鎶�鑳界瓑寰呭鑷存浜$殑鎶�鑳藉畬鎴�
+ // 濡傛灉DeathRecordAction鏈夌埗鑺傜偣锛堝鑷存浜$殑鎶�鑳斤級锛屽垯绛夊緟閭d釜鐖惰妭鐐�
+ // 鍚﹀垯绛夊緟DeathRecordAction鏈韩
battleField.recordPlayer.ImmediatelyPlay(skillAction, causingRecordAction == null ? this : causingRecordAction, true);
}
}
@@ -117,8 +124,25 @@
if (completeNum == deadPackList.Count)
{
+ // 姝讳骸澶勭悊瀹屾垚鍚庯紝鍒嗗彂姝讳骸鍚庣殑鍖�
+ if (!hasDistributedPacksAfterDeath)
+ {
+ hasDistributedPacksAfterDeath = true;
+ DistributePacksAfterDeath();
+ }
+
isActionCompleted = true;
isFinish = true;
+ }
+ }
+
+ // 纭繚鍦╥nnerRecordPlayer涓墽琛屾浜″悗鐨勫寘
+ if (hasDistributedPacksAfterDeath && causingRecordAction != null)
+ {
+ var innerPlayer = causingRecordAction.GetInnerRecordPlayer();
+ if (innerPlayer != null && innerPlayer.IsPlaying())
+ {
+ innerPlayer.Run();
}
}
}
@@ -186,6 +210,13 @@
}
}
+ // 寮哄埗鍒嗗彂姝讳骸鍚庣殑鍖�
+ if (!hasDistributedPacksAfterDeath)
+ {
+ hasDistributedPacksAfterDeath = true;
+ DistributePacksAfterDeath();
+ }
+
base.ForceFinish();
}
@@ -208,6 +239,66 @@
return hasDeathTriggerSkill;
}
+ // 鍒嗗彂姝讳骸鍚庣殑鍖�
+ protected void DistributePacksAfterDeath()
+ {
+ // 閬嶅巻鎵�鏈夋浜″寘锛屽垎鍙戝畠浠殑 packListAfterDeath
+ foreach (var deadPack in deadPackList)
+ {
+ if (deadPack.packListAfterDeath != null && deadPack.packListAfterDeath.Count > 0)
+ {
+ BattleDebug.LogError($"DeathRecordAction.DistributePacksAfterDeath: 寮�濮嬪垎鍙戞浜″悗鐨勫寘锛屽叡 {deadPack.packListAfterDeath.Count} 涓寘");
+
+ foreach (var pack in deadPack.packListAfterDeath)
+ {
+ // 鑾峰彇鍖呯殑绫诲瀷鍜孶ID鐢ㄤ簬璋冭瘯
+ string packType = pack.GetType().Name;
+ ulong packUID = 0;
+ var packUIDField = pack.GetType().GetField("packUID");
+ if (packUIDField != null)
+ {
+ packUID = (ulong)packUIDField.GetValue(pack);
+ }
+
+ BattleDebug.LogError($"DeathRecordAction: 鍒嗗彂姝讳骸鍚庣殑鍖� - Type: {packType}, UID: {packUID}, causingRecordAction: {causingRecordAction?.GetType().Name}");
+
+ // 鐗规畩澶勭悊 CustomHB426CombinePack锛氫娇鐢ㄥ叾鑷繁鐨� Distribute 鏂规硶
+ if (pack is CustomHB426CombinePack combinePack)
+ {
+ BattleDebug.LogError($"DeathRecordAction: 姝讳骸鍚庣殑鍖呮槸 CustomHB426CombinePack锛屼娇鐢ㄥ叾 Distribute 鏂规硶");
+ combinePack.Distribute();
+ }
+ // 鐗规畩澶勭悊 HB427_tagSCUseSkill锛氬垱寤烘妧鑳藉寘骞跺垎鍙�
+ else if (pack is HB427_tagSCUseSkill skillPack)
+ {
+ BattleDebug.LogError($"DeathRecordAction: 姝讳骸鍚庣殑鍖呮槸 HB427_tagSCUseSkill锛屽垱寤� SkillRecordAction");
+ var skillAction = CustomHB426CombinePack.CreateSkillAction(battleField.guid, new List<GameNetPackBasic>() { skillPack });
+ if (skillAction != null)
+ {
+ battleField.PlayRecord(skillAction);
+ }
+ }
+ else
+ {
+ // 銆愪娇鐢� causingRecordAction 鎴� battleField.recordPlayer銆�
+ // 鍘熷洜锛氭浜″悗鐨勫寘搴旇鍥炲埌瀵艰嚧姝讳骸鐨勬妧鑳芥墍鍦ㄧ殑涓婁笅鏂�
+ // 濡傛灉鏈� causingRecordAction锛堝鑷存浜$殑鎶�鑳斤級锛屽垯鍒嗗彂鍒板畠鐨� innerRecordPlayer
+ // 鍚﹀垯鍒嗗彂鍒� battleField.recordPlayer锛堥《灞傦級
+ if (causingRecordAction != null)
+ {
+ PackageRegeditEx.DistributeToRecordAction(pack, causingRecordAction);
+ }
+ else
+ {
+ // 濡傛灉娌℃湁 causingRecordAction锛岀洿鎺ュ垎鍙戯紙浣跨敤鍘熷鐨� PackageRegedit锛�
+ PackageRegedit.Distribute(pack);
+ }
+ }
+ }
+ }
+ }
+ }
+
public override bool CanStartExecution()
{
// 濡傛灉涓嶆槸WaitingPlay妯″紡锛岀洿鎺ュ彲浠ユ墽琛�
diff --git a/Main/System/Battle/BattleObject/BattleObject.cs b/Main/System/Battle/BattleObject/BattleObject.cs
index 40de9a9..58154a9 100644
--- a/Main/System/Battle/BattleObject/BattleObject.cs
+++ b/Main/System/Battle/BattleObject/BattleObject.cs
@@ -335,6 +335,10 @@
if (isLastHit)
{
DodgeFinishAction dodgeFinish = new DodgeFinishAction(battleField, this);
+ // 銆愪娇鐢� BattleField.recordPlayer銆�
+ // 鍘熷洜锛氶棯閬垮畬鎴愬姩浣滄槸鐩爣瑙掕壊鐨勭嫭绔嬭涓猴紝涓嶆槸鎶�鑳藉唴閮ㄤ骇鐢熺殑
+ // 铏界劧鏄湪Hurt杩囩▼涓Е鍙戯紝浣嗘槸闂伩鍔ㄤ綔鏈韩鏄洰鏍囩殑鍙嶅簲锛屽簲璇ョ敱涓籖ecordPlayer绠$悊
+ // 浣跨敤InsertRecord鍙互鎻掑埌闃熷垪鏈�鍓嶉潰锛屼繚璇侀棯閬胯〃鐜扮殑浼樺厛绾�
battleField.recordPlayer.InsertRecord(dodgeFinish);
}
@@ -506,6 +510,10 @@
teamHero.isDead = false;
});
+ // 銆愪娇鐢� BattleField.recordPlayer銆�
+ // 鍘熷洜锛氬娲绘槸瑙掕壊鐨勭嫭绔嬭涓猴紝涓嶆槸鎶�鑳藉唴閮ㄤ骇鐢熺殑
+ // 澶嶆椿鍙兘鏄鍔ㄨЕ鍙戠殑锛堝姝讳骸鍚庢湇鍔″櫒鍙戞潵鐨勫娲诲寘锛夛紝搴旇鐢变富RecordPlayer绠$悊
+ // 浣跨敤InsertRecord鍙互鎻掑埌闃熷垪鏈�鍓嶉潰锛屼繚璇佸娲昏〃鐜扮殑浼樺厛绾�
battleField.recordPlayer.InsertRecord(recordAction);
}
diff --git a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
index 9c9ec73..d1ded5f 100644
--- a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
+++ b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -154,10 +154,15 @@
OnBuffChanged();
});
+ // 銆愭牴鎹笂涓嬫枃閫夋嫨 RecordPlayer銆�
+ // 鍘熷洜锛欱uff绉婚櫎鍙兘鏄妧鑳芥晥鏋滅殑涓�閮ㄥ垎锛堟妧鑳藉唴閮ㄨЕ鍙戯級锛屼篃鍙兘鏄嫭绔嬬殑锛圔uff鑷劧鍒版湡锛�
+ // 濡傛灉鏈夊綋鍓峈ecordAction涓婁笅鏂囷紝鍒欎娇鐢╥nnerRecordPlayer锛岀‘淇滲uff绉婚櫎涓庢妧鑳界敓鍛藉懆鏈熺粦瀹�
+ // 鍚﹀垯浣跨敤BattleField鐨勪富RecordPlayer
+ var targetPlayer = PackageRegeditEx.GetTargetRecordPlayer(battleObject.battleField);
if (insert)
- battleObject.battleField.recordPlayer.ImmediatelyPlay(buffRemoveAction);
+ targetPlayer.ImmediatelyPlay(buffRemoveAction);
else
- battleObject.battleField.recordPlayer.PlayRecord(buffRemoveAction);
+ targetPlayer.PlayRecord(buffRemoveAction);
}
@@ -187,10 +192,15 @@
OnBuffChanged();
});
+ // 銆愭牴鎹笂涓嬫枃閫夋嫨 RecordPlayer銆�
+ // 鍘熷洜锛欱uff娣诲姞鍙兘鏄妧鑳芥晥鏋滅殑涓�閮ㄥ垎锛堟妧鑳藉唴閮ㄨЕ鍙戯級锛屼篃鍙兘鏄嫭绔嬬殑
+ // 濡傛灉鏈夊綋鍓峈ecordAction涓婁笅鏂囷紝鍒欎娇鐢╥nnerRecordPlayer
+ // 鍚﹀垯浣跨敤BattleField鐨勪富RecordPlayer
+ var targetPlayer = PackageRegeditEx.GetTargetRecordPlayer(battleObject.battleField);
if (insert)
- battleObject.battleField.recordPlayer.ImmediatelyPlay(buffMountAction);
+ targetPlayer.ImmediatelyPlay(buffMountAction);
else
- battleObject.battleField.recordPlayer.PlayRecord(buffMountAction);
+ targetPlayer.PlayRecord(buffMountAction);
}
else
{
@@ -231,10 +241,15 @@
OnBuffChanged();
});
+ // 銆愭牴鎹笂涓嬫枃閫夋嫨 RecordPlayer銆�
+ // 鍘熷洜锛欱uff鎵归噺娣诲姞鍙兘鏄妧鑳芥晥鏋滅殑涓�閮ㄥ垎锛屼篃鍙兘鏄嫭绔嬬殑
+ // 濡傛灉鏈夊綋鍓峈ecordAction涓婁笅鏂囷紝鍒欎娇鐢╥nnerRecordPlayer
+ // 鍚﹀垯浣跨敤BattleField鐨勪富RecordPlayer
+ var targetPlayer = PackageRegeditEx.GetTargetRecordPlayer(battleObject.battleField);
if (insert)
- battleObject.battleField.recordPlayer.ImmediatelyPlay(buffMountAction);
+ targetPlayer.ImmediatelyPlay(buffMountAction);
else
- battleObject.battleField.recordPlayer.PlayRecord(buffMountAction);
+ targetPlayer.PlayRecord(buffMountAction);
}
// 澶勭悊鍙埛鏂版暟鎹殑buff (IsAdd == 0)
diff --git a/Main/System/Battle/Define/BattleDeadPack.cs b/Main/System/Battle/Define/BattleDeadPack.cs
index 6313df2..0998770 100644
--- a/Main/System/Battle/Define/BattleDeadPack.cs
+++ b/Main/System/Battle/Define/BattleDeadPack.cs
@@ -1,6 +1,7 @@
using System;
+using System.Collections.Generic;
public class BattleDeadPack
{
@@ -8,6 +9,9 @@
public CustomHB426CombinePack deadTriggerSkill;
+ // 瀛樺偍姝讳骸鍖呬箣鍚庣殑鎵�鏈夊寘锛岃繖浜涘寘闇�瑕佺瓑寰呮浜″畬鎴愬悗鍐嶅垎鍙�
+ public List<GameNetPackBasic> packListAfterDeath = new List<GameNetPackBasic>();
+
public bool isPlaySkill = false;
public bool IsOwnSkill(HB427_tagSCUseSkill hB427_TagSCUseSkill)
diff --git a/Main/System/Battle/Motion/MotionBase.cs b/Main/System/Battle/Motion/MotionBase.cs
index 3a580cc..f8299ba 100644
--- a/Main/System/Battle/Motion/MotionBase.cs
+++ b/Main/System/Battle/Motion/MotionBase.cs
@@ -65,7 +65,6 @@
PlayAnimation(MotionName.idle, true);
SetupAnimationHandlers();
- skillTrack = null;
if (skelAnim.gameObject != null)
illusionShadow = skelAnim.gameObject.AddMissingComponent<SkeletonIllusionShadow>();
@@ -175,8 +174,6 @@
return ExecuteSkillAnim(skillConfig, skillBase, onComplete, targetAnim, true, isSubSkill);
}
- private Spine.TrackEntry skillTrack = null;
-
private Spine.TrackEntry ExecuteSkillAnim(SkillConfig skillConfig, SkillBase skillBase, Action onComplete,
Spine.Animation targetAnim, bool hasAnim, bool isSubSkill)
@@ -220,6 +217,7 @@
}
}
+ Spine.TrackEntry skillTrack = null;
if (hasAnim)
{
@@ -619,7 +617,6 @@
currentTrack = null;
- skillTrack = null;
playingSkillAnim = false;
PlayAnimation(MotionName.idle, true);
@@ -677,7 +674,6 @@
skeleton.SetToSetupPose();
// skeleton.UpdateWorldTransform();
}
- skillTrack = null;
// 10. 鎾斁寰呮満鍔ㄧ敾
PlayAnimation(MotionName.idle, true);
skeletonAnim.LateUpdate();
diff --git a/Main/System/Battle/RecordPlayer/RecordAction.cs b/Main/System/Battle/RecordPlayer/RecordAction.cs
index 237218a..51e7167 100644
--- a/Main/System/Battle/RecordPlayer/RecordAction.cs
+++ b/Main/System/Battle/RecordPlayer/RecordAction.cs
@@ -27,11 +27,29 @@
// 鑷韩鍔ㄤ綔鏄惁瀹屾垚锛堜笉鍖呮嫭瀛愯妭鐐圭殑瀹屾垚鐘舵�侊級
protected bool isActionCompleted = false;
+ // ===== 鍐呴儴RecordPlayer鏈哄埗 =====
+ // 鍐呴儴RecordPlayer锛氱敤浜庢挱鏀剧敱姝ecordAction鍐呴儴浜х敓鐨凴ecordAction
+ // 褰揜ecordAction鍐呴儴浜х敓鏂扮殑RecordAction鏃讹紙濡侾ackageRegedit.Distribute瑙﹀彂鐨勶級锛�
+ // 杩欎簺RecordAction搴旇鐢卞綋鍓峈ecordAction鐨刬nnerRecordPlayer绠$悊锛岃�屼笉鏄疊attleField鐨勪富RecordPlayer
+ // 杩欐牱鍙互淇濊瘉锛�
+ // 1. 鍐呴儴浜х敓鐨凴ecordAction鐢熷懡鍛ㄦ湡涓庣埗RecordAction缁戝畾
+ // 2. ForceFinish鏃跺彲浠ヤ竴骞跺鐞嗗唴閮ㄧ殑RecordAction
+ // 3. 涓嶄細骞叉壈BattleField涓籖ecordPlayer鐨勬挱鏀鹃槦鍒�
+ protected RecordPlayer innerRecordPlayer;
+
public RecordAction(RecordActionType _actionType, BattleField _battleField, BattleObject _battleObj)
{
actionType = _actionType;
battleField = _battleField;
battleObject = _battleObj;
+
+ // 鍒濆鍖栧唴閮≧ecordPlayer
+ // 姣忎釜RecordAction閮芥湁鑷繁鐨凴ecordPlayer鏉ョ鐞嗗唴閮ㄤ骇鐢熺殑RecordAction
+ if (_battleField != null)
+ {
+ innerRecordPlayer = new RecordPlayer();
+ innerRecordPlayer.Init(_battleField);
+ }
}
public virtual void Played()
@@ -123,6 +141,13 @@
return false;
}
+ // 妫�鏌ュ唴閮≧ecordPlayer鏄惁杩樺湪鎾斁
+ // 鍘熷洜锛氬唴閮ㄤ骇鐢熺殑RecordAction蹇呴』鍏ㄩ儴鎾斁瀹屾垚鍚庯紝褰撳墠RecordAction鎵嶇畻瀹屾垚
+ if (innerRecordPlayer != null && innerRecordPlayer.IsPlaying())
+ {
+ return false;
+ }
+
// 妫�鏌ユ墍鏈夊瓙鑺傜偣鏄惁瀹屾垚
foreach (var child in childActionList)
{
@@ -137,13 +162,21 @@
public virtual void Run()
{
-
+ // 鍏堣繍琛屽唴閮≧ecordPlayer
+ // 鍘熷洜锛氬唴閮ㄤ骇鐢熺殑RecordAction闇�瑕佸厛鎵ц锛岀‘淇濆唴閮ㄩ�昏緫鎸夋纭『搴忔挱鏀�
+ // 渚嬪锛氭妧鑳藉唴閮ㄤ骇鐢熺殑Buff娣诲姞銆佸瓙鎶�鑳界瓑閮界敱innerRecordPlayer绠$悊
+ innerRecordPlayer?.Run();
}
public virtual void ForceFinish()
{
isFinish = true;
isActionCompleted = true;
+
+ // 寮哄埗缁撴潫鍐呴儴RecordPlayer
+ // 鍘熷洜锛歊ecordAction琚獸orceFinish鏃讹紝鍏跺唴閮ㄤ骇鐢熺殑鎵�鏈塕ecordAction涔熷繀椤诲己鍒剁粨鏉�
+ // 杩欐牱鎵嶈兘淇濊瘉鏁翠釜RecordAction鏍戠殑瀹屾暣鎬у拰涓�鑷存��
+ innerRecordPlayer?.ForceFinish();
// 寮哄埗缁撴潫鎵�鏈夊瓙鑺傜偣
for (int i = childActionList.Count - 1; i >= 0; i--)
@@ -166,6 +199,13 @@
return battleField.guid;
}
+ // 鑾峰彇鍐呴儴RecordPlayer
+ // 鐢ㄤ簬澶栭儴浠g爜闇�瑕佸皢RecordAction娣诲姞鍒版RecordAction鐨勫唴閮ㄦ挱鏀惧櫒鏃朵娇鐢�
+ public virtual RecordPlayer GetInnerRecordPlayer()
+ {
+ return innerRecordPlayer;
+ }
+
public virtual bool NeedWaitSibling()
{
return true;
diff --git a/Main/System/Battle/Skill/SkillBase.cs b/Main/System/Battle/Skill/SkillBase.cs
index f07de9d..938659f 100644
--- a/Main/System/Battle/Skill/SkillBase.cs
+++ b/Main/System/Battle/Skill/SkillBase.cs
@@ -28,9 +28,6 @@
protected List<H0704_tagRolePackRefresh> dropPackList = new List<H0704_tagRolePackRefresh>();
protected List<HB405_tagMCAddExp> expPackList = new List<HB405_tagMCAddExp>();
- protected List<SkillRecordAction> waitingCastSkillRecordAction = new List<SkillRecordAction>();
-
-
protected bool moveFinished = false;
public SkillBase fromSkill;
public bool isPlay = false;
@@ -500,44 +497,48 @@
skillEffect = SkillEffectFactory.CreateSkillEffect(this, caster, skillConfig, tagUseSkillAttack);
skillEffect.Play(OnHitTargets);
ProcessSubSkill();
- HandleWaitingCastSkill();
isPlay = true;
}
protected void ProcessSubSkill()
{
+ // 鎸塸ackUID鎺掑簭鎵�鏈夊瓙鎶�鑳�
+ var allSubSkills = new List<(ulong packUID, SkillRecordAction action)>();
+
foreach (var subSkillPack in tagUseSkillAttack.subSkillList)
{
SkillRecordAction recordAction = CustomHB426CombinePack.CreateSkillAction(battleField.guid, new List<GameNetPackBasic>() { subSkillPack });
- recordAction.fromSkill = this;
- // 瀛愭妧鑳借缃甒aitingPlay=true锛岀瓑寰呯埗鎶�鑳藉姩浣滃畬鎴�
- waitingCastSkillRecordAction.Add(recordAction);
- battleField.recordPlayer.ImmediatelyPlay(recordAction, parentRecordAction, true);
+ if (recordAction != null)
+ {
+ recordAction.fromSkill = this;
+ allSubSkills.Add((subSkillPack.packUID, recordAction));
+ }
}
tagUseSkillAttack.subSkillList.Clear();
+
foreach (var subCombinePack in tagUseSkillAttack.subSkillCombinePackList)
{
SkillRecordAction recordAction = CustomHB426CombinePack.CreateSkillAction(battleField.guid, subCombinePack.packList);
- recordAction.fromSkill = this;
- // 瀛愭妧鑳借缃甒aitingPlay=true锛岀瓑寰呯埗鎶�鑳藉姩浣滃畬鎴�
- waitingCastSkillRecordAction.Add(recordAction);
+ if (recordAction != null)
+ {
+ recordAction.fromSkill = this;
+ ulong packUID = subCombinePack.packList.Count > 0 ? GetPackUID(subCombinePack.packList[0]) : 0;
+ allSubSkills.Add((packUID, recordAction));
+ }
}
tagUseSkillAttack.subSkillCombinePackList.Clear();
- waitingCastSkillRecordAction.OrderBy(recordAction => recordAction.hB427_TagSCUseSkill.packUID);
+ // 鎸塸ackUID鎺掑簭
+ allSubSkills.Sort((a, b) => a.packUID.CompareTo(b.packUID));
-
- }
-
- protected void HandleWaitingCastSkill()
- {
+ // 渚濇娣诲姞鍒皉ecordPlayer锛屾瘡涓瓑寰呭墠涓�涓畬鎴�
RecordAction waitingRecordAction = null;
-
- for (int i = 0; i < waitingCastSkillRecordAction.Count; i++)
+ foreach (var (packUID, recordAction) in allSubSkills)
{
- var recordAction = waitingCastSkillRecordAction[i];
-
+ // 銆愪娇鐢� BattleField.recordPlayer銆�
+ // 鍘熷洜锛氬瓙鎶�鑳芥槸鐙珛鐨凷killRecordAction锛屽簲璇ユ槸椤跺眰RecordAction锛岀敱BattleField鐨勪富RecordPlayer绠$悊
+ // 閫氳繃璁剧疆鐖跺瓙鍏崇郴鍜學aitingPlay锛屽彲浠ユ帶鍒跺瓙鎶�鑳界殑鎵ц鏃舵満
if (waitingRecordAction != null)
{
// 姣忎釜閮藉簲璇ョ瓑鍓嶄竴涓粨鏉熷悗
@@ -561,19 +562,19 @@
// 鎶�鑳戒腑鎽囧紑濮嬪洖璋冿細閫氱煡鎶�鑳芥晥鏋滃鐞嗕腑鎽囧紑濮�
public virtual void OnMiddleFrameStart(int times)
{
- skillEffect?.OnMiddleFrameStart(times); // 淇锛氭坊鍔犵┖鍊兼鏌�
+ skillEffect.OnMiddleFrameStart(times); // 淇锛氭坊鍔犵┖鍊兼鏌�
}
// 鎶�鑳戒腑鎽囩粨鏉熷洖璋冿細閫氱煡鎶�鑳芥晥鏋滃鐞嗕腑鎽囩粨鏉�
public virtual void OnMiddleFrameEnd(int times, int hitIndex)
{
- skillEffect?.OnMiddleFrameEnd(times, hitIndex); // 淇锛氭坊鍔犵┖鍊兼鏌�
+ skillEffect.OnMiddleFrameEnd(times, hitIndex); // 淇锛氭坊鍔犵┖鍊兼鏌�
}
// 鎶�鑳藉悗鎽囧紑濮嬪洖璋冿細閫氱煡鎶�鑳芥晥鏋滃鐞嗗悗鎽囧紑濮�
public virtual void OnFinalFrameStart()
{
- skillEffect?.OnFinalFrameStart(); // 淇锛氭坊鍔犵┖鍊兼鏌�
+ skillEffect.OnFinalFrameStart(); // 淇锛氭坊鍔犵┖鍊兼鏌�
}
// 鎶�鑳藉悗鎽囩粨鏉熷洖璋冿細閫氱煡鎶�鑳芥晥鏋滃鐞嗗悗鎽囩粨鏉�
@@ -899,7 +900,10 @@
if (refreshPack != null)
{
// 鍒嗗彂HP鍒锋柊鍖�
- PackageRegedit.Distribute(refreshPack);
+ // 銆愪娇鐢� parentRecordAction.innerRecordPlayer銆�
+ // 鍘熷洜锛欻P鍒锋柊鍖呮槸鎶�鑳藉唴閮ㄤ骇鐢熺殑锛屽簲璇ョ敱褰撳墠SkillRecordAction鐨刬nnerRecordPlayer绠$悊
+ // 杩欐牱鍙互纭繚HP鍒锋柊涓庢妧鑳界殑鐢熷懡鍛ㄦ湡缁戝畾锛孎orceFinish鏃朵竴骞跺鐞�
+ PackageRegeditEx.DistributeToRecordAction(refreshPack, parentRecordAction);
packList.Remove(refreshPack);
}
}
@@ -910,13 +914,123 @@
List<BattleDeadPack> deadPackList = BattleUtility.FindDeadPack(packList);
if (deadPackList.Count <= 0) return;
+ // 鎵惧埌鏈�澶х殑姝讳骸鍖� packUID锛堝寘鎷浜″寘鍜屾浜¤Е鍙戞妧鑳斤級
+ ulong maxDeathPackUID = 0;
+ foreach (var deadPack in deadPackList)
+ {
+ if (deadPack.deadPack != null && deadPack.deadPack.packUID > maxDeathPackUID)
+ {
+ maxDeathPackUID = deadPack.deadPack.packUID;
+ }
+
+ if (deadPack.deadTriggerSkill != null)
+ {
+ var skillPack = deadPack.deadTriggerSkill.GetMainHB427SkillPack();
+ if (skillPack != null && skillPack.packUID > maxDeathPackUID)
+ {
+ maxDeathPackUID = skillPack.packUID;
+ }
+ }
+ }
+
+ // 濡傛灉鎵惧埌浜嗘浜″寘锛屾敹闆嗘墍鏈� packUID > maxDeathPackUID 鐨勫寘
+ if (maxDeathPackUID > 0)
+ {
+ BattleDebug.LogError($"SkillBase.HandleDead: 鎵惧埌姝讳骸鍖咃紝maxDeathPackUID = {maxDeathPackUID}锛屽紑濮嬫敹闆嗘浜″悗鐨勫寘");
+
+ // 1. 鏀堕泦 packList 涓� packUID 澶т簬姝讳骸鍖呯殑鍖�
+ List<GameNetPackBasic> packsToRemove = new List<GameNetPackBasic>();
+ foreach (var pack in packList)
+ {
+ ulong packUID = GetPackUID(pack);
+ if (packUID > maxDeathPackUID)
+ {
+ BattleDebug.LogError($"SkillBase.HandleDead: 浠巔ackList鏀堕泦姝讳骸鍚庣殑鍖� - Type: {pack.GetType().Name}, UID: {packUID}");
+ foreach (var deadPack in deadPackList)
+ {
+ deadPack.packListAfterDeath.Add(pack);
+ }
+ packsToRemove.Add(pack);
+ }
+ }
+
+ // 浠� packList 涓Щ闄よ繖浜涘寘
+ foreach (var pack in packsToRemove)
+ {
+ packList.Remove(pack);
+ }
+
+ // 2. 鏀堕泦 subSkillList 涓� packUID 澶т簬姝讳骸鍖呯殑瀛愭妧鑳�
+ if (tagUseSkillAttack.subSkillList != null && tagUseSkillAttack.subSkillList.Count > 0)
+ {
+ var subSkillsToRemove = new List<HB427_tagSCUseSkill>();
+ foreach (var subSkillPack in tagUseSkillAttack.subSkillList)
+ {
+ ulong subSkillUID = GetPackUID(subSkillPack);
+ if (subSkillUID > maxDeathPackUID)
+ {
+ BattleDebug.LogError($"SkillBase.HandleDead: 浠巗ubSkillList鏀堕泦姝讳骸鍚庣殑鍖� - Type: {subSkillPack.GetType().Name}, UID: {subSkillUID}");
+ foreach (var deadPack in deadPackList)
+ {
+ deadPack.packListAfterDeath.Add(subSkillPack);
+ }
+ subSkillsToRemove.Add(subSkillPack);
+ }
+ }
+
+ // 浠� subSkillList 涓Щ闄よ繖浜涘瓙鎶�鑳�
+ foreach (var subSkill in subSkillsToRemove)
+ {
+ tagUseSkillAttack.subSkillList.Remove(subSkill);
+ }
+ }
+
+ // 3. 鏀堕泦 subSkillCombinePackList 涓� packUID 澶т簬姝讳骸鍖呯殑缁勫悎鍖�
+ if (tagUseSkillAttack.subSkillCombinePackList != null && tagUseSkillAttack.subSkillCombinePackList.Count > 0)
+ {
+ var combinePacksToRemove = new List<CustomHB426CombinePack>();
+ foreach (var subCombinePack in tagUseSkillAttack.subSkillCombinePackList)
+ {
+ // 鎵惧埌缁勫悎鍖呬腑鐨勬渶灏� packUID锛堢粍鍚堝寘鐨� packUID 浠ョ涓�涓寘涓哄噯锛�
+ ulong combinePackUID = 0;
+ if (subCombinePack.packList != null && subCombinePack.packList.Count > 0)
+ {
+ combinePackUID = GetPackUID(subCombinePack.packList[0]);
+ }
+
+ if (combinePackUID > maxDeathPackUID)
+ {
+ BattleDebug.LogError($"SkillBase.HandleDead: 浠巗ubSkillCombinePackList鏀堕泦姝讳骸鍚庣殑鍖� - UID: {combinePackUID}, 鍖呭惈 {subCombinePack.packList.Count} 涓瓙鍖�");
+ // 灏嗙粍鍚堝寘涓殑鎵�鏈夊寘閮芥坊鍔犲埌 packListAfterDeath
+ foreach (var pack in subCombinePack.packList)
+ {
+ foreach (var deadPack in deadPackList)
+ {
+ deadPack.packListAfterDeath.Add(pack);
+ }
+ }
+ combinePacksToRemove.Add(subCombinePack);
+ }
+ }
+
+ // 浠� subSkillCombinePackList 涓Щ闄よ繖浜涚粍鍚堝寘
+ foreach (var combinePack in combinePacksToRemove)
+ {
+ tagUseSkillAttack.subSkillCombinePackList.Remove(combinePack);
+ }
+ }
+ }
+
CheckAfterDeadhPack();
// 淇锛氬厛鏀堕泦瑕佸垹闄ょ殑鍖咃紝閬垮厤鍦╢oreach涓慨鏀归泦鍚�
var dropPacksToRemove = new List<H0704_tagRolePackRefresh>(dropPackList);
foreach (var _dropPack in dropPacksToRemove)
{
- PackageRegedit.Distribute(_dropPack);
+ // 銆愪娇鐢� parentRecordAction.innerRecordPlayer銆�
+ // 鍘熷洜锛氭帀钀藉寘鏄妧鑳芥晥鏋滅殑涓�閮ㄥ垎锛屽簲璇ョ敱褰撳墠SkillRecordAction绠$悊
+ // 鎺夎惤鍖呯殑鍒嗗彂涓庢妧鑳藉畬鎴愮粦瀹氾紝纭繚鍦ㄦ妧鑳紽orceFinish鏃舵纭鐞�
+ PackageRegeditEx.DistributeToRecordAction(_dropPack, parentRecordAction);
packList.Remove(_dropPack);
}
@@ -991,6 +1105,48 @@
for (int i = 0; i < itemList.Count; i++)
dropAssign[i % deadCount].Add(itemList[i]);
return dropAssign;
+ }
+
+ // 鑾峰彇鍖呯殑 packUID
+ protected ulong GetPackUID(GameNetPackBasic pack)
+ {
+ if (pack == null) return 0;
+
+ if (pack is HB422_tagMCTurnFightObjDead deadPack)
+ return deadPack.packUID;
+
+ if (pack is CustomHB426CombinePack combinePack)
+ {
+ var mainSkillPack = combinePack.GetMainHB427SkillPack();
+ return mainSkillPack?.packUID ?? 0;
+ }
+
+ if (pack is HB427_tagSCUseSkill skillPack)
+ return skillPack.packUID;
+
+ if (pack is HB428_tagSCBuffRefresh buffRefresh)
+ return buffRefresh.packUID;
+
+ if (pack is HB429_tagSCBuffDel buffDel)
+ return buffDel.packUID;
+
+ if (pack is HB419_tagSCObjHPRefresh hpRefresh)
+ return hpRefresh.packUID;
+
+ if (pack is HB405_tagMCAddExp expPack)
+ return expPack.packUID;
+
+ if (pack is H0704_tagRolePackRefresh dropPack)
+ return dropPack.packUID;
+
+ // 灏濊瘯閫氳繃鍙嶅皠鑾峰彇 packUID
+ var packUIDField = pack.GetType().GetField("packUID");
+ if (packUIDField != null)
+ {
+ return (ulong)packUIDField.GetValue(pack);
+ }
+
+ return 0;
}
// 鍒嗛厤缁忛獙鍊硷細灏嗙粡楠屽寘骞冲潎鍒嗛厤缁欐瘡涓浜″璞�
@@ -1198,7 +1354,10 @@
SkillRecordAction recordAction = CustomHB426CombinePack.CreateSkillAction(battleField.guid, new List<GameNetPackBasic>() { subSkillPack });
recordAction.fromSkill = this;
otherSkillActionList.Add(recordAction);
- // 瀛愭妧鑳借缃甒aitingPlay=true锛岀瓑寰呯埗鎶�鑳藉姩浣滃畬鎴�
+
+ // 銆愪娇鐢� BattleField.recordPlayer銆�
+ // 鍘熷洜锛氬嵆浣垮湪ForceFinished涓紝瀛愭妧鑳戒篃鏄《灞俁ecordAction锛屽簲璇ョ敱涓籖ecordPlayer绠$悊
+ // 杩欎簺瀛愭妧鑳戒細绔嬪嵆琚獸orceFinish锛屼絾浠嶉渶瑕佹纭殑鎾斁鍣ㄤ笂涓嬫枃
battleField.recordPlayer.ImmediatelyPlay(recordAction, parentRecordAction, true);
}
tagUseSkillAttack.subSkillList.Clear();
@@ -1207,7 +1366,9 @@
SkillRecordAction recordAction = CustomHB426CombinePack.CreateSkillAction(battleField.guid, subCombinePack.packList);
recordAction.fromSkill = this;
otherSkillActionList.Add(recordAction);
- // 瀛愭妧鑳借缃甒aitingPlay=true锛岀瓑寰呯埗鎶�鑳藉姩浣滃畬鎴�
+
+ // 銆愪娇鐢� BattleField.recordPlayer銆�
+ // 鍘熷洜锛氬嵆浣垮湪ForceFinished涓紝瀛愭妧鑳戒篃鏄《灞俁ecordAction锛屽簲璇ョ敱涓籖ecordPlayer绠$悊
battleField.recordPlayer.ImmediatelyPlay(recordAction, parentRecordAction, true);
}
tagUseSkillAttack.subSkillCombinePackList.Clear();
@@ -1298,7 +1459,10 @@
{
if (pack is CustomB421ActionPack actionPack)
actionPack.Distribute();
- PackageRegedit.Distribute(pack);
+ // 銆愪娇鐢� parentRecordAction.innerRecordPlayer銆�
+ // 鍘熷洜锛欶orceFinished鏃跺墿浣欑殑鍖呬篃鏄妧鑳藉唴閮ㄤ骇鐢熺殑锛屽簲璇ョ敱innerRecordPlayer绠$悊
+ // 杩欐牱鍙互纭繚鍗充娇寮哄埗缁撴潫锛屽寘鐨勫鐞嗕篃鍦ㄦ纭殑涓婁笅鏂囦腑
+ PackageRegeditEx.DistributeToRecordAction(pack, parentRecordAction);
}
}
}
@@ -1408,7 +1572,10 @@
}
else
{
- PackageRegedit.Distribute(pack);
+ // 銆愪娇鐢� parentRecordAction.innerRecordPlayer銆�
+ // 鍘熷洜锛氭妧鑳芥墽琛岃繃绋嬩腑鐨勫寘锛圔uff銆佸睘鎬у埛鏂扮瓑锛夋槸鎶�鑳芥晥鏋滅殑涓�閮ㄥ垎
+ // 搴旇鐢盨killRecordAction鐨刬nnerRecordPlayer绠$悊锛岀‘淇濅笌鎶�鑳界敓鍛藉懆鏈熶竴鑷�
+ PackageRegeditEx.DistributeToRecordAction(pack, parentRecordAction);
}
}
@@ -1476,7 +1643,10 @@
foreach (var pack in buffPacks)
{
- PackageRegedit.Distribute(pack);
+ // 銆愪娇鐢� parentRecordAction.innerRecordPlayer銆�
+ // 鍘熷洜锛欱uff鍖呮槸鎶�鑳芥晥鏋滅殑鏍稿績缁勬垚閮ㄥ垎锛屽簲璇ョ敱SkillRecordAction绠$悊
+ // 鍗充娇鏄己鍒跺垎鍙戠殑鎯呭喌锛屼篃瑕佷繚鎸佸湪姝g‘鐨凴ecordAction涓婁笅鏂囦腑
+ PackageRegeditEx.DistributeToRecordAction(pack, parentRecordAction);
}
}
--
Gitblit v1.8.0