<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://stalkerin.gameru.net/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eragorn</id>
		<title>S.T.A.L.K.E.R. Inside Wiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eragorn"/>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Eragorn"/>
		<updated>2026-06-13T16:18:36Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B8%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2</id>
		<title>SoC. Создание диалогов</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B8%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2"/>
				<updated>2018-09-26T05:06:57Z</updated>
		
		<summary type="html">&lt;p&gt;Eragorn: /* Авторы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Создание новых веток диалогов==&lt;br /&gt;
===Теория===&lt;br /&gt;
&lt;br /&gt;
1) Списки веток диалогов содержатся в файлах вида '''gamedata/config/gameplay/character_desc_*.xml''' &lt;br /&gt;
&lt;br /&gt;
Это, например:&lt;br /&gt;
&lt;br /&gt;
'''character_desc_zombied.xml&lt;br /&gt;
character_desc_stalker.xml&lt;br /&gt;
character_desc_garbage.xml'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Файлы '''character_desc_*.xml''' можно сравнить со стволом дерева диалогов.&lt;br /&gt;
В них перечисляется названия прикрепляемых веток диалогов&lt;br /&gt;
&lt;br /&gt;
Например вот список веток диалога с Сидоровичем взятый из файла '''character_desc_escape.xml'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;		&amp;lt;start_dialog&amp;gt;escape_trader_start_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;escape_trader_talk_info&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;escape_trader_jobs&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_trader_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_trader_reward&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;escape_trader_done_blockpost_box&amp;lt;/actor_dialog&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В свою очередь каждая ветка диалога также может ветвится.&lt;br /&gt;
&lt;br /&gt;
2) Ветвление диалогов прописывается уже в других файлах.&lt;br /&gt;
&lt;br /&gt;
Например, ветвление диалога с Сидоровичем содержится в файле '''gamedata/config/gameplay/dialogs_escape.xml'''&lt;br /&gt;
Возьмем оттуда, например, ветвление '''escape_trader_jobs'''.&lt;br /&gt;
&lt;br /&gt;
Ветвление имеет довольно большие масштабы, поэтому приведу только часть:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;dialog id=&amp;quot;escape_trader_talk_info&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&lt;br /&gt;
        &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
            &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;text&amp;gt;escape_trader_talk_info_1&amp;lt;/text&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;100&amp;lt;/next&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;99&amp;lt;/next&amp;gt;&lt;br /&gt;
	      &amp;lt;next&amp;gt;9995&amp;lt;/next&amp;gt;&lt;br /&gt;
            &amp;lt;/phrase&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
            &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;text&amp;gt;escape_trader_talk_info_0&amp;lt;/text&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
            &amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
&amp;lt;/dialog&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь ''&amp;lt;precondition&amp;gt;…&amp;lt;/precondition&amp;gt;'' - это проверка выполнения условия. Ветка появится в диалоге, только если условие выполняется.&lt;br /&gt;
Конкретно: &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
из ветки  ''escape_trader_talk_info'' - это обращение к функции ''trader_has_talk_info_wr'', находящейся в файле скрипте '''gamedata/scripts/escape_dialog.script'''.&lt;br /&gt;
&lt;br /&gt;
Функция выглядит так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;function trader_has_talk_info_wr( trader, actor )&lt;br /&gt;
	return true&lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То есть, судя по его структуре, ''&amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;'' &lt;br /&gt;
выполняется всегда, т.к. функция всегда возвращает истину и ''&amp;lt;dialog id=&amp;quot;escape_trader_talk_info&amp;quot;&amp;gt;'' пропускается в списк реплик.&lt;br /&gt;
&lt;br /&gt;
Но для конкретной ветки может быть несколько precondition и других условий.&lt;br /&gt;
&lt;br /&gt;
Далее, ''&amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;'' - это еще одна проверка, на этот раз на наличие у игрока так называемых infoportions, выдаваемы в процессе ключевых диалогов. В данном случае это проверка на то, закончена ли определенная стадия туториала, или нет. Т.е. ветка допустится в список реплик если стадия туториала закончена.&lt;br /&gt;
&lt;br /&gt;
Более детально мы это разберем в конце статьи.&lt;br /&gt;
&lt;br /&gt;
А далее идут конкретные фразы, содержащие ссылки на вытекающие фразы, например:&lt;br /&gt;
       &lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;text&amp;gt;escape_trader_talk_info_0&amp;lt;/text&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это основа ветки ''escape_trader_talk_info''. &lt;br /&gt;
&lt;br /&gt;
'''Важно!''' В любой основной ветке любого диалога фраза ''&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;'' будет основой, из которой далее будет все вытекать. Она должна обязательно присутствовать и в вашем диалоге.&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;'' - это ссылка на вытекающую фразу ''&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;       &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;text&amp;gt;escape_trader_talk_info_1&amp;lt;/text&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;100&amp;lt;/next&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;99&amp;lt;/next&amp;gt;&lt;br /&gt;
	    &amp;lt;next&amp;gt;9995&amp;lt;/next&amp;gt;&lt;br /&gt;
        &amp;lt;/phrase&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В свою очередь   ''&amp;lt;next&amp;gt;100&amp;lt;/next&amp;gt;, &amp;lt;next&amp;gt;99&amp;lt;/next&amp;gt;, &amp;lt;next&amp;gt;9995&amp;lt;/next&amp;gt;'' -  это ссылки на фразы веточки растущие из фразы ''&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;''.  &lt;br /&gt;
&lt;br /&gt;
3) Текст каждой фразы содержится в третьем файле. Для диалога с Сидоровичем тексты лежат в файле '''gamedata/config/text/rus/stable_dialogs_escape.xml'''. Вот сама текстовая составляющая диалога:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;	&amp;lt;string id=&amp;quot;escape_trader_talk_info_0&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Есть несколько вопросов.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;escape_trader_talk_info_1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Спрашивай, только я ведь всего не знаю. Сам понимаешь, сижу тут &lt;br /&gt;
целыми днями, а жизнь - она вся там, снаружи, в Зоне. Могу рассказать о Зоне вообще, а немного &lt;br /&gt;
могу о ближайших окрестностях, где сам ходил.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
        ...&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эти строки содержат тексты для фраз &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt; и &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итого диалоги разложены по трем, а то и более файлам.&lt;br /&gt;
&lt;br /&gt;
Да кстати, путь по веткам может быть зацикленным, если того требует диалог. Например так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt;...&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
 &amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt;...&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;11&amp;lt;/next&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;12&amp;lt;/next&amp;gt;&lt;br /&gt;
 &amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt;...&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;  - Это возврат к фразе №1 (зацикливание)  &lt;br /&gt;
            &amp;lt;next&amp;gt;111&amp;lt;/next&amp;gt;&lt;br /&gt;
 &amp;lt;/phrase&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Практика===&lt;br /&gt;
Добавим в диалог с Сидоровичем ветку своего собственного изготовления.Например такую: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Меченый: Сидрыч, а чего это у тебя зеленые человечки, что по столу бегают, такие худые? &lt;br /&gt;
Сидорович: Чего?!&lt;br /&gt;
Меченый: Ты их совсем, совсем не кормишь?&lt;br /&gt;
Сидорович: В следующий раз, как пойдешь в зону, бери-ка  вместо водяры побольше антирада. А то &lt;br /&gt;
мало что таким перегаром дышишь, уже до зеленых человечков долечился... Шутник.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого:&lt;br /&gt;
&lt;br /&gt;
1) В файле '''gamedata/config/gameplay/character_desc_escape.xml''' в конце списка веток для  ''trader'' припишем свою ветку с произвольным названием. Это будет, например, ''&amp;lt;actor_dialog&amp;gt;escape_trader_letat_gusi&amp;lt;/actor_dialog&amp;gt;''.&lt;br /&gt;
&lt;br /&gt;
Т.е у нас получится так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;specific_character id=&amp;quot;escape_trader&amp;quot; no_random = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		...&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;escape_trader_start_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;escape_trader_talk_info&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;escape_trader_jobs&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_trader_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_trader_reward&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;escape_trader_done_blockpost_box&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
                        &amp;lt;actor_dialog&amp;gt;escape_trader_letat_gusi&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
		…&amp;lt;/xml&amp;gt;&lt;br /&gt;
Записываем изменения, с этим файлом пока всё.&lt;br /&gt;
&lt;br /&gt;
2) Теперь берем файл '''gamedata/config/gameplay/dialogs_escape.xml'''&lt;br /&gt;
&lt;br /&gt;
Диалогу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Меченый: Сидрыч а почему это у тебя зеленые человечки, что по столу бегают, такие худые? &lt;br /&gt;
Сидорович: Чего?!!&lt;br /&gt;
Меченый: Ты их совсем, совсем не кормишь?&lt;br /&gt;
Сидорович: В следующий раз, как пойдешь в зону, бери-ка  вместо водяры побольше антирада. А то &lt;br /&gt;
мало что таким перегаром дышишь, уже до зеленых человечков долечился... Шутник.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет соответствовать такая структура:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt;escape_trader_letat_gusi_0&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt;escape_trader_letat_gusi_1&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
 &amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt; escape_trader_letat_gusi_2&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt; escape_trader_letat_gusi_3&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условия наличия ветки в диалоге можно взять из ветки &amp;lt;dialog id=&amp;quot;escape_trader_talk_info&amp;quot;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Т.е берем условия ''&amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;'' и ''&amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;''.&lt;br /&gt;
Можно было, конечно, прописать в скрипте еще одно условие для ветки, чтобы она появилась только один раз, а потом больше не возникала. Но об этом как-нибудь позже.&lt;br /&gt;
&lt;br /&gt;
В итоге у нас получилась такая структура:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;dialog id=&amp;quot;escape_trader_letat_gusi&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&lt;br /&gt;
        &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
                   &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                             &amp;lt;text&amp;gt;escape_trader_letat_gusi_0&amp;lt;/text&amp;gt;&lt;br /&gt;
                              &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
                    &amp;lt;/phrase&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                               &amp;lt;text&amp;gt;escape_trader_letat_gusi_1&amp;lt;/text&amp;gt;&lt;br /&gt;
                                &amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
                     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;text&amp;gt; escape_trader_letat_gusi_2&amp;lt;/text&amp;gt;&lt;br /&gt;
                                &amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
                     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
                                  &amp;lt;text&amp;gt; escape_trader_letat_gusi_3&amp;lt;/text&amp;gt;&lt;br /&gt;
                      &amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
  &amp;lt;/dialog&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Её нужно вставить в любом месте между dialog id'ами других веток в файле '''dialogs_escape.xml'''. Главное - не промахнутся и засунуть именно между, а не внутрь одного из dialog id.&lt;br /&gt;
&lt;br /&gt;
После сохранения внесенных изменений с файлом '''dialogs_escape.xml''' все.&lt;br /&gt;
&lt;br /&gt;
3) Теперь вбиваем сами текстовички в файле '''gamedata/config/text/rus/stable_dialogs_escape.xml'''&lt;br /&gt;
&lt;br /&gt;
Т.е нам надо в файле '''stable_dialogs_escape.xml''' вставить такую конструкцию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;	&amp;lt;string id=&amp;quot;escape_trader_letat_gusi_0&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Сидрыч, а чего это у тебя зеленые человечки, что по столу бегают, такие худые?&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;escape_trader_letat_gusi_1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Чего?!&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;escape_trader_letat_gusi_2&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Ты их совсем, совсем не кормишь?&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;escape_trader_letat_gusi_3&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;В следующий раз, как пойдешь в зону, бери-ка  вместо водяры побольше &lt;br /&gt;
антирада. А то мало что таким перегаром дышишь, уже до зеленых человечков долечился... &lt;br /&gt;
Шутник.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В любом месте между уже существующими string id.&lt;br /&gt;
После сохранения изменений, у нас все готово. Можно загружать игру и смотреть что получилось.&lt;br /&gt;
&amp;lt;!!!ВНИМАНИЕ!!!&amp;gt;&lt;br /&gt;
Если вы сделали всё правильно,но при обращении к НПЦ вылетает с таким логом&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Expression : no_assert&lt;br /&gt;
Function : CXML_IdToIndex&amp;lt;class CInfoPortion&amp;gt;::GetById&lt;br /&gt;
File : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h&lt;br /&gt;
Line : 112&lt;br /&gt;
Description : item not found, id&lt;br /&gt;
Arguments : escape_trader_letat_gusi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создайте свой файл и назовите его как душе угодно,пример: '''letat_gusi_my_test.xml'''&lt;br /&gt;
Впишите туда: &lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;windows-1251&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;game_dialogs&amp;gt;&lt;br /&gt;
     &amp;lt;dialog id=&amp;quot;escape_trader_letat_gusi&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&lt;br /&gt;
        &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
                   &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                             &amp;lt;text&amp;gt;escape_trader_letat_gusi_0&amp;lt;/text&amp;gt;&lt;br /&gt;
                              &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
                    &amp;lt;/phrase&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                               &amp;lt;text&amp;gt;escape_trader_letat_gusi_1&amp;lt;/text&amp;gt;&lt;br /&gt;
                                &amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
                     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;text&amp;gt; escape_trader_letat_gusi_2&amp;lt;/text&amp;gt;&lt;br /&gt;
                                &amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
                     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
                                  &amp;lt;text&amp;gt; escape_trader_letat_gusi_3&amp;lt;/text&amp;gt;&lt;br /&gt;
                      &amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
    &amp;lt;/dialog&amp;gt;&lt;br /&gt;
&amp;lt;/game_dialogs&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
Сохраните.Далее в '''gamedata\config\system.ltx'''&lt;br /&gt;
добавьть в секцию [dialogs] название файла,который мы создали.Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;[dialogs]&lt;br /&gt;
files = ..., letat_gusi_my_test ,где ... список других файлов,letat_gusi_my_test - название вашего,нового файла.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Дополнительно===&lt;br /&gt;
&lt;br /&gt;
'''Внимание!''' После патча 1.002 данный урок перестал работать. Причина - со вторым патчем несовместимо это условие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дело в том, что во втором патче из файла escape_dialog.script была удалена функция: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;function trader_has_talk_info_wr( trader, actor ) &lt;br /&gt;
   return true &lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно либо записать эту функцию обратно в escape_dialog.script, либо использовать другие более-менее подходящие условия, например:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;precondition&amp;gt;escape_dialog.trader_alredy_give_job&amp;lt;/precondition&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так-же при построении диалогов в версии 1.004 стоит учитывать длину названия диалога, а также имен ссылок на текстовое содержание.&lt;br /&gt;
Если превысить порог (не проверял количество символом в строке) допустимых значений диалог по росту не будет отображаться целиком&lt;br /&gt;
а лиш та часть которую он может отобразить. При попытке продолжить диалог он попросту не выводится что приводит к невозможности его завершения.&lt;br /&gt;
Данная проблема была замечена при прохождении мода  Р.М.А. 1.0.1 на 1.004 патче что на 1.006 с этим не возникало проблем&lt;br /&gt;
Каких либо вылетов в этом случае не замечалось...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Всё. Мы научились писать простые диалоги.&lt;br /&gt;
&lt;br /&gt;
==Авторы==&lt;br /&gt;
&lt;br /&gt;
Статья создана:&lt;br /&gt;
&lt;br /&gt;
* [[Участник:BAC9-FLCL|BAC9-FLCL]]&lt;br /&gt;
* [[Участник:Keha|Keha]]&lt;br /&gt;
&lt;br /&gt;
Статью дополнил:&lt;br /&gt;
* джЭдай&lt;br /&gt;
* Eragorn&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>Eragorn</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B8%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2</id>
		<title>SoC. Создание диалогов</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B8%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2"/>
				<updated>2018-09-26T05:05:28Z</updated>
		
		<summary type="html">&lt;p&gt;Eragorn: /* Дополнительно */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Создание новых веток диалогов==&lt;br /&gt;
