diff options
| author | QAston <none@none> | 2010-08-29 03:38:21 +0200 |
|---|---|---|
| committer | QAston <none@none> | 2010-08-29 03:38:21 +0200 |
| commit | 2d877bbbfd0babec91011d472870e230a314d512 (patch) | |
| tree | fc76003bdef66fed41f9d63cefc9de03a05f40d4 /src/server/game/Spells | |
| parent | f67441b863ae449c2e9e7fab767531e7637d6753 (diff) | |
*Allow damage shield hits to miss.
*Send overkill on damage shield hit.
*Correct data order for execute log of power take effects.
--HG--
branch : trunk
Diffstat (limited to 'src/server/game/Spells')
| -rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 1 |
3 files changed, 5 insertions, 8 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 8adc7f83744..2fc836c76ca 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -1238,12 +1238,8 @@ bool AuraEffect::IsPeriodicTickCrit(Unit * target, Unit const * caster) const void AuraEffect::SendTickImmune(Unit * target, Unit *caster) const { - WorldPacket data(SMSG_SPELLORDAMAGE_IMMUNE, 8+8+4+1); - data << uint64(caster ? caster->GetGUID() : target->GetGUID()); - data << uint64(target->GetGUID()); - data << uint32(m_spellProto->Id); - data << uint8(1); - target->SendMessageToSet(&data,true); + if (caster) + caster->SendSpellDamageImmune(target, m_spellProto->Id); } void AuraEffect::PeriodicTick(Unit * target, Unit * caster) const diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 18006c55ab2..457bc1e019b 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -4153,8 +4153,8 @@ void Spell::ExecuteLogEffectTakeTargetPower(uint8 effIndex, Unit * target, uint3 { InitEffectExecuteData(effIndex); m_effectExecuteData[effIndex]->append(target->GetPackGUID()); - *m_effectExecuteData[effIndex] << uint32(powerType); *m_effectExecuteData[effIndex] << uint32(powerTaken); + *m_effectExecuteData[effIndex] << uint32(powerType); *m_effectExecuteData[effIndex] << float(gainMultiplier); } @@ -4176,7 +4176,7 @@ void Spell::ExecuteLogEffectDurabilityDamage(uint8 effIndex, Unit * victim, uint { InitEffectExecuteData(effIndex); m_effectExecuteData[effIndex]->append(victim->GetPackGUID()); - *m_effectExecuteData[effIndex] << uint32(itemslot); + *m_effectExecuteData[effIndex] << uint32(m_spellInfo->Id); *m_effectExecuteData[effIndex] << uint32(damage); } diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 0100fd7a6f9..c022309c85a 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2585,6 +2585,7 @@ void Spell::EffectHealthLeech(SpellEffIndex effIndex) float healMultiplier = SpellMgr::CalculateSpellEffectValueMultiplier(m_spellInfo, effIndex, m_originalCaster, this); int32 newDamage = int32(damage * healMultiplier); + newDamage = std::min(int32(unitTarget->GetHealth()), newDamage); m_damage += newDamage; if (m_caster->isAlive()) |
