From 11e448a230e0e9c219d2ef713630688f32d0d284 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Wed, 3 Sep 2025 08:13:42 -0300 Subject: [PATCH] fix(Scripts/Spells): Fix group credit for Salvaging Life's Strength quest spell (#22779) --- src/server/scripts/Spells/spell_quest.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index b6dae13a2..37d438e50 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -1527,12 +1527,27 @@ class spell_q12805_lifeblood_dummy : public SpellScript void HandleScript(SpellEffIndex /*effIndex*/) { Player* caster = GetCaster()->ToPlayer(); - if (Creature* target = GetHitCreature()) + Creature* target = GetHitCreature(); + + if (!target) + return; + + if (Group* group = caster->GetGroup()) { - caster->KilledMonsterCredit(NPC_SHARD_KILL_CREDIT); - target->CastSpell(target, uint32(GetEffectValue()), true); - target->DespawnOrUnsummon(2000); + ObjectGuid targetGUID = target->GetGUID(); + group->DoForAllMembers([targetGUID](Player* player) + { + if (Creature* shard = ObjectAccessor::GetCreature(*player, targetGUID)) + if (player->IsAtGroupRewardDistance(shard)) + player->KilledMonsterCredit(NPC_SHARD_KILL_CREDIT); + + }); } + else + caster->KilledMonsterCredit(NPC_SHARD_KILL_CREDIT); + + target->CastSpell(target, uint32(GetEffectValue()), true); + target->DespawnOrUnsummon(2000); } void Register() override