===Теория===&lt;br /&gt;
&lt;br /&gt;
1) Списки веток диалогов содержатся в файлах вида '''gamedata/config/gameplay/character_desc_*.xml''' &lt;br /&gt;
&lt;br /&gt;
Это, например:&lt;br /&gt;
&lt;br /&gt;
'''character_desc_zombied.xml&lt;br /&gt;
character_desc_stalker.xml&lt;br /&gt;
character_desc_garbage.xml'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Файлы '''character_desc_*.xml''' можно сравнить со стволом дерева диалогов.&lt;br /&gt;
В них перечисляется названия прикрепляемых веток диалогов&lt;br /&gt;
&lt;br /&gt;
Например вот список веток диалога с Сидоровичем взятый из файла '''character_desc_escape.xml'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;		&amp;lt;start_dialog&amp;gt;escape_trader_start_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;escape_trader_talk_info&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;escape_trader_jobs&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_trader_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_trader_reward&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;escape_trader_done_blockpost_box&amp;lt;/actor_dialog&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В свою очередь каждая ветка диалога также может ветвится.&lt;br /&gt;
&lt;br /&gt;
2) Ветвление диалогов прописывается уже в других файлах.&lt;br /&gt;
&lt;br /&gt;
Например, ветвление диалога с Сидоровичем содержится в файле '''gamedata/config/gameplay/dialogs_escape.xml'''&lt;br /&gt;
Возьмем оттуда, например, ветвление '''escape_trader_jobs'''.&lt;br /&gt;
&lt;br /&gt;
Ветвление имеет довольно большие масштабы, поэтому приведу только часть:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;dialog id=&amp;quot;escape_trader_talk_info&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&lt;br /&gt;
        &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
            &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;text&amp;gt;escape_trader_talk_info_1&amp;lt;/text&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;100&amp;lt;/next&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;99&amp;lt;/next&amp;gt;&lt;br /&gt;
	      &amp;lt;next&amp;gt;9995&amp;lt;/next&amp;gt;&lt;br /&gt;
            &amp;lt;/phrase&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
            &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;text&amp;gt;escape_trader_talk_info_0&amp;lt;/text&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
            &amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
