diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Player.cpp | 2 | ||||
-rw-r--r-- | src/game/SpellAuras.cpp | 18 | ||||
-rw-r--r-- | src/game/Unit.cpp | 9 |
3 files changed, 11 insertions, 18 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 56877656876..210728eb777 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -18940,7 +18940,7 @@ void Player::learnSkillRewardedSpells(uint32 skill_id, uint32 skill_value ) void Player::SendAurasForTarget(Unit *target) { - if(target->GetVisibleAuras()->empty()) // speedup things + if(!target || target->GetVisibleAuras()->empty()) // speedup things return; WorldPacket data(SMSG_AURA_UPDATE_ALL); diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 74fcfefae41..62726939ba5 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -276,7 +276,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= &Aura::HandleModManaRegen, //219 SPELL_AURA_MOD_MANA_REGEN_FROM_STAT &Aura::HandleModRatingFromStat, //220 SPELL_AURA_MOD_RATING_FROM_STAT &Aura::HandleNULL, //221 ignored - &Aura::HandleUnused, //222 unused + &Aura::HandleNULL, //222 unused &Aura::HandleNULL, //223 Cold Stare &Aura::HandleUnused, //224 unused &Aura::HandleNoImmediateEffect, //225 SPELL_AURA_PRAYER_OF_MENDING @@ -334,7 +334,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= &Aura::HandleNoImmediateEffect, //277 SPELL_AURA_MOD_ABILITY_AFFECTED_TARGETS implemented in spell::settargetmap &Aura::HandleAuraModDisarm, //278 SPELL_AURA_MOD_DISARM_RANGED disarm ranged weapon &Aura::HandleNULL, //279 - &Aura::HandleNULL, //280 SPELL_AURA_MOD_TARGET_ARMOR_PCT + &Aura::HandleNoImmediateEffect, //280 SPELL_AURA_MOD_WEAPONTYPE_IGNORE_TARGET_RESISTANCE &Aura::HandleNoImmediateEffect, //281 SPELL_AURA_MOD_HONOR_GAIN_PCT implemented in Player::RewardHonor &Aura::HandleAuraIncreaseBaseHealthPercent, //282 SPELL_AURA_INCREASE_BASE_HEALTH_PERCENT &Aura::HandleNoImmediateEffect //283 SPELL_AURA_MOD_HEALING_RECEIVED implemented in Unit::SpellHealingBonus @@ -840,11 +840,8 @@ void Aura::_AddAura() SetAuraSlot( slot ); - if(slot < MAX_AURAS) // slot found send data to client - { - // update for out of range group members (on 1 slot use) - m_target->UpdateAuraForGroup(slot); - } + // update for out of range group members (on 1 slot use) + m_target->UpdateAuraForGroup(slot); //***************************************************** // Update target aura state flag (at 1 aura apply) @@ -1055,11 +1052,8 @@ bool Aura::modStackAmount(int32 num) void Aura::RefreshAura() { m_duration = m_maxduration; - if(GetAuraSlot() < MAX_AURAS) // slot found send data to client - { - // update for out of range group members (on 1 slot use) - m_target->UpdateAuraForGroup(GetAuraSlot()); - } + // update for out of range group members (on 1 slot use) + m_target->UpdateAuraForGroup(GetAuraSlot()); } bool Aura::isAffectedOnSpell(SpellEntry const *spell) const diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index d1914623dc4..be764eaee3e 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -4222,11 +4222,8 @@ void Unit::DelayAura(uint32 spellId, uint32 effindex, int32 delaytime) iter->second->SetAuraDuration(0); else iter->second->SetAuraDuration(iter->second->GetAuraDuration() - delaytime); - if(iter->second->GetAuraSlot() < MAX_AURAS) // slot found send data to client - { - // update for out of range group members (on 1 slot use) - UpdateAuraForGroup(iter->second->GetAuraSlot()); - } + // update for out of range group members (on 1 slot use) + UpdateAuraForGroup(iter->second->GetAuraSlot()); sLog.outDebug("Aura %u partially interrupted on unit %u, new duration: %u ms",iter->second->GetModifier()->m_auraname, GetGUIDLow(), iter->second->GetAuraDuration()); } } @@ -11647,6 +11644,8 @@ uint32 Unit::GetCastingTimeForBonus( SpellEntry const *spellProto, DamageEffectT void Unit::UpdateAuraForGroup(uint8 slot) { + if(slot >= MAX_AURAS) // slot not found, return + return; if(GetTypeId() == TYPEID_PLAYER) { Player* player = (Player*)this; |