|
| | |
|
Создание новых веток диалога.
Создание новых веток диалога. 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 а то и более файлам. Ветки диалога могут быть цикличными. Как в этом случае: …12 …1 1 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 вставить такую конструкцию: Сидрыч а что это у тебя зеленые человечки, что по столу бегают, такие худые? Чего?!! Ты их совсем, совсем не кормишь? В следующий раз, как пойдешь в зону, бери-ка вместо водяры побольше антирада. А то мало что таким перегаром дышишь, уже до зеленых человечков долечился… Шутник. в любом месте между уже существующими string id сюда Но не внутрь одного из существующих string id не сюда После сохранения изменений, у вас все готово. Можно грузить игру и смотреть что получилось.
|
Категория: Моддинг | Добавил: Gluck (22.07.2012)
|
Просмотров: 631
| Рейтинг: 0.0/0 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
| |