&amp;lt;/dialog&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь ''&amp;lt;precondition&amp;gt;…&amp;lt;/precondition&amp;gt;'' - это проверка выполнения условия. Ветка появится в диалоге, только если условие выполняется.&lt;br /&gt;
Конкретно: &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
из ветки  ''escape_trader_talk_info'' - это обращение к функции ''trader_has_talk_info_wr'', находящейся в файле скрипте '''gamedata/scripts/escape_dialog.script'''.&lt;br /&gt;
&lt;br /&gt;
Функция выглядит так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;function trader_has_talk_info_wr( trader, actor )&lt;br /&gt;
	return true&lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То есть, судя по его структуре, ''&amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;'' &lt;br /&gt;
выполняется всегда, т.к. функция всегда возвращает истину и ''&amp;lt;dialog id=&amp;quot;escape_trader_talk_info&amp;quot;&amp;gt;'' пропускается в списк реплик.&lt;br /&gt;
&lt;br /&gt;
Но для конкретной ветки может быть несколько precondition и других условий.&lt;br /&gt;
&lt;br /&gt;
Далее, ''&amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;'' - это еще одна проверка, на этот раз на наличие у игрока так называемых infoportions, выдаваемы в процессе ключевых диалогов. В данном случае это проверка на то, закончена ли определенная стадия туториала, или нет. Т.е. ветка допустится в список реплик если стадия туториала закончена.&lt;br /&gt;
&lt;br /&gt;
Более детально мы это разберем в конце статьи.&lt;br /&gt;
&lt;br /&gt;
А далее идут конкретные фразы, содержащие ссылки на вытекающие фразы, например:&lt;br /&gt;
       &lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;text&amp;gt;escape_trader_talk_info_0&amp;lt;/text&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это основа ветки ''escape_trader_talk_info''. &lt;br /&gt;
