Создание квеста типа "разговор" для NPC
Нам понадобятся:
1. stable_dialogs_escape.xml
2. character_desc_escape.xml
3. dialogs_escape.xml
4. game_tasks.xml
5. info_l01escape.xml
Начнем.
1. Набросаем сюжет квеста. Допустим, Сидрыч отправил Меченого сходить к Волку потрясти должок, а Волк сказал Меченому, что денег нет и отправил обратно к Сидрычу. Итак, будем отталкиваться от этого.
2. Открываем character_desc_escape.xml, находим в секции Сидрыча такую строчку: "escape_trader_done_blockpost_box". После нее пишем такие строчки:
Код
<actor_dialog>trader_dolg_start</actor_dialog>
<actor_dialog>trader_dolg_done</actor_dialog>
Также в секции Волка ищем эту строчку: "tm_wolf_reward". После нее пишем эту:
Код
<actor_dialog>wolf_dolg_dialog</actor_dialog>
Сохраняем, выходим.
3. Открываем dialogs_escape.xml. В самом конце пишем:
Код
<dialog id="trader_dolg_start" priority="2"> ; id диалога, который мы написали в секции Сидрыча.
<dont_has_info>money_dolg_start</dont_has_info> ; после получения инфопоршня этот диалог мы не увидим
<has_info>tutorial_end</has_info> ; диалог будет показываться только после получения этого инфопоршня.
<phrase_list>
<phrase id="0">
<text>trader_dolg_start_0</text> ; текст диалога
<next>1</next>
</phrase>
<phrase id="1">
<text>trader_dolg_start_1</text>
<next>2</next>
<next>3</next>
</phrase>
<phrase id="2">
<text>trader_dolg_start_2</text>
<give_info>money_dolg_start</give_info> ; выдача инфопоршня
<action>dialogs.break_dialog</action> ; конец диалога
</phrase>
<phrase id="3">
<text>trader_dolg_start_3</text>
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>
<dialog id="wolf_dolg_dialog" priority="2">
<dont_has_info>volk_dialog_done</dont_has_info>
<has_info>money_dolg_start</has_info>
<phrase_list>
<phrase id="0">
<text>wolf_dolg_dialog_0</text>
<next>1</next>
</phrase>
<phrase id="1">
<text> wolf_dolg_dialog_1</text>
<give_info>volk_dialog_done</give_info>
<next>2</next>
</phrase>
<phrase id="2">
<text> wolf_dolg_dialog_2</text>
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>
<dialog id="trader_dolg_done" priority="2">
<dont_has_info>money_dolg_done</dont_has_info>
<has_info>volk_dialog_done</has_info>
<phrase_list>
<phrase id="0">
<text>trader_dolg_done_0</text>
<next>1</next>
</phrase>
<phrase id="1">
<text>trader_dolg_done_1</text>
<next>2</next>
</phrase>
<phrase id="2">
<text>trader_dolg_done_2</text>
<give_info>money_dolg_done</give_info>
<next>3</next>
</phrase>
<phrase id="3">
<text>trader_dolg_done_3</text>
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>
Сохраняем, выходим.
4. В самом конце game_tasks.xml пишем эту секцию:
Код
<game_task id="money_dolg"> ; id задания из info_l01escape.xml
<title>Поговорить с Волком о долге</title>
<objective>
<text>Подойти к Волку</text>
<icon>ui_iconsTotal_artefact</icon> ; иконка задания в КПК
<infoportion_complete>volk_dialog_done</infoportion_complete> ; отметка инфопоршня
</objective>
<objective>
<text>Поговорить с Волком</text>
<icon>ui_iconsTotal_artefact</icon>
<infoportion_complete>volk_dialog_done</infoportion_complete>
</objective>
<objective>
<text>Поговорить с Сидоровичем</text>
<infoportion_complete>money_dolg_done</infoportion_complete>
</objective>
</game_task>
Закрываем, сохраняем.
5. В конце файла info_l01escape.xml пишем эту секцию:
Код
<info_portion id="money_dolg_start"> ; регистрация инфопоршня
<task>money_dolg</task> ; ссылка на задание из game_tasks.xml
</info_portion>
<info_portion id="volk_dialog_done">
</info_portion>
<info_portion id="money_dolg_done">
</info_portion>
Сохраняем.
6. В конце файла stable_dialogs_escape.xml добавляем эти строчки:
Код
<string id="trader_dolg_start_0">
<text>Здорово, Сидорович! Есть работенка для меня?</text>
</string>
<string id="trader_dolg_start_1">
<text>Есть тут дельце. Волк как-то деньжат занимал у меня, а до сих пор не вернул. Сходи, потряси его, глядишь совесть-то и проснется.</text>
</string>
<string id="trader_dolg_start_2">
<text>Ну, ладно, схожу.</text>
</string>
<string id="trader_dolg_start_3">
<text>Нет, спасибо, я с Волком еще работать буду.</text>
</string>
<string id="wolf_dolg_dialog_0">
<text>Здорово, Волк. Я от Сидоровича. Он говорит, ты задолжал ему.</text>
</string>
<string id="wolf_dolg_dialog_1">
<text>Слушай, у меня денег нет, и в ближайшее время они не появятся. А если он будет и дальше меня с этими долгами дергать, я весь хабар буду к Бармену таскать. Так ему и передай.</text>
</string>
<string id="wolf_dolg_dialog_2">
<text>Хорошо, передам.</text>
</string>
<string id="trader_dolg_done_0">
<text>Ну что, Сидрыч, поговорил я с твоим должником.</text>
</string>
<string id="trader_dolg_done_1">
<text>Ну и что?</text>
</string>
<string id="trader_dolg_done_2">
<text>Сказал, что денег нет. А еще сказал, что если дальше его дергать будешь по поводу долга, он весь хабар будет таскать к Бармену.</text>
</string>
<string id="trader_dolg_done_3">
<text>Ну, на нет - и суда нет. Правда, Меченый? Ну, ступай я тебя больше не держу...</text>
</string>
Вот и все, мы создали полноценный квест - трепалку. Нужно начинать новую игру.
Автор: [MarveL]