From 7035e875437f992a6dc025a80307e147870f3591 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Wed, 29 Mar 2023 06:27:17 +0200 Subject: [PATCH] fix(Core/Spells): Shadow Word: Death vs critters. (#15594) Fixes #14299 --- src/server/game/Entities/Player/Player.cpp | 9 ++++++--- src/server/game/Entities/Unit/Unit.cpp | 4 +++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 6067344bf..c53e3a83c 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -12566,15 +12566,18 @@ bool Player::isHonorOrXPTarget(Unit* victim) const // Victim level less gray level if (v_level <= k_grey) + { return false; + } if (victim->GetTypeId() == TYPEID_UNIT) { - if (victim->IsTotem() || - victim->IsPet() || - victim->ToCreature()->GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_NO_XP) + if (victim->IsTotem() || victim->IsCritter() || victim->IsPet() || (victim->ToCreature()->GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_NO_XP)) + { return false; + } } + return true; } diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 96a06c55f..c201dfb9e 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -17980,8 +17980,10 @@ void Unit::Kill(Unit* killer, Unit* victim, bool durabilityLoss, WeaponAttackTyp sScriptMgr->OnCreatureKilledByPet( killer->GetCharmerOrOwnerPlayerOrPlayerItself(), victim->ToCreature()); } - if (killer != victim && !victim->IsCritter()) + if (killer != victim) + { Unit::ProcDamageAndSpell(killer, victim, killer ? PROC_FLAG_KILL : 0, PROC_FLAG_KILLED, PROC_EX_NONE, 0, attackType, spellProto, nullptr, -1, spell); + } // Proc auras on death - must be before aura/combat remove Unit::ProcDamageAndSpell(victim, nullptr, PROC_FLAG_DEATH, PROC_FLAG_NONE, PROC_EX_NONE, 0, attackType, spellProto, nullptr, -1, spell);