From abeeb8072723e4d73123beb7a00247a924b4fa66 Mon Sep 17 00:00:00 2001 From: Natedog2012 Date: Sat, 13 May 2017 07:30:57 -0700 Subject: [PATCH] Fix SE_ResourceTap where 1000 base is 100% and math fix (ty kayen) --- zone/spell_effects.cpp | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/zone/spell_effects.cpp b/zone/spell_effects.cpp index 1823afb67..e04a136e6 100644 --- a/zone/spell_effects.cpp +++ b/zone/spell_effects.cpp @@ -6686,23 +6686,26 @@ void Mob::ResourceTap(int32 damage, uint16 spellid) for (int i = 0; i < EFFECT_COUNT; i++) { if (spells[spellid].effectid[i] == SE_ResourceTap) { - damage += (damage * spells[spellid].base[i]) / 100; - - if (spells[spellid].max[i] && (damage > spells[spellid].max[i])) - damage = spells[spellid].max[i]; - - if (spells[spellid].base2[i] == 0) { // HP Tap - if (damage > 0) - HealDamage(damage); - else - Damage(this, -damage, 0, EQEmu::skills::SkillEvocation, false); + damage = (damage * spells[spellid].base[i]) / 1000; + + if (damage) { + if (spells[spellid].max[i] && (damage > spells[spellid].max[i])) + damage = spells[spellid].max[i]; + + if (spells[spellid].base2[i] == 0) { // HP Tap + if (damage > 0) + HealDamage(damage); + else + Damage(this, -damage, 0, EQEmu::skills::SkillEvocation, false); + } + + if (spells[spellid].base2[i] == 1) // Mana Tap + SetMana(GetMana() + damage); + + if (spells[spellid].base2[i] == 2 && IsClient()) // Endurance Tap + CastToClient()->SetEndurance(CastToClient()->GetEndurance() + damage); + } - - if (spells[spellid].base2[i] == 1) // Mana Tap - SetMana(GetMana() + damage); - - if (spells[spellid].base2[i] == 2 && IsClient()) // Endurance Tap - CastToClient()->SetEndurance(CastToClient()->GetEndurance() + damage); } } }