Все модификации для This War of Mine можно разделить на два типа:
Стандартные – Создаются с помощью штатного редактора сценариев (файл Storyteller.exe в папке игры). Всё, что вы сделаете через Storyteller, является самостоятельной модификацией и ее можно будет сохранить себе будущее, дать оценить друзьям, просто выложить в интернете и т.д. Созданные таким образом модификации независимы друг от друга, их можно включать \ выключать по отдельности или все сразу в мастерской игры. И самое главное, всё это полностью и абсолютно безопасно для игры, а если модификация вам не понравилась или оказалась глючной, то можно просто удалить ее из Mods.list, который редактируется стандартным Блокнотом из состава Windows.
Индивидуальные – Создаются через распаковку-редактирование-упаковку игровых DAT-архивов, поэтому всё что вы сотворите с DAT-архивами, работать будет только у вас и только на вашей копии игры, т.е. до первой переустановки. Отключить ненужный функционал одним кликом мышки тоже не выйдет, любое изменение потребует переупаковки архива, а чтобы объединить два разных DAT-архива с нужными вам модами в один, понадобится сначала распаковать оба архива, выдернуть оттуда нужные файлы и создать из них уже новый (третий) DAT-архив. Но самое печальное заключается в том, что любое неосторожное движение приведет к полной неработоспособности игры, поскольку This War of Mine очень плохо переносит подобные вмешательства в свои внутренности.
Storyteller
Штатный редактор сценариев обычно используется для следующих целей:
Создание сценариев. Это те самые фотокарточки с персонажами в главном меню игры. Всего таких карточек может быть не более 15 штук. Забавно, но разработчики сами же и использовали весь этот лимит, поэтому перед созданием своей истории придется снести один из штатных сценариев. Впрочем, новичкам лучше попрактиковаться именно на оригинальных сценариях, поскольку с ходу вспомнить и проработать все нюансы (длительность войны, погодные условия, сила ночных атак, список доступных локаций и т.д.) очень трудно - куда разумнее изучать Storyteller постепенно, шаг за шагом, оттачивая навыки и знания на каком-нибудь хорошо знакомом сценарии, например, на самом первом (Катя, Павло, Бруно). В редакторе он называется "Traders", а поскольку многие игроки неплохо знакомы с этой историей, то "Traders" как нельзя лучше подходит для получения опыта по редактированию сценария.
Изменение свойств предметов. Надоело таскать по 2 доски в одном слоте и хотите брать сразу по 10? Не вопрос! Считаете, что слишком много воды и сахара нужно на изготовление самогона? Дело поправимое! Мечтаете, чтобы снайперская винтовка убивала одним выстрелом? Легко!
Редактирование текста. Изменение диалогов, надписей, мыслей персонажей и т.д. Конечно, прямого влияния на геймплей оно всё не оказывает, но если вы хотите создать действительно глубокую и хорошо проработанную историю, то потребуется увязать поступки, действия и решения персонажей в единое целое. Тут-то возможность править текст и пригодится.
***
Краткая инструкция по созданию своего сценария изложена разработчиками на английском языке в документе Modding Instructions.pdf, который лежит в папке с игрой. Также много полезной информации можно почерпнуть в Steam Community - приведенных ниже ссылок хватит большинству пользователей, которые хотят подправить что-то в оригинальных сценариях или создать свою простенькую историю:
- Переведенный файл Modding Instructions.pdf от пользователя Mandarin (на русском): ссылка
- Различные нюансы и ссылки на пару утилит от пользователя adrianna (на русском): ссылка
- Еще больше полезной информации от пользователя Kierk (на английском): ссылка
***
К сожалению, Storyteller имеет не самый удобный и понятный интерфейс, а часть функций разработчики попросту вырезали. Как следствие, работает Storyteller не очень хорошо: некоторые кнопки не нажимаются или приводят к появлению ошибок, иногда не сохраняются сделанные изменения, а самые нужные опции вроде редактирования локаций или создания новых персонажей вообще отсутствуют.
Тем не менее, чтобы было общее понимание вопроса, разберем в качестве примера создание очень примитивной модификации на основе выше сказанного, а именно: изменение количества досок в одной стопке, изменение количества ресурсов, необходимых для создания самогона и изменение урона, которое наносит снайперская винтовка.
1) Запускаем Storyteller.exe и тыкаем на единственную кнопку Create New Mod. В текстовых полях пишем название и описание (можно на русском, но лучше на английском), например, Test Mod Name и Test Mod Description. За название и описание не переживайте, оно все хранится в обычном текстовом файле и можно будет это всё потом через обычный Блокнот отредактировать, если захотите что-то поменять. Также можно выбрать картинку для мода (Set Image), но смысла в этом мало, т.к. она нигде не отображается. Вообще, привыкайте к тому, что огромное количество функций в редакторе либо в принципе не работает, либо работает не совсем так, как хотелось бы (вот для примера список известных багов редактора, на английском, правда, но все равно впечатляет).
2) После того, как придумаете название и описание мода, тыкните на ОК. Редактор распакует кое-какие ресурсы, сгенерирует уникальный идентификатор модификации (много-много букв и цифр) и после этого станет доступной кнопка Edit. Нажимаем на нее. Никаких индикаторов загрузки у Storyteller нет, так что просто ждем, пока не появится окно редактора. И не нажимайте никакие клавиши на клавиатуре, поскольку по умолчанию там подсвечено поле для фильтрации, поэтому если что-то нажать, то тогда Storyteller сразу после запуска начнет искать введенные символы и ждать придется еще дольше, пока его не отпустит.
3) Меняем рецепт изготовления самогона. Для этого разворачиваем ветку Items → Hooch → CraftingRecipes → Kosovo item element crafting recipe. Там будет три параметра. По очереди кликаем на каждый, чтобы он подсветился, и справа изменяем количество воды, сахара и топлива, необходимое для изготовления одной бутылки самогона путем ввода нужной цифры. Все изменения вступают в силу немедленно, так что кнопку для сохранения можете пока не искать, а просто продолжайте работу.
4) Меняем урон, который наносит снайперская винтовка. Для этого идем в Items → SniperRifle → PassiveMultipliers → Kosovo equipment passive multiplier. Кликаем по последнему параметру, чтобы он подсветился, и справа меняем урон с 50 на 500, чтобы даже слабые персонажи могли уложить из снайперки кого угодно одним выстрелом.
5) Меняем количество досок в одной ячейке. Здесь совсем просто. Идем в Items → Wood (кликаем именно на слове Wood, чтобы оно подсветилось) и ищем справа строку StackSize, где меняем цифру 2 на цифру 10.
Собственно, на этом всё. Нажимаем на крохотный синий треугольник (Pack Files) в левом верхнем углу окна редактора. Он сохранит сделанные изменения и добавит модификацию в список модов, которые будут отображаться в мастерской игры. Запускаем игру и заходим в мастерскую. На вкладке с модификациями проверяем, что наш мод загружен (Loaded) и нет конфликтов с другими модификациями (No conflict). Начинать новую игру необязательно, работающие модификации распространяются в том числе и на уже начатые сценарии, так что просто продолжаем игру с того места, где остановились, и проверяем наличие изменений.
***
В рамках данной статьи нельзя не упомянуть Steam Workshop. Если вы планируете делать свои моды, то будьте осторожны и не используйте данную площадку для размещения своего творчества, т.к. согласно политике Valve Corporation содержимое Steam Workshop (Мастерская Steam) автоматически попадает под ограничения и правила о загружаемом контенте. А правила у Valve Corporation очень простые: контент из Steam Workshop не подлежит свободному распространению и будет доступен только тем игрокам, которые купили игру через Steam.
Надо отметить, что ранее существовали сайты, позволяющие напрямую получать модификации из Steam Workshop, минуя проверку на наличие игры в библиотеке, однако некоторое время назад Valve Corporation ужесточила свою политику и принудила к закрытию все такие сервисы.
Вывод: если хотите, чтобы с вашей модификацией могли ознакомиться все желающие, то лучше использовать условный Яндекс.Диск для хранения файлов, а не сервера Valve Corporation.
DAT-архивы
Редактирование DAT-архивов может быть использовано для изменения некоторых свойств персонажей.
Размер рюкзака. Да, его возможно изменить и да, это можно сделать для любого персонажа. Если вы когда-нибудь хотели узнать как играется с рюкзаком на 30 слотов, то это не проблема. Но учтите, что сложность игры по сути является производной от размера рюкзака, так что меняя его размер, вы тем самым сделаете игру более легкой или более сложной.
Вредные привычки. Как известно, 7 из 12 базовых персонажей имеют пристрастие к сигаретам или кофе. Но если кофе тратится по одной единице в день, что не такая уж и проблема, то вот каждому курящему персонажу требуется по три сигареты ежедневно, причем персонажи сами случайным образом выбирают из того, что есть на домашнем складе. Если вас этот аспект геймплея напрягает, то можно его подправить, сделав игру чуть более комфортной. Или наоборот, можно поднять запросы персонажей, что сделает игру более трудной.
Навыки и свойства. Самый сложный вид модификаций. Малейшая ошибка во внутреннем синтаксисе шаблона персонажа приведет к полной неработоспособности игры, не говоря уж о том, что далеко не все умения поддаются переносу, т.к. многое жёстко завязано на шаблон конкретного персонажа.
***
Для работы с DAT-архивами нужна утилита BSPacker и HEX-редактор. Первую можно найти в Steam Community по выше приведенным ссылкам, а второй сгодится вообще любой. Лично я использовал HxD Hex Editor, но только лишь по той причине, что он бесплатный, ибо мне было тупо лень искать на торрентах очередную взломанную версию очередного HEX-редактора. Еще у HxD есть русский язык, но в нашем случае это вообще не имеет никакого значения.
Утилита BSPacker состоит из двух частей: для распаковки архивов и запаковки архивов. Чтобы упростить себе жизнь и избавиться от мусора, создаем где-нибудь на рабочем столе папку с коротким именем наподобие "BSPacker". Помещаем в эту папку следующие файлы:
- ASLib.dll
- BSPacker.exe
- BSUnpacker.exe
- Projects\FileNames.list
Далее идем в папку игры и забираем оттуда (правой кнопкой → Вырезать) два файла: templates.dat и templates.idx. Вставляем их всё в ту же папку на рабочем столе. Запускаем распаковщик (BSUnpacker.exe) и выбираем File → Open. Указываем ему на файл templates.idx, где хранятся записи (индексы) о файлах. После этого автоматически начнется распаковка. Когда счетчик в заголовке окна достигнет максимального значения, BSUnpacker можно закрыть, больше он нам не понадобится.
Все данные лежат именно в .dat-архиве, в то время как .idx-файл содержит в себе нечто вроде базы данных, согласно которой файлам при распаковке присваиваются те или иные имена. К сожалению, BSUnpacker не способен корректно расшифровать все имена файлов, т.к. судя по дате (2014 год), он делался для одной из самых первых версий This War of Mine, а позже многочисленные патчи и адд-оны серьёзно поменяли внутреннюю структуру DAT-архивов. Так что понятный и красивый каталог с файлами не получится, увы - многое попадет в папку Unknown. Но в любом случае, теперь у нас есть папка templates и можно приступать к работе.
Например, мы хотим сделать Роману рюкзак побольше. Скажем, дать ему те самые легендарные 30 слотов. И заодно запретим Роману курить. Запускаем HEX-редактор и открываем файл characters\player_characters\dweller_warrior (.binarytemplate). Прокручиваем в самый низ, где написано "РЮКЗАК". Впрочем, там видно лишь Р.Ю... (первые две буквы из этого слова), но не пугайтесь, оно у всех персонажей так. Далее ищем 0A, это шестнадцатеричное значение, обозначающее количество слотов в рюкзаке (10 штук). Нам нужно заменить 10 на 30, но тоже в шестнадцатеричном виде.
Поскольку я ни разу не программист, то для меня это всё лес дремучий, поэтому пришлось использовать сторонний инструмент для преобразования цифр из привычной нам десятичной системы в шестнадцатеричную (HEX). Я пользовался этим сайтом, но опять же, это не реклама, просто первое приличное, что выдал поисковик. При желании можно вообще использовать штатный калькулятор Windows, там тоже есть переключатель из одной системы счисления в другую.
Короче говоря, мы тем или иным способом узнаём, что 30 = 1E. Возвращаемся к HEX-редактору, ставим курсор перед 0A и печатаем на клавиатуре 1E (в английской раскладке, разумеется). Редактор сам заменит символы при вводе.
Теперь разберемся с вредными привычками. Здесь чуть сложнее, поскольку придется поменять целый блок. Всего есть три сочетания параметров Stimulant Config:
Кофе | 01 00 00 00 FF FF FF FF |
Сигареты | FF FF FF FF 03 00 00 00 |
Нет привычек | FF FF FF FF FF FF FF FF |
Соответственно, вписываем FF FF FF FF вместо 03 00 00 00. В спойлере ниже есть скриншот, я выделил на нем ключевые места для облегчения понимания того, что у вас должно получиться в итоге:
Сохраняем сделанные изменения, красные значения должны погаснуть. HEX-редактор пока не закрывайте, а просто сверните его. После сохранения изменений он "отпускает" файл и дальнейшей работе мешать не будет, а если что-то пойдет не так, то редактор нам еще пригодится.
Теперь надо запаковать все изменения. Запускаем BSPacker.exe, тыкаем его носом в папку templates и приказываем ему создать новый архив templates.dat в папке с игрой. Выглядеть оно всё должно примерно так:
После нажатия кнопки Build DAT придется подождать какое-то время. Когда BSPacker завершит свою работу, не закрывайте его, а просто сверните, т.к. после завершения архивации он тоже не обращается ни к каким файлам и мешать не будет. Оригинальные файлы (templates.dat и templates.idx) в его папке пока оставьте, ибо всегда полезно иметь резервную копию.
Запускаем игру и либо начинаем новый сценарий, либо просто продолжаем нынешний, если в нем есть Роман, но только при условии, что он последней ночью никуда не ходил, а был в убежище (спал или охранял). На экране с описанием персонажа удостоверяемся, что Роман больше не курит, а отправив его на ночную вылазку, можно будет понаслаждаться новым большим рюкзаком.
***
В некоторых случаях при неправильно отредактированном DAT-архиве вы не увидите никакой ошибки при запуске игры, вместо этого начнется чудовищной силы утечка памяти, т.е. игра просто начнет бесконечно заполнять память всяким мусором. При таком раскладе у вас будет примерно 3-5 секунд на то, чтобы завершить процесс игры, прежде чем свободная оперативная память (RAM) на вашем ПК закончится и он наглухо зависнет. Соответственно, если вместо вступительной заставки вы видите черный экран, то кликните мышкой несколько раз, чтобы система сама предложила закрыть не отвечающее приложение.
Также можно столкнуться с повреждением сохранений, поэтому лучше заранее создать резервную копию своих достижений. Пуск → Выполнить: %AppData%\11BitStudios - в открывшемся окне вы увидите папку с названием игры, копию которой и создайте на всякий случай. Кстати, если вы планируете серьезно заняться изучением игры, то лучше заранее собрать коллекцию из таких вот папок, поскольку многие вещи невозможно проверить в начале сценария, зачастую нужно иметь полностью обставленное убежище и хорошую экипировку (оружие, бронежилет и т.д.), чтобы можно было сразу приступить к проверке тех или иных изменений.
Другие вопросы по модификациям
Как в принципе добавить мод (любой) в игру?
Зайдите в Документы\This War of Mine\Mods. Если папки Mods нет, создайте ее сами. В нее кладем файлы модификации, там же создайте текстовый файл Mods.list (именно Mods.list, а не Mods.txt), если его там нет. В Mods.list впишите новую строку такого вида:
идентификатор_мода|имя_мода|описание_мода|enabled|local
Приведу для лучшего понимания строчку из своего Mods.list, где у меня прописана моя модификация с исправлениями различных мелких косяков в тексте игры:
b903d07d94504f56af30e903df392666|Russian Localization Fix|Fixes errors in the russian texts.|enabled|local
Если же модификация взята из Steam Workshop, то вместо идентификатора мода потребуется указать полный путь к папке с ним, а слово "local" в конце заменить на "workshop".
В мастерской игры у мода написано, что он Not Loaded. Что делать?
Скорее всего, мод делался для базовой версии игры, т.е. до выхода The Little Ones. Этот адд-он в свое время сломал много интересных модификаций, но поделать с этим ничего нельзя, поскольку сейчас адд-он уже фактически интегрирован в игру, т.е. не важно числится у вас установленным The Little Ones или нет. Даже сам инсталлятор The Little Ones весит всего 10Мбайт, что говорит о том, что реально он ничего не добавляет, а лишь активирует всякий контент, изначально присутствующий в файлах игры.
Нашел в Steam Workshop интересный мод. Как его оттуда скачать?
На настоящий момент мне неизвестны рабочие сервисы, которые позволили бы скачивать любые модификации из Steam Workshop. Если кто-то вдруг знает такой сайт, которому можно скармливать страницы из Мастерской Steam, а он будет в ответ выдавать прямые ссылки для скачивания модов, то напишите об этом в комментариях.
***
Как в мастерской игры написать имя нового персонажа на русском?
В самой игре способов для этого нет, поэтому придется найти нужный адрес в памяти и напрямую изменить там имя персонажа. Ниже будет рассмотрено использование Cheat Engine для этих целей.
1) Запускаем игру, заходим в мастерскую и выбираем создание нового персонажа. В качестве имени персонажа пишем что угодно, но лучше что-нибудь подлиннее и поуникальнее, например, testname123 - так будет проще найти нужный адрес в памяти. Написав имя, ничего не сохраняем, а просто сворачиваем игру (Alt + Tab).
2) Запускаем Cheat Engine и выбираем процесс игры с помощью мерцающей кнопки в левом верхнем углу.
3) В правой части окна выбираем Value Type: String, ставим галочку UTF-16 и пишем в строке выше то самое имя персонажа (testname123).
4) Нажимаем кнопку First Scan. После завершения процедуры поиска будет найдено несколько адресов. В принципе, можно отсеять недействительные адреса, но проще поменять значения сразу во всех.
5) Обводим найденные адреса левой кнопкой мыши, затем тыкаем правой и выбираем Change value of selected addresses, где и пишем нужное имя на русском.
6) Разворачиваем игру обратно и проверяем, что имя персонажа изменилось (возможно, потребуется кликнуть на строке с именем и нажать на пробел, чтобы оно обновилось).
7) Выбираем другие параметры (портрет, навыки и т.д.) и жмем кнопку "Применить" для сохранения изменений.
Комментарии
Добавить комментарий