Morrowind:Грязные сейвы и GMST — что это такое и как это правильно приготовить

Материал из Tiarum
Перейти к: навигация, поиск
«Грязные сейвы» и GMST — что это такое и как это правильно приготовить
45px-Scroll.png

автор: Boblen
редактор: Helmut, Garin
дата публикации оригинала: 19 октября 2004г.
ver: 0.2

Авторская Эта страница защищена авторскими правами..
Не редактируйте его без предварительного согласования с автором! Свои изменения и дополнения вы можете предложить непосредственно автору, либо на Форуме, либо на странице Обсуждения

«Грязные» сейвы и GMST — что это такое и как это правильно приготовить


Многие моддеры и игроки слышали, а зачастую и сами сталкивались с так называемыми «грязными» сейвами, а также с нежелательными записями GMST. Эта статья призвана объяснить, что же это за звери такие, как их избежать и что нужно делать, если они уже завелись.


Глава 1. В которой объясняется причина появления «грязных» сейвов и то, как их избежать


Одна из самых распространенных жалоб моддеров — это неожиданные изменения в плагине во время работы над ним, как-то: исчезающие двери, несколько копий NPC, изменения, которые видны в Конструкторе и не появляются в игре, и т.д.

Скорее всего, у вас «грязная» сохраненная игра. Чтобы исправить ситуацию, вернитесь к сохраненке, сделанной перед установкой мода и проводите тесты на ней.

Примечание: мод должен быть в порядке; проблема в «грязном» сейве.
  • Правило №1: Перед тем, как загрузить ваш мод на тест, сделайте отдельную сохраненку без установленного мода. Затем используйте этот сейв для всего процесса тестирования.
  • Правило №2: Не делайте сохранений во время тестирования мода. Сохраняйтесь только тогда, когда мод будет закончен и вы абсолютно уверены в том, что больше изменений в нем не будет.
  • Правило №3: Если мод входит в вашу сохраненку, не изменяйте его. Примечание: если вы собираетесь вносить большие изменения в мод, то, вероятно, лучший способ — создать отдельный сейв специально для тестирования этого плагина. Загружайте эту сохраненку, когда хотите протестировать мод и помните - не сохраняйтесь с подключенным тестовым модом.


Что же такое «грязный» сейв? «Грязный» сейв — это то, что вы получаете, когда правите или обновляете что-то в плагине, который уже включен в вашу сохраненную игру. Сохраненка содержит данные, которые не совпадают с теми, что есть в новой версии esp-файла, таким образом, она и становится «грязной». Вы можете столкнуться с дублирующимися предметами, пропадающими предметами, контейнерами, теряющими свое содержимое и другими различными проблемами. Правка мода после его включения в сохраненку, это, вероятно, самая распространенная причина неудач неопытных моддеров, а также одна из самых распространенных жалоб, которые имеются.


Когда вы правите уже готовую игровую зону, то безопаснее всего только добавлять новые объекты, а не править то, что уже есть в игре. Правка NPC, контейнеров и всего, что уже есть в игре — это прямая дорога к проблемам с сейвами, к конфликтам с другими модами, а также, возможно, и к тому, чтобы порушить что-то важное в самой игре. Если вы хотите исправить существующего NPC или другой объект, являющийся частью оригинальной игры, тогда проводите тестирование персонажем, который никогда не был поблизости от модифицированной площади: ни в той же ячейке, ни в прилегающих ячейках (если вы модифицируете внешнюю площадь).


Если вы уже взаимодействовали с NPC или, возможно, просто были с ним в одной ячейке, то содержимое его инвентаря сохраняется в сейве. Данные в esm- или esp-файле задают только начальные условия для NPC (и всего остального в игре), когда вы начинаете сначала. Когда вы загружаете игру, то данные сначала читаются из esm-файлов, затем из esp-файлов, а уже затем обновляются в соответствии с тем, что записано в вашем сохранении *.ess. Так что если вы взаимодействовали с NPC, то данные из сохранения перепишут то, что задается esm- и esp-файлами.


