Darksiders Warmastered Edition

Darksiders Warmastered Edition

评价数不足
Исправляем баг с Кристальным Мечом (Подземелья Сумрачного Собора)
由 lowkeypriority 制作
Решение бага в подземелье Собора с пропажей Кристального Меча (Crystal Sword) для решения головоломки (три статуи ожидающих меч)
   
奖励
收藏
已收藏
取消收藏
Вступление
Данный баг появился случайно и как большинство игроков не придал пропаже клинка значения.
Решив первую комнату с мостом, оставалось только взять меч. Подхожу, нажимаю. Проигрывается анимация, иии...

Меча нет
Меча нет.
"Может баг в отображении модельки, но сам объект у меня есть и могу продолжить квест"

Подойдя к статуе, которой нужно вручить железяку стекляшку, я не увидел привычной кнопки взаимодействия.
"Хм... Ну может после перезагрузки появится снова пропажа, а пока пойду за вторым Кристальным мечом" — подумал я. И я ошибался...
TL;DR
  1. Скачать war[github.com]
  2. Сделать дамп сохранения в JSON
  3. Отредактировать поле Churchch_cat_Rm10_PlayerHasSword на False
  4. Поменять у Объекта 76 (ObjectID) в слое 4 (LayerID) Triggered на false
  5. Поменять у Объекта 76 (ObjectID) в слое 4 (LayerID) SwordGone на false
  6. ??? Сохранить JSON обратно в файл сохранения и подменить багованный
  7. PROFIT
War... War never changes.
Проблема ясна: дальше не пройти
Очень грустно, очень обидно, 4 часа и проходить заново. Потраченного времени жаль.

И как будто надо будет садиться и править байтики в HEX-редакторе и всё, опять минус выходные...
Но на самом деле 90% проблемы уже решено титаном под ником whatisaphone. Он выложил на свой GitHub утилиту "war"[github.com] для редактирования сохранений оригинальной игры и переиздания. Это решает основную головную боль и нам остаётся только найти и поменять определённые значения в файле сохранения.

Изначальный тред с "анонсом" утилиты: https://psteamcommunity.yuanyoumao.com/app/462780/discussions/0/1631916406857018712/

Вам необходимо скачать файл war-x86_64.exe со страницы релиза (на момент написания версия утилиты 0.2.0 и обновлялась в 2019 году): https://github.com/whatisaphone/war/releases/latest

Для работы утилиты нужен виновник один из участвников "торжества": файл сохранения
Файл сохранения в Steam версии имеет название keen_savegame_0_0
и находится по данному пути (ОС Windows):

C:\Program Files (x86)\Steam\userdata\<ваш_steamID>\462780\remote\autocloud\save

Для меня данный путь является таким:

C:\Program Files (x86)\Steam\userdata\167761775\462780\remote\autocloud\save

Файл один и должен иметь именно такое название (keen_savegame_0_0).

Теперь, для упрощения работы себе, создайте отдельную директорию, где далее будем "работать". Положите туда утилиту (можете переименовать её предварительно в war для упрощения) и файл сохранения.

По итогу у вас должна быть папка с таким содержимым:


!ACHTUNG!
Перед тем как начать, настоятельно рекомендую сделать копию сохранения на всякий случай. Можете скопировать на рабочий стол, переименвоать и т.д. Неважно, главное, чтобы файл был отдельно и вы знали где он находится.
ВСЕ сохранения (все 10 слотов) находятся в этом одном файле!

Также ПРЕДУПРЕЖДЕНИЕ о редактировании утилитой war: Утилита редактирует только автосохранения, так что в данном слоте у вас должно быть "багнутое" сохранение. Если вы играли в новое, то чтобы перезаписать можете зайти во вторую комнату подземелий (с полем колонн 3х3) — там автосохранение происходит автоматически
Подготовка сохранения для редактирования
Продолжая, все следующие действия производятся вами на ваш страх и риск!
Ты предупреждён!

Теперь вам надо открыть терминал. Достаточно будет того, что есть по-умолчанию в Windows. Если вы на Linux, то скорее всего мне объяснять вам не надо что делать :)

Нажимаем сочетание "Win + R" и прописываем cmd


Тем самым открывая командную строку:


Далее вводим команду cd и путь до директории, где мы "работаем" (куда положили утилиту и файл сохранения). Для меня полная команда выглядит так:
cd OneDrive\Documents\fix_darksiders_save
и вывод такой:


Скопировать полный путь вы можете из адресной строки в проводнике:


Далее в рабочей директории запускайте следующую команду:
.\war sav decode .\keen_savegame_0_0.sav

Вывод должен быть таким:


Это означает, что утилита декодировала данные в JSON-формат.

Теперь самое сложное...
JSON-программирование
Будем страдать включать триггеры для меча и событий.



Откройте JSON файл (keen_savegame_0_0.json) любым удобным редактором. Советую VS Code[code.visualstudio.com], так как есть подсветка синтаксиса, но если вы считаете, что справитесь в notepad.exe, то удачи D:

Нам нужно отредактировать 3 значения:
  1. Churchch_cat_Rm10_PlayerHasSword — триггер событие, что игрок взял меч (вроде отвечает только за "кручение" моста, но не проверял)
  2. Убрать значение для меча, что событие произошло (Triggered)
  3. Убрать значение для меча, что мы его взяли (SwordGone)

По порядку

Churchch_cat_Rm10_PlayerHasSword

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

Для перехода к параметру, войдите в режим поиска через "Ctrl + F", выберете параметр точное соответствие ("Alt + W") и введите в поиске Churchch_cat_Rm10_PlayerHasSword


Далее поменяйте значение в Value на False:


Убрать значение для меча, что событие произошло (Triggered)
С самим мечом чуть сложнее. Объекты в игре имеют идентификатор (Object ID) и эти объекты хранятся в каком-то слое (Layer ID), скорее всего для удобства редактирования.
На интересует объект с ID 76 в слое 4 ID. Это тот самый злополучный меч. Теперь ищем "76" в поиске и смотрим на Layer ID объекта.

Тут мы имеем Объект 76, но слой ID 5, это не подходит

В нужном объекте также меняем параметр Triggered с true на false:


Убрать значение для меча, что мы его (SwordGone)
Тут попроще. Ищем параметр SwordGone и смотрим, чтобы ObjectID был всё также 76
Ставим false:


Почти финишная прямая...
???
PROFIT
Теперь соберём сохранение обратно. В той же консоли нам надо ввести команду на "запаковку" сохранения:

.\war sav encode .\keen_savegame_0_0.sav .\keen_savegame_0_0.json


Теперь копируйте изменённое сохранение в папку сохранений Darksiders и включайте игру.

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

Сохраняйтесь и удачи!
1 条留言
𒌐 8 月 9 日 下午 4:26 
пииииздец....