Здесь вы научитесь создавать новые диалоги, редактировать их и пр.
Автор: Vova Miller 1. Начну с того, как привязать диалог к НПС.
Открываем характер НПС. Предположим наш диалог называется (id) mod_my_first_dialog. В характере ниже пишем:
Code
<start_dialog>mod_my_first_dialog </start_dialog>
или Code
<actor_dialog>mod_my_first_dialog </actor_dialog>
- это диалог, в котором первую ветку самого диалога будет говорит НПС (не забывайте, что может использоваться у каждого НПС только
один раз).
- это диалог, в котором первая фраза будет твоя (можно использовать на одном НПС сколько угодно).
2. Теперь переходим к самому диалогу.
Откраем
config\gameplay\dialogs_(локация).xml Листаем в самый низ, и вставляем диалог
перед и
после (
- закрывает предыдущий диалог, а между
и
содержаться все диалоги).
Вот пример простейшего диалога, который можно сделать за 5 секунд (пример с
):
Code
<dialog id="mod_my_first_dialog">
<phrase_list>
<phrase id="0">
<text>Глупый НПС, дай денег!</text>
<next>1</next>
</phrase>
<phrase id="1">
<text>Нету денег. Все уже раздал.</text>
<next>2</next>
</phrase>
<phrase id="2">
<text>Ладно, завтра отдашь.</text>
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>
Т.к. мы привязали этот диалог к НПС как
actor_dialog, то у нас будет возможность сказать НПС:
"Глупый НПС, дай денег!", в ответ получим:
"Нету денег. Все уже раздал.", и снова мы можем ответить:
"Ладно, завтра отдашь.". На последней фразе диалоговое окно зароется, т.к. на ней прописана функция:
dialogs.break_dialog Напомню что бы было, если бы я прописал это не как
actor_dialog, а как
start_dialog, чтобы у вас в голове прояснилось в чем разница:
НПС: "Глупый НПС, дай денег!" (сказал бы сразу при открытие диалогового окна)
ГГ: "Нету денег. Все уже раздал." (и при нажатии на фразу диалог бы закрылся, т.к. в последней фразе стоит функция.)
Теперь посмотрим на ID фраз. Первую фразу всегда лучше начинать с
0. Это будет первая фраза. В ней же (в нашем примере) стоит:
1 , то есть следующая фраза под ID
1. Предположим если первая фраза выглядела бы вот так:
Code
<phrase id="0">
<text>Глупый НПС, дай денег!</text>
<next>1</next>
<next>2</next>
</phrase>
То НПС мог бы нам ответить как и фразой с ID
1, так и с фразой ID
2 (в игре мы уже не сможем проконтролировать как конкретно ответит НПС). Если бы фразу
"Глупый НПС, дай денег!" сказал бы НПС, то у нас бы было два варианта, как ответить ему фразами
1 и
2.
Если вы ничего не поняли, или просто лень разбираться в тексте, то предлагаю вам самим тестировать разные варианты в игре (например так я и научился создавать диалоги).
3. Построим диалог по-длиннее, чтобы вы поняли, как дополнять ещё фразы.
Вот пример (
actor_dialog):
Code
<dialog id="mod_my_first_dialog">
<phrase_list>
<phrase id="0">
<text>Привет, Сталкер!</text>
<next>1</next>
</phrase>
<phrase id="1">
<text>Привет!</text>
<next>2</next>
<next>7</next>
</phrase>
<phrase id="2">
<text>Как дела?</text>
<next>3</next>
</phrase>
<phrase id="3">
<text>Да вроде бы нормально, а ты как?</text>
<next>4</next>
<next>5</next>
</phrase>
<phrase id="4">
<text>Тоже нормально.</text>
<next>6</next>
</phrase>
<phrase id="5">
<text>Плохо очень.</text>
<next>6</next>
</phrase>
<phrase id="6">
<text>Ясно. Пока!</text>
<next>7</next>
</phrase>
<phrase id="7">
<text>Ладно, пока!</text>
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>
Попробуйте сами проанализировать, как диалог будет выглядеть в игре (запишите скажем на листочке), а потом уже посмотрите как получится в игре.
Если у вас не было ни одной ошибки, то смело переходите к следующему пункту.
Если же были ошибки, то проверьте в чем ошиблись, и лучше ещё рассмотрите структуру диалогов в конфиге.
4. Здесь чуть позже научу вас как прописывать функции в диалог (забирает деньги, даёт деньги, даёт предметы или забирает и т.д.), выполнение инфопоршней через диалог и др.
Примечания:
1:
start_dialog может использоваться только на одном диалоге у определённого НПС.
2: В конфиге диалога нельзя писать большие тексты, иначе будет вылет. Чтобы написать большой текст во фразу и чтобы не было вылета, в конфиге диалога на месте текста, напишите, например:
mod_long_phrase_1 Откройте
config\text\rus\stable_dialogs.xml, листай в самый низ, и вставьте следующий код
после и
перед :
Code
<string id="mod_long_phrase_1">
<text>Большой текст нужно писать сюда</text>
</string>
Такой принцип может использоваться не только для больших текстов.
3: Замечали, что в оригинале ТЧ в некоторых диалогах воспроизводился голос? Вы можете сделать то же самое.
Пользуясь схемой, как в
п. 2, делаем такую же фразу для НПС, на которой проиграется звук (не работает на фразах ГГ). Предположим мы между
и
прописали:
mod_long_phrase_2.
Открываем папку:
sounds\characters_voice\dialogs\ и туда добавляем нужный нам звук с названием
mod_long_phrase_2.ogg.