Цель данного руководства – объяснить, что вызывает различные виды вылетов из игры
Medieval 2: Total War на рабочий стол (CTD, далее – «вылеты»), и дать некоторые советы,
как с этими вылетами справиться.
Перед тем, как начать, хотел бы обратить внимание, что лучший способ решить проблему
вылетов – добавить следующие строки в файл .cfg вашего мода.
Код:
[log]
to = logs/system.log.txt
level = * error
Код:
[log]
to = logs/system.log.txt
level=*script* trace
Код:
[log]
to = logs/system.log.txt
- вы получите лог, содержащий информацию о том, что делал ИИ, когда случился вылет.
Код:
[log]
to = logs/system.log.txt
level=*script* trace
Всегда проверяйте лог ошибки в папке 'Medieval II Total War\logs', чтобы выявить, какой
файл вызывает проблемы (местонахождение по умолчанию - 'C:\Program
Files\SEGA\Medieval II Total War\logs'). Текст ошибки обычно находится в конце лога,
внизу, потому как это последнее, что происходит, перед тем как случился вылет. Хотя
некоторые ошибки «разбросаны» по всему логу – например, missing skeleton, missing
mount и building gap.
Если вы думаете, что данный файл – причина проблем, переименуйте его и посмотрите,
поможет ли это (если M2TW не может найти файл, то (тут непонятно – то ли файл, то
ли игра - Tryggvi) откатывается к исходной версии). Если помогает, то теперь можно быть
уверенным, что ошибка – в этом файле.
Основные сокращения:
EBD: export_descr_buildings.txt
EBU: export_descr_unit.txt
Код:
22 serialization::archive 3 0 0 0 0 985 0 0
Это число отражает, сколько записей есть в этом файле. Если вы измените его с 985 до
500, M2TW перед запуском мода будет проверять лишь первые 500 записей. Если ошибка
– не в этих 500 записях, мод загрузится до следующей стадии, splash screen (точно не
знаю, что это значит - Tryggvi) (хотя возможен вылет по другим причинам). Если
ошибка – в этих 500 записях, то случится вылет.
Изменяя это число, можно выявить ту запись, которая вызывает проблему (хотя вам всё
равно придётся использовать программу KnightErrant'а для определения конкретного
юнита).
Единственная проблема с изменением этого числа состоит в том, что если вы ставите
число, превышающее количество юнитов в моде, будет происходить вылет.
ПРОБЛЕМА: При запуске мода появляется чёрный экран, затем – вылет. В логах
написано, что недостаточно vRAM.
1) Невозможно найти текстуру для юнита на стратегический карте. Это можно решить,
проверив все текстуры, перечисленные в файле 'data\descr_model_strat.txt' в папке
'data\models_strat\textures'.
ПРОБЛЕМА: При запуске мода появляется чёрный экран, который не исчезает, пока не
нажмёшь кнопку «назад» ('return' ). Часто вместо него показывается «чёрная» версия
интро игры.
РЕШЕНИЕ: Это обычно случается, когда отключена ваша звуковая система. Вы можете
снова включить её через Панель управления ('Control Panel') – Инструменты
('Administrative Tools') – Службы ('Services') – прокрутить вниз, пока не найдёте Виндоус-
Аудио ('Windows Audio'). Включение этого должно исправить проблемы (если не
перезагружать компьютер).
Если всё корректно, убедитесь, что в каждой записи при файле .cas есть файл .tga,
привязанный к одной фракции (не открывая файл .cas, невозможно узнать, какой файл .tga
ему требуется). Если данный файл .tga не перечислен в записях 'descr_model_strat.txt',
будут вылеты. Например, любая запись, использующая 'late_general_northern.CAS', должна
иметь одну фракцию, привязанную к файлу к 'late_general_england_strat.tga' – или будут
вылеты.
Код:
type mesoamerican_king
Код:
skeleton strat_named_with_army
Чтобы решить первые три проблемы, вы должны убедиться, что все пиксели имеют
правильный цвет (даже небольшое отклонение, неразличимое для человеческого глаза,
приведёт к вылету). Чтобы решить четвёртую проблему, вы должны переместить чёрный
пиксель (в оригинале именно так – говорится о 4 проблемах, а описаны лишь 3 - Tryggvi).
M2TW отлично работает, если один или несколько приморских регионов не имеют белого
пикселя, означающего порт.
РЕШЕНИЕ: У M2TW есть лимит на 20 массивов суши на одну карту. Если массивов более
20, мод будет вылетать. Чтобы исправить это, либо соедините острова, либо добавьте
пиксель каждого острова к другому острову, так что M2TW будет «верить», что они
представляют собой один массив суши (подробнее см. эту тему -
http://www.twcenter.net/forums/showthread.php?p=4343897#post4343897).
data\text\imperial_campaign_regions_and_settlement_names.txt
data\world\maps\base\descr_regions.txt
data\world\maps\campaign\imperial_campaign\descr_strat.txt
data\world\maps\campaign\imperial_campaign\descr_win_conditions.txt
Убедитесь, что «недостающая» провинция есть в первых трёх из них и что её название
правильно написано во всех 4 файлах.
РЕШЕНИЕ: Если провинция слишком велика, это может вызывать вылеты. Чтобы
исправить это, попробуйте разделить провинцию на более мелкие регионы.
РЕШЕНИЕ: Это может быть вызвано тем, что совокупный уровень религии в поселении
не равен 100. Для исправления этого откройте файл 'data\world\maps\base\descr_regions.txt'
и поменяйте уровни религии в проблемном поселении, чтобы в сумме было 100. Затем
удалите файл 'data\world\maps\base\map.rwm', чтобы изменения вступили в силу.
РЕШЕНИЕ: Либо в поселении имеется здание, которое данная фракция иметь не может
(это лишь вызывает вылет в начале игры), либо есть ошибка в файле
data\export_descr_buildings.txt, относящаяся к одному из зданий поселения [спасибо
пользователю Monkwarrior].
Вылет, связанный с юнитом
Код:
;------------------------------------------
Trait ReligionStarter
Characters family
Hidden
Level General_Religion
Description General_Religion_desc
EffectsDescription General_Religion_effects_desc
Threshold 1
Effect Piety 3
;------------------------------------------
ПРОБЛЕМА: Игра вылетает во время хода ИИ в районе 20 хода, а лог просто выдаёт
информацию о вылете из игры.
РЕШЕНИЕ: Я сталкивался с этой ошибкой и долго с ней возился. Она происходила из-за
того, что я увеличил «лимит» детей, в файле data/descr_campaign_db.xml. Когда в семье
ИИ оказывалось более 4 детей, игра вылетала.
ПРОБЛЕМА: Игра вылетает во время хода ИИ, а лог просто выдаёт информацию о вылете
из игры.
1) Триггер для какого-либо трейта прописан неправильно. У меня была такая проблема,
когда триггером для 'WhenToTest' было 'GeneralAssaultsGeneral', а не 'PostBattle'. Вы
можете проверить это, удаляя триггеры для всех трейтов в файлах
'data/export_descr_ancillaries.txt' и 'data/export_descr_character_traits.txt' (не забудьте сделать
бэкап) и запуская мод, чтобы увидеть, прекратились ли вылеты.
3) Мод будет также вылетать, если какой-либо агент, не имеющий имени, получит
прозвище, эпитет. Это можно исправить, изменив имя агента в файле
'data\world\maps\campaign\imperial_campaign\descr_strat.txt' и перезапустив мод, чтобы у
агента появилось новое имя.
ПРОБЛЕМА: Мод вылетает после 4-6 ходов, когда из всех фракций остаются лишь игрок
и мятежники. У фракции мятежников нет рабочих условий для победы.
РЕШЕНИЕ: Мод будет вылетать, если останется всего лишь одна фракция с рабочими
условиями для победы, но не достигшая победы. Если дать мятежным фракциям рабочие
условия для победы, то ошибка исчезнет (захват всех провинций НЕ является рабочим
условием для победы, также как и захват провинций в количестве большем, чем есть в
моде).
ПРОБЛЕМА: Мод вылетает при загрузке битвы, независимо от того, какие юниты или
фракции участвуют в битве.
РЕШЕНИЕ: Скорее всего, это связано с множественными пробелами в файле
'data\unit_models\battle_models.modeldb', тогда как там должны быть лишь одиночные или
двойные пробелы (это не приведёт к вылетам мода при загрузке, если не будет ошибки в
числах или написании). Внимательная проверка файла battle_models.modeldb или откат к
бэкапу – единственный выход, чтобы исправить ситуацию.
ПРОБЛЕМА: Мод вылетает при загрузке битвы, когда в ней участвует определенный
юнит.
РЕШЕНИЕ: Скорее всего, некорректен путь к мешу, текстуре или спрайту юнита в файле
'data\unit_models\battle_models.modeldb'. Чтобы исправить это, найдите запись юнита в
этом файле и проверьте верность местонахождения и названия текстуры и меша (эта
проблема может влиять лишь на юнита одной фракции).
РЕШЕНИЕ: В такой ситуации M2TW не может справиться с этим и вылетает (такое часто
случается при осаде замков). Уменьшите размер отрядов, чтобы предотвратить это.
ПРОБЛЕМА: Мод вылетает после того, как вы выбрали фракцию и нажали «Далее», но до
того, как появляется экран выбора юнитов.
РЕШЕНИЕ: Если одна из выбранных фракций имеет слишком много юнитов, M2TW
будет вылетать. Я не установил максимальное число юнитов, но у меня была рабочая
фракция со 192 юнитами.
ПРОБЛЕМА: Лог сообщает, что есть пропуск здания, но номер строки ошибки находится
внизу файла 'data/export_descr_buildings.txt' .
Код:
00:41:51.750 [data.invalid] [error] Target building level not allowed: Inca Empire, castle ->
large_town, core_castle_building[2](castle) -> core_building[1](wooden_wall)
00:41:51.750 [data.invalid] [error] Target building level not allowed: Inca Empire, fortress ->
city, core_castle_building[2](castle) -> core_building[1](wooden_wall)
00:41:51.750 [data.invalid] [error] Target building level not allowed: Inca Empire, citadel ->
city, core_castle_building[2](castle) -> core_building[1](wooden_wall)
Код:
Т.к. фракция, указанная в логе, - это ацтеки, то, добавив их в данный уровень
строительства, я исправлю ошибку.
Код:
Отсутствует скелет
Код:
Missing skeleton for secondary weapon in model type 'magyar_swordsmen', used by unit
'Hungarian Crossbowmen'.
РЕШЕНИЕ: Это означает, что вы привязали модель бойца с одним типом оружия к юниту
с двумя типами оружия в файле 'data/export_descr_unit.txt'. Модель бойца указана в конце
каждой записи о юните в файле 'data/unit_models/battle_models.modeldb' и может давать
юниту один или два типа оружия (конные и стрелковые юниты обычно имеют два типа
оружия, тогда как пехота ближнего боя – один).
Например:
Код:
Код:
accent East_European
Комментарии