diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Player.cpp | 1 | ||||
-rw-r--r-- | src/game/Unit.cpp | 16 |
2 files changed, 13 insertions, 4 deletions
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()) |