From a3c6ec9aa1f97ff16216628e37da2010837a035b Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Mon, 9 Feb 2026 18:08:49 +0700 Subject: [PATCH] Add force attack --- Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMelee.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMelee.cs b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMelee.cs index 53269404e5..a97d4098c2 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMelee.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMelee.cs @@ -98,8 +98,11 @@ class CECHPWorkMelee : CECHPWork if (idTraceTarget != 0 && !m_pHost.IsRooting()) { + // When target is another player (e.g. duel opp), pass bForceAttack so CECTracedPlayer sends correct PVP mask + bool bForceAttack = (m_pHost.IsInDuel() && m_idTarget == m_pHost.GetDuelOpponentId()) + || EC_Utility.glb_GetForceAttackFlag(null); CECHPWorkTrace pWork = (CECHPWorkTrace)m_pWorkMan.CreateWork(Host_work_ID.WORK_TRACEOBJECT); - pWork.SetTraceTarget(pWork.CreatTraceTarget(idTraceTarget, CECHPWorkTrace.Trace_reason.TRACE_ATTACK)); + pWork.SetTraceTarget(pWork.CreatTraceTarget(idTraceTarget, CECHPWorkTrace.Trace_reason.TRACE_ATTACK, bForceAttack)); m_pWorkMan.SetPostTickCommand(new CECHPWorkPostTickCommand1(pWork)); return true; }