*Auras by caster are now shown correctly (doublesized).

*First rank of Psychic Horror now procs correctly.
*Mana drain effects amount of damage is now correct.
*Raczman is now satisfied.

--HG--
branch : trunk
rename : sql/updates/1910_world.sql => sql/updates/1912_world.sql
This commit is contained in:
QAston
2009-03-15 16:20:10 +01:00
parent 8b246d66d3
commit d910fc951e
6 changed files with 12 additions and 21 deletions
+1 -12
View File
@@ -846,7 +846,7 @@ void Aura::_AddAura()
assert(slot < MAX_AURAS); // assert that we find a slot and it is valid
AuraSlotEntry t_entry;
t_entry.m_Flags=(IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE);
t_entry.m_Flags=(IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE) | ((GetCasterGUID() == m_target->GetGUID()) ? AFLAG_CASTER : AFLAG_NONE) | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE);
t_entry.m_Level=(caster ? caster->getLevel() : sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL));
t_entry.m_spellId = GetId();
//init pointers-prevent unexpected behaviour
@@ -5816,17 +5816,6 @@ void Aura::PeriodicTick()
int32 drain_amount = m_target->GetPower(power) > pdamage ? pdamage : m_target->GetPower(power);
//Viper sting and Drain Life take mana % amount from target, but not bigger than amount*2 of caster mana
if ((m_spellProto->SpellFamilyName==SPELLFAMILY_WARLOCK && m_spellProto->SpellFamilyFlags[0]&0x10)
|| (m_spellProto->SpellFamilyName==SPELLFAMILY_HUNTER && m_spellProto->SpellFamilyFlags[1]&0x80))
{
uint32 drain = m_target->GetMaxPower(power) * drain_amount /100;
if(drain > pCaster->GetMaxPower(power) * drain_amount / 50)
drain_amount = pCaster->GetMaxPower(power) * drain_amount / 50;
else
drain_amount = drain;
}
// resilience reduce mana draining effect at spell crit damage reduction (added in 2.4)
if (power == POWER_MANA && m_target->GetTypeId() == TYPEID_PLAYER)
drain_amount -= ((Player*)m_target)->GetSpellCritDamageReduction(drain_amount);