aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellAuras.cpp5
-rw-r--r--src/game/SpellEffects.cpp5
-rw-r--r--src/game/SpellHandler.cpp2
-rw-r--r--src/game/SpellMgr.cpp2
-rw-r--r--src/game/Unit.cpp3
5 files changed, 13 insertions, 4 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index dbf657afe3f..333759358a4 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -766,7 +766,8 @@ void AreaAuraEffect::Update(uint32 diff)
case AREA_AURA_PET:
{
if(Unit *owner = caster->GetCharmerOrOwner())
- targets.push_back(owner);
+ if (owner->IsWithinDistInMap(source, m_radius))
+ targets.push_back(owner);
break;
}
}
@@ -836,7 +837,7 @@ void AreaAuraEffect::Update(uint32 diff)
}
else if (!source->IsWithinDistInMap(m_target, m_radius))
{
- if (needFriendly)
+ if (needFriendly && source->isMoving())
{
m_removeTime -= diff;
if (m_removeTime < 0)
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index 44a30705784..3294c32bde8 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -3470,7 +3470,10 @@ void Spell::EffectSummonType(uint32 i)
TempSummon * summon = m_originalCaster->SummonCreature(entry,px,py,pz,m_caster->GetOrientation(),summonType,duration);
if (properties->Category == SUMMON_CATEGORY_ALLY)
- summon->setFaction(m_caster->getFaction());
+ {
+ summon->SetUInt64Value(UNIT_FIELD_SUMMONEDBY, m_originalCaster->GetGUID());
+ summon->setFaction(m_originalCaster->getFaction());
+ }
}
break;
}
diff --git a/src/game/SpellHandler.cpp b/src/game/SpellHandler.cpp
index 74313eaa38b..0e9261598a8 100644
--- a/src/game/SpellHandler.cpp
+++ b/src/game/SpellHandler.cpp
@@ -359,7 +359,7 @@ void WorldSession::HandleCastSpellOpcode(WorldPacket& recvPacket)
}
Spell *spell = new Spell(mover, spellInfo, false);
- spell->m_cast_count = cast_count; // set count of casts
+ spell->m_cast_count = ++cast_count; // set count of casts
spell->prepare(&targets);
}
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index b6bbf322b95..b5911954ce7 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -3568,6 +3568,8 @@ void SpellMgr::LoadSpellCustomAttr()
case 51904: // Summon Ghouls On Scarlet Crusade (core does not know the triggered spell is summon spell)
spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_CASTER;
break;
+ case 29809: // Desecration Arm - 36 instead of 37 - typo? :/
+ spellInfo->EffectRadiusIndex[0] = 37;
default:
break;
}
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 30af6796c9b..0254d255f2c 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -12686,6 +12686,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
DealDamageMods(damageInfo.target,damageInfo.damage,&damageInfo.absorb);
SendSpellNonMeleeDamageLog(&damageInfo);
DealSpellDamage(&damageInfo, true);
+ takeCharges=true;
break;
}
case SPELL_AURA_MANA_SHIELD:
@@ -12751,6 +12752,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
(isVictim?"a victim's":"an attacker's"),triggeredByAura->GetId());
HandleAuraRaidProcFromChargeWithValue(triggeredByAura);
+ takeCharges=true;
break;
}
case SPELL_AURA_RAID_PROC_FROM_CHARGE:
@@ -12759,6 +12761,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
(isVictim?"a victim's":"an attacker's"),triggeredByAura->GetId());
HandleAuraRaidProcFromCharge(triggeredByAura);
+ takeCharges=true;
break;
}
case SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE: