feat(Core/Unit): Add OnUnitExitCombat hook (#25215)

This commit is contained in:
Justin
2026-07-01 04:41:26 +08:00
committed by GitHub
parent 30cea3f081
commit 1bd5fb7037
4 changed files with 9 additions and 0 deletions
+1
View File
@@ -7583,6 +7583,7 @@ void Unit::UpdatePetCombatState()
void Unit::AtExitCombat()
{
RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_LEAVE_COMBAT);
sScriptMgr->OnUnitExitCombat(this);
}
void Unit::AtEngage(Unit* /*target*/)
@@ -124,6 +124,11 @@ void ScriptMgr::OnUnitEnterCombat(Unit* unit, Unit* victim)
CALL_ENABLED_HOOKS(UnitScript, UNITHOOK_ON_UNIT_ENTER_COMBAT, script->OnUnitEnterCombat(unit, victim));
}
void ScriptMgr::OnUnitExitCombat(Unit* unit)
{
CALL_ENABLED_HOOKS(UnitScript, UNITHOOK_ON_UNIT_EXIT_COMBAT, script->OnUnitExitCombat(unit));
}
void ScriptMgr::OnUnitDeath(Unit* unit, Unit* killer)
{
CALL_ENABLED_HOOKS(UnitScript, UNITHOOK_ON_UNIT_DEATH, script->OnUnitDeath(unit, killer));
@@ -41,6 +41,7 @@ enum UnitHook
UNITHOOK_ON_DISPLAYID_CHANGE,
UNITHOOK_ON_UNIT_ENTER_EVADE_MODE,
UNITHOOK_ON_UNIT_ENTER_COMBAT,
UNITHOOK_ON_UNIT_EXIT_COMBAT,
UNITHOOK_ON_UNIT_DEATH,
UNITHOOK_ON_UNIT_SET_SHAPESHIFT_FORM,
UNITHOOK_END
@@ -106,6 +107,7 @@ public:
virtual void OnUnitEnterEvadeMode(Unit* /*unit*/, uint8 /*evadeReason*/) { }
virtual void OnUnitEnterCombat(Unit* /*unit*/, Unit* /*victim*/) { }
virtual void OnUnitExitCombat(Unit* /*unit*/) { }
virtual void OnUnitDeath(Unit* /*unit*/, Unit* /*killer*/) { }
virtual void OnUnitSetShapeshiftForm(Unit* /*unit*/, uint8 /*form*/) { }
};
+1
View File
@@ -564,6 +564,7 @@ public: /* UnitScript */
void OnDisplayIdChange(Unit* unit, uint32 displayId);
void OnUnitEnterEvadeMode(Unit* unit, uint8 why);
void OnUnitEnterCombat(Unit* unit, Unit* victim);
void OnUnitExitCombat(Unit* unit);
void OnUnitDeath(Unit* unit, Unit* killer);
void OnUnitSetShapeshiftForm(Unit* unit, uint8 form);