Вы можете поменять одежду у NPC, которых ваш персонаж еще не встречал или создать нового NPC и дать одежду ему. Если вы пытаетесь добавить торговцу предметы для продажи, то вы можете положить их в контейнер (в той же ячейке), владельцем которого является нужный вам NPC. Используйте новый контейнер (с уникальным ID), который вы добавили в игру сами и установите нужного торговца в качестве его владельца.

ВАЖНО: Когда изменяете владельца (или другие данные копии /reference data/) объекта, то закрывайте список свойств нажатием на кнопку «закрыть» (маленький крестик «х» в правом верхнем углу). НИКОГДА не нажимайте кнопку “Save” (”Сохранить”) для любого объекта, которому вы не дали уникальный ID. Нажимая “Save”, вы тем самым измените каждую копию объекта в игре, а не только ту, с которой вы работали.

Не все данные о NPC или другом объекте сохраняются в сейве. Например, данные о голове и волосах. Вот почему различные моды, изменяющие лица/прически, могут вносить видимые изменения даже для NPC, с которыми вы общались. Инвентарь NPC, содержимое контейнеров и многие другие данные сохраняются в сейве, когда вы взаимодействуете с объектом, так что изменение его в моде не даст эффекта. У меня нет конкретного списка того, что сохраняется в сейве, только предположения. Я считаю, что те данные, которые могут быть изменены только загрузкой мода, а не путем обычной игры, не сохраняются. Например, головы и прически NPC могут быть изменены только модом, а не при обычной игре. Так что нет смысла сохранять эту информацию в файле.

С другой стороны, инвентарь NPC задает то, чем он может торговать, и что вы можете снять с тела при его смерти, и это может изменяться при обычной игре. Так что данные инвентаря определенно должны сохраняться. И скрипты могут перемещать почти любой объект в игре, добавлять новые объекты и убирать существующие и т.д. Таким образом, много данных о местоположении объектов в игровом мире должны сохраняться.


Глава 2. В которой мы идем строить ловушку на слонопот… т.е., чистить «грязный» сейв


Самый безопасный и заслуживающий доверия способ избежать проблемы: вернуться к сохраненной игре, которая была сделана до подключения мода. Так как эта игра не будет содержать ссылок на мод, то она будет чистая, и вы избежите конфликтов, которые могут появиться при изменении или отключении мода.

ПРИМЕЧАНИЕ: Когда вы устанавливаете новую версию мода, который уже является частью игры, почитайте файл ридми, чтобы посмотреть, не предлагает ли там автор способа избежать проблемы «грязных» сейвов с обновленной версией мода.

Советы по установке мода: при установке нового мода сделайте резервную копию вашего сейва до того, как подключите мод, а затем просто проверяйте этот мод перед тем, как снова вернуться в ход игры. Таким образом, если у Вас появятся проблемы или мод вам просто не понравится, то вы можете легко отключить его и начать с прошлой сохраненки.

Если вы не желаете или не можете вернуться к старому сейву, то можно попытаться почистить его, чтобы удалить ссылки на мод, который был изменен или удален. Далее будут описаны способы, которыми можно попытаться почистить сейв, но нет никакой гарантии, что почищенный сейв будет избавлен от проблем или что он вообще будет работоспособен, так что всегда делайте резервную копию файла перед внесением в него изменений.

Сначала разберем внутриигровой метод. Он, в большинстве случаев, идеально подходит для модов, являющихся вещью в себе. То есть это мод, который добавляет какие-то новые материалы в игру, а не вносит множество изменений в существующее содержимое игры. Моды, вносящие изменения в существующие вещи, довольно трудно чистить, методы для них будут описаны ниже.

Внутриигровой метод


Итак, внутриигровой метод. Для начала сделайте резервную копию сейва, на всякий случай.

  • Заберите все, что принадлежит вам, из площади мода: из любых контейнеров, ячеек и т.п., что является частью или изменяется модом. Перенесите все ваше добро, а также самого персонажа в маленькую внутреннюю ячейку с минимумом вещей внутри. Маленький дом или хижина со скудной обстановкой — идеальный вариант. Выберите ячейку, которая вообще не затрагивается модом.
  • Чтобы избежать проблем с загрузкой персонажа и другими багами, относящимися к инвентарю:
  • если мод добавляет предметы в игру (одежду, оружие, броню и т.д.), убедитесь, что у вашего персонажа ничего из этого нет в инвентаре;
  • если мод изменяет вес предметов из игры, то выложите такие предметы из инвентаря;
  • если вы удаляете мод, который изменяет названия любых предметов в вашем инвентаре, то выложите эти предметы оттуда.
  • Если вы не уверены, какой предмет может быть затронут модом, то выложите из инвентаря все.