&lt;br /&gt;
'''Важно!''' В любой основной ветке любого диалога фраза ''&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;'' будет основой, из которой далее будет все вытекать. Она должна обязательно присутствовать и в вашем диалоге.&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;'' - это ссылка на вытекающую фразу ''&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;       &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;text&amp;gt;escape_trader_talk_info_1&amp;lt;/text&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;100&amp;lt;/next&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;99&amp;lt;/next&amp;gt;&lt;br /&gt;
	    &amp;lt;next&amp;gt;9995&amp;lt;/next&amp;gt;&lt;br /&gt;
        &amp;lt;/phrase&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В свою очередь   ''&amp;lt;next&amp;gt;100&amp;lt;/next&amp;gt;, &amp;lt;next&amp;gt;99&amp;lt;/next&amp;gt;, &amp;lt;next&amp;gt;9995&amp;lt;/next&amp;gt;'' -  это ссылки на фразы веточки растущие из фразы ''&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;''.  &lt;br /&gt;
&lt;br /&gt;
3) Текст каждой фразы содержится в третьем файле. Для диалога с Сидоровичем тексты лежат в файле '''gamedata/config/text/rus/stable_dialogs_escape.xml'''. Вот сама текстовая составляющая диалога:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;	&amp;lt;string id=&amp;quot;escape_trader_talk_info_0&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Есть несколько вопросов.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;escape_trader_talk_info_1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Спрашивай, только я ведь всего не знаю. Сам понимаешь, сижу тут &lt;br /&gt;
целыми днями, а жизнь - она вся там, снаружи, в Зоне. Могу рассказать о Зоне вообще, а немного &lt;br /&gt;
могу о ближайших окрестностях, где сам ходил.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
        ...&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эти строки содержат тексты для фраз &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt; и &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итого диалоги разложены по трем, а то и более файлам.&lt;br /&gt;
