diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 7a1869a10fb..afbfe25899d 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -853,6 +853,18 @@ void Map::Update(uint32 t_diff) for (Unit* unit : toVisit) VisitNearbyCellsOf(unit, grid_object_update, world_object_update); } + + { // Update any creatures that own auras the player has applications of + std::unordered_set toVisit; + for (std::pair pair : player->GetAppliedAuras()) + { + if (Unit* caster = pair.second->GetBase()->GetCaster()) + if (caster->GetTypeId() != TYPEID_PLAYER) + toVisit.insert(caster); + } + for (Unit* unit : toVisit) + VisitNearbyCellsOf(unit, grid_object_update, world_object_update); + } } // non-player active objects, increasing iterator in the loop in case of object removal