ПРИМЕЧАНИЕ: Также, когда устанавливаете мод, который изменяет вес или названия уже существующих объектов, то сначала вы должны убрать эти вещи из инвентаря, чтобы избежать ошибок.
  • Сохранить и выйти.
  • Перезапустить игру и отключить мод из меню «Файлы данных».
  • Теперь загрузите сейв, уже без подключенного мода. Вы получите сообщения об ошибках, игнорируйте их.
  • Вернувшись в игру без мода, сохранитесь вновь.
  • Новая сохраненка должна быть чистая. Некоторое время поиграйте в игру без мода, чтобы убедиться, что все работает как надо.


Как только вы поймете, что все хорошо, используйте этот чистый сейв, как стартовую точку игры.

Я бы посоветовал избавиться (или переместить) старые сохраненки с модом.

Если вы пытаетесь почистить сейв, ставший грязным из-за правки (или обновления) мода после его включения в сейв: вам определенно захочется избавиться от старых сохраненок, сделанных с версией мода, отличающейся от вашей. Они грязные и есть большая вероятность нажить проблемы, если использовать их с новой версией плагина.

Теперь рассмотрим более продвинутый способ чистки сейвов.


Очистка модов с помощью утилиты Tesame


Для этого нам понадобится программа TES Advanced Mod Editor (TESAME). Как всегда, сделайте резервную копию сохранения, чтобы в случае, если вы будете не удовлетворены работой, вернуться к началу.

  • Загрузите сейв в Морровинд и уберите вашего игрового персонажа (ИП) куда-нибудь подальше от проблемной площади, а затем сохранитесь под новым, уникальным именем, например «dirty save». Выйдите из игры.
  • Теперь запустите TESAME, затем выберите меню “MODS” (“Моды”) и “OPEN” (“Открыть”), затем перейдите с месту, где лежат сейвы, например:
C:\Program Files\Games\Morrowind\Saves
и выберите “All Files (*.*)” в поле “Тип файлов” внизу.
  • Найдите файл с уникальным названием, которое вы дали сейву, и нажмите “Открыть”.
Примечание: Название сейва будет немного отличаться от того, которое вы ему дали, но вы сможете узнать его по уникальному названию, так как частично оно будет совпадать, например, "dirty sa0000.ess".
  • Загрузка займет некоторое время. После ее окончания щелкните на заголовке столбца “Type” (“Тип”), чтобы отсортировать объекты по их типу.
  • Просмотрите список и найдите тип объекта “Cell” (выделена розовым цветом), найдите там ссылку на ячейку, которая содержит проблемный мод, и щелкните правой кнопкой мыши на нем.
  • Нажмите клавишу “Delete”. Это сотрет запись в сейве о том, что ваш персонаж когда-либо был в данной ячейке, взаимодействовал с чем-то или брал что-то оттуда (я не уверен, что чистка ячейки избавит вас от проблем с NPC, так что можете попробовать сделать то же самое и в отношении NPC, с которыми у вас проблемы). Таким образом, все ваши вещи, что оставались в той ячейке, пропадут, как и все предыдущие изменения, вносимые другими модами в эту ячейку.
  • Выберите меню “Mods” (“Моды”) и “Save as...” (“Сохранить как...”). Теперь щелкните правой кнопкой мыши на старой грязной сохраненке («dirty save.ess») в окне диалога “Сохранить как...” и удалите ее. Это необходимо, т.к. Морровинд не сможет различить старый сейв и новый, сохраненный в TESAME. Это убережет Вас от попыток разгадать потом, какой файл грузить.
  • Снова выберите пункт “All Files (*.*)” в поле “Тип файлов” и дайте вашему чистому сейву новое, уникальное имя, например "cleaned save.ess".
  • Нажмите “Сохранить”.
  • Если Вы не удалили ранее ваш грязный сейв, то сейчас самое время перейти в папку сохранений и удалить его напрямую.
  • Запустите Морровинд и в меню «Файлы данных» отключите те моды, которые подозреваете в загрязнении сохранения.
  • Запустите игру и загрузите новое чистое сохранение. Чистый сейв, скорее всего, будет иметь то же название, что и старый грязный сейв в меню Загрузки Сохранений, т.к. игра не смотрит на реальное название файла.
  • Заново сохраните игру под новым именем.
  • Если хотите, теперь вы можете вновь подключить нужные Вам моды, но не сохраняйтесь, если собираетесь изменять их.


