Core/Spells: Fixed spell effect 93 (SPELL_EFFECT_FORCE_DESELECT)
Port From (https://github.com/TrinityCore/TrinityCore/commit/92e95ddf558db5fdcdf3c54ecd1d694da92c3a44)
This commit is contained in:
@@ -4010,9 +4010,28 @@ namespace Game.Spells
|
||||
if (effectHandleMode != SpellEffectHandleMode.Hit)
|
||||
return;
|
||||
|
||||
float dist = m_caster.GetVisibilityRange();
|
||||
|
||||
// clear focus
|
||||
BreakTarget breakTarget = new BreakTarget();
|
||||
breakTarget.UnitGUID = m_caster.GetGUID();
|
||||
MessageDistDelivererToHostile notifierBreak = new MessageDistDelivererToHostile(m_caster, breakTarget, dist);
|
||||
Cell.VisitWorldObjects(m_caster, notifierBreak, dist);
|
||||
|
||||
// and selection
|
||||
ClearTarget clearTarget = new ClearTarget();
|
||||
clearTarget.Guid = m_caster.GetGUID();
|
||||
m_caster.SendMessageToSet(clearTarget, true);
|
||||
MessageDistDelivererToHostile notifierClear = new MessageDistDelivererToHostile(m_caster, clearTarget, dist);
|
||||
Cell.VisitWorldObjects(m_caster, notifierClear, dist);
|
||||
|
||||
// we should also force pets to remove us from current target
|
||||
List<Unit> attackerSet = new List<Unit>();
|
||||
foreach (var unit in m_caster.getAttackers())
|
||||
if (unit.GetTypeId() == TypeId.Unit && !unit.CanHaveThreatList())
|
||||
attackerSet.Add(unit);
|
||||
|
||||
foreach (var unit in attackerSet)
|
||||
unit.AttackStop();
|
||||
}
|
||||
|
||||
[SpellEffectHandler(SpellEffectName.SelfResurrect)]
|
||||
|
||||
Reference in New Issue
Block a user