*Fix the bug that Lay on Hands heals the target for an amount equal to the target's maximum health instead of the caster's maximum health.
--HG-- branch : trunk
This commit is contained in:
@@ -4348,7 +4348,20 @@ void Spell::EffectHealMaxHealth(uint32 /*i*/)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
uint32 addhealth = unitTarget->GetMaxHealth() - unitTarget->GetHealth();
|
uint32 addhealth = unitTarget->GetMaxHealth() - unitTarget->GetHealth();
|
||||||
unitTarget->SetHealth(unitTarget->GetMaxHealth());
|
|
||||||
|
// Lay on Hands
|
||||||
|
if(m_spellInfo->SpellFamilyName == SPELLFAMILY_PALADIN && m_spellInfo->SpellFamilyFlags & 0x0000000000008000)
|
||||||
|
{
|
||||||
|
if(!m_originalCaster)
|
||||||
|
return;
|
||||||
|
addhealth = addhealth > m_originalCaster->GetMaxHealth() ? m_originalCaster->GetMaxHealth() : addhealth;
|
||||||
|
uint32 LoHamount = unitTarget->GetHealth() + m_originalCaster->GetMaxHealth();
|
||||||
|
LoHamount = LoHamount > unitTarget->GetMaxHealth() ? unitTarget->GetMaxHealth() : LoHamount;
|
||||||
|
unitTarget->SetHealth(LoHamount);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
unitTarget->SetHealth(unitTarget->GetMaxHealth());
|
||||||
|
|
||||||
if(m_originalCaster)
|
if(m_originalCaster)
|
||||||
m_originalCaster->SendHealSpellLog(unitTarget, m_spellInfo->Id, addhealth, false);
|
m_originalCaster->SendHealSpellLog(unitTarget, m_spellInfo->Id, addhealth, false);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user