aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Player.cpp2
-rw-r--r--src/game/SpellAuras.cpp18
-rw-r--r--src/game/Unit.cpp9
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;