Core/Scripts: Implemented new aura script hook OnEnterLeaveCombat
Port From (https://github.com/TrinityCore/TrinityCore/commit/2420f4e7a10c430ea28b2d71a17f54da0c244a54)
This commit is contained in:
@@ -2210,7 +2210,7 @@ namespace Game.Entities
|
||||
stmt.AddValue(index++, GetStat((Stats)i));
|
||||
|
||||
for (int i = 0; i < (int)SpellSchools.Max; ++i)
|
||||
stmt.AddValue(index++, GetResistance((SpellSchools)i)));
|
||||
stmt.AddValue(index++, GetResistance((SpellSchools)i));
|
||||
|
||||
stmt.AddValue(index++, (float)m_activePlayerData.BlockPercentage);
|
||||
stmt.AddValue(index++, (float)m_activePlayerData.DodgePercentage);
|
||||
|
||||
@@ -3912,8 +3912,10 @@ namespace Game.Entities
|
||||
public static bool IsValidClass(Class _class) { return Convert.ToBoolean((1 << ((int)_class - 1)) & (int)Class.ClassMaskAllPlayable); }
|
||||
public static bool IsValidRace(Race _race) { return Convert.ToBoolean((ulong)SharedConst.GetMaskForRace(_race) & SharedConst.RaceMaskAllPlayable); }
|
||||
|
||||
public void OnCombatExit()
|
||||
public override void OnCombatExit()
|
||||
{
|
||||
base.OnCombatExit();
|
||||
|
||||
UpdatePotionCooldown();
|
||||
m_combatExitTime = Time.GetMSTime();
|
||||
}
|
||||
|
||||
@@ -285,8 +285,8 @@ namespace Game.Entities
|
||||
else if (!IsCharmed())
|
||||
return;
|
||||
}
|
||||
else
|
||||
ToPlayer().OnCombatExit();
|
||||
|
||||
OnCombatExit();
|
||||
|
||||
RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags.LeavingCombat);
|
||||
}
|
||||
@@ -328,6 +328,15 @@ namespace Game.Entities
|
||||
return fThreat * m_threatModifier[(int)school];
|
||||
}
|
||||
|
||||
public virtual void OnCombatExit()
|
||||
{
|
||||
foreach (var pair in m_appliedAuras)
|
||||
{
|
||||
AuraApplication aurApp = pair.Value;
|
||||
aurApp.GetBase().CallScriptEnterLeaveCombatHandlers(aurApp, false);
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsTargetableForAttack(bool checkFakeDeath = true)
|
||||
{
|
||||
if (!IsAlive())
|
||||
@@ -1428,6 +1437,12 @@ namespace Game.Entities
|
||||
foreach (var unit in m_Controlled)
|
||||
unit.SetInCombatState(PvP, enemy);
|
||||
|
||||
foreach (var pair in m_appliedAuras)
|
||||
{
|
||||
AuraApplication aurApp = pair.Value;
|
||||
aurApp.GetBase().CallScriptEnterLeaveCombatHandlers(aurApp, true);
|
||||
}
|
||||
|
||||
RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags.EnteringCombat);
|
||||
ProcSkillsAndAuras(enemy, ProcFlags.EnterCombat, ProcFlags.None, ProcFlagsSpellType.MaskAll, ProcFlagsSpellPhase.None, ProcFlagsHit.None, null, null, null);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user