Изготовление модификаций

Обновлено 07.08.2024 - 11:32

Все модификации для 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-редактор

 

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

Теперь надо запаковать все изменения. Запускаем BSPacker.exe, тыкаем его носом в папку templates и приказываем ему создать новый архив templates.dat в папке с игрой. Выглядеть оно всё должно примерно так:

BSPacker

 

После нажатия кнопки 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) Выбираем другие параметры (портрет, навыки и т.д.) и жмем кнопку "Применить" для сохранения изменений.

 

Комментарии

Profile picture for user Человек из интернетов

Ну наконец-то я знаю, как сделать монтировка самым мощным оружием! Гордое Фримэн в моем сценарии будет очень доволен...

Profile picture for user Человек из интернетов

Для перевода чисел в 16-ричную систему не нужны сторонние сайты, стандартный калькулятор винды это умеет. Нужно только переключить в настройках его вид (по умолчанию он "Обычный") на "Программист".

Profile picture for user Человек из интернетов

а что дает включение файнал кат или аниверсари эдишен на экране выбора игры за разных персонажей? пишет что вроде новые персонажи и локации доступны будут, а новичку это нужно или лучше без них? и если лучше с ними, то какой вариант выбирать?

Profile picture for user Avatar-Lion

Если судить по описаниям и видеороликам, то отличия следующие:

Anniversary Edition - будут добавлены три новых локации (Порт, Аэропорт, Дом с привидениями). Плюс, соответственно, возможность сбежать из города через этот самый Порт. Также упоминаются некие новые NPC, но без какой-либо конкретики. Вероятно, это бездомный (Аэропорт) и Карел (Порт).

Final Cut - помимо вышеперечисленного будут добавлены еще и локации из трёх DLC. Судя по всему, это Аптека, Магазин игрушек, Булочная, Бензоколонка, Музыкальный клуб. Вокзал, Институт Самуила. Также добавлена Ливия и один сценарий с ее участием. Еще упоминаются Remastered maps (доработанные спец.эффекты на локациях типа освещения, предметов обстановки и т.д.), но оно, полагаю, интегрировано в игру на базовом уровне, т.е. доработанные эффекты на локациях будут видны вне зависимости от выставленных опций.

Что касается выбора для новичка... Во-первых, как видно из подсказок, включиться этот контент может и сам по себе случайным образом, т.е. отказаться от него 100% не получится, разве что обладатели Steam-версии могут через правую кнопку в клиенте попробовать запустить оригинальную версию (vanilla - This War of Mine: Original Release 1.0). Фиг знает на сколько это вообще разумно. В игре и сейчас-то багов хватает, а что там творилось в первой версии даже представить страшно.... Но я это всё проверить не могу, ибо у меня версия от GOG и там такой опции запуска тупо нет.

Во-вторых, по собственному опыту могу сказать, что всё оно на впечатление от игры не влияет. Я пробовал включать и Anniversary Edition, и Final Cut, и без них - играется плюс-минус одинаково. Так что можно забить на эти галочки и играть прямо так. Включится доп.контент - хорошо, не включится - ну и ладно, и без него будет чем заняться.

Profile picture for user Человек из интернетов

спасибо большое за ответ :)

Profile picture for user Человек из интернетов

эмм... зачем я и так создал целую семью 4 чела и тд ... единственное не понял как и что делать с модом типа встроеным и тд.. доск по 2 шт не выносимо в ячейку простооосто ..

Profile picture for user Человек из интернетов

всё ровно я че то не понял или у меня нету каких то моделей редактора... вообще не понимаю че к чему...

Profile picture for user Avatar-Lion

>>Гость
Поясните на каком именно этапе проблема возникает.

Profile picture for user Человек из интернетов

Эм... да я вообще не понял где этот редактор как в него попасть и тд.. Единственное нашел где создать своих персов карту и тд .
Также хотел бы уточнить вот есть локация школа там повстанцы тип кричит стой мы готовы меняться и где и как сн ими меняться они потом шмалять начинают...

Profile picture for user Avatar-Lion

Редактор запускается через файл Storyteller.exe в папке игры.

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

Profile picture for user Человек из интернетов

спасибо.

Profile picture for user Человек из интернетов

А 4ый персонаж будет или придет или где найти ?

Profile picture for user Человек из интернетов

А можно отключить Франко?

Profile picture for user Avatar-Lion

Мне кажется, полное отключение Франко серьёзно испортит баланс, который в игре и так не идеален... Загляните в ветку Visit config → VisitTypes и найдите там подсекцию со значением Trader. И удалите ее (правой кнопкой - Remove). Сам не проверял такое, но по идее, после этого Франко должен перестать приходить в любых сценариях, включая те, которые мы сами начнем через Мастерскую игры.

Profile picture for user Человек из интернетов

