diff --git a/zone/spells.cpp b/zone/spells.cpp index 6daa430ce..9bc775aa3 100644 --- a/zone/spells.cpp +++ b/zone/spells.cpp @@ -2307,6 +2307,19 @@ bool Mob::DetermineSpellTargets(uint16 spell_id, Mob *&spell_target, Mob *&ae_ce if(GetOwner()) group_id_caster = (GetRaid()->GetGroup(GetOwner()->CastToClient()) == 0xFFFF) ? 0 : (GetRaid()->GetGroup(GetOwner()->CastToClient()) + 1); } + if (IsGrouped()) + { + if (Group* group = GetGroup()) { + group_id_caster = group->GetID(); + } + } + else if (IsRaidGrouped()) + { + if (Raid* raid = GetRaid()) { + uint32 group_id = raid->GetGroup(GetName()); + group_id_caster = (group_id == 0xFFFFFFFF) ? 0 : (group_id + 1); + } + } } if(spell_target->IsClient())