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 откройте «Диагностика крашей», нажмите «Экспорт» и пришлите получившийся файл.