Благодарствую. Про баланс, думаю хуже не станет. Франко сам по себе имбансен, по сути он убежище и строит, все что нужно так это лутать локации на предмет ценных вещей вроде оружия и медикаментов. Баланс только на игрока работает. Трудно игнорировать всякие блокпосты и школы с повстанцами которые неестественно просто зачищаются, или тот же тихий дом без штрафов к морали если брать только бинты и трав.лекарства которых там навалом и супермаркет с солдатом стоящим вечно спиной и у которого хп ниже чем у бандитов. Хотел попробовать костом сценарий без имбовых персов и начать хочу исключив Франко. Без него торги с солдатами и повстанцами должны иметь больше смысла, а не быть источником фри лута для того же Франко с более выгодным соотношением обмена. Да и с точки зрения логики считаю странным, что после вселения наших выживалищиков к ним сразу же с первых дней, под обстрелами снайперов и артилерии приходит местный неприкосаемый благодетель и начинает бартериться 1 к 1, толком не зная что за люди перед ним. Не понятно почему нельзя устраивать пальбу в пределах убежища, а не только ночью в соседних местах

Profile picture for user Avatar-Lion

Убийство всех и вся выгоднее мирного прохождения, это "правило" (назовем так) тянется за компьютерными играми с момента их возникновения, потому как в основе его лежит простая математика: можно потратить условные 20 патронов, чтобы убить всех и собрать потом с трупов 100 патронов или же можно продать те самые условные 20 патронов, но тогда ты просто получишь взамен что-то эквивалентное их стоимости. То же самое касается и воровства в том или ином виде: затраты ресурсов на кражу обычно меньше, чем на изготовление товаров той же стоимости своими силами. Короче, играть "плохим парнем" проще и легче, чем "добрым парнем". Так было, так есть и так будет всегда.

Разумеется, разработчики не идиоты и всё это тоже отлично понимали, поэтому не получится просто взять и начать всех подряд убивать или обворовывать: наши персонажи не супермены и неопытный игрок скорее погибнет, нежели получит какой-то ощутимый профит. Однако рано или поздно накопленные знания и навыки позволят игроку валить всех налево и направо, и тогда баланс рухнет окончательно... Но повторюсь, это не проблема This War of Mine, это проблема любой игры, которая дает определенную свободу игрокам. На ум приходит легендарный Fallout 2, который можно либо проходить месяцами, либо закончить основную сюжетную линию за двадцать минут, попутно заимев лучшую броню, оружие и т.д. Означает ли это, что This War of Mine или Fallout 2 являются плохими и не проработанными играми? Нет конечно. Просто они так же, как и в жизни, дают тебе возможность использовать имеющиеся у тебя знания и навыки, чтобы получить те или иные преимущества. И это честно, я считаю.

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

Навещающий нас торговец явно таскает нужные вещи не только нам, но и много кому ещё. Поэтому его и не трогают. Как вариант, он просто отстёгивает часть прибыли Кому Надо, чтобы безопасно перемещаться по городу. По той же причине Франко не трогают и мирные жители. В конце концов, даже если ты пристрелишь торговца и заберешь весь его товар, то можешь быть уверенным, что тебя начнут искать все - и солдаты, и бандиты, и простые жители. Стоит ли гарантированная смерть разовой добычи? Ну... Лично мне кажется что нет.

Ратующие за полную и абсолютную свободу игроки, конечно, могут резонно возразить, мол, где ж тогда эта свобода, если я не могу Франко грохнуть? Но не надо забывать про тот самый баланс. Игра должна иметь механизмы сдерживания, которые, с одной стороны, не позволят совсем уж явно читерить на ровном месте, а с другой, защитят неопытных игроков от ошибок, которые они неизбежно будут совершать в ходе изучения геймплея. Поэтому Франко убить нельзя, потому как это сильно затруднит освоение игры новичками. Но можно убить всех остальных торговцев в игре. За что, кстати, не последует никакого наказания, кроме моральных штрафов, но тут уже все упирается в скромный бюджет игры, да и в целом This War of Mine - она не про кровную месть торгового братства, а несколько про другое.

Profile picture for user Человек из интернетов

Добрый вечер, есть какой нибудь способ или мод на увеличение числа выживших в убежище? Искал в мастерской стима не нашел ничего нормального

Profile picture for user Avatar-Lion

Количество стартовых персонажей, с которыми игрок начинает сценарий, можно увеличить только для базовых сценариев от разработчиков: Scenarios config → DwellerSets → внутреннее_имя_сценария → DwellerTemplates.

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

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

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

Сам по себе этот лимит поменять несложно, он находится в разделе Main config, секция "Прочее", параметр DwellerCap. По умолчанию он равен 4, пишем вместо этой цифры нужное нам значение. Какого-то верхнего лимита там нет, но ставить больше 6-7 персонажей едва ли есть смысл, т.к. убежище все-таки не резиновое и может банально места не хватить для кроватей на всех... Ну или так: кто плохо вёл себя днём, тот ночью спит на полу. :)))

Однако это еще не все, нужно задать условия визита новых персонажей.

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

Разработчики прописали условия по прибавлению очков визита только для четырех персонажей максимум, условия для появления пятого и последующего персонажа не прописаны, поэтому придется сделать это вручную. Идем в ветку Visit config → VisitTypes → Kosovo visit type dweller join info → DailyPointGainsWithDwellers. Как видим, чем меньше в команде игрока персонажей на старте, тем больше очков будет прибавляться для визита типа "Dweller" и тем быстрее придет новый персонаж.

