РелизCrash Doctor2.2.0.4

Crash Doctor 2.2.0.4 — шесть новых защит

Шесть новых защит от вылетов, исправлены собственные ошибки мода, вкладка «Моды» узнаёт переименованные моды. Одна установка на Bannerlord 1.2 / 1.3.15 / 1.4.x.

Коротко

  • Шесть новых защит: клан без лидера, развёртывание в осаде, меню поселения, житель вне списка, юнит TOR без культуры, битый набор экипировки при старте кампании
  • Исправлены редкие вылеты по вине самого Доктора и починка сейва «уничтоженные отряды вернулись»
  • Вкладка «Моды» понимает переименованные моды и не требует лишнего
  • Под Linux/Proton не предлагает настройки Windows; report.txt скрывает имя пользователя и ПК

Уже в Steam Workshop — обновится само. Через лаунчер прилетит автоматически. Всё, что сделано с 15 сентября, одним релизом. Bannerlord 1.2 / 1.3.15 / 1.4.x — одна установка на все версии.

⚠️ Сначала о наших собственных ошибках

  • На некоторых установках (очень редко!) Доктор сам ронял игру при каждом изменении состава отряда. Мод везёт две свои сборки — для 1.2 и для 1.3 и новее — и выбирает нужную при запуске. У обеих было одинаковое имя, и на части установок игра подхватывала сборку для 1.2 вместо нужной. Теперь у сборок разные имена, а загрузчик чужую не запускает, а отказывается от неё и пишет об этом в лог.
  • Починка сейва «уничтоженные отряды вернулись на карту» не сработала ни разу — она проверяла отряды раньше, чем загрузка их расставляла. Хуже того, на каждой повторной загрузке за один запуск игры она сообщала о починке, которой не было. Переписана: теперь карта проверяется после того, как загрузка закончилась.
  • Если игра работает на среде .NET Core, отчёт о вылете report.txt не записывался вовсе — одна строка про объём памяти роняла весь файл. Исправлено.
  • Культура, которую Доктор подставляет войскам без культуры, бралась из первой кампании за запуск игры. Во второй и следующих кампаниях игра получала объект из кампании, которой уже нет. Теперь подстановка берётся из текущей.

🛡 Шесть новых защит

Включены по умолчанию, у каждой свой выключатель на вкладке «Фиксы крашей».

  • Вылет на карте через 20–30 секунд после каждой загрузки: клан без лидера. Раз в день игра считает финансы каждого клана через его лидера. Клан, который мод создал без лидера или добавил к уже идущей кампании, ронял её каждые сутки. Защита назначает лидером живого члена клана — ровно так, как это делает сама игра.
  • Вылет при развёртывании в осаде. ИИ создаёт новый строй пустым и копирует в него приказы до того, как туда войдёт хоть один боец. Мод спросил у такого строя, где его ближайший враг, — и игра упала в нативном коде, где этот вылет уже ничто не ловит. Защита отвечает «врага нет» для строя, в котором ещё не было бойцов, и называет мод, который спросил.
  • Вылет при открытии меню поселения, которое просит места, которых в поселении нет (например, меню города, открытое в замке).
  • Вылет в городе или деревне: житель пропал из списка места, по которому ходит.
  • Вылет The Old Realms в бою при убийстве юнита, у войска которого нет культуры.
  • Вылет при старте новой кампании: персонаж берёт несуществующий набор экипировки. Игра склеивает файлы персонажей всех модов в один, и одна битая ссылка молча обрывала загрузку всех персонажей ниже — включая героя игрока. Защита пропускает битую ссылку, а вкладка «Моды» называет мод и персонажа ещё до старта.

Плюс защита «отряд без владельца» теперь закрывает и суточный ремонт кораблей War Sails — там вылет приходил в один и тот же игровой час после каждой загрузки.

🔎 Вкладка «Моды»

  • Знает переименованные моды. Если мод сменил свой идентификатор, а дополнение к нему ссылается на старый (звуковой аддон Europe 1700 требует EoE1700, а сам Empires of Europe 1700 давно называется Europe1700), Доктор больше не пишет «не хватает, подпишись». Мод под новым именем включён — жалобы нет; установлен, но выключен — Доктор так и говорит и называет, что включить.
  • Требование «включи модуль игры» (например, War Sails) больше не берётся из чужого файла мода: у одного мода бывают разные файлы — с War Sails и без.
  • Новая проверка: персонажи, которые берут наборы экипировки, не описанные ни одним модом.
  • Проверка «войска без данных» больше не обвиняет мод, чьи устаревшие флаги экипировки Доктор уже обезвредил.
  • База совместимости модов обновлена — теперь и с версией игры 1.5.2.

🐧 Linux и Steam Deck (Proton)

Своего Linux-клиента у Bannerlord нет — игра идёт через Proton. Доктор это распознаёт и больше не предлагает 19 проверок, которые меняют настройки Windows: под Proton они относились бы не к компьютеру, а к его эмуляции.

🔗 Совместимость

С Tales from the Age of Men Доктор считал Harmony выключенным, и все живые защиты стояли без дела. Теперь их сборка Harmony распознаётся.

💾 Очистка сейва

Новая галочка «Также удалить сбойные отряды» на экране анализа сейва (Ctrl+Alt+D в кампании). По умолчанию выключена; ваш собственный отряд и отряды с героями вашего клана не трогает никогда. Запасной путь очистки, который без нужного дополнения удалял любые пустые отряды — в том числе пустые гарнизоны, — удалён.

🧹 По итогам полной проверки мода

  • Карточки кэша шейдеров больше не удаляют файлы, которые поставляются с игрой и модами, — только кэш, который игра генерирует сама.
  • Главный диагноз больше не зависит от среды запуска: конкретное правило всегда стоит выше общего «упал код мода».
  • Восемнадцать защит больше не засчитывают «предотвращённый вылет» на чужих ошибках — счётчик на вкладке «Предотвращено» честный.
  • В экспортном report.txt имя пользователя Windows и имя компьютера заменяются на <user> и <PC> — отчёты выкладывают на форумы.
  • Карточки «Краш-дампы» и «Кэш шейдеров» исчезают после очистки и не возвращаются.
  • Тринадцать сообщений защит переведены на французский.

Вылет? Закройте окно вылета игры без отправки в TaleWorlds — отправка удаляет файлы вылета. Затем в Crash Doctor откройте «Диагностика крашей», нажмите «Экспорт» и пришлите получившийся файл.

Crash Doctor → Обсудить в Telegram