Обновляем моды под нужный аддон

Обновляем моды под нужный аддон
Автор: TeaWitch

Преамбула:

Моды исправляют ошибки разработчиков. Моды добавляют игре новые возможности. Моды делают мир симов еще более прекрасным. Моды облегчают или усложняют жизнь нашим подопечным, в конце концов...
Но, к сожалению, моды зависят от версии установленной у нас игры. Поднимите руку, кто ни разу не сталкивался с тем, что после официального патча или установки нового аддона полюбившиеся моды теряли свою функциональность и, тем паче, ломали существующую у игры?
Разумеется, обычно авторы модов стараются поддерживать свои творения и обновляют их для совместимости с последними версиями. Однако, по разным причинам, полюбившийся мод может и не дождаться обновления (у создателя просто нет нужного аддона/патча, нет времени, нет желания больше этим заниматься, etc.) либо обновиться значительно позднее, чем бы хотелось.
Что остается делать в этом случае? Правильный ответ - брать инициативу в свои руки!

Фабула: Let's update them!

Итак, нам понадобятся:

  1. Уже знакомый всем редактор s3pe
  2. Утилита для сравнения файлов. В линуксе можно делать это прямо из консоли, под виндой придется установить одну из утилит, например Files Compare Tool 2.7 - я буду пользоваться именно ею, но это дело вкуса.
  3. Немного терпения, усидчивости и внимательности.

Шаг 1.

Открываем в s3pe интересующий нас мод:

update-mode-at-the-desired-addon_1

Для примера я выбрала мод, разрешающий покупать в магазине все фрукты, Amb означает версию для аддона "Карьеры".
Устанавливаем внизу чекбоксы (галки) "Sort", "Name" и "Tags".
Нужные нам файлы имеют расширения _XML и ITUN:

update-mode-at-the-desired-addon_2

ВНИМАНИЕ! Если вы видите расширение S3SA (запакованная .dll-библиотека), это значит, что мод скриптовой, т.е. затрагивает ядро игры: для его исправления нужно знать как минимум основы С/С++/С#. С другой стороны, скриптовые моды обычно не требуют адаптации под новую версию игры; если же файл все же вызывает ее падение, то стоит обратиться к создателю мода и/или в ветку с обсуждениями данного хака.

Шаг 2

Экспортируем наш _XML/ITUN файл (кликаем на него правой кнопкой мыши и выбираем "Export -> to file...", либо из меню "Resource -> Export -> to file...", либо сочетанием клавиш Ctrl+Shift+X). Сохраняем в выбранную нами папку, не меняя названия!

update-mode-at-the-desired-addon_3

В моем случае в package всего одна строка, но если их несколько, то повторяем процесс для всех файлов.

Шаг 3

Открываем еще одну копию программы s3pe. Теперь нам надо открыть файл GameplayData.package из директории "Корневой каталог:\...\Папка последнего аддона\Game\Bin\Gameplay":

update-mode-at-the-desired-addon_4

На скрине для наглядности показаны свойства файла со страшным путем до него (в моем случае).
Кликаем по закладке "Instance", чтобы отсортировать строки по значениям данного столбца.

update-mode-at-the-desired-addon_5

Теперь находим в этом списке строки с точно таким же (это важно!) значением Instance, какие были у файлов, экспортированных на предыдущем шаге. Экспортируем в ту же папку, если s3pe предложит заменить файлы, жмем "Нет" и добавляем к названию какой-нибудь префикс, чтобы отличить файлы экспорта от уже имеющихся.

update-mode-at-the-desired-addon_6

s3pe можно закрыть. 

Шаг 4

Открываем утилиту для сравнения файлов и перетаскиваем туда два наших экспортированных xml-документа: один из GameplayData, второй - из нашего мода. Определяем, какой из них слева, какой справа (сверху над текстовым полем есть строка состояния, показывающая полный путь и имя файла).
Программа подсветит различающиеся фрагменты этих двух файлов.

update-mode-at-the-desired-addon_7

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

Теперь смотрим на выделенные строки. Если они практически одинаковы слева и справа (различия в строковой/числовой константе), то мод совместим с текущей версией игры.
Если с одной стороны строки есть, а с другой - пусто, то возможны два случая: либо автор мода удалил строки для внесения изменений, либо мод несовместим с данной версией игры. (Стоит ориентированиться по функции данного хака) В моем случае в файле мода, например, отсутсвует описание вампирского фрукта. Исправляем это простым копированием/вставкой нужного фрагмента.

update-mode-at-the-desired-addon_8

В принципе, аналогичным образом можно "понизить" совместимость мода до какого-либо аддона, просто убрав из его файла лишние строки, которых нет в GameplayData.
Сохраняем наши изменения и выходим из программы.

Шаг 5

Возвращаемся в s3pe к файлу нашего мода и импортируем измененные файлы (внимание: следите, чтобы это были именно файлы мода!): "Resource -> Import -> from file...".

update-mode-at-the-desired-addon_9

Проверяем, что стоит переключатель "Replace duplicates", жмем ОК.

update-mode-at-the-desired-addon_10

Сохраняем, помещаем мод в нужную папку и тестируем работоспособность в игре. 

Extra:

Таким же способом можно лечить конфликтующие из-за общего ресурса моды. Скажем, мод для изменения цвета воды в районе и мод для более приближенных к реальности ночей изменяют INI файлы из одной таблицы, поэтому вместе работать не могут. А хочется иметь в игре оба эффекта! Что ж, нет ничего проще: таким же способом вносим изменения в совпадающие файлы одного из модов (разница лишь в том, что теперь мы сравниваем мод не с файлом игры, а с другим модом), и, если остались какие-то еще, импортируем их тоже.
Вуаля! Наслаждаемся морским бризом и романтическими сумерками в игре.

The Sims 3

The Sims 2

The Sims

MySims

Sims-игры

Даты релизов

the_sims_3_store_saleshymn_bunnersimovod_3simovod2Журнал «Симовод»Prosims - магазин сувениров