Difference between revisions of "Bethesda Tutorial Quest Objectives/ru"

m
no edit summary
imported>Vitamant
m
imported>Vitamant
m
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{PageTitle|Ориентиры}}
{{PageTitle|Задачи}}


{{RussianPage|e}}
{{RussianPage|e}}
{{Inuse/ru}}


{{Tutorial Index/ru
{{Tutorial Index/ru
|titlename=Ориентиры
|titlename=Задачи
|Prev=Bethesda_Tutorial_Basic_Quest_Scripting/ru
|Prev=Bethesda_Tutorial_Basic_Quest_Scripting/ru
|Next=Bethesda_Tutorial_Quest_Loose_Ends/ru
|Next=Bethesda_Tutorial_Quest_Loose_Ends/ru
Line 15: Line 14:
В этой главе ты научишься задавать цели задания и пользоваться маркерами, ведя беспомощных игроков по огромному миру игры. Заодно, разберешься что делать после завершения квеста, чтобы он не висел в списке текущих заданий до конца времен.
В этой главе ты научишься задавать цели задания и пользоваться маркерами, ведя беспомощных игроков по огромному миру игры. Заодно, разберешься что делать после завершения квеста, чтобы он не висел в списке текущих заданий до конца времен.
<br><br>Ты узнаешь:
<br><br>Ты узнаешь:
* Как создавать цели задания и что такое псевдонимы
* Как создавать задачи и что такое псевдонимы.
* Как изменять активность целей
* Как изменять активность задач.
* Как завершить квест
* Как завершить квест.
* Немного о дополнительных возможностях стадий квеста
* Немного о дополнительных возможностях стадий квеста.


=Ориентиры=
=Задачи=
В процессе выполнения заданий, игроки могут заглянуть в журнал квестов, чтобы ''сориентироваться'', куда им нужно идти и что сделать, чтобы завершить текущую стадию задания.
В процессе выполнения квестов, игроки могут заглянуть в журнал, чтобы определиться, куда им нужно идти и что сделать, чтобы завершить текущую стадию задания. Для этого и существуют задачи.


И первым шагом на пути к созданию подобного ориентира, будет определение цели и погружение в удивительный мир ''Псевдонимов''.
И первым шагом на пути к ним, будет определение цели и погружение в удивительный мир ''Псевдонимов''.


=Псевдонимы=
=Псевдонимы=
Псевдонимы - это своего рода участники нашей истории. Различные существа, места, предметы, которые будут играть какую-либо роль в задании. Каждый псевдоним указывает на конкретную ссылку или место в игровом мире. В нашем случае, своими псевдонимами обзаведутся: квестодатель Бенду, вор и амулет.
Псевдонимы - это своего рода участники нашей истории. Различные существа, места, предметы, которые будут играть какую-либо роль в задании. Каждый псевдоним указывает на конкретную ссылку или место в игровом мире. В нашем случае, своими псевдонимами обзаведутся: квестодатель Бенду, вор и амулет.


Вернемся к нашем заданию. Открой окно квеста и перейди на вкладку {{ulink|Quest_Alias_Tab|Quest Aliases}}. Посередине ты увидишь большую таблицу. Щелкни ПКМ по ней и выбери "New Reference Alias", чтобы открыть еще большее окошко. К счастью, большая часть элементов этого окна нас не интересует. О ней ты прочитаешь позже, в {{ulink|Bethesda_Tutorial_Quest_Aliases|посвященном псевдонимам учебнике}}).
Вернемся к нашему заданию. Открой окно квеста и перейди на вкладку {{ulink|Quest_Alias_Tab|Quest Aliases}}. Посередине ты увидишь большую таблицу. Щелкни ПКМ по ней и выбери "New Reference Alias", чтобы открыть еще большее окошко. К счастью, большая часть элементов этого окна нас не интересует. О ней ты прочитаешь позже, в {{ulink|Bethesda_Tutorial_Quest_Aliases|посвященной псевдонимам статье}}).


Напечатай в поле "Alias Name" имя "Bendu". Ниже, в группе Fill Type, выбери "Unique Actor" и из списка - "GSQBenduOlo". В итоге окно должно выглядеть так:
Напечатай в поле "Alias Name" имя "Bendu". Ниже, в группе Fill Type, выбери "Unique Actor" и из списка - "GSQBenduOlo". В итоге окно должно выглядеть так:
Line 47: Line 46:


Как и прежде создай новый псевдоним. Назови его "Amulet" и измени тип на "Create Reference to Object". Идем слева направо:
Как и прежде создай новый псевдоним. Назови его "Amulet" и измени тип на "Create Reference to Object". Идем слева направо:
* Выбираем "GSQAmulet" из списка - базовый объект нашего амулета.
* Выбираем "GSQAmulet" из списка - прототип нашего амулета.
* Уровень сложности оставляем без изменений (поскольку мы имеем дело с предметом, а не персонажем, он ни на что не влияет).
* Уровень сложности оставляем без изменений (поскольку мы имеем дело с предметом, а не персонажем, он ни на что не влияет).
* Изменяем режим на "Create '''In'''"
* Изменяем режим на "Create '''In'''"
Line 56: Line 55:
Как ты можешь догадаться, мы создали новую ссылку на амулет и поместили ее в инвентарь вора... Правильно, там теперь два амулета. Открываем GSQThief и удаляем амулет из инвентаря.
Как ты можешь догадаться, мы создали новую ссылку на амулет и поместили ее в инвентарь вора... Правильно, там теперь два амулета. Открываем GSQThief и удаляем амулет из инвентаря.


=Создание ориентиров=
=Создание задач=
Снова открываем окно квеста и идем на вкладку Quest Objectives. Вот здесь и создаются видимые игроку цели задания.
Снова открываем окно квеста и идем на вкладку Quest Objectives. Вот здесь и создаются видимые игроку цели задания.


У каждого ориентира есть индекс (номер, по которому на него можно сослаться); текст, демонстрируемый игроку; и список целей, на которые будут указывать стрелки на компасе, в игре.
У каждой задачи есть индекс (номер, по которому на нее можно сослаться); текст, демонстрируемый игроку; и список целей, на которые будут указывать стрелки на компасе, в игре.


Что бы создать новый ориентир щелкни ПКМ по верхней таблице и выбери "New" из меню. В группе "Quest Objective Data" под таблицей измени индекс на 10 и отображаемый текст на "Убить вора."
Что бы создать новую задачу щелкни ПКМ по верхней таблице и выбери "New" из меню. В группе "Quest Objective Data" под таблицей измени индекс на 10 и отображаемый текст на "Убить вора."


{{InDepth|Обычно, индекс ориентира задают такой же, как и индекс стадии квеста, которой он соответствует. В больших и сложных квестах это не всегда удобно, но в нашем случае, как мы скоро увидим, это существенно упростит нам жизнь.}}
{{InDepth|Обычно, индекс задачи задают такой же, как и индекс стадии квеста, которой она соответствует. В больших и сложных квестах это не всегда удобно, но в нашем случае, как мы скоро увидим, это существенно упростит жизнь.}}


Наконец, в таблице ниже щелкаем ПКМ и выбираем "New", чтобы задать цель квеста. Появится новая строка с большим и страшным "NO TARGET" в первой колонке. В списке "Target Alias", чуть ниже, выбери "Thief". (Страшная надпись изменится только после того, как ты щелкнешь после этого куда-нибудь еще [н.п. по той же самой таблице])
Наконец, в таблице ниже щелкаем ПКМ и выбираем "New", чтобы задать цель квеста. Появится новая строка с большим и страшным "NO TARGET" в первой колонке. В списке "Target Alias", чуть ниже, выбери "Thief". (Страшная надпись изменится только после того, как ты щелкнешь куда-нибудь еще [н.п. по той же самой таблице])


Теперь зададим другой ориентир:
Теперь создадим другую задачу:
* '''Index:''' 20
* '''Index:''' 20
* '''Display Text:''' Добудьте амулет Бенду Оло
* '''Display Text:''' Добудьте амулет Бенду Оло
* '''Target Alias:''' Amulet
* '''Target Alias:''' Amulet


И еще один:
И еще одну:
* '''Index:''' 30
* '''Index:''' 30
* '''Display Text:''' Верните амулет Бенду Оло.
* '''Display Text:''' Верните амулет Бенду Оло.
Line 81: Line 80:
[[Image:ObjectiveWindowFilled.png|600px]]
[[Image:ObjectiveWindowFilled.png|600px]]


Теперь, когда ориентиры определены, нам осталось "сказать" игре, когда она должна их отобразить.
Теперь, когда задачи определены, нам осталось "сказать" игре, когда она должна их отобразить.


=Установка ориентиров=
=Установка задач=


Помнишь ту страшную функцию <code>SetObjectiveDisplayed()</code>? Вот тут то она и используется. Если по какой-либо причине первая функция не вызовет обновление ориентиров, то эта гарантирует, что они все-таки будут обновлены. Советую указывать обе. (''а я советую корректно настраивать стадии квеста (см.ниже) - прим.переводчика'')
Помнишь ту страшную функцию <code>SetObjectiveDisplayed()</code>? Вот тут то она и используется. Если по какой-либо причине первая функция не вызовет обновление задач, то эта гарантирует, что они все-таки будут обновлены. Советую указывать обе. (''а я советую корректно настраивать стадии квеста (см.ниже) - прим.переводчика'')


Вернись на вкладку Quest Stages. Сейчас мы усложним квест, добавив в него немного логики.
Вернись на вкладку Quest Stages. Сейчас мы усложним квест, добавив в него немного логики.


Для того чтобы добавить логику или запись в журнал, необходимо добавить хотя бы один элемент в таблицу "Log Entry" (справа), соответствующую нужной стадии. Выбери 10ую стадию, щелкни ПКМ по таблице "Log Entry" и выбери "New."  
Для того чтобы добавить скрипты или запись в журнал, необходимо иметь хотя бы один элемент в таблице "Log Entry" (справа), соответствующий нужной стадии. Выбери 10ую стадию, щелкни ПКМ по таблице "Log Entry" и выбери "New."  


Записанные здесь фрагменты текста будут появляться в журнале игрока. Отображаться будет только последняя запись, поэтому можешь использовать его для обновления ориентиров, когда это необходимо. В поле ввода "Log Entry" запиши следующее:
Записанные здесь фрагменты текста будут появляться в журнале игрока. Отображаться будет только последняя запись, поэтому можешь использовать его для обновления задач, когда это необходимо. В поле ввода "Log Entry" запиши следующее:


<blockquote><i>Я встретил Бенду Оло. Он рассказал, что у него украли амулет. Он обещает заплатить двойную цену тому, кто вернет ему пропажу.</i></blockquote>
<blockquote><i>Я встретил Бенду Оло. Он рассказал, что у него украли амулет. Он обещает заплатить двойную цену тому, кто вернет ему пропажу.</i></blockquote>
Line 97: Line 96:
Щелкни в поле справа (на вкладке Papyrus Fragment).
Щелкни в поле справа (на вкладке Papyrus Fragment).


Вводи: <code>SetObjectiveDisplayed(10)</code>. Нажми кнопку "Compile", чтобы убедиться, что все введено корректно. Как ты, наверное, догадался, это изменит текущий ориентир на 10, поставив перед игроком новые цели. Поскольку, это первый ориентир, отображаемый в квесте, это также пометит квест значком "STARTED" (начат).  
Вводи: <code>SetObjectiveDisplayed(10)</code>. Нажми кнопку "Compile", чтобы убедиться, что все введено корректно. Как ты, наверное, догадался, это изменит текущую задачу на 10, поставив перед игроком новые цели. Поскольку, это первая задача, отображаемая в квесте, это вызовет всплывающее сообщение о том, что задание начато.


[[Image:SettingObjective10.png|600px]]
[[Image:SettingObjective10.png|600px]]
Line 110: Line 109:
</source>
</source>


{{InDepth|Ты ведь внимательно на них посмотрел и заметил различия, верно? Одна функция заканчивается на "Completed" (завершен), другая на "Displayed" (отображен) - будь внимателен, а не то завершишь ориентир, который игрок еще в глаза не видел!}}
{{InDepth|Ты ведь внимательно на них посмотрел и заметил различия, верно? Одна функция заканчивается на "Completed" (завершена), другая на "Displayed" (отображена) - будь внимателен, а не то завершишь задачу, которую игрок еще в глаза не видел!}}


Log Entry можно оставить пустым, так как общий сюжет квеста не изменился.
Log Entry можно оставить пустым, так как общий сюжет квеста не изменился.


Сделай тоже самое для стадии 30, с той лишь разницей, что завершенным нужно сделать ориентир 20, а отобразить - 30.
Сделай тоже самое для стадии 30, с той лишь разницей, что завершенной нужно сделать задачу 20, а отобразить - 30.


Наконец, в стадии 40 заверши ориентир 30. Кроме того, отметь флажок "Complete Quest" под полем "Log Entry". Теперь, достигнув последней стадии, квест будет помечен значком "COMPLETED" (завершен). (И переместит задание в соответствующий раздел журнала, дабы не мозолил глаза.)
Наконец, в стадии 40 заверши задачу 30. Кроме того, отметь флажок "Complete Quest" под полем "Log Entry". Теперь, достигнув последней стадии, появится сообщение о том, что квест успешно завершен. (А задание переместится в соответствующий раздел журнала, дабы не мозолило глаза.)


Последняя запись в журнале должна подвести итог нашего приключения. Например так:
Последняя запись в журнале должна подвести итог нашего приключения. Например так:
Anonymous user