&lt;br /&gt;
Да кстати, путь по веткам может быть зацикленным, если того требует диалог. Например так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt;...&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
 &amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt;...&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;11&amp;lt;/next&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;12&amp;lt;/next&amp;gt;&lt;br /&gt;
 &amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt;...&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;  - Это возврат к фразе №1 (зацикливание)  &lt;br /&gt;
            &amp;lt;next&amp;gt;111&amp;lt;/next&amp;gt;&lt;br /&gt;
 &amp;lt;/phrase&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Практика===&lt;br /&gt;
Добавим в диалог с Сидоровичем ветку своего собственного изготовления.Например такую: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Меченый: Сидрыч, а чего это у тебя зеленые человечки, что по столу бегают, такие худые? &lt;br /&gt;
Сидорович: Чего?!&lt;br /&gt;
Меченый: Ты их совсем, совсем не кормишь?&lt;br /&gt;
Сидорович: В следующий раз, как пойдешь в зону, бери-ка  вместо водяры побольше антирада. А то &lt;br /&gt;
мало что таким перегаром дышишь, уже до зеленых человечков долечился... Шутник.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого:&lt;br /&gt;
&lt;br /&gt;
1) В файле '''gamedata/config/gameplay/character_desc_escape.xml''' в конце списка веток для  ''trader'' припишем свою ветку с произвольным названием. Это будет, например, ''&amp;lt;actor_dialog&amp;gt;escape_trader_letat_gusi&amp;lt;/actor_dialog&amp;gt;''.&lt;br /&gt;
&lt;br /&gt;
Т.е у нас получится так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;specific_character id=&amp;quot;escape_trader&amp;quot; no_random = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		...&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;escape_trader_start_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;escape_trader_talk_info&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;escape_trader_jobs&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_trader_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_trader_reward&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;escape_trader_done_blockpost_box&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
                        &amp;lt;actor_dialog&amp;gt;escape_trader_letat_gusi&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
		…&amp;lt;/xml&amp;gt;&lt;br /&gt;