В принципе, для пятого и последующего персонажей можно сразу десяток-другой очков прописать. В этом случае при старте игры (в первый день) у нас будет 4 персонажа, но уже на второй день к нам начнет ломиться пятый выживший. Но повторюсь, с этим параметром нужно быть осторожнее, т.к. еды в начале игры даже на четырех человек не хватает, а если каждый день будет приходить новое тело, то уже к концу первой недели начнется натуральный продовольственный кризис. Я бы все же порекомендовал использовать значения из предыдущих строк, чтобы более гибко настроить визиты новых выживших. Чтобы рассчитать дату их визита, делим 5 на нужное число, например, 5 : 0,3 = 16,6. Иными словами, если прописать 0,3 для пятого и последующего персонажей, то они будут приходить каждые ~17 дней, что сделает геймплей более сбалансированным.

Отмечу на всякий случай, что лично у меня Storyteller категорически отказывался сохранять сделанные изменения при попытке добавить очки визита для пятого и последующих персонажей: цифры менялись, но после нажатия кнопки Pack Files ничего по факту не сохранялось. Поэтому после того, как сделаете мод, запустите Storyteller повторно и проверьте сохранились ли изменения для очков визита новых персонажей. Если не сохранились, то можно воспользоваться обходным путем: продублируйте четвертую строку (правой кнопкой → Duplicate Item) нужное количество раз и отредактируйте значения под себя.

Profile picture for user Человек из интернетов

Avatar-Lion, Спасибо за как всегда подробное объяснение. Пришлось дублировать строки, думаю это из за того что игрой не предусмотрено больше 4 или 5(раньше был баг с детьми и опекунами) персов поэтому последняя строка должна иметь значение "0" . Ради интереса задал значения в 0.484 с макс 8 жильцами, будет время опробую. Старт с 4 и последующим увеличением числа прихожан раз в 10 дней должно быть как раз оптимальным вариантом. Как то видел мод сразу с 12 персами и сразу с первого дня, но пробовать это не захотелось. Игра вроде как про выживание, так что вопрос с провизией должен всегда остро стоять.
Интересный момент; игра не очень дружелюбна к новичкам и как ни странно не порогом вхождения как в других играх, а именно тем что не объясняет механики. С другой стороны для более прошаренных, игра уже не предоставляет челенджа, особенно в базовых сценариях где уже с 5 или 7 дней можно ежедневно кормить до сыта. Я это к тому что стоило наверное изначально сделать сценарии, ну или кастомы, с 5-6 персами без всякой возни в сторителлер

Profile picture for user Avatar-Lion

Беглый поиск в гугле подсказывает, что речь идет о моде под громким названием "Ultimate Challenge". Судя по всему, его автор сделал именно то, о чем я писал выше: отредактировал один из базовых сценариев (Павло, Бруно, Марко), впихнув туда всех остальных персонажей... Честно говоря, меня всегда удивляли подобные модификации. Они легко делаются, но откровенно рушат баланс и геймплей.

По поводу выживания и провизии. Да, согласен, для опытного игрока не составит сложности прокормить группу из нескольких человек, поэтому ваше стремление сделать игру более сложной и реалистичной в плане выживания мне понятно. В конце концов, я по сути тем же самым занимался, когда делал свой мод "Long Game Rebalance". :) Однако вы пытаетесь использовать количество персонажей как регулятор сложности игры, а это не совсем верный подход.

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

  • Items → RawFood
  • Items → Vegetables
  • Items → CookedFood
  • Items → CookedFood2
  • Items → CannedFood

У каждого из этих предметов есть дополнительная ветка LevelInfluences с параметром "Full Influence (Times)", который обозначает сколько порций данного вида еды нужно съесть, чтобы снять один уровень голода. Как мы знаем, по умолчанию это 2 порции сырой еды или овощей и 1 порция приготовленной еды или консерв. Соответственно, если увеличить вдвое эти цифры, то каждого персонажа придется кормить дважды в день. Уверяю, при таком раскладе призрак голодной смерти начнет преследовать вашу группу выживших куда быстрее, чем изначально может показаться...

Profile picture for user Человек из интернетов

Avatar-Lion, спасибо за рекомендацию, решил сразу же опробовать. Насчет снижение эффективности еды: при установки потребовалось поменять строку "Stop ticks" с false на true для CookedFood и CannedFood из за некорректной смены статусов голода. Также произошел конфликт с long game rabalance, формула готовки сбросилась до ванильной версии. Самое курьезное это сырая еда, игра не считывает проценты питательности еды, выдавая "голодному" каждый день кусок сырого мяса (то есть 25% от нормы) и получив сегодня статус "вСе ЕщЕ гОлОдеН" мы будем иметь "голоден" также и завтра и даже через несколько дней.
Я порой думал о не логичности системы кормежек через день, но как то не было мысли что либо модить. Ирл уже через неделю такой диеты наши подопечные были бы как призраки, тем более спя по 5-6 часов (Кристо вообще спит 3 и никак не больше)

Profile picture for user Avatar-Lion

Да, точно, про Stop ticks я забыл. И да, конечно же будет конфликт с Long Game Rebalance, там ведь тоже ветки CookedFood и CookedFood2 изменены. Вообще, на время любых экспериментов лучше отключать все остальные моды, чтобы гарантированно не возникало никаких конфликтов. Потом уже, когда будет достигнут нужный результат, можно будет подумать как можно объединить два мода в один.

