Показать сообщение отдельно
Старый 22.01.2011, 00:04   #1
династиец
Золотая Корона Золотая кисть вдохновения Золотая звезда Золотая звезда 
 Аватар для TeaWitch
 
Репутация: 941  
Адрес: Новосибирск
Сообщений: 476
Профиль в Вконтакте
Лампочка [TS3] Обновляем моды под нужный аддон

Автор: TeaWitch

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


Преамбула:


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

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

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

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



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



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


Шаг 2

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



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


Шаг 3

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



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



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


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


Шаг 4

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



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

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



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


Шаг 5

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



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



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


Extra:
Таким же способом можно лечить конфликтующие из-за общего ресурса моды. Скажем, мод для изменения цвета воды в районе и мод для более приближенных к реальности ночей изменяют INI файлы из одной таблицы, поэтому вместе работать не могут. А хочется иметь в игре оба эффекта! Что ж, нет ничего проще: таким же способом вносим изменения в совпадающие файлы одного из модов (разница лишь в том, что теперь мы сравниваем мод не с файлом игры, а с другим модом), и, если остались какие-то еще, импортируем их тоже.
Вуаля! Наслаждаемся морским бризом и романтическими сумерками в игре.
__________________
An Internet Lover: Брианна Фрелей в TS3 - Завершена
Asylum Challenge:Марк Торвальдс в TS3 - Завершена
Asylum Challenge:Юта Анвар в TS3 Завершена
Тот, кто верит в кошачью смерть, забывает, что у кошки девять жизней. (с)

Последний раз редактировалось Semitone, 22.01.2011 в 01:07.
TeaWitch вне форума   Ответить с цитированием