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 выполняется всегда, т.к. функция всегда возвращает истину и |