Далее. Игра не считывает "проценты питательности". Повторюсь, я давно уже копал всю эту тему с едой, но если я правильно помню, там смысл в том, что к началу следующего дня сбрасываются все неполные значения, т.е. уровни сытости +0,5 и +1,0 одинаково становятся 0,0 на следующее утро. Логично предположить, что и для более мелких значений типа 0,25 будет действовать то же правило, включая отрицательные значения, т.е. когда наши персонажи уже имеют некоторый уровень голода.

Вообще, есть ветка Localization strings → Game string group → CharacterParameters → Hungry → Levels, где прописаны все эти статусы. Для неполных статусов ("все еще голоден", "все еще умирает от голода"...) есть доп.ветки с литерой _f. Смысл подобного сокращения мне понять не удалось, поскольку F не является сокращением от слов типа "половина" ни на английском, ни на польском. В английском алфавите она тоже не посередине, а почти в самом начале. В шестнадцатеричной системе (HEX) буква F соответствует числу 15... В общем, непонятно что авторы игры хотели сказать этой литерой.

У меня была в свое время идея размножить эти неполные статусы. Ведь если для еды F = 50%, то логично предположить, что можно сделать статусы и для других состояний, что-то вроде E = 25%, F = 50%, G = 75%. Но... Каюсь, по итогу я тупо забил на всё это дело, ибо оно всё начинало противоречить уже самой концепции Long Game Rebalance, согласно которой изменения не должны носить какого-то радикального характера. А снижение питательности еды вдвое - это те самые радикальные изменения, сложность игры вырастает очень ощутимо. Причем там еще и привязка к локациям по сути появляется. В том смысле, что в начале игры наиболее богатые локации закрыты ведь. А какая-нибудь там "Ветхая трущоба" или "Разбомбленная школа" (с бездомными) - это вот точно не самые лучшие места для поисков еды. В итоге получается, что копыта не отбросить можно только при наличии каких-то более или менее богатых стартовых локаций. Ну или придется натуральный геноцид устраивать везде и всюду, чтобы набрать жратвы нашим ребятам... Подобные изменения тянут за собой просто чудовищное количество последствий. И все это нужно тестировать, тестировать и еще раз тестировать, так что я забил в итоге на все это дело.

Вообще, в Storyteller в принципе нет каких-либо опций, которые относились бы к базовым потребностям персонажей (еда, сон, ранения, болезни). Видимо, это всё зашито где-то глубже, в самом движке игры, а через Storyteller мы можем менять только свойства тех или иных предметов, которые взаимодействуют с этими базовыми потребностями, меняя их показатели в ту или иную сторону.

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

Более того, спят наши ребята вовсе не на пуховых перинах, а на самодельных кроватях. Которые, кстати говоря, сделаны из деревянных поддонов, что меня изрядно удивило в свое время. Авторы игры, видимо, не в курсе, что такие поддоны пропитаны кучей химической дряни, поскольку они используются для транспортировки грузов и должны быть устойчивы к воздействиям внешней среды. Держать их в жилом помещении и тем более спать на этих поддонах... Ну, такое себе. Хотя это игра, на такие нюансы можно забить. Но в любом случае, было бы вполне логично сделать кровати менее эффективными, чтобы на снятие одного уровня усталости нужно было тратить не 5 часов, а 10. Во-первых, это сделает игру более реалистичной, а во-вторых, повысит ценность помощников, поскольку добытчик будет по сути выключен на половину дня из хозяйственной деятельности убежища.

А вот сделать так, чтобы наши персонажи уставали после какой-либо работы, мне не удалось. В игре есть только одно место, где выполнение работы дает 1 уровень усталости - это разбор завалов в The Last Broadcast. Но такие завалы, судя по всему, относятся к динамическим объектам на карте, как и всякие там запертые двери, решётки и прочие штуки, с которыми наши персонажи взаимодействуют только с помощью других предметов (лопата, отмычки и т.д.). Ну а Storyteller не позволяет редактировать свойства каких бы то ни было объектов на локациях, равно как и не позволяет указать связи между ними.

Помню, в свое время хотел сделать два вида лопаты: маленькую одноразовую и одну большую, чтобы можно было выбирать что с собой брать на ночные вылазки (по аналогии с ломом и отмычками). Но нет, куда там... Игра связывает разбор завалов с предметом Shovel (лопата), а любой другой предмет, даже с полностью идентичными характеристиками, но с другим названием (Shovel2) для раскопок завалов использовать попросту невозможно. В общем, мои гениальные идеи были жёстко обломаны. :)

Возвращаясь к теме еды: можно на самом деле не заморачиваться с ее питательной ценностью, а тупо поднять на нее цены. Причем сразу в несколько раз. По умолчанию потому что обменный курс выглядит как-то так: 1 бинты + 1 медикаменты = 4 консервы (почти, но там разница 0,5 единиц стоимости, этим можно пренебречь). Да и в целом у торговца еды достаточно много.

В итоге получается, что в 95% случаев игрок имеет возможность купить еду на четверых человек путем визита практически на любую локацию, поскольку медикаменты есть почти везде. А с учетом схемы "кормёжка через день" вторую ночь можно потратить вообще на что угодно... Конечно, такой подход делает игру более дружелюбной к новичкам, но опытных игроков подобный подход заставляет скучать. Поэтому поднимаем цены на любую еду в 2-3 раза и офигеваем от результата. :) Также можно снизить максимальное количество еды у торговца, дабы визиты Франко не позволяли кормиться только лишь за его счет, лениво спихивая ему всякий мусор в обмен на пропитание. Заодно, кстати, это решит проблему излишнего затоваривания на средних и поздних этапах игры, когда у игрока есть возможность делать те же медикаменты, но смысла в этом уже не очень много, поскольку их все равно некуда девать.

