[11153] Apply at least same checks at used at hit for miss aggro.

* Miss cases must have not less stricted checkd for combat start for comparison with normal hit.
* Also cleanup code
This commit is contained in:
VladimirMangos 2011-02-12 21:56:38 +03:00
parent 241726bf81
commit 709dd6fed8
2 changed files with 13 additions and 10 deletions

View file

@ -1010,18 +1010,21 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target)
if (target->reflectResult == SPELL_MISS_NONE) // If reflected spell hit caster -> do all effect on him
DoSpellHitOnUnit(m_caster, mask);
}
if(missInfo == SPELL_MISS_MISS || missInfo == SPELL_MISS_RESIST)
else if(missInfo == SPELL_MISS_MISS || missInfo == SPELL_MISS_RESIST)
{
Unit* realCaster = GetAffectiveCaster();
if(realCaster && realCaster != unit)
if(real_caster && real_caster != unit)
{
// can cause back attack (if detected)
if (!(m_spellInfo->AttributesEx3 & SPELL_ATTR_EX3_NO_INITIAL_AGGRO) && !IsPositiveSpell(m_spellInfo->Id) &&
m_caster->isVisibleForOrDetect(unit, unit, false))
{
if (!unit->isInCombat() && unit->GetTypeId() != TYPEID_PLAYER && ((Creature*)unit)->AI())
((Creature*)unit)->AI()->AttackedBy(realCaster);
((Creature*)unit)->AI()->AttackedBy(real_caster);
unit->AddThreat(realCaster);
unit->SetInCombatWith(realCaster);
realCaster->SetInCombatWith(unit);
unit->AddThreat(real_caster);
unit->SetInCombatWith(real_caster);
real_caster->SetInCombatWith(unit);
}
}
}

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "11152"
#define REVISION_NR "11153"
#endif // __REVISION_NR_H__