Как завершить заглючивший квест
скопировано с Для просмотра ссылки Зарегистрируйтесь
P.S. от себя
данная статья помогла мне избавиться от кучи флейт, барабанов, кинжалов и прочего ненужного барахла в карманах - теперь они на всякий случай валяются во дворе Коллегии Бардов =)
Также зависающие квесты продвигал на следующую стадию, а некоторые просто финализировал, так как не хотел проходить:
к примеру играю я за (глава Гильдии Воров) воина-вора и мне как-то не по теме проходить Коллегию Винтерхолда, я её просто убрал из списка командой "завершить квест".
Тоже самое с Темным Братсвом - не нравится мне быть наемным убийцей - тоже завершил квесты командой. Правда тут можно было поступить иначе: когда в хижине тебя ловит Астрид - её надо убить и получишь квест на уничтожение Темного Братсва, но почему я тогда не погуглил - хз =)
скопировано с Для просмотра ссылки Зарегистрируйтесь
Спойлер (раскрыть)
Квесты являются важной составляющей любой RPG-игры, и Skyrim не исключение. Но в силу различных причин, часть квестов из Skyrim отказываются завершаться самостоятельно:
они могут застопориться на какой-то стадии и заблокировать дальнейшее прохождение;
они могут "как бы" завершиться, но надпись о невыполненном задании продолжит мозолить глаза в журнале;
они могут никак не реагировать на то, что все условия, необходимые для их завершения, выполнены.
Все это является последствием ошибок, которые под силу исправить игроку самостоятельно и программных/логических ошибок, исправление которых возможно или специалистами при помощи еще не выпущенного (на момент написания этого материала) редактора Creation Kit, сторонних программ типа PEX Decompiler / PEX Compiler, или же самими разработчиками.
Мы будем рассматривать лишь те ошибки, которые можем исправить самостоятельно.
Предварительная подготовка инструментария
Для исправления ошибок в квестах нам понадобится консоль и некоторые консольные команды.
Проверьте, что параметр bAllowConsole в файле skyrim.ini равен 1 - это указывает системе, что использование консоли в игре разрешено. Доступ к консоли в игре осуществляется при помощи клавиши "тильда" (обычно это символ "~", расположенный левее клавиши "1", но в различных раскладках это может быть также "°", "¬", "|", "^", "\", "§" и т.д.). При нажатии на эту клавишу в игре нижняя часть экрана станет полупрозрачной и вы можете вводить команды.
Может так случиться, что вы не сможете вводить команды в консоли, т.к. они упорно будут отображаться на русском языке. С такой проблемой сталкивается большинство пользователей русской версии Skyrim. Это поправимо.
Пользователи лицензионной игры от 1С могут исправить данную ситуацию при помощи Steam, войдя в него в процессе игры и сменив (НЕ у самой игры, а только для формы ввода) язык с русского на английский. Делается это обычной комбинацией клавиш для смены раскладки. Вернувшись в загруженную в фоне игру, вы увидите, что и в ней можете писать на английской раскладке.
Пользователи альтернативных версий должны сменить язык своей операционной системы, указав английский - языком по умолчанию. Делается это через Панель Управления - Язык и региональные настройки - Языки и клавиатура - Изменить клавиатуру - Язык ввода по умолчанию (Английский (США)) - для Win 7, для других систем примерно там же. В некоторых случаях, систему следует перезагрузить, но обычно этого не требуется.
Когда все подготовительные этапы по работе с консолью игры Skyrim завершены, можно приступать к препарированию и починке.
Примечание: бекап - хороший способ не потерять ничего важного из-за чего-то случайного.
Препарирование квестов
Чтобы завершить какой-либо квест, надо знать о нем некоторые подробности:
название квеста;
внутриигровое название квеста;
возможные стадии данного квеста;
текущую стадию (точку), на которой находится квест.
Первый пункт можно посмотреть во внутриигровом журнале (для квестов, которые оставляют там записи о себе, а это не всегда так), два следующих пункта можно поискать в разделе Квесты Skyrim (Для просмотра ссылки Зарегистрируйтесь) или на UESP (Для просмотра ссылки Зарегистрируйтесь), но можно узнать и самостоятельно при помощи команды
sqt
(полное наименование showquesttargets). Эта команда выводит список всех активных квестов. Если список очень большой, его можно прокрутить при помощи клавиш PgUp и PgDown (на ноутбуках можно попробовать комбинацию Ctrl-PgUp и Ctrl-PgDown, соответственно).
ID каждого квеста будет указан напротив CurrentQuest. Если вы на взгляд не можете опознать "свой" зависший квест, то можно его id поискать в разделе Квесты Skyrim или на UESP по названию квеста (узнанного во внутриигровом журнале). Или же опознать его методом перебора, вводя в консоль команду
player.completequest "questID",
где "questID" - ID квеста, полученного командой выше.
Обратите внимание, что выполнять подобную операцию следует после резервного сохранения. Вы же не хотите, чтобы все ваши активные квесты были завершены консольно, а не прохождением, не так ли?
Перебрав таким образом все свои активные квесты (или "подозрительную" их часть) и получив сообщение "Квест такой-то Выполнен", вы вычислите нужный вам ID квеста. Запишите его.
Есть еще один способ нахождения "вашего" квеста, при помощи команды
movetoqt "questID"
Эта команда переносит персонажа игрока к месту начала квеста. Последовательно подставляйте ID квеста, полученные через команду sqt в значение "questID" и смотрите, куда попали. Если это именно то место, с которым у вас возникли проблемы - запишите его ID.
Примечание: консоль не различает большие и маленькие буквы при вводе, так что можете вводить их не меняя регистр.
Как только ID квеста найден, возвращайтесь на сохраненную ранее игру.
Починка квестов
Как говорилось выше, у каждого квеста есть "стадии". Узнав ID заглючившего квеста, необходимо определить текущую его стадию. Сделать это можно при помощи команды
getstage "questID"
Полученное таким образом значение указывает на текущую стадию, в которой находится квест. Запомните или запишите это число.
Здесь есть несколько вариантов применения полученных выше знаний.
Можно продвинуть квест на одну стадию вперед. Для этого используется команда
setstage "questID" "новая_стадия_квеста"
где
"questID" - ID нашего глючного квеста,
"новая_стадия_квеста" - цифровое значение стадии данного квеста, полученного нами командой getstage "questID" и увеличенное на 10 единиц. Т.е. если вы обнаружили, что ваш квест находится на стадии 10, то вместо "новая_стадия_квеста" нужно написать 20.
Такой метод расчета новой стадии квеста вполне может применяться. Но лучше воспользоваться командой sqs "questID" (полное наименование showqueststage), которая выводит все стадии квеста, указанного ей в параметре "questID". Среди выведенных значений сначала следует поискать ваше текущее значение стадии квеста, а в команду setstage "questID" "новая_стадия_квеста" вписать значение следующей стадии. Помеченные "1" стадии являются выполненными. Следует отметить, что немало квестов тормозится на предпоследней стадии (некий квестовый предмет уже у вас в инвентаре, но вы его пока не отдали кому надо), поэтому такие квесты спокойно можно финализировать. Если командой sqs пользоваться неохота, то таблицы со стадиями квестов в разделе Квесты Skyrim или на UESP - вам в помощь.
Можно финализировать ближайшую стадию квеста командой
SetObjectiveCompleted "questID" "стадия_квеста" 1
в которой:
"questID" - ID нашего глючного квеста,
"стадия_квеста" - цифровое значение стадии данного квеста, полученного нами командой getstage "questID", помеченная в таблице стадий квеста на РуморВики как "Стадия", а на UESP как "(Objective is assigned)",
1 - указывает команде, что стадия должна быть завершена.
Можно финализировать весь квест, если предыдущие попытки исправить ошибку ничего не дали (квест продолжает спотыкаться, и пройти его самостоятельно невозможно), используйте команду
setstage "questID" "финальная_стадия_квеста"
где "финальная_стадия_квеста" - параметр стадии квеста в таблицах, помеченный как финал (зеленая галочка).
Можно финализировать квест не зная его финальной стадии командой
CompleteAllObjectives "questID"
в которой:
"questID" - ID нашего глючного квеста.
Лучше все же продвигать квестовую стадию на один шаг, а не финализировать весь квест сразу. Это связано с тем, что в процессе прохождения квестов меняется много второстепенных параметров окружающего мира, а такая вот окончательная финализация может какие-то из них пропустить, а значит в игре что-то станет не так, как надо, что чревато новыми ошибками в дальнейшем.
Пример исправления багов квестов, связанных с квестовыми предметами
Часто проблемы возникают с квестами, в которых вы должны принести квестодателю предмет, уже имеющийся у вас в инвентаре. Предмет может иметь свой собственный уникальный ID (например, квестовые книги) или же иметь ID общий для целой группы однотипных предметов. Обратите внимание, что квестовый предмет нельзя выбросить из инвентаря до завершения квеста (а иногда и после, если квест заглючил). Такую проблему можно решить с помощью консоли.
Для начала надо узнать ID квестового предмета, который следует удалить из инвентаря. В виде от первого лица это можно сделать командой
player.showinventory
Эта команда выведет количество каждого наименования предмета, название предмета и его ID. Так как список обычно большой, клавишами Page Up, Page Down проматываем его в поиске необходимого предмета. Запомните, а лучше запишите его.
Если вы играете в виде от третьего лица, то введите команду inv (полное название опять же showinventory ), выделив своего персонажа кликом мышки. Далее проматываем список, находим нужный предмет, запоминаем или записывает его ID.
Зная ID предмета, мы можем его выкинуть командой
player.drop "itemID" "count", где
"itemID" - найденное нами ID квестового предмета,
"count" - числовое значение, равное количеству предметов, которые следует выбросить (обычно 1).
Теперь, когда предмет вне нашего инвентаря, мы можем его спокойно подобрать и отдать квестодателю. Квест успешно завершится.
Если же квест завершился, а квестовый предмет продолжает находиться в вашем инвентаре и вы точно знаете, что он вам больше не нужен (опрометчиво выкидывать Древний Свиток, оставшийся в инвентаре после окончания соответствующего квеста, когда его можно продать Ураг гро-Шубу в Коллегии Винтерхолда), то его следует из инвентаря удалить.
Сделать это можно командой
player.removeitem "itemID" "count", где
"itemID" - найденное при помощи команды player.showinventory или inv (описание см. выше) ID квестового предмета,
"count" - числовое значение, равное количеству предметов, которые следует удалить (обычно 1).
Клиника
Бывают квесты, которые всеми вышеприведенными способами поправить нельзя. К ним надо применять более изощренные средства в виде еще не выпущенного (на момент написания этого материала) редактора Creation Kit, различных сторонних программ и прочих извращений, не нужных простому игроку. Квесты с клиническими багами обычно содержат логические или технические ошибки. Например, на момент написания этого материала, при ошибочно построенной логике взаимодействия квестов Коллегии Винтерхолда и квеста Древнее знание, в какой-то момент прохождение основной сюжетной линии становится невозможным. Еще хуже обстоят дела с пересечением основного сюжета с квестами Братьев Бури, где хаотично возникают преодолимые и непреодолимые затыки квестовых линий.
Как определить, что случай с заглючившим скриптом - клинический? Такой квест имеет один или несколько из перечисленных ниже признаков
отсутствует в списке активных квестов, при этом не финализирован для вас;
сообщает вам, что находится на финальной стадии, но продолжает отображаться в списке невыполненных заданий у вас в журнале;
не реагирует на смену стадий, даже если вы все делаете правильно;
при принудительной финализации радостно сообщает вам, что "Квест такой-то выполнен", однако в окружающем мире не происходят необходимые по сюжету перемены (в случае победы Братьев Бури над имперцами, последние продолжают разгуливать по улицам как-будто ничего не произошло и т.п.).
К сожалению, в таких случаях надо ждать выпуска патчей или хотя бы редактора в руках умных людей, которые все это безобразие починят.
они могут застопориться на какой-то стадии и заблокировать дальнейшее прохождение;
они могут "как бы" завершиться, но надпись о невыполненном задании продолжит мозолить глаза в журнале;
они могут никак не реагировать на то, что все условия, необходимые для их завершения, выполнены.
Все это является последствием ошибок, которые под силу исправить игроку самостоятельно и программных/логических ошибок, исправление которых возможно или специалистами при помощи еще не выпущенного (на момент написания этого материала) редактора Creation Kit, сторонних программ типа PEX Decompiler / PEX Compiler, или же самими разработчиками.
Мы будем рассматривать лишь те ошибки, которые можем исправить самостоятельно.
Предварительная подготовка инструментария
Для исправления ошибок в квестах нам понадобится консоль и некоторые консольные команды.
Проверьте, что параметр bAllowConsole в файле skyrim.ini равен 1 - это указывает системе, что использование консоли в игре разрешено. Доступ к консоли в игре осуществляется при помощи клавиши "тильда" (обычно это символ "~", расположенный левее клавиши "1", но в различных раскладках это может быть также "°", "¬", "|", "^", "\", "§" и т.д.). При нажатии на эту клавишу в игре нижняя часть экрана станет полупрозрачной и вы можете вводить команды.
Может так случиться, что вы не сможете вводить команды в консоли, т.к. они упорно будут отображаться на русском языке. С такой проблемой сталкивается большинство пользователей русской версии Skyrim. Это поправимо.
Пользователи лицензионной игры от 1С могут исправить данную ситуацию при помощи Steam, войдя в него в процессе игры и сменив (НЕ у самой игры, а только для формы ввода) язык с русского на английский. Делается это обычной комбинацией клавиш для смены раскладки. Вернувшись в загруженную в фоне игру, вы увидите, что и в ней можете писать на английской раскладке.
Пользователи альтернативных версий должны сменить язык своей операционной системы, указав английский - языком по умолчанию. Делается это через Панель Управления - Язык и региональные настройки - Языки и клавиатура - Изменить клавиатуру - Язык ввода по умолчанию (Английский (США)) - для Win 7, для других систем примерно там же. В некоторых случаях, систему следует перезагрузить, но обычно этого не требуется.
Когда все подготовительные этапы по работе с консолью игры Skyrim завершены, можно приступать к препарированию и починке.
Примечание: бекап - хороший способ не потерять ничего важного из-за чего-то случайного.
Препарирование квестов
Чтобы завершить какой-либо квест, надо знать о нем некоторые подробности:
название квеста;
внутриигровое название квеста;
возможные стадии данного квеста;
текущую стадию (точку), на которой находится квест.
Первый пункт можно посмотреть во внутриигровом журнале (для квестов, которые оставляют там записи о себе, а это не всегда так), два следующих пункта можно поискать в разделе Квесты Skyrim (Для просмотра ссылки Зарегистрируйтесь) или на UESP (Для просмотра ссылки Зарегистрируйтесь), но можно узнать и самостоятельно при помощи команды
sqt
(полное наименование showquesttargets). Эта команда выводит список всех активных квестов. Если список очень большой, его можно прокрутить при помощи клавиш PgUp и PgDown (на ноутбуках можно попробовать комбинацию Ctrl-PgUp и Ctrl-PgDown, соответственно).
ID каждого квеста будет указан напротив CurrentQuest. Если вы на взгляд не можете опознать "свой" зависший квест, то можно его id поискать в разделе Квесты Skyrim или на UESP по названию квеста (узнанного во внутриигровом журнале). Или же опознать его методом перебора, вводя в консоль команду
player.completequest "questID",
где "questID" - ID квеста, полученного командой выше.
Обратите внимание, что выполнять подобную операцию следует после резервного сохранения. Вы же не хотите, чтобы все ваши активные квесты были завершены консольно, а не прохождением, не так ли?
Перебрав таким образом все свои активные квесты (или "подозрительную" их часть) и получив сообщение "Квест такой-то Выполнен", вы вычислите нужный вам ID квеста. Запишите его.
Есть еще один способ нахождения "вашего" квеста, при помощи команды
movetoqt "questID"
Эта команда переносит персонажа игрока к месту начала квеста. Последовательно подставляйте ID квеста, полученные через команду sqt в значение "questID" и смотрите, куда попали. Если это именно то место, с которым у вас возникли проблемы - запишите его ID.
Примечание: консоль не различает большие и маленькие буквы при вводе, так что можете вводить их не меняя регистр.
Как только ID квеста найден, возвращайтесь на сохраненную ранее игру.
Починка квестов
Как говорилось выше, у каждого квеста есть "стадии". Узнав ID заглючившего квеста, необходимо определить текущую его стадию. Сделать это можно при помощи команды
getstage "questID"
Полученное таким образом значение указывает на текущую стадию, в которой находится квест. Запомните или запишите это число.
Здесь есть несколько вариантов применения полученных выше знаний.
Можно продвинуть квест на одну стадию вперед. Для этого используется команда
setstage "questID" "новая_стадия_квеста"
где
"questID" - ID нашего глючного квеста,
"новая_стадия_квеста" - цифровое значение стадии данного квеста, полученного нами командой getstage "questID" и увеличенное на 10 единиц. Т.е. если вы обнаружили, что ваш квест находится на стадии 10, то вместо "новая_стадия_квеста" нужно написать 20.
Такой метод расчета новой стадии квеста вполне может применяться. Но лучше воспользоваться командой sqs "questID" (полное наименование showqueststage), которая выводит все стадии квеста, указанного ей в параметре "questID". Среди выведенных значений сначала следует поискать ваше текущее значение стадии квеста, а в команду setstage "questID" "новая_стадия_квеста" вписать значение следующей стадии. Помеченные "1" стадии являются выполненными. Следует отметить, что немало квестов тормозится на предпоследней стадии (некий квестовый предмет уже у вас в инвентаре, но вы его пока не отдали кому надо), поэтому такие квесты спокойно можно финализировать. Если командой sqs пользоваться неохота, то таблицы со стадиями квестов в разделе Квесты Skyrim или на UESP - вам в помощь.
Можно финализировать ближайшую стадию квеста командой
SetObjectiveCompleted "questID" "стадия_квеста" 1
в которой:
"questID" - ID нашего глючного квеста,
"стадия_квеста" - цифровое значение стадии данного квеста, полученного нами командой getstage "questID", помеченная в таблице стадий квеста на РуморВики как "Стадия", а на UESP как "(Objective is assigned)",
1 - указывает команде, что стадия должна быть завершена.
Можно финализировать весь квест, если предыдущие попытки исправить ошибку ничего не дали (квест продолжает спотыкаться, и пройти его самостоятельно невозможно), используйте команду
setstage "questID" "финальная_стадия_квеста"
где "финальная_стадия_квеста" - параметр стадии квеста в таблицах, помеченный как финал (зеленая галочка).
Можно финализировать квест не зная его финальной стадии командой
CompleteAllObjectives "questID"
в которой:
"questID" - ID нашего глючного квеста.
Лучше все же продвигать квестовую стадию на один шаг, а не финализировать весь квест сразу. Это связано с тем, что в процессе прохождения квестов меняется много второстепенных параметров окружающего мира, а такая вот окончательная финализация может какие-то из них пропустить, а значит в игре что-то станет не так, как надо, что чревато новыми ошибками в дальнейшем.
Пример исправления багов квестов, связанных с квестовыми предметами
Часто проблемы возникают с квестами, в которых вы должны принести квестодателю предмет, уже имеющийся у вас в инвентаре. Предмет может иметь свой собственный уникальный ID (например, квестовые книги) или же иметь ID общий для целой группы однотипных предметов. Обратите внимание, что квестовый предмет нельзя выбросить из инвентаря до завершения квеста (а иногда и после, если квест заглючил). Такую проблему можно решить с помощью консоли.
Для начала надо узнать ID квестового предмета, который следует удалить из инвентаря. В виде от первого лица это можно сделать командой
player.showinventory
Эта команда выведет количество каждого наименования предмета, название предмета и его ID. Так как список обычно большой, клавишами Page Up, Page Down проматываем его в поиске необходимого предмета. Запомните, а лучше запишите его.
Если вы играете в виде от третьего лица, то введите команду inv (полное название опять же showinventory ), выделив своего персонажа кликом мышки. Далее проматываем список, находим нужный предмет, запоминаем или записывает его ID.
Зная ID предмета, мы можем его выкинуть командой
player.drop "itemID" "count", где
"itemID" - найденное нами ID квестового предмета,
"count" - числовое значение, равное количеству предметов, которые следует выбросить (обычно 1).
Теперь, когда предмет вне нашего инвентаря, мы можем его спокойно подобрать и отдать квестодателю. Квест успешно завершится.
Если же квест завершился, а квестовый предмет продолжает находиться в вашем инвентаре и вы точно знаете, что он вам больше не нужен (опрометчиво выкидывать Древний Свиток, оставшийся в инвентаре после окончания соответствующего квеста, когда его можно продать Ураг гро-Шубу в Коллегии Винтерхолда), то его следует из инвентаря удалить.
Сделать это можно командой
player.removeitem "itemID" "count", где
"itemID" - найденное при помощи команды player.showinventory или inv (описание см. выше) ID квестового предмета,
"count" - числовое значение, равное количеству предметов, которые следует удалить (обычно 1).
Клиника
Бывают квесты, которые всеми вышеприведенными способами поправить нельзя. К ним надо применять более изощренные средства в виде еще не выпущенного (на момент написания этого материала) редактора Creation Kit, различных сторонних программ и прочих извращений, не нужных простому игроку. Квесты с клиническими багами обычно содержат логические или технические ошибки. Например, на момент написания этого материала, при ошибочно построенной логике взаимодействия квестов Коллегии Винтерхолда и квеста Древнее знание, в какой-то момент прохождение основной сюжетной линии становится невозможным. Еще хуже обстоят дела с пересечением основного сюжета с квестами Братьев Бури, где хаотично возникают преодолимые и непреодолимые затыки квестовых линий.
Как определить, что случай с заглючившим скриптом - клинический? Такой квест имеет один или несколько из перечисленных ниже признаков
отсутствует в списке активных квестов, при этом не финализирован для вас;
сообщает вам, что находится на финальной стадии, но продолжает отображаться в списке невыполненных заданий у вас в журнале;
не реагирует на смену стадий, даже если вы все делаете правильно;
при принудительной финализации радостно сообщает вам, что "Квест такой-то выполнен", однако в окружающем мире не происходят необходимые по сюжету перемены (в случае победы Братьев Бури над имперцами, последние продолжают разгуливать по улицам как-будто ничего не произошло и т.п.).
К сожалению, в таких случаях надо ждать выпуска патчей или хотя бы редактора в руках умных людей, которые все это безобразие починят.
P.S. от себя
данная статья помогла мне избавиться от кучи флейт, барабанов, кинжалов и прочего ненужного барахла в карманах - теперь они на всякий случай валяются во дворе Коллегии Бардов =)
Также зависающие квесты продвигал на следующую стадию, а некоторые просто финализировал, так как не хотел проходить:
к примеру играю я за (глава Гильдии Воров) воина-вора и мне как-то не по теме проходить Коллегию Винтерхолда, я её просто убрал из списка командой "завершить квест".
Тоже самое с Темным Братсвом - не нравится мне быть наемным убийцей - тоже завершил квесты командой. Правда тут можно было поступить иначе: когда в хижине тебя ловит Астрид - её надо убить и получишь квест на уничтожение Темного Братсва, но почему я тогда не погуглил - хз =)