diff --git a/src/server/scripts/Kalimdor/zone_tanaris.cpp b/src/server/scripts/Kalimdor/zone_tanaris.cpp index 419fe473f59206..fcdbaa6aa2438c 100644 --- a/src/server/scripts/Kalimdor/zone_tanaris.cpp +++ b/src/server/scripts/Kalimdor/zone_tanaris.cpp @@ -242,16 +242,28 @@ class npc_custodian_of_time : public CreatureScript break; case 24: Talk(WHISPER_CUSTODIAN_14, player); - DoCast(player, 34883); - // below here is temporary workaround, to be removed when spell works properly - player->AreaExploredOrEventHappens(10277); + if (Group* group = player->GetGroup()) + { + for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next()) + { + Player* player = itr->GetSource(); + + // for any leave or dead (with not released body) group member at appropriate distance + if (player && player->IsAtGroupRewardDistance(me) && !player->GetCorpse()) + DoCast(player, 34883); // QID 10277 + + } + } + else + { + DoCast(player, 34883); // QID 10277 + } break; } } } void MoveInLineOfSight(Unit* who) override - { if (HasEscortState(STATE_ESCORT_ESCORTING)) return;