/colors уже здесь, а цветовые коды в чате больше не перетекают друг в друга
1000Чёрно-золотые латы под рогатым шлемом, лук, натягивающий тетиву из расплавленного света, и охотничья стая, что приходит через разлом, а не выбегает из кустов. Он стоит на дороге, прорубленной сквозь пылающий каньон.
Зелень выжжена из каждой способности, и новые эффекты - не перекраска старых. Overgrowth не прорастает: багровая роза раскалывает землю внутри кольца шипов и выбрасывает столп красного света. Гончие прорываются через портал, а не выбегают трусцой из леса. Даже его шаги оставляют за собой тлеющие угли.
Приводим к единообразию то, как Protective Charm героя Jeraziah взаимодействует со всем, что снимает баффы. Теперь Protective Charm помечен как снимаемый иммунитет, и из этого вытекает одно правило:

Шейдеры героев тоже немного подправлены, чтобы материалы выглядели одинаково в Store, в лобби и в игре. Некоторые поверхности получали освещение дважды, а шероховатый металл отражал свет резче, чем должен. Разница небольшая, но несколько героев, особенно в доспехах, будут выглядеть чуть иначе.
Раньше каждый отключённый рейтинговый режим винил разрыв в рейтинге. Теперь у Caldavar и Mid Wars своя причина, поэтому лимит размера группы при высоком MMR и ограничение по разнице рейтинга указываются отдельно, и в подсказке режима, и в строке уведомления.
А причина, которая блокирует лишь один режим, больше не выглядит так, будто ничего не происходит: если один рейтинговый режим недоступен для вашей группы, а в другой встать в очередь можно, вы получите предупреждение с объяснением причины, а не тишину.
/colorsВыводит все цветовые коды текста, которые можно использовать в чате, с живым предпросмотром каждого. Доступна вне матча.
^: больше не наследует цвет свечения вашего ника: он сбрасывается на белый.^$ в поле чата теперь показывается как свечение, а не окрашивает текст./colors в чате. Именованные коды можно писать и заглавными буквами.После сдачи матч продолжал симулироваться, и игрок, который оставался в игре, мог фармить брошенных героев. Эти убийства попадали в запись матча и в счётчики статистики аккаунта.
Убийства, смерти, помощи, урон, золото, варды и вся остальная отслеживаемая статистика теперь замирают, как только определён победитель или принята сдача. Это касается и табло в реальном времени, и итоговой сводки, собранной по реплею.
Каст в точку за пределами вашей дальности теперь сдвигается чуть внутрь её границы, а не принимается как есть. Способности с дальностью по пути, например Charging Strikes у Dark Lady и Wave Form у Myrmidon, ограничиваютсявдоль проходимого пути , так что принудительный каст больше не унесёт вас дальше, чем позволяет способность. Приказы с целью на юнит не затрагиваются.
Матч мог зависатьна несколько секунд подряд , так надолго, что игроки отваливались по тайм-ауту и переподключались прямо посреди зависания. Все случаи сводились к одному месту: коду, который рассчитывает, как юниты ходят по карте.
Там накладывались друг на друга четыре отдельные ошибки, и все четыре исправлены:
Кроме того, длинные маршруты теперь рассчитываются поэтапно, а не поиском по всей карте сразу, юниты, идущие в одно место, используют общие расчёты, а поиск, у которого кончилось время, ведёт юнит по лучшему найденному маршруту, а не оставляет его стоять на месте.
Failed to load k2.dll. Error (1114) исправлена в корнеЛаунчер проверял реестр, чтобы решить, нужно ли восстанавливать Visual C++ runtime, но реестр хранит то, что было последнимустановлено, а не то, что реально лежит на диске. Компьютер, где MSVCP140.dll 2017 года лежал рядом с в остальном актуальным набором runtime, проходил проверку и затем падал при запуске, а виноватой оказывалась k2.dll , хотя этот файл ей никогда не принадлежал.
Теперь лаунчер проверяет файлы runtime, которые на самом деле подгружает загрузчик, и запускаетвосстановлениевместо установки, если пакет зарегистрирован, но файлы не те. После этого он проверяет всё повторно, а не полагается на код выхода установщика, и сообщает, когда нужна перезагрузка.
Лаунчер и раньше переключался на прямое подключение по IP, если не удавалось разрешить имя. Клиент этого не делал и выдавал errors resolving auth.juvio.com . Теперь у обоих один и тот же запасной вариант, и он охватывает все сервисы, с которыми работает клиент.