Записываем изменения, с этим файлом пока всё.&lt;br /&gt;
&lt;br /&gt;
2) Теперь берем файл '''gamedata/config/gameplay/dialogs_escape.xml'''&lt;br /&gt;
&lt;br /&gt;
Диалогу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Меченый: Сидрыч а почему это у тебя зеленые человечки, что по столу бегают, такие худые? &lt;br /&gt;
Сидорович: Чего?!!&lt;br /&gt;
Меченый: Ты их совсем, совсем не кормишь?&lt;br /&gt;
Сидорович: В следующий раз, как пойдешь в зону, бери-ка  вместо водяры побольше антирада. А то &lt;br /&gt;
мало что таким перегаром дышишь, уже до зеленых человечков долечился... Шутник.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет соответствовать такая структура:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt;escape_trader_letat_gusi_0&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt;escape_trader_letat_gusi_1&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
 &amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt; escape_trader_letat_gusi_2&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text&amp;gt; escape_trader_letat_gusi_3&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условия наличия ветки в диалоге можно взять из ветки &amp;lt;dialog id=&amp;quot;escape_trader_talk_info&amp;quot;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Т.е берем условия ''&amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;'' и ''&amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;''.&lt;br /&gt;
Можно было, конечно, прописать в скрипте еще одно условие для ветки, чтобы она появилась только один раз, а потом больше не возникала. Но об этом как-нибудь позже.&lt;br /&gt;
&lt;br /&gt;
В итоге у нас получилась такая структура:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;dialog id=&amp;quot;escape_trader_letat_gusi&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&lt;br /&gt;
        &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
                   &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                             &amp;lt;text&amp;gt;escape_trader_letat_gusi_0&amp;lt;/text&amp;gt;&lt;br /&gt;
                              &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
                    &amp;lt;/phrase&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                               &amp;lt;text&amp;gt;escape_trader_letat_gusi_1&amp;lt;/text&amp;gt;&lt;br /&gt;
                                &amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
                     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;text&amp;gt; escape_trader_letat_gusi_2&amp;lt;/text&amp;gt;&lt;br /&gt;
                                &amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
                     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
                                  &amp;lt;text&amp;gt; escape_trader_letat_gusi_3&amp;lt;/text&amp;gt;&lt;br /&gt;
                      &amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
  &amp;lt;/dialog&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Её нужно вставить в любом месте между dialog id'ами других веток в файле '''dialogs_escape.xml'''. Главное - не промахнутся и засунуть именно между, а не внутрь одного из dialog id.&lt;br /&gt;
&lt;br /&gt;
После сохранения внесенных изменений с файлом '''dialogs_escape.xml''' все.&lt;br /&gt;
&lt;br /&gt;
3) Теперь вбиваем сами текстовички в файле '''gamedata/config/text/rus/stable_dialogs_escape.xml'''&lt;br /&gt;
&lt;br /&gt;
Т.е нам надо в файле '''stable_dialogs_escape.xml''' вставить такую конструкцию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;	&amp;lt;string id=&amp;quot;escape_trader_letat_gusi_0&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Сидрыч, а чего это у тебя зеленые человечки, что по столу бегают, такие худые?&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;escape_trader_letat_gusi_1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Чего?!&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;escape_trader_letat_gusi_2&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Ты их совсем, совсем не кормишь?&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;escape_trader_letat_gusi_3&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;В следующий раз, как пойдешь в зону, бери-ка  вместо водяры побольше &lt;br /&gt;
антирада. А то мало что таким перегаром дышишь, уже до зеленых человечков долечился... &lt;br /&gt;
Шутник.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В любом месте между уже существующими string id.&lt;br /&gt;
После сохранения изменений, у нас все готово. Можно загружать игру и смотреть что получилось.&lt;br /&gt;
&amp;lt;!!!ВНИМАНИЕ!!!&amp;gt;&lt;br /&gt;
Если вы сделали всё правильно,но при обращении к НПЦ вылетает с таким логом&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Expression : no_assert&lt;br /&gt;
Function : CXML_IdToIndex&amp;lt;class CInfoPortion&amp;gt;::GetById&lt;br /&gt;
File : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h&lt;br /&gt;
Line : 112&lt;br /&gt;
Description : item not found, id&lt;br /&gt;
Arguments : escape_trader_letat_gusi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создайте свой файл и назовите его как душе угодно,пример: '''letat_gusi_my_test.xml'''&lt;br /&gt;
Впишите туда: &lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;windows-1251&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;game_dialogs&amp;gt;&lt;br /&gt;
     &amp;lt;dialog id=&amp;quot;escape_trader_letat_gusi&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&lt;br /&gt;
        &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
                   &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                             &amp;lt;text&amp;gt;escape_trader_letat_gusi_0&amp;lt;/text&amp;gt;&lt;br /&gt;
                              &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
                    &amp;lt;/phrase&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                               &amp;lt;text&amp;gt;escape_trader_letat_gusi_1&amp;lt;/text&amp;gt;&lt;br /&gt;
                                &amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
                     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;text&amp;gt; escape_trader_letat_gusi_2&amp;lt;/text&amp;gt;&lt;br /&gt;
                                &amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
                     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
                                  &amp;lt;text&amp;gt; escape_trader_letat_gusi_3&amp;lt;/text&amp;gt;&lt;br /&gt;
                      &amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
    &amp;lt;/dialog&amp;gt;&lt;br /&gt;
&amp;lt;/game_dialogs&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
Сохраните.Далее в '''gamedata\config\system.ltx'''&lt;br /&gt;
добавьть в секцию [dialogs] название файла,который мы создали.Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;[dialogs]&lt;br /&gt;
files = ..., letat_gusi_my_test ,где ... список других файлов,letat_gusi_my_test - название вашего,нового файла.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Дополнительно===&lt;br /&gt;
&lt;br /&gt;
'''Внимание!''' После патча 1.002 данный урок перестал работать. Причина - со вторым патчем несовместимо это условие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дело в том, что во втором патче из файла escape_dialog.script была удалена функция: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;function trader_has_talk_info_wr( trader, actor ) &lt;br /&gt;
   return true &lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно либо записать эту функцию обратно в escape_dialog.script, либо использовать другие более-менее подходящие условия, например:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;precondition&amp;gt;escape_dialog.trader_alredy_give_job&amp;lt;/precondition&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так-же при построении диалогов в версии 1.004 стоит учитывать длину названия диалога, а также имен ссылок на текстовое содержание.&lt;br /&gt;
Если превысить порог (не проверял количество символом в строке) допустимых значений диалог по росту не будет отображаться целиком&lt;br /&gt;
а лиш та часть которую он может отобразить. При попытке продолжить диалог он попросту не выводится что приводит к невозможности его завершения.&lt;br /&gt;
Данная проблема была замечена при прохождении мода  Р.М.А. 1.0.1 на 1.004 патче что на 1.006 с этим не возникало проблем&lt;br /&gt;
Каких либо вылетов в этом случае не замечалось...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Всё. Мы научились писать простые диалоги.&lt;br /&gt;
&lt;br /&gt;
==Авторы==&lt;br /&gt;
&lt;br /&gt;
Статья создана:&lt;br /&gt;
&lt;br /&gt;
* [[Участник:BAC9-FLCL|BAC9-FLCL]]&lt;br /&gt;
* [[Участник:Keha|Keha]]&lt;br /&gt;
&lt;br /&gt;
Статью дополнил:&lt;br /&gt;
* джЭдай&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>Eragorn</name></author>	</entry>

	</feed>