Ports from (https://github.com/TrinityCore/TrinityCore)
Core/Unit: don't clear low health aura states on death Core/Gossip: Fix gossip bug on modify money Core/Spells: Change the radius of PBAoEs following the feedback received on Core/Player: update interaction checks, some info taken from client Core/Spell: abort channeling if no valid targets are found after searching Core/Creature: fix _DespawnAtEvade saving wrong respawn time Core/Spell: fixed some problems with per caster aura states Quickfix a bug introduced by 2f19d97 which prevented GTAoE from being cast. Core/SmartAI: allow SMART_ACTION_SEND_GOSSIP_MENU to override default gossip Core/Spell: in case of immunity, check all effects to choose correct procFlags, as none has technically hit Fix evade issues when a spell hits the target just before evading. Scripts/Command: implement .debug play music command Partial revert, Unit::getAttackerForHelper() shouldn't return units that we aren't in combat with (victim can be such a unit for players/player pets, which can startattack from a distance without entering combat). Fix an issue where CanSpawn would never get invoked on creatures without per-guid script. Core/Players: fix null dereference crash
This commit is contained in:
@@ -3965,9 +3965,22 @@ namespace Game.Entities
|
||||
ToTotem().SetDeathState(DeathState.JustDied);
|
||||
}
|
||||
|
||||
// Remove aurastates only if were not found
|
||||
if (!auraStateFound)
|
||||
ModifyAuraState(auraState, false);
|
||||
// Remove aurastates only if needed and were not found
|
||||
if (auraState != 0)
|
||||
{
|
||||
if (!auraStateFound)
|
||||
ModifyAuraState(auraState, false);
|
||||
else
|
||||
{
|
||||
// update for casters, some shouldn't 'see' the aura state
|
||||
uint aStateMask = (1u << ((int)auraState - 1));
|
||||
if ((aStateMask & (uint)AuraStateType.PerCasterAuraStateMask) != 0)
|
||||
{
|
||||
m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.AuraState);
|
||||
ForceUpdateFieldChange();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
aura.HandleAuraSpecificMods(aurApp, caster, false, false);
|
||||
}
|
||||
@@ -4099,7 +4112,17 @@ namespace Game.Entities
|
||||
// Update target aura state flag
|
||||
AuraStateType aState = aura.GetSpellInfo().GetAuraState();
|
||||
if (aState != 0)
|
||||
ModifyAuraState(aState, true);
|
||||
{
|
||||
uint aStateMask = (1u << ((int)aState - 1));
|
||||
// force update so the new caster registers it
|
||||
if (aStateMask.HasAnyFlag((uint)AuraStateType.PerCasterAuraStateMask) && (m_unitData.AuraState & aStateMask) != 0)
|
||||
{
|
||||
m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.AuraState);
|
||||
ForceUpdateFieldChange();
|
||||
}
|
||||
else
|
||||
ModifyAuraState(aState, true);
|
||||
}
|
||||
|
||||
if (aurApp.HasRemoveMode())
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user