Profile picture for user Человек из интернетов

Avatar-Lion, >>"Видимо, это всё зашито где-то глубже, в самом движке игры" Тут разработчикам стоило сделать помимо интенсивности конфликтов также и уровни сложности. Кормежка через день звучит как облегченный вариант.
По порядку: думаю высчитывать % от питательности еды это муторно, я бы оставил 50% для сырой еды и также 50% для готовой, однако, прописал бы как последствие негативные качества для сырой еды типа: слегка болен, или по аналогии с "плохо спал" повысил вероятность получения болезни. Кстати таким образом лекарства больше бы юзались, и как следствие на протяжение всей игры были бы востребованны. Единственное, мне навскидку не попадались такие параметры в StoryTeller в свойствах еды (ну или я не понял).
Как вариант можно "скостить статусы", например срезать 2ые уровени(дни) типа: голоден, оч голоден и тд. Но наверное это уже в движке, по крайней мере я не видел это в ST . Было бы жаль оставлять идею с реалистичной кормежкой.
Насчет поддонов: я сразу обратил на них внимание, но никогда незнал про их вредные свойства хоть и сам по работе имел дело с ними некоторое время 🤔. Хотя в игре поддоны (да и не только) делают сами персонажи из того что есть или что найдут. Нужно модом разделить древесину на разные типы :)
По поводу подятия цен на еду: по моему тут будет больше проблем, если конечно не перелапатить всю экономику игры . Кормиться можно не только от Франко, но и от добычи с вылазок и от подпольного производства. При удваивании стоимости консервов я бы их продавал, причем тому же Франко и наверное скупал бы у него все подряд. Условно можно брать стак еды, а при новой формуле это (30x4=120) для тушенки и {18x4=72 [больше чем пули кстати(3,5x20=70)]} для сырой еды, и идти на площадь и скупать там все что есть в том числе и повстанцев ;). При самопроизводстве будет еще лучше: к примеру 5 овощей за 88 компонентов и 1 доску, потом пускать компоненты на фильтры и дальше уже всем известный процесс.
Для усложнения игрового процесса можно еще поменять курс обмена, к примеру 1,5 к 1 вместо 1 к 1 с переплатой в 0,5 внутреигровой ед

Profile picture for user Avatar-Lion

Для такой игры как This War of Mine реализовать уровни сложности едва ли возможно. Тут речь не столько о технической стороне дела (уж разработчики-то что угодно могут сотворить с игрой), сколько о рациональной: что это дало бы самой игре? This War of Mine является ведь в первую очередь демонстрацией войны с той стороны, с которой ее не принято показывать в играх и фильмах. И только во вторую очередь это симулятор выживания. Да, согласен, после того, как ты прошел все сценарии, поиграл за всех персонажей и поэкспериментировал в Мастерской игры, хочется чего-то нового и более сложного. Но справедливости вот ради, многие ли игроки вообще доходят до такой точки, когда им перестает хватать исходного контента и они хотели бы что-то новое попробовать? Нет, очень немногие. Достаточно взглянуть на статистику достижений.

Честно говоря, открывать Steam мне лень, да и не знаю я где там эту инфу смотреть надо, поэтому возьму данные из своего профиля на сайте GOG. Понятно, что аудитория у этой платформы меньше, но плюс-минус оно всё одинаково будет, уверен. И видим: обычные достижения наподобие Bless the radio (сделать радио) есть лишь у ~50% игроков. А такое невероятно трудное достижение как Finished ransacking (собрать все предметы в убежище) есть лишь у ~60%. Прикольно, да? :) Что уж говорить про достижения типа Exodus (закончить сценарий досрочно, уплыв из города на катере). Оно считается "эпичным" (по меркам GOG). Видимо, потому, что это сделало лишь чуть больше 1% игроков... К сожалению, GOG не показывает сколько другие люди играли в This War of Mine, но уверен, планку в 850 часов тоже очень немногие перешагнули.

Иными словами, большинство людей даже имеющиеся в игре возможности не видела и не использовала, им это попросту не интересно. И если это даже нам очевидно, то еще более это очевидно для разработчиков, у которых наверняка есть доступ к более обширной и детальной статистике. Причем они не дураки, поскольку явно попытались исправить ситуацию, выпустив The Little Ones. Там дневная часть геймплея стала более живой и активной, а вместе с детьми мы получили и их опекунов с интересными свойствами. В общем, путь разработчики выбрали правильный (привлечение новой аудитории), но вот техническая часть подкачала: детишки получились глючными и довольно-таки бесполезными, по своим свойствам они больше напоминают домашних животных, нежели полноценных персонажей. А их опекуны идут только с ними в комплекте, отдельно в Мастерской их выбрать нельзя...

