*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
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user