mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-09 08:17:56 +00:00
feat(Core/Unit): Add OnUnitExitCombat hook (#25215)
This commit is contained in:
@@ -7583,6 +7583,7 @@ void Unit::UpdatePetCombatState()
|
|||||||
void Unit::AtExitCombat()
|
void Unit::AtExitCombat()
|
||||||
{
|
{
|
||||||
RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_LEAVE_COMBAT);
|
RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_LEAVE_COMBAT);
|
||||||
|
sScriptMgr->OnUnitExitCombat(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Unit::AtEngage(Unit* /*target*/)
|
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));
|
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)
|
void ScriptMgr::OnUnitDeath(Unit* unit, Unit* killer)
|
||||||
{
|
{
|
||||||
CALL_ENABLED_HOOKS(UnitScript, UNITHOOK_ON_UNIT_DEATH, script->OnUnitDeath(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_DISPLAYID_CHANGE,
|
||||||
UNITHOOK_ON_UNIT_ENTER_EVADE_MODE,
|
UNITHOOK_ON_UNIT_ENTER_EVADE_MODE,
|
||||||
UNITHOOK_ON_UNIT_ENTER_COMBAT,
|
UNITHOOK_ON_UNIT_ENTER_COMBAT,
|
||||||
|
UNITHOOK_ON_UNIT_EXIT_COMBAT,
|
||||||
UNITHOOK_ON_UNIT_DEATH,
|
UNITHOOK_ON_UNIT_DEATH,
|
||||||
UNITHOOK_ON_UNIT_SET_SHAPESHIFT_FORM,
|
UNITHOOK_ON_UNIT_SET_SHAPESHIFT_FORM,
|
||||||
UNITHOOK_END
|
UNITHOOK_END
|
||||||
@@ -106,6 +107,7 @@ public:
|
|||||||
|
|
||||||
virtual void OnUnitEnterEvadeMode(Unit* /*unit*/, uint8 /*evadeReason*/) { }
|
virtual void OnUnitEnterEvadeMode(Unit* /*unit*/, uint8 /*evadeReason*/) { }
|
||||||
virtual void OnUnitEnterCombat(Unit* /*unit*/, Unit* /*victim*/) { }
|
virtual void OnUnitEnterCombat(Unit* /*unit*/, Unit* /*victim*/) { }
|
||||||
|
virtual void OnUnitExitCombat(Unit* /*unit*/) { }
|
||||||
virtual void OnUnitDeath(Unit* /*unit*/, Unit* /*killer*/) { }
|
virtual void OnUnitDeath(Unit* /*unit*/, Unit* /*killer*/) { }
|
||||||
virtual void OnUnitSetShapeshiftForm(Unit* /*unit*/, uint8 /*form*/) { }
|
virtual void OnUnitSetShapeshiftForm(Unit* /*unit*/, uint8 /*form*/) { }
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -564,6 +564,7 @@ public: /* UnitScript */
|
|||||||
void OnDisplayIdChange(Unit* unit, uint32 displayId);
|
void OnDisplayIdChange(Unit* unit, uint32 displayId);
|
||||||
void OnUnitEnterEvadeMode(Unit* unit, uint8 why);
|
void OnUnitEnterEvadeMode(Unit* unit, uint8 why);
|
||||||
void OnUnitEnterCombat(Unit* unit, Unit* victim);
|
void OnUnitEnterCombat(Unit* unit, Unit* victim);
|
||||||
|
void OnUnitExitCombat(Unit* unit);
|
||||||
void OnUnitDeath(Unit* unit, Unit* killer);
|
void OnUnitDeath(Unit* unit, Unit* killer);
|
||||||
void OnUnitSetShapeshiftForm(Unit* unit, uint8 form);
|
void OnUnitSetShapeshiftForm(Unit* unit, uint8 form);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user