Три истории, выпущенные позже, были на самом деле любопытной штукой, но вариативности там откровенно маловато получилось, скорее, это была последняя попытка вернуть интерес аудитории к This War of Mine путем выпуска детально проработанных сценариев. Лично мне сама идея понравилась, но там уже полезли ограничения, связанные с самим движком игры. В нем фактически нет полноценной диалоговой системы, он плохо подходит для крупных планов (начинает бросаться в глаза нехватка полигонов и текстуры с низким разрешением), да и в целом смешивать выживание с сюжетом очень тяжело, поскольку отсутствие полноценного механизма Save \ Load Game ставит крест на любых экспериментах. В таких условиях исследовать и изучать новые локации и говорить с новыми NPC было крайне нервным делом. То, что хорошо работало в оригинальной This War of Mine, в историях лишь тормозило игрока, потому как там "запасных" персонажей не было.

Я это все к тому, что не стоит возмущаться или удивляться отсутствию регулятора сложности в игре, потому как разработчики поняли, что основная часть геймеров знакома с игрой весьма поверхностно и лишь единицы будут сидеть и рассуждать на сколько реалистично выглядит 5-часовой сон или 1 порция еды в день... И да, возвращаясь к теме еды: где-то в Steam Workshop был подобный мод, там употребление в пищу сырой еды или сырых овощей как раз-таки делало персонажей слегка больными. Не помню только, это была отдельная какая-то работа или оно все было в составе какой-то более глобальной модификации. Но в любом случае, сделать такое самостоятельно не сложно, достаточно скопировать ветку Influences из лекарств в сырую еду, только надо убрать знак минуса, иначе еда будет лечить персонажа, а не делать его больным. :)

Что касается реалистичной кормёжки в целом, то можно пойти от обратного: тупо умножить вдвое количество необходимых для приготовления ресурсов. В этом случае можно будет оставить старый механизм (статусы и прочее), но сложность при этом по-прежнему останется высокой. В частности, именно по этому пути я и пошел в Long Game Rebalance, хотя там, конечно, изменения были не столь радикальны (как уже говорилось выше, я не сторонник подобного).

Насчет стоимости еды: это ведь можно комбинировать с другими методами. Да и как показывает практика, без всяких модов в игре есть много дорогих вещей, которыми можно забить рюкзак и прийти торговать ими. Только вот утащить обратно ты же мало чего сможешь, 10-12 слотов рюкзака ставят крест на подобных "торговых рейдах". :)

Кстати, по поводу размера рюкзака. Я много раз говорил об этом уже и повторю сейчас: сложность игры является производной от размера рюкзака. И если лень править HEX-редактором шаблоны персонажей, чтобы у них у всех стало по 8-10 слотов, то можно уменьшить количество предметов в стопках. Скажем, пускай будет не по 4 компонента, а по 2... Одно только это радикально поменяет темп развития убежища.

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

Profile picture for user Человек из интернетов

Avatar-Lion, Не разобрался как копировать ветки. Думал ctrl+c, а там все не так просто

Profile picture for user Avatar-Lion

Все правильно, через Ctrl + С \ Ctrl + V это делается.

Например, идем в Items → HerbalMeds и кликаем по ветке Influences, чтобы выбрать (подсветить) ее. Затем жмем Ctrl + С. Далее идем в RawFood, аналогично подсвечиваем там Influences и жмём Ctrl + V. Всё.

Ну или через контекстное меню (по правой кнопке) можно проделать всё то же самое, через пункты Copy \ Paste.

Profile picture for user Человек из интернетов

Спасибо за замечательный ресурс! Очень много полезного узнал. Скажите, пожалуйста, а возможно ли модифицировать игру так, чтобы создать свою собственную семью, т.к. себя, жену и ребёнка с соответствующими отношениями между ними?

Profile picture for user Avatar-Lion

Павел, приветствую. :)

К сожалению, полноценная семья в This War of Mine не предусмотрена. Технически оно всё работает следующим образом: у детей есть параметр ChildComponentConfig, в котором указан путь к ChildrenProtector (дословно "защитник ребенка"), т.е. в данный параметр подставляется название шаблона взрослого персонажа: Dweller_Christo, Dweller_Henrik, Dweller_Irina. У детей-сирот этот параметр не заполнен, тогда ChildrenProtector'ом станет тот, с кем ребенок будет играть и общаться больше всего.

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

Profile picture for user Человек из интернетов

Спасибо за ответ!
Я так и думал...жалко. Ну хорошо, а можно сделать просто меня и ребенка? Грубо говоря, переименовать Кристо и Искру и сменить им фотографии?

Profile picture for user Avatar-Lion

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

Запускаем Storyteller и выбираем создание нового мода. Вводим название, описание и ставим галочку Extract Textures. Жмем ОК и ждем, пока не завершится процесс извлечения. Занимает 2-3 минуты в среднем. Когда процесс закончится, то окно Storyteller с выбором модификации можно пока закрыть.

Открываем папку с модом, где лежат распакованные текстуры. Если у вас версия игры от GOG, то путь довольно простой, там все моды складируются в папку "Документы\This War of Mine\Mods". У Steam-версии путь чуть более сложный: Steam\steamapps\common\This War of Mine\Mods. Нас там интересуют графические файлы .dds с портретами персонажей: идентификатор_мода\textures\ui\characters.

Штатный графический редактор Paint из состава Windows такие файлы открывать не умеет, поэтому нужно что-нибудь помощнее. Я использовал улучшенный народный аналог под названием Paint.NET - редактор не самый идеальный, но зато бесплатный и даже с русским языком.

