Создание новых веток диалогов
Теория
1) Списки веток диалогов содержатся в файлах вида gamedata/config/gameplay/character_desc_*.xml
Это, например: character_desc_zombied.xml character_desc_stalker.xml character_desc_garbage.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В свою очередь каждая ветка диалога также может ветвится.
2) Ветвление диалогов прописывается уже в других файлах.
Например, ветвление диалога с Сидоровичем содержится в файле gamedata/config/gameplay/dialogs_escape.xml Возьмем оттуда, например, ветвление escape_trader_jobs.
Ветвление имеет довольно большие масштабы, поэтому приведу только часть:
Здесь … - это проверка выполнения условия. Ветка появится в диалоге, только если условие выполняется. Конкретно escape_dialog.trader_has_talk_info_wr из ветки escape_trader_talk_info - это обращение к функции trader_has_talk_info_wr, находящейся в файле скрипте gamedata/scripts/escape_dialog.script
Функция выглядит так:
function trader_has_talk_info_wr( trader, actor )
return true
endТо есть, судя по его структуре, escape_dialog.trader_has_talk_info_wr выполняется всегда, т.к. функция всегда возвращает истину и