Главная| Мой профиль | ВыходВы вошли как Гость | Группа "Гости" | RSS
 
Новые сообщения | Участники | Правила форума | Поиск | Ваша ссылка
  • Страница 1 из 1
  • 1
как создать новый диалог в сталкере
sah767Дата: Суббота, 17.01.2015, 14:06 | Сообщение # 1 | Жаловаться


Сообщений: 30
Offline


Создание новых веток диалога: Создание новых веток диалога.
1) Списки веток диалогов содержатся в файлах вида gamedata/config/gameplay/character_desc_*.xml Это например:
character_desc_zombied.xml
character_desc_stalker.xml
character_desc_g arbage.xml
итд. Файлы character_desc_*.xml можно сравнить со ств олом дерева диалогов.
В них перечисляется названия прикрепляемых веток диалогов Например вот список веток диалога с Сидоровичем взятый из файла character_desc_escape.xml escape_trader_start_dialog
escape_trader_talk_info
escape_trader_jobs
tm_trader_dialog
tm_trader_reward
escape_trader_done_blockpost_box< br>
В свою очередь каждая ветка диалога также может ветвится. 2) Ветвление веток прописывается уже в других файлах.
Например ветвление веток диалога с Сидоровичем содержится в файле gamedata/config/gameplay/dialogs_escape.xml
Возьмем оттуда к примеру ветвление ветки escape_trader_jobs
(ветвление веток обычно очень большое поэтому я приведу только часть): escape_dialog.trader_has_talk_info_w r
tutorial_end escape_trader_talk_info_1
100
99
9995 …

… escape_trader_talk_info_0
1 Здесь … - это проверка выполнения условия. Ветка появится в диалоге, только если условие выполняется.
Конкретно escape_dialog.trader_has_talk_info_w r из ветки
escape_trader_talk_info есть обращение к функции trader_has_talk_info_wr
находящейся в файле скрипте gamedata/scripts/escape_dialog*****ipt Функция выглядит так: function trader_has_talk_info_wr( trader, actor )
return true
end Насколько понимаю она возвращает true только в случае если мы разговариваем с trader_ом т.е. с Сидоровичем.
Т.е проверкой условия escape_dialog.trader_has_talk_info_w r проверяется с кем ведется диалог,
и если диалог ведется с Сидоровичем в ветке по крайней мере этим условием пропускается в списк реплик.
Но для конкретной ветки может быть несколько precondition и других условий. Далее tutorial_endЕсли я верно понимаю, это так же своего рода проверка
условия В данном случае проверка на то закончена стадия tutorialа или
нет. Т.е ветка допустится в список реплик если стадия tutorialа
закончена. А далее идут конкретные фразы содержащие ссылки на вытекающие фразы Фраза: escape_trader_talk_info_0
1 это основа ветки escape_trader_talk_info.
(Вообще как я понял в любой основной ветке любого диалога фраза будет основой из которой далее будет все вытекать) 1 - это ссылка на вытекающую фразу : escape_trader_talk_info_1
100
99
9995 В свою очередь 100, 99, 9995 это ссылки на фразы веточки растущие из фразы
. 3) Текст каждой фразы содержится уже в четвертом файле. Для диалога с Сидоровичем тексты лежат в файле
gamedata/config/text/rus/stable_dialogs_escape.xml Есть несколько вопросов. Спрашивай, только я ведь всего не знаю. Сам понимаешь, сижу тут целыми
днями, а жизнь - она вся там, снаружи, в Зоне. Могу рассказать о Зоне
вообще, а немного могу о ближайших окрестностях, где сам ходил. Эти строки содержат тексты для фраз и Итого диалоги разложены по 4 а то и более файлам. Ветки диалога могут быть цикличными. Как в этом случае: …
1
2 …
11
12 …
1 - Это возврат к фразе 1. (зацикливание)
111 Теперь пример практического применения того, о чем было сказано выше:
Добавим в диалог с Сидоровичем ветку своего собственного изготовления. Например такую: Меченый: Сидрыч а что это у тебя зеленые человечки, что по столу бегают, такие худые?
Сидорович: Чего?!!
Меченый: Ты их совсем, совсем не кормишь?
Сидорович: В следующий раз, как пойдешь в зону, бери-ка вместо водяры
побольше антирада. А то мало что таким перегаром дышишь, уже до зеленых
человечков долечился… Шутник. 1) В файле gamedata/config/gameplay/character_desc_escape.xml в конце списка веток
для trader_а суем свою ветку с произвольным названием. (например
escape_trader_letat_gusi) Т.е у нас получится так
… …


escape_trader_start_dialog
escape_trader_talk_info
escape_trader_jobs
tm_trader_dialog
tm_trader_reward
escape_trader_done_blockpost_box< br> escape_trader_letat_gusi …
Записываем изменения и с файлом character_desc_escape.xml все. 2) Теперь берем файл gamedata/config/gameplay/dialogs_escape.xml Диалогу: Меченый: Сидрыч а что это у тебя зеленые человечки, что по столу бегают, такие худые?
Сидорович: Чего?!!
Меченый: Ты их совсем, совсем не кормишь?
Сидорович: В следующий раз, как пойдешь в зону, бери-ка вместо водяры
побольше антирада. А то мало что таким перегаром дышишь, уже до зеленых
человечков долечился… Шутник. Который мы хотим реализовать будет соответствовать такая структура: escape_trader_ letat_gusi_0
1 escape_trader_ letat_gusi_1
2 escape_trader_ letat_gusi_2
3 escape_trader_ letat_gusi_3 условия наличия ветки в диалоге можно взять из ветки
Т.е берем условия escape_dialog.trader_has_talk_info_w r и tutorial_end
(Можно было конечно прописать в скрипте еще одно условие для ветки, чтоб она появилась только один раз,
а потом больше не возникала. Но об этом как нибудь позже допишу.) В итоге у нас получилась такая структура: escape_dialog.trader_has_talk_info_w r
tutorial_end escape_trader_letat_gusi_0
1 escape_trader_letat_gusi_1
2 escape_trader_letat_gusi_2
3 escape_trader_letat_gusi_3 Которую нужно вставить в любом месте между dialog id_шниками других веток в файле dialogs_escape.xml.
Главное не промахнутся и засунуть именно между, а не внутрь одного из dialog id
Все что находится между тегами и это внутенности конкретного dialog id
Т.е совать наш …. надо … здесь … но не здесь После сохранения внесенных изменений с файлом dialogs_escape.xml все. 3) Теперь вбиваем сами текстовички в файле gamedata/config/text/rus/stable_dialogs_escape.xml Т.е нам надо в файле stable_dialogs_escape.xml вставить такую конструкцию: Сидрыч а что это у тебя зеленые человечки, что по столу бегают, такие худые?
 
  • Страница 1 из 1
  • 1
Поиск:


Статистика форума
Недавно обновленные темы:
Популярные темы:
Лучшие пользователи:
Новые пользователи:

<