В случае с картинками и иконками игра обычно оперирует определенным смещением в пикселях для выбора нужного фрагмента из списка картинок, если так можно выразиться. Для разных картинок эти смещения разные, но сейчас это не важно. Конкретно для портретов персонажей смещение составляет 512х512 точек. Соответственно, подготавливаем две фотографии. Они должны быть квадратные и размером 512х512 точек. Как видно по оригинальным картинкам игры, лучше чтобы по краям было некоторое свободное пространство с пустым фоном, т.к. по краям фотографии в игре закрываются рамкой фотокарточек. Цвет - на ваше усмотрение. На самом деле игра может и цветные портреты отображать, но смотрится это не слишком аутентично. С другой стороны, далеко не каждое цветное фото хорошо выглядит в черно-белом варианте... В общем, если у вас есть друг-фотограф, то попросите его обработать для вас пару фото, чтобы сделать их похожими на фотографии оригинальных персонажей.

После того, как подготовите фотографии, открываем файл characters_05_open.dds в Paint.NET. Вставляем (Ctrl + V) фото из буфера и двигаем его примерно в нужную позицию, чтобы закрыть фото Кристо своим. Стрелочками на клавиатуре можно попиксельно двигать активный фрагмент. Смотрите в статусную строку Paint.NET, должно получиться в итоге "Позиция: 512 х 0" (ноль потому, что это первый ряд, для него смещение по вертикали не применяется). После этого вставляем второе фото и заменяем Искру (1024 х 0).

Сохраняем картинку. Paint.NET может спросить о параметрах изображения, ничего не меняем, просто жмем ОК для подтверждения и закрываем графический редактор.

Теперь необходимо отредактировать имена и описание персонажей. Запускаем Storyteller и выбираем там свой мод. Когда загрузится редактор сценариев, идем в Localization strings →  Groups CharacterSkills. Находим там Christo и Iskra, после чего меняем описание ("Определенный отец" и "Дочь Кристо") на нужное вам. Затем крутим ниже, до ветки Names. Аналогично находим там Christo и Iskra, после чего меняем их имена на нужные. Все изменения применяются сразу, так что кнопку сохранения можете не искать. :)

На этом всё. Жмем на кнопку Pack Files (синий треугольник) в верхнем левом углу редактора и ждем, пока редактор не сделает мод с вашими изменениями. После того, как все будет готово, можно будет запускать игру.

В Мастерской игры, в списке персонажей, Кристо и Искра используют какую-то другую картинку, где объединены два портрета в один. Судя по всему, это изображение вшито в сам движок игры и оно сторонними средствами не меняется. Но после начала нового сценария вы увидите изменения (новые фото и имена персонажей).

P.S. От себя лично рекомендую для начала заморочиться с портретом одного персонажа, чтобы поднабраться опыта и научиться понимать как та или иная фотография будет смотреться в игре.

Profile picture for user Человек из интернетов

Шикарно! Спасибо за подробнейшее объяснение! Попробую!

Profile picture for user Человек из интернетов

Я попробовал 7 раз отредактировать templates.dat при помощи BSPacker и BSUnpacker. В таком случае игра (стим версия) перестала запускаться. Я пробовал еще и отдельно создавать templates.dat и перезаписывать его в папку с игорой. Итог одинаковый. Игра не запускается (стим версия). Есть ли совет по этому поводу?

Profile picture for user Avatar-Lion

Андрей, а какие именно изменения вы вносили?

Profile picture for user Человек из интернетов

Avatar-Lion, я пытался изменить размер рюкзака

Profile picture for user Avatar-Lion

Пользователь Андрей прислал мне два файла на почту (.binarytemplate от Романа и Марко), а также задал несколько вопросов по другим свойствам персонажей: изменение уровня шума, изменение уровня урона, изменение навыка торговли. Сначала хотел просто написать ему ответное письмо, но потом подумал, что эта информация может быть интересна и полезна другим игрокам в This War of Mine.

---

Для начала разберемся с файлами .binarytemplate. Пересобрав архив templates.dat с файлами Андрея, игра также начала у меня вылетать при запуске. К счастью, сравнительный анализ файлов в НЕХ-редакторе позволяет быстро найти источник таких проблем.

В шаблонах персонажей Андрей правильно прописал им новые размеры рюкзаков, но при этом случайно удалил нулевой байт в одном месте, из-за чего шаблоны немножко похудели. :) Скриншот для наглядности (сверху правильное значение, снизу - с потерянным байтом): https://i.ibb.co/PxbdmGz/00.png

После того, как я дописал недостающие 00 в оба шаблона и заново создал templates.dat, игра без проблем запустилась. Если кому интересно, то у Романа стало 18 слотов. а у Марко 24. :)))

Теперь разберем другие вопросы.

Уровень шума. Как известно, Арика меньше шумит во время ночных вылазок. За это отвечает параметр OverrideSound в ее шаблоне. Увы, но точной настройке он не поддается. OverrideSound = 4 и точка. Непонятно что именно означает цифра 4 (проценты? сдвиг адресации? уровень громкости? фаза луны?), но любые попытки изменить это значение хотя бы на единицу приводили к отказу в запуске игры. Однако если вы просто хотите сделать бесшумным какого-то другого персонажа, то позаимствовать этот параметр у Арики мы вполне себе можем.

