From fbcf4097965a2b0ec6a9d6f3a66ce42029df5156 Mon Sep 17 00:00:00 2001 From: QAston Date: Sun, 2 Aug 2009 02:18:14 +0200 Subject: *Fix ppm handling for victim auras - by pasdVn. --HG-- branch : trunk --- src/game/Player.cpp | 1 - src/game/Unit.cpp | 16 +++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 6cb586b506a..efebca11abe 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -485,7 +485,6 @@ Player::~Player () if (FindMap()) ResetMap(); - // Note: buy back item already deleted from DB when player was saved for(uint8 i = 0; i < PLAYER_SLOTS_COUNT; ++i) { diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 58237a092dd..5df313e4455 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -6889,6 +6889,8 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger // Death Strike healing effect if (dummySpell->Id == 45469) { + if (!pVictim) + return false; basepoints0=pVictim->GetDiseasesByCaster(GetGUID()) * GetMaxHealth()* procSpell->DmgMultiplier[0] / 100.0f; // Do not heal when no diseases on target if (!basepoints0) @@ -13720,10 +13722,18 @@ bool Unit::IsTriggeredAtSpellProcEvent(Unit *pVictim, Aura * aura, SpellEntry co if(spellProcEvent && spellProcEvent->customChance) chance = spellProcEvent->customChance; // If PPM exist calculate chance from PPM - if(!isVictim && spellProcEvent && spellProcEvent->ppmRate != 0) + if(spellProcEvent && spellProcEvent->ppmRate != 0) { - uint32 WeaponSpeed = GetAttackTime(attType); - chance = GetPPMProcChance(WeaponSpeed, spellProcEvent->ppmRate, spellProto); + if(!isVictim) + { + uint32 WeaponSpeed = GetAttackTime(attType); + chance = GetPPMProcChance(WeaponSpeed, spellProcEvent->ppmRate, spellProto); + } + else + { + uint32 WeaponSpeed = pVictim->GetAttackTime(attType); + chance = pVictim->GetPPMProcChance(WeaponSpeed, spellProcEvent->ppmRate, spellProto); + } } // Apply chance modifer aura if(Player* modOwner = GetSpellModOwner()) -- cgit v1.2.3