diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp index 2109d7265..d14a994e5 100644 --- a/src/server/scripts/World/go_scripts.cpp +++ b/src/server/scripts/World/go_scripts.cpp @@ -821,19 +821,19 @@ public: if (!IsHolidayActive(HOLIDAY_FIRE_FESTIVAL)) break; - Map::PlayerList const& players = me->GetMap()->GetPlayers(); - for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) + std::list targets; + Acore::AnyPlayerInObjectRangeCheck check(me, me->GetVisibilityRange(), false); + Acore::PlayerListSearcherWithSharedVision searcher(me, targets, check); + Cell::VisitWorldObjects(me, searcher, me->GetVisibilityRange()); + for (Player* player : targets) { - if (Player* player = itr->GetSource()) + if (player->GetTeamId() == TEAM_HORDE) { - if (player->GetTeamId() == TEAM_HORDE) - { - me->PlayDirectMusic(EVENTMIDSUMMERFIREFESTIVAL_H, player); - } - else - { - me->PlayDirectMusic(EVENTMIDSUMMERFIREFESTIVAL_A, player); - } + me->PlayDirectMusic(EVENTMIDSUMMERFIREFESTIVAL_H, player); + } + else + { + me->PlayDirectMusic(EVENTMIDSUMMERFIREFESTIVAL_A, player); } }