Для начала открываем шаблон Арики (dweller_female_thief.binarytemplate). Параметры в шаблонах персонажей This War of Mine начинаются с единицы, поэтому не забудьте захватить 01 перед началом. Соответственно, выделяем всю секцию OverrideSound, вплоть до следующего 01, но не включая его. Скриншот для наглядности: https://i.ibb.co/0rXYdQN/Override-Sound-Arika.png

Теперь открываем шаблон Марко (dweller_scavenger.binarytemplate) и ищем подходящее место для этого параметра. По понятным причинам полностью повторить структуру шаблона Арики мы не сможем, но это в данном случае и не требуется, просто добавляем всё это добро сразу после значения его характера (психотипа), как это сделано у Арики. Вставляем... НЕХ-редактор может предупредить, что это повлияет на размер файла, но это нормально. В итоге должен получиться следующий результат: https://i.ibb.co/fXrN7zV/Override-Sound-Marko.png

На этом наши приключения не заканчиваются. Поскольку мы добавили Марко новое свойство, то необходимо увеличить общий счетчик его навыков, иначе игра откажется запускаться с таким кривым персонажем. Ищем чуть выше параметр StateTree и добавляем ему одну единичку к текущему значению. У Марко оно равно 05, значит, нужно поменять его на 06 (в пределах первых девяти цифр шестнадцатеричные значения аналогичны нашей десятичной системе, поэтому дополнительные преобразования не нужны). Должно получиться так: https://i.ibb.co/LdW1hWB/State-Tree.png

Но и это еще не все. По всей видимости, некоторые навыки включены в какой-то глобальный счетчик всех полей и значений шаблона. Указывается эта цифра в самом начале файла. Мне не удалось понять логику авторов игры по этой части, поскольку какие-то навыки можно свободно добавлять в другие шаблоны, нужно лишь следить за счетчиком StateTree, а какие-то требуют соответствующей правки глобального счетчика в начале файла... OverrideSound относится именно к таким навыкам, поэтому крутим в самый верх и меняем девятый байт второй строки на +1.

У Марко глобальный счетчик навыков и свойств равен девяти (09), так что на этот раз потребуется все-таки преобразовать понятный нам десятичный вид в шестнадцатеричный. Так мы узнаем, что 10 = 0A. Именно это мы и пишем: https://i.ibb.co/0qxj4zz/00000010-09.png

На этом все. Можно создать templates.dat и насладиться новым бесшумным Марко.

Уровень урона. За это в шаблоне отвечает параметр CombatComponent, у которого есть аж восемь параметров. Первые четыре значения отвечают за стрельбу, следующие четыре - за ближний бой. Только вот каждый из этих параметров может принимать значения в диапазоне от 00 до FF (255), что дает в сумме миллионы комбинаций... Проведя несколько экспериментов, удалось выяснить следующие данные:

Стрельба
 - 00 00 00 00 = невозможность стрелять
 - 00 00 00 3F = возможность стрелять прицельно примерно через полэкрана
 - 4С 4С 4С 4С = полный урон на любом расстоянии (один экран)

Ближний бой
 - 3F 3F 4C 4C = убийство со спины с одного удара голыми руками

Как видим, ничего внятного эти цифры сообщить не могут, поэтому проще всего копировать CombatComponent целиком от тех персонажей, которые нам хорошо знакомы по игре. Соответственно, если добавить Марко параметр CombatComponent от Арики, то он станет не только бесшумно бегать, но и научиться убивать из темноты голыми руками и т.д. И наоборот, если добавить Марко боевые навыки Светы, то он станет полностью беспомощен в ночных вылазках.

Если будете химичить с боевыми навыками, то учтите, что добавление CombatComponent требует увеличения на единичку только в StateTree, глобальный счетчик в начале файла трогать не нужно.

Торговля. С ней ситуация аналогична урону: сам навык TradingClient берется у Кати без проблем, нужно лишь накинуть единичку к значению StateTree, но меняется навык торговли четырьмя параметрами, все те же от 00 до FF (255). Соответственно, подстраивать навык торговли придется долго и мучительно, лично я вообще сдался после нескольких попыток, ибо отдельные изменения некоторых полей вообще ничего не давали, в то время как другие поля уводили навык торговли куда-то в космос и можно было за один патрон (условно) купить любые предметы в любых количествах.

Profile picture for user Человек из интернетов

Avatar-Lion, Большое спасибо!

Profile picture for user Avatar-Lion

Пожалуйста. :) Дам напоследок один совет: не заморачивайтесь особо с переносом всех этих навыков, т.к. новый пользовательский опыт они по сути не дают. Ведь какая разница как выглядит персонаж, если он бегает как Арика или торгуется как Катя? Все это мы видели уже много раз, поэтому заниматься подобными экспериментами можно с целью изучения игры и ее свойств, но каких-то новых ощущений не ждите.

Если хочется просто поправить баланс, то куда эффективнее в этом плане изменение цен на предметы. Например, банальное изменение цен на компоненты наподобие х1,5 - х2 поменяет очень многое в развитии вашего убежища, причем ощущаться такое изменение будет вплоть до самого финала. В то время как какая-нибудь условная Катя, получившая боевые навыки Романа, может вообще ни разу не воспользоваться этим новым своим качеством на протяжении всей игры.

Добавить комментарий

Ограниченный HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

Последние изменения