mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 02:25:38 +01:00
Core/SAI: Allow dropping a specific amount of aura charges using SMART_ACTION_REMOVEAURASFROMSPELL (action_param2).
(cherry picked from commit ed4feec276)
This commit is contained in:
@@ -776,7 +776,15 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
|
||||
continue;
|
||||
|
||||
if (e.action.removeAura.spell)
|
||||
(*itr)->ToUnit()->RemoveAurasDueToSpell(e.action.removeAura.spell);
|
||||
{
|
||||
if (e.action.removeAura.charges)
|
||||
{
|
||||
if (Aura* aur = (*itr)->ToUnit()->GetAura(e.action.removeAura.spell))
|
||||
aur->ModCharges(-e.action.removeAura.charges, AURA_REMOVE_BY_EXPIRE);
|
||||
}
|
||||
else
|
||||
(*itr)->ToUnit()->RemoveAurasDueToSpell(e.action.removeAura.spell);
|
||||
}
|
||||
else
|
||||
(*itr)->ToUnit()->RemoveAllAuras();
|
||||
|
||||
|
||||
@@ -444,7 +444,7 @@ enum SMART_ACTION
|
||||
SMART_ACTION_FLEE_FOR_ASSIST = 25, // With Emote
|
||||
SMART_ACTION_CALL_GROUPEVENTHAPPENS = 26, // QuestID
|
||||
// none = 27,
|
||||
SMART_ACTION_REMOVEAURASFROMSPELL = 28, // Spellid, 0 removes all auras
|
||||
SMART_ACTION_REMOVEAURASFROMSPELL = 28, // Spellid (0 removes all auras), charges (0 removes aura)
|
||||
SMART_ACTION_FOLLOW = 29, // Distance (0 = default), Angle (0 = default), EndCreatureEntry, credit, creditType (0monsterkill, 1event)
|
||||
SMART_ACTION_RANDOM_PHASE = 30, // PhaseId1, PhaseId2, PhaseId3...
|
||||
SMART_ACTION_RANDOM_PHASE_RANGE = 31, // PhaseMin, PhaseMax
|
||||
@@ -656,6 +656,7 @@ struct SmartAction
|
||||
struct
|
||||
{
|
||||
uint32 spell;
|
||||
uint32 charges;
|
||||
} removeAura;
|
||||
|
||||
struct
|
||||
|
||||
Reference in New Issue
Block a user