Очистка модов с помощью программы Farren`s Enchanted Editor


И еще один способ очистки сейва, теперь при помощи программы Farren`s Enchanted Editor. Как уменьшить 5 Мб сейва до 1 Мб (резкое увеличение FPS и очистка большинства «задвоений»). Этот метод имеет некоторые причуды, типа оживления мертвых персонажей, но он не нарушает квестов, не изменяет отношения персонажей к вам и т.д. Много места в сейве занимает список NPC (персонажи, у которых вы украли, которых убили и т.д.) и CELL (ячейки, которые вы затронули), так что…

  • Загрузите ваш сейв.
  • ВЫКЛЮЧИТЕ безопасную правку (safe editing) (Меню Edit -> Editing Options -> Safe Editing или просто щелкните на иконку, похожую на дорожный знак в панели инструментов, она выдаст предупреждение и станет ярко-желтой и красной).
  • Кликните на квадратике напротив слова «Cells», чтобы пометить все ячейки.
  • Кликните на слове (не квадратике) «Cells», чтобы развернуть список и пролистайте его, чтобы найти ячейку или ячейки, где вы храните все свое добро (ваш дом, если он у вас есть). Снимите галочки с этих ячеек, иначе вы потеряете свои вещи.
  • Щелкните на квадратике напротив слова "NPCs Altered/Killed by Player" (NPCС), чтобы отметить всех затронутых NPC.
  • КРИТИЧНО: Щелкните на слове "NPCs Altered/Killed by Player" (NPCС), чтобы развернуть список и показать все записи NPCC. Найдите запись “PlayerSaveGame” и снимите с нее галочку. Эту конкретную запись удалять нельзя, иначе вы сломаете игру.
  • Нажмите “Delete” и все NPCC и CELLS, за исключением вашего дома и “PlayerSaveGame”, будут удалены.
  • Сохраните файл. Таким образом, я уменьшил 5 Мб-файл до 1 Мб. Все NPC сохранили свое отношение ко мне, а я могу ходить по Балморе не как скриб.

Глава 3. В которой мы встречаемся со злобными пче… т.е., GMST


Многие из вас знают о зловещих записях GMST, которые пробираются в моды, но я также вижу, что вопросы о них все еще задаются, и до сих пор выходят моды, содержащие их. В этой главе мы все о них узнаем.

Игровые Настройки (GMST) — это записи, содержащие информацию, требуемую Морровиндом. Некоторые из них содержат численные значения для оружия и брони, передвижения и способностей, игровые данные, относящиеся к дальности обзора и настройкам гаммы, тогда как другие просто содержат названия заклинаний и навыков.


Первое загрязнение GMST произошло с релизом Трибунала, после выхода которого было обнаружено, что сохранение плагина без подключенного Трибунала давало ошибочные записи GMST, попавшие в файл.

Это загрязнение рушит заклинание «Призвать Фабриканта» и изменяет названия кнопок «Максимум продавца» (на «Max Sell») и Share (на Companion Share).

Blooodmoon добавляет еще 61 GMST, доводя их общее число до 72.


Местонахождение этих записей - в самом исполняемом файле КС и не имеет ничего общего с мастер-файлами. Это легко можно проделать, загрузив CS.exe и сохранив файл, не загружая мастеров вообще. В результате Вы получите около 80 Кб GMST-записей (1400+), все с неправильными значениями. Эти неправильные значения GMST Морровинда проявляются как обширное изменение текстовых строк в игре, самое заметное из которых — буква «s», предшествующая каждому навыку и способности.


Эти «ложные» записи появляются только тогда, когда КС не может найти соответствующее значение в мастер-файле (который содержит верные значения). Вот почему проблема впервые проявилась после выхода Трибунала. Многие люди продолжают делать моды только для Морровинда с пропатченной версией КС для Трибунала. Так как новая функциональность, добавленная в Трибунал, требует установки игровых переменных, то они были включены в файл CS.exe. А те, кто делает моды только для Морровинда, не подключают Трибунал, который содержит правильные значения GMST, и КС тихо добавляет их в плагин.

Все просто: официальный .esm НЕ загружен = загрязнение GMST!

Создатели модов должны оценивать, нужен им или не нужен тот или иной официальный мастер-файл. При сохранении плагина он становится зависимым от всех мастер-файлов, загруженных в КС в этот момент. Это нормально, если вы используете предметы или функции из дополнений, однако если вам они не нужны, то желательно сохранить зависимость только от Морровинда. Однако, не загрузив один или несколько официальных мастер-файлов, вы получите загрязнение GMST, и вы, как моддер, должны поймать тот момент, когда они включаются в плагин, как обойти их и как удалить их.

Единственный способ избежать этой проблемы — загружать ВСЕ установленные официальные моды или сделать несколько установок с разным их набором.

Если вы выберете подключение всех мастер-файлов, то ваши моды будут от них зависимы. Как только мод будет закончен, ненужные записи родительских мастер-файлов могут быть удалены. Это прекрасно, если вы уверены, что не используете никаких объектов и функций из мастер-файлов аддонов, которые вы удаляете, но не всегда удается установить, какой объект относится к тому или иному .esm-у.

Удаление зависимости, когда мод использует такой объект — прямой путь к порче плагина.

Есть несколько способов, которыми эти GMST могут быть удалены из плагина, но использование раздела «Details» КС — не один из них. Настройки GMST могут быть помечены как игнорируемые, что хорошо для игры, но, сохранив этот плагин в редакторе, снова вернет записи в файл.

Есть несколько утилит, способных полностью удалять GMST записи из файла:

Все они могут удалить эти нежелательные записи из файла.

Пользователям модов! Если вы используете моды, то всегда лучше посмотреть новые на измененные GMST. Многие люди все еще не знают, что они включаются в плагин, да и те, кто знает, вполне могут забыть о них при обновлениях.

Если вы уже включили грязный мод в сейв, то я не рекомендую удалять из него GMST-записи. Измененный плагин, уже включенный в сейв, может привести к «грязному» сейву. Это происходит из-за того, что дата модифицированных файлов меняется, и меняется порядок их загрузки. Когда это происходит, игра не может сопоставить индексы ячеек с теми, что уже есть в файле сохранения, и вы остаетесь с двумя объектами вместо одного.

Чтобы исправить это, ManaUser создал очень полезный маленький мод под названием QuickFix. Этот мод грузится последним и «сбрасывает» значения GMST на правильные.

Если вы делаете Тотальную Конверсию (ТК), очень важно включить в нее все ПРАВИЛЬНЫЕ GMST Морровинда. Исключение каких-то из них равносильно включению неправильно заданных. Особенно это важно, если вы создаете свой ТК-файл с чистого листа. Самый легкий способ взять значения из мастер-файла Морровинда — воспользоваться возможностью экспорта/импорта в КС. Просто экспортируйте настройки из нужного мастер-файла в текстовый, а затем импортируйте его в ваш мастер-файл.

Если Вы уже начали свою ТК с чистого файла и уже получили неверные GMST-установки в вашем файле, то можно загрузить morrowind.esm и ваш мастер-файл в КС и сохранить его. Это обновит все «ложные» GMST на правильные, но он также сделает его зависимым от morrowind.esm. Эту зависимость можно убрать из вашего файла при помощи утилит Morrowind Enchanted Editor или The Elder Scrolls Dependency Tool Kit (TES DTK).


Удачи!


Автор: Boblen