<?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=Flack</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=Flack"/>
		<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/Flack"/>
		<updated>2026-04-29T19:52:53Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D1%81%D1%82%D1%8E%D0%BC%D0%BE%D0%B2</id>
		<title>Редактирование костюмов</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D1%81%D1%82%D1%8E%D0%BC%D0%BE%D0%B2"/>
				<updated>2011-05-13T21:04:24Z</updated>
		
		<summary type="html">&lt;p&gt;Flack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Разбор параметров===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В этой статье мы рассмотрим значения параметров костюмов.&amp;lt;br&amp;gt;&lt;br /&gt;
Все параметры, не упомянутые ниже, изменять '''строго не рекомендуется'''!&lt;br /&gt;
&lt;br /&gt;
Итак, секции с параметрами находятся в файле:&amp;lt;br&amp;gt;&lt;br /&gt;
'''config\misc\outfit.ltx'''&lt;br /&gt;
&lt;br /&gt;
Разберем, например, параметры классического костюма сталкера.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[stalker_outfit]:outfit_base &lt;br /&gt;
&lt;br /&gt;
; название секции костюма. именно к нему игра будет обращаться. outfit_base - &lt;br /&gt;
базовая (наследуемая)  секция (изменять строго не рекомендуется).&lt;br /&gt;
&lt;br /&gt;
visual          = equipments\stalker_suit ; модель, используемая для сложенного костюма, &lt;br /&gt;
лежащего на земле.&lt;br /&gt;
&lt;br /&gt;
actor_visual	= actors\hero\stalker_hood.ogf ; модель, используемая для игрока, когда&lt;br /&gt;
на нем надет костюм.&lt;br /&gt;
&lt;br /&gt;
inv_name			= stalker_outfit_name ; название в инвентаре.&lt;br /&gt;
&lt;br /&gt;
inv_name_short		= stalker_outfit_name ; название в инвентаре (в принципе, можно&lt;br /&gt;
здесь продублировать значение предыдущего параметра - так чаще всего и делают).&lt;br /&gt;
&lt;br /&gt;
description			= stalker_outfit_description ; ссылка на текстовую строку&lt;br /&gt;
с описанием.&lt;br /&gt;
&lt;br /&gt;
inv_weight			= 5.0 ; вес.&lt;br /&gt;
&lt;br /&gt;
; далее идут параметры иконки в инвентаре (см. примечание 1).&lt;br /&gt;
&lt;br /&gt;
inv_grid_width		= 2&lt;br /&gt;
inv_grid_height		= 3&lt;br /&gt;
inv_grid_x		= 6&lt;br /&gt;
inv_grid_y		= 15&lt;br /&gt;
&lt;br /&gt;
full_icon_name		= npc_icon_stalker_outfit ; название иконки.&lt;br /&gt;
&lt;br /&gt;
cost				= 15000 ; базовая цена (см. примечание 2).&lt;br /&gt;
&lt;br /&gt;
full_scale_icon		= 14,11			; иконка сталкера в костюме в полный &lt;br /&gt;
рост (отображается в инвентаре справа).&lt;br /&gt;
&lt;br /&gt;
nightvision_sect				= effector_nightvision_bad ; тип ПНВ&lt;br /&gt;
(&amp;quot;плохой&amp;quot; - зеленый, &amp;quot;хороший&amp;quot; - синий).&lt;br /&gt;
&lt;br /&gt;
; ниже идут параметры защиты владельца от различных типов воздействий, &lt;br /&gt;
обеспечиваемые костюмом.&lt;br /&gt;
&lt;br /&gt;
burn_protection 				= 0.5 ; защита от воздействия &lt;br /&gt;
огня (костры, аномалия &amp;quot;Жарка&amp;quot; и т.д.).&lt;br /&gt;
&lt;br /&gt;
strike_protection 				= 0.5 ; защита от ударов&lt;br /&gt;
(наносятся мутантами, например, псевдогигантом).&lt;br /&gt;
&lt;br /&gt;
shock_protection 				= 0.5 ; защита от поражения&lt;br /&gt;
электричеством.&lt;br /&gt;
&lt;br /&gt;
wound_protection				= 0.4 ; защита от ранений&lt;br /&gt;
(наносятся мутантами, например, собаками, кровососами и т.д.).&lt;br /&gt;
&lt;br /&gt;
radiation_protection 			= 0.5 ; защита от радиации.&lt;br /&gt;
&lt;br /&gt;
telepatic_protection 			= 0.0 ; защита от пси-воздействия&lt;br /&gt;
(например, присутствие контроллера серьезно влияет на psy_health).&lt;br /&gt;
&lt;br /&gt;
chemical_burn_protection 		= 0.5 ; защита от химического воздействия.&lt;br /&gt;
&lt;br /&gt;
explosion_protection 			= 0.3 ; защита от взрывов/осколков.&lt;br /&gt;
&lt;br /&gt;
fire_wound_protection  			= 0.3 ; защита от огнестрельного&lt;br /&gt;
оружия (наиболее важный параметр для большинства костюмов).&lt;br /&gt;
&lt;br /&gt;
power_loss = 0.87&lt;br /&gt;
bones_koeff_protection = gilet_antigas_damage&lt;br /&gt;
&lt;br /&gt;
[sect_stalker_outfit_immunities] ; коэффициенты иммунитета самого костюма, то &lt;br /&gt;
есть - то, насколько сильно он сам подвержен повреждениям от различных типов &lt;br /&gt;
воздействий. по значениям каждого типа - см. выше.&lt;br /&gt;
&lt;br /&gt;
burn_immunity				= 0.03&lt;br /&gt;
strike_immunity				= 0.01&lt;br /&gt;
shock_immunity				= 0.03&lt;br /&gt;
wound_immunity				= 0.015&lt;br /&gt;
radiation_immunity			= 0.00&lt;br /&gt;
telepatic_immunity			= 0.00&lt;br /&gt;
chemical_burn_immunity		= 0.03&lt;br /&gt;
explosion_immunity			= 0.03&lt;br /&gt;
fire_wound_immunity			= 0.01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Примечания===&lt;br /&gt;
&lt;br /&gt;
# Подробнее о работе с иконками и текстурами - см. [[Изменение текстур]]&lt;br /&gt;
# Подробнее о механизме работы цен - см.  [[Редактирование торговцев]] .&lt;br /&gt;
&lt;br /&gt;
===Дополнение от Aiden57===&lt;br /&gt;
&lt;br /&gt;
Также существуют параметры &lt;br /&gt;
&lt;br /&gt;
additional_inventory_weight                 = 30&amp;lt;br&amp;gt;&lt;br /&gt;
additional_inventory_weight2	            = 30 &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Они увеличивают (уменьшают) переносимый вес ГГ в костюме с этим параметрами (в моем случае на 30 кг).&lt;br /&gt;
&amp;lt;br&amp;gt;Вписывать эти параметра следует после строки bones_koeff_protection.&lt;br /&gt;
&lt;br /&gt;
===Дополнение от DR.KREIG===&lt;br /&gt;
&lt;br /&gt;
есть еще 3 таких параметра как:&lt;br /&gt;
# power_loss = 0.77&lt;br /&gt;
# bleeding_restore_speed = -0.006&lt;br /&gt;
# health_restore_speed	= 0.0007&lt;br /&gt;
&lt;br /&gt;
первый отвечает за усталость, прописывается в %%, то есть 0.77 равно 77%, силы тратятся на 33% медленнее(100% - стандартная усталость), второй отвечает за остановку кровотечения, третий за восстановление здоровья&lt;br /&gt;
&lt;br /&gt;
===Дополнение от THE_ATLAS===&lt;br /&gt;
&lt;br /&gt;
есть еще параметр power_restore_speed (в ЧН и ЗП точно есть)&lt;br /&gt;
# power_restore_speed = 0.5&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;
&lt;br /&gt;
Дополнение:&lt;br /&gt;
&lt;br /&gt;
* '''Aiden57'''&lt;br /&gt;
&lt;br /&gt;
Исправление мелких недочётов:&lt;br /&gt;
* [[Участник:Rekongstor|Rekongstor]]&lt;br /&gt;
&lt;br /&gt;
Исправление грамматики&lt;br /&gt;
* [[Участник:Flack|Flack]] &lt;br /&gt;
&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>Flack</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D1%81%D1%82%D1%8E%D0%BC%D0%BE%D0%B2</id>
		<title>Редактирование костюмов</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D1%81%D1%82%D1%8E%D0%BC%D0%BE%D0%B2"/>
				<updated>2011-05-13T21:03:48Z</updated>
		
		<summary type="html">&lt;p&gt;Flack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Разбор параметров===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В этой статье мы рассмотрим значения параметров костюмов.&amp;lt;br&amp;gt;&lt;br /&gt;
Все параметры, не упомянутые ниже, изменять '''строго не рекомендуется'''!&lt;br /&gt;
&lt;br /&gt;
Итак, секции с параметрами находятся в файле:&amp;lt;br&amp;gt;&lt;br /&gt;
'''config\misc\outfit.ltx'''&lt;br /&gt;
&lt;br /&gt;
Разберем, например, параметры классического костюма сталкера.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[stalker_outfit]:outfit_base &lt;br /&gt;
&lt;br /&gt;
; название секции костюма. именно к нему игра будет обращаться. outfit_base - &lt;br /&gt;
базовая (наследуемая)  секция (изменять строго не рекомендуется).&lt;br /&gt;
&lt;br /&gt;
visual          = equipments\stalker_suit ; модель, используемая для сложенного костюма, &lt;br /&gt;
лежащего на земле.&lt;br /&gt;
&lt;br /&gt;
actor_visual	= actors\hero\stalker_hood.ogf ; модель, используемая для игрока, когда&lt;br /&gt;
на нем надет костюм.&lt;br /&gt;
&lt;br /&gt;
inv_name			= stalker_outfit_name ; название в инвентаре.&lt;br /&gt;
&lt;br /&gt;
inv_name_short		= stalker_outfit_name ; название в инвентаре (в принципе, можно&lt;br /&gt;
здесь продублировать значение предыдущего параметра - так чаще всего и делают).&lt;br /&gt;
&lt;br /&gt;
description			= stalker_outfit_description ; ссылка на текстовую строку&lt;br /&gt;
с описанием.&lt;br /&gt;
&lt;br /&gt;
inv_weight			= 5.0 ; вес.&lt;br /&gt;
&lt;br /&gt;
; далее идут параметры иконки в инвентаре (см. примечание 1).&lt;br /&gt;
&lt;br /&gt;
inv_grid_width		= 2&lt;br /&gt;
inv_grid_height		= 3&lt;br /&gt;
inv_grid_x		= 6&lt;br /&gt;
inv_grid_y		= 15&lt;br /&gt;
&lt;br /&gt;
full_icon_name		= npc_icon_stalker_outfit ; название иконки.&lt;br /&gt;
&lt;br /&gt;
cost				= 15000 ; базовая цена (см. примечание 2).&lt;br /&gt;
&lt;br /&gt;
full_scale_icon		= 14,11			; иконка сталкера в костюме в полный &lt;br /&gt;
рост (отображается в инвентаре справа).&lt;br /&gt;
&lt;br /&gt;
nightvision_sect				= effector_nightvision_bad ; тип ПНВ&lt;br /&gt;
(&amp;quot;плохой&amp;quot; - зеленый, &amp;quot;хороший&amp;quot; - синий).&lt;br /&gt;
&lt;br /&gt;
; ниже идут параметры защиты владельца от различных типов воздействий, &lt;br /&gt;
обеспечиваемые костюмом.&lt;br /&gt;
&lt;br /&gt;
burn_protection 				= 0.5 ; защита от воздействия &lt;br /&gt;
огня (костры, аномалия &amp;quot;Жарка&amp;quot; и т.д.).&lt;br /&gt;
&lt;br /&gt;
strike_protection 				= 0.5 ; защита от ударов&lt;br /&gt;
(наносятся мутантами, например, псевдогигантом).&lt;br /&gt;
&lt;br /&gt;
shock_protection 				= 0.5 ; защита от поражения&lt;br /&gt;
электричеством.&lt;br /&gt;
&lt;br /&gt;
wound_protection				= 0.4 ; защита от ранений&lt;br /&gt;
(наносятся мутантами, например, собаками, кровососами и т.д.).&lt;br /&gt;
&lt;br /&gt;
radiation_protection 			= 0.5 ; защита от радиации.&lt;br /&gt;
&lt;br /&gt;
telepatic_protection 			= 0.0 ; защита от пси-воздействия&lt;br /&gt;
(например, присутствие контроллера серьезно влияет на psy_health).&lt;br /&gt;
&lt;br /&gt;
chemical_burn_protection 		= 0.5 ; защита от химического воздействия.&lt;br /&gt;
&lt;br /&gt;
explosion_protection 			= 0.3 ; защита от взрывов/осколков.&lt;br /&gt;
&lt;br /&gt;
fire_wound_protection  			= 0.3 ; защита от огнестрельного&lt;br /&gt;
оружия (наиболее важный параметр для большинства костюмов).&lt;br /&gt;
&lt;br /&gt;
power_loss = 0.87&lt;br /&gt;
bones_koeff_protection = gilet_antigas_damage&lt;br /&gt;
&lt;br /&gt;
[sect_stalker_outfit_immunities] ; коэффициенты иммунитета самого костюма, то &lt;br /&gt;
есть - то, насколько сильно он сам подвержен повреждениям от различных типов &lt;br /&gt;
воздействий. по значениям каждого типа - см. выше.&lt;br /&gt;
&lt;br /&gt;
burn_immunity				= 0.03&lt;br /&gt;
strike_immunity				= 0.01&lt;br /&gt;
shock_immunity				= 0.03&lt;br /&gt;
wound_immunity				= 0.015&lt;br /&gt;
radiation_immunity			= 0.00&lt;br /&gt;
telepatic_immunity			= 0.00&lt;br /&gt;
chemical_burn_immunity		= 0.03&lt;br /&gt;
explosion_immunity			= 0.03&lt;br /&gt;
fire_wound_immunity			= 0.01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Примечания===&lt;br /&gt;
&lt;br /&gt;
# Подробнее о работе с иконками и текстурами - см. [[Изменение текстур]]&lt;br /&gt;
# Подробнее о механизме работы цен - см.  [[Редактирование торговцев]] .&lt;br /&gt;
&lt;br /&gt;
===Дополнение от Aiden57===&lt;br /&gt;
&lt;br /&gt;
Также существуют параметры &lt;br /&gt;
&lt;br /&gt;
additional_inventory_weight                 = 30&amp;lt;br&amp;gt;&lt;br /&gt;
additional_inventory_weight2	            = 30 &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Они увеличивают (уменьшают) переносимый вес ГГ в костюме с этим параметрами (в моем случае на 30 кг).&lt;br /&gt;
&amp;lt;br&amp;gt;Вписывать эти параметра следует после строки bones_koeff_protection.&lt;br /&gt;
&lt;br /&gt;
===Дополнение от DR.KREIG===&lt;br /&gt;
&lt;br /&gt;
есть еще 3 таких параметра как:&lt;br /&gt;
# power_loss = 0.77&lt;br /&gt;
# bleeding_restore_speed = -0.006&lt;br /&gt;
# health_restore_speed	= 0.0007&lt;br /&gt;
&lt;br /&gt;
первый отвечает за усталость, прописывается в %%, то есть 0.77 равно 77%, силы тратятся на 33% медленнее(100% - стандартная усталость), второй отвечает за остановку кровотечения, третий за восстановление здоровья&lt;br /&gt;
&lt;br /&gt;
===Дополнение от THE_ATLAS===&lt;br /&gt;
&lt;br /&gt;
есть еще параметр power_restore_speed (в ЧН и ЗП точно есть)&lt;br /&gt;
# power_restore_speed = 0.5&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;
&lt;br /&gt;
Дополнение:&lt;br /&gt;
&lt;br /&gt;
* '''Aiden57'''&lt;br /&gt;
&lt;br /&gt;
Исправление мелких недочётов:&lt;br /&gt;
* [[Участник:Rekongstor|Rekongstor]]&lt;br /&gt;
&lt;br /&gt;
Исправление грамматики&lt;br /&gt;
* [[Участник: Flack]] &lt;br /&gt;
&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>Flack</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%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_(%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9_%D0%BE%D0%B1%D0%B7%D0%BE%D1%80)</id>
		<title>Создание диалогов (полный обзор)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%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_(%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9_%D0%BE%D0%B1%D0%B7%D0%BE%D1%80)"/>
				<updated>2010-05-12T12:24:20Z</updated>
		
		<summary type="html">&lt;p&gt;Flack: /* &amp;quot;Динамические диалоги&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Статья в процессе написания...'''&lt;br /&gt;
&lt;br /&gt;
===Общие данные===&lt;br /&gt;
&lt;br /&gt;
В диалогах обычно задействуются три .xml-файла:&lt;br /&gt;
&lt;br /&gt;
* character_desc_x.xml&lt;br /&gt;
* dialogs_x.xml&lt;br /&gt;
* stable_dialogs_x.xml&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;
'''диалог 001'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''фраза 0'''&amp;lt;br&amp;gt;&lt;br /&gt;
''&amp;quot;Так, чего хотел-то?&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
следующие фразы: '''1'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''фраза 1'''&amp;lt;br&amp;gt;&lt;br /&gt;
''&amp;quot;Задание для тебя есть. Возьмешься?&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
следующие фразы: '''21, 22'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''фраза 21'''&amp;lt;br&amp;gt;&lt;br /&gt;
''&amp;quot;Ну, давай.&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
следующие фразы: '''3'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''фраза 22'''&amp;lt;br&amp;gt;&lt;br /&gt;
''&amp;quot;Не, иди к черту.&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
следующие фразы: '''нет'''&amp;lt;br&amp;gt;&lt;br /&gt;
действие: '''выйти из диалога'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[фраза 3 и дальнейшее продолжение...]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''конец диалога'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В файлах эта структура записывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;dialog id=&amp;quot;escape_trader_letat_gusi&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;phrase_list&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;Так, чего хотел-то?&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;
&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;21&amp;lt;/next&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;22&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;21&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;3&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;22&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Не, иди к черту.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		[...]&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
&amp;lt;/dialog&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разберемся подробнее.&lt;br /&gt;
&lt;br /&gt;
Во-первых, принадлежность фраз.&lt;br /&gt;
Они могут принадлежать или игроку, или NPC, причем:&lt;br /&gt;
&lt;br /&gt;
* фраза, принадлежащая игроку, всегда идет первой, а за ней уже по древу диалога игра понимает, чья фраза кому принадлежит (например, у нас 0, 21, 22 - игрока; а 1, 3 - NPC)&lt;br /&gt;
* только у фразы, принадлежащей NPC, можно выбрать несколько вариантов ответа игрока&lt;br /&gt;
&lt;br /&gt;
Впрочем, и у фразы игрока можно сделать несколько вариантов ответов, но поскольку компьютер не обладает способностью самостоятельно выбирать, то каждый из вариантов должен быть заранее определен по условиям выбора (например, по наличию у игрока какого-нибудь предмета, или количества денег, или репутации и т.д.), причем условия выбора различных вариантов никогда не должны одновременно становиться подходящими. Это мы разберем позднее.&lt;br /&gt;
&lt;br /&gt;
Во-вторых, структура фразы.&lt;br /&gt;
Простейшая фраза выглядит так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;    -- открывающий тег с ID фразы&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;/phrase&amp;gt;    -- закрытие тега фразы&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Но есть возможность строить и такие фразы (в данном случае она принадлежит NPC, а игрок на неё будет давать ответ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;give_info&amp;gt;propusk_given&amp;lt;/give_info&amp;gt; -- выдача инфопорции (см. объяснение №1 ниже)&lt;br /&gt;
	&amp;lt;text&amp;gt;Вот, держи пропуск. Теперь тебе охранник позволит войти.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;action&amp;gt;dialogs.give_propusk_item&amp;lt;/action&amp;gt; -- ссылка на скрипт (см. объяснение №2 ниже)&lt;br /&gt;
	&amp;lt;next&amp;gt;21&amp;lt;/next&amp;gt;&lt;br /&gt;
	&amp;lt;next&amp;gt;22&amp;lt;/next&amp;gt;&lt;br /&gt;
	&amp;lt;next&amp;gt;23&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 1. Здесь у нас выдается [[Инфопорция|инфопорция]], которая может потом использоваться в различных местах (например, её наличие может проверяться каким-нибудь охранником - и если она есть, то он, скажем, отойдет и пропустит игрока внутрь). Важно понимать отличие инфопорции от предмета. Инфопорция - это ''факт наличия'' пропуска, а лежащий в инвентаре пропуск - ''материальный предмет''. Можно, кстати, обойтись и без инфопорций, впоследствии пользуясь скриптами, проверяющими инвентарь игрока и ищущими нужный предмет, но этот способ сложен и нам пока не понадобится.&lt;br /&gt;
&lt;br /&gt;
* 2. Это скрипт, выдающий игроку предмет &amp;quot;пропуск&amp;quot; в инвентарь. Ссылка на скрипты дается в формате имя_файла.имя_функции.&lt;br /&gt;
&lt;br /&gt;
Как видите, фраза, в которой некий NPC выдает игроку пропуск, позволяющий пройти дальше, достаточно сложна.&lt;br /&gt;
&lt;br /&gt;
Вот еще один пример (здесь она принадлежит игроку):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;has_info&amp;gt;propusk_given&amp;lt;/has_info&amp;gt; -- проверка на наличие инфопорции propusk_given&lt;br /&gt;
	&amp;lt;text&amp;gt;Да, пропуск у меня есть.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&amp;gt; -- ссылка на скрипт, завершающий диалог&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь у нас фраза из диалога игрока с NPC - та, что после вопроса NPC &amp;quot;А пропуск у тебя есть?&amp;quot;. Это один из вариантов ответа на неё. Особенность в том, что этот вариант не появится, если пропуска у вас на самом деле нет - она появляется только при наличии нужной инфопорции (за это отвечает строка с &amp;lt;has_info&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Далее, поподробнее остановимся на задании условий появления фразы.&amp;lt;br&amp;gt;&lt;br /&gt;
Способов это сделать - два.&lt;br /&gt;
&lt;br /&gt;
    * проверка на наличие инфопорций&lt;br /&gt;
    * проверка через скриптовую функцию&lt;br /&gt;
&lt;br /&gt;
Первый метод мы видели выше, а второй - гораздо более комплексный и многофункциональный. Он запускает скрипт, который проводит проверку определенных вещей, и возвращает true/false. Простой пример - NPC требует денег (скажем, 5000 рублей), а нам нужно, чтобы ответная фраза игрока &amp;quot;Вот, держи свои 5000.&amp;quot;, могла быть доступна для выбора, только если у нас действительно есть эти деньги. Для этого пишем такую фразу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;8&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;text&amp;gt;Вот, держи, ровно 5000.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;precondition&amp;gt;dialogs.actor_have_5000&amp;lt;/precondition&amp;gt; -- вызываем условие (см. объяснение №1 ниже)&lt;br /&gt;
	&amp;lt;action&amp;gt;dialogs.transfer_5000&amp;lt;/action&amp;gt; -- передача денег скриптом (см. объяснение №2 ниже)&lt;br /&gt;
	&amp;lt;next&amp;gt;9&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 1. Этот скрипт который проверяет наличие денег: если было возвращено true, то фраза доступна.&lt;br /&gt;
* 2. Вызываем другой скрипт, действие - он осуществляет саму передачу денег.&lt;br /&gt;
&lt;br /&gt;
Да, кстати, порядок расстановки тегов внутри фразы не играет никакой роли - они все выполняются одновременно. Единственное - &amp;lt;next&amp;gt; всегда последний. Еще одно - есть второй вид проверки на инфопорцию - он наоборот, проверяет её отсутствие. Применяется точно так же, но называется не has_info, а dont_has_info.&lt;br /&gt;
&lt;br /&gt;
Итак, что у нас есть:&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;phrase id=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/phrase&amp;gt;''' - общий тег фразы, задание номера фразы&lt;br /&gt;
* '''&amp;lt;nowiki&amp;gt;&amp;lt;text&amp;gt;...&amp;lt;/text&amp;gt;&amp;lt;/nowiki&amp;gt;''' - тег, содержащий текст фразы&lt;br /&gt;
* '''&amp;lt;give_info&amp;gt;...&amp;lt;/give_info&amp;gt;''' - выдача инфопорции с именем, записанным в теге&lt;br /&gt;
* '''&amp;lt;has_info&amp;gt;...&amp;lt;/has_info&amp;gt;''' - проверка на наличие инфопорции с именем, записанным в теге&lt;br /&gt;
* '''&amp;lt;dont_has_info&amp;gt;...&amp;lt;/dont_has_info&amp;gt;''' - проверка на отсутствие инфопорции с именем, записанным в теге&lt;br /&gt;
* '''&amp;lt;precondition&amp;gt;...&amp;lt;/precondition&amp;gt;''' - запуск скрипта, возвращающего true или false в зависимости от чего-либо (скриптовая проверка)&lt;br /&gt;
* '''&amp;lt;action&amp;gt;...&amp;lt;/action&amp;gt;''' - запуск скрипта&lt;br /&gt;
* '''&amp;lt;next&amp;gt;...&amp;lt;/next&amp;gt;''' - тег ссылки на следующую фразу&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В первой версии - достаточно просто окна с формами для ввода этих параметров. А программа на основе введенных данных будет собирать фразу. Например, на основе вот таких введенных в поля данных:&lt;br /&gt;
&lt;br /&gt;
Номер фразы: '''12'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Текст: ''Да, там сейчас база военных.&amp;lt;br&amp;gt;Я не в курсе, сколько их там точно, но&amp;lt;br&amp;gt;могу сказать, не меньше, чем один два отряда.''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Выдать инфопорцию: '''info_about_military_base'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Проверить наличие инфопорции: '''info_1'''&amp;lt;br&amp;gt;Проверить отсутствие инфопорции: '''нет'''&amp;lt;br&amp;gt;Проверить через скрипт: '''dialogs.is_npc_a_friend'''&amp;lt;br&amp;gt;Совершить действие: '''dialogs.break_dialog'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Номера следующих фраз: '''13'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нам нужна вот такая запись:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;has_info&amp;gt;info_1&amp;lt;/has_info&amp;gt;&lt;br /&gt;
	&amp;lt;text&amp;gt;Да, там сейчас база военных. Я не в курсе, сколько их там точно [...]&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;precondition&amp;gt;dialogs.is_npc_a_friend&amp;lt;/precondition&amp;gt;&lt;br /&gt;
	&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&amp;gt;&lt;br /&gt;
	&amp;lt;give_info&amp;gt;info_about_military_base&amp;lt;/give_info&amp;gt;&lt;br /&gt;
	&amp;lt;next&amp;gt;13&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&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;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;54&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;55&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы записывали текст фразы в &amp;lt;'''text&amp;gt;...&amp;lt;/text&amp;gt;'''. Это, безусловно, удобно, но на самом деле - может привести к проблемам. Дело в том, что таким образом можно использовать только короткие фразы. Стоит ввести в тег длинный текст, и игра... так сказать, не переварит наш диалог.&lt;br /&gt;
&lt;br /&gt;
Поэтому нужно использовать не тексты, а ссылки на них. Работает это так:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Text massive explain.jpg]]&lt;br /&gt;
&lt;br /&gt;
То есть фразу мы записываем так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;54&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;text&amp;gt;my_text_1&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;next&amp;gt;55&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А в игре видим нормальный текст - игра по названию my_text_1 находит его в массиве.&amp;lt;br&amp;gt;&lt;br /&gt;
Массивы (для русскоязычной версии игры) находятся в папке:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;S.T.A.L.K.E.R\gamedata\config\text\rus&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нужные вам тексты фраз вы можете прописывать в любом из находящихся там .xml-файлов, их разделение на специализации - чисто формальное. Лучше всего держать тексты всех ваших диалогов в одном месте, поэтому выберите один файл - этим вы упростите работу тем, кто будет скрещивать ваш мод с другими.&lt;br /&gt;
&lt;br /&gt;
Запись текста происходит в такой форме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;string id=&amp;quot;my_text_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;/xml&amp;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;
&amp;lt;pre&amp;gt;S.T.A.L.K.E.R\gamedata\config\gameplay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сейчас нас интересует файл '''character_desc_escape.xml''', хранящий профили персонажей с локации &amp;quot;Кордон&amp;quot; (остальные файлы названы по аналогичной системе - вместо '''escape''', соответственно, идет название других уровней). Открываем его и видим профиль Сидоровича '''escape_trader''' - он находится в самом начале файла.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;specific_character id=&amp;quot;escape_trader&amp;quot; no_random = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;escape_trader_name&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;icon&amp;gt;ui_npc_u_trader&amp;lt;/icon&amp;gt;&lt;br /&gt;
	&amp;lt;bio&amp;gt;escape_trader_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;class&amp;gt;trader&amp;lt;/class&amp;gt;&lt;br /&gt;
	&amp;lt;community&amp;gt;trader&amp;lt;/community&amp;gt;&lt;br /&gt;
	&amp;lt;visual&amp;gt;actors\trader\trader&amp;lt;/visual&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;rank&amp;gt;330&amp;lt;/rank&amp;gt;&lt;br /&gt;
	&amp;lt;reputation&amp;gt;23&amp;lt;/reputation&amp;gt;&lt;br /&gt;
	&amp;lt;money min=&amp;quot;100000&amp;quot; max=&amp;quot;100000&amp;quot; infinitive=&amp;quot;1&amp;quot;/&amp;gt; &lt;br /&gt;
	&amp;lt;supplies&amp;gt;&lt;br /&gt;
		[spawn] \n&lt;br /&gt;
		wpn_knife \n&lt;br /&gt;
	&amp;lt;/supplies&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;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробный разбор параметров профиля мы делать не будем - для этого существует [[Редактирование_NPC|отдельная статья]]. Сейчас нас интересуют теги &amp;lt;actor_dialog&amp;gt;...&amp;lt;/actor_dialog&amp;gt;, ссылающиеся на доступные у этого NPC диалоги. Добавим в этот список и ссылку на наш будущий диалог:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;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;my_dialog_1&amp;lt;/actor_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;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее добавим в любой диалоговый файл, например, в '''dialogs_escape.xml''', следующий диалог:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;dialog id=&amp;quot;my_dialog_1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;precondition&amp;gt;my_script_for_dialogs.my_function_1&amp;lt;/precondition&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;my_text_0&amp;lt;/text&amp;gt; -- &amp;quot;Ага, вот эти ребята...&amp;quot;&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;my_text_1&amp;lt;/text&amp;gt; -- &amp;quot;Ненене!!! Нет, Меченый, нет!&amp;quot;&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;my_text_2&amp;lt;/text&amp;gt; -- &amp;quot;Я делаю особую, уличную магию. Кто хочет увидеть немного магии?&amp;quot;&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;my_text_3&amp;lt;/text&amp;gt; -- &amp;quot;Что я тебе, Толик какой-нибудь? Целый день у этих идиотов из лагеря &lt;br /&gt;
			&amp;lt;next&amp;gt;4&amp;lt;/next&amp;gt;             разный хлам скупал, устал, хочу просто отдохнуть...&amp;quot;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_4&amp;lt;/text&amp;gt; -- &amp;quot;И что купил?&amp;quot;&lt;br /&gt;
			&amp;lt;next&amp;gt;5&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_5&amp;lt;/text&amp;gt; -- &amp;quot;Я купил зеленый свитер, если ты так хочешь знать! Сорок долларов,&lt;br /&gt;
			&amp;lt;next&amp;gt;6&amp;lt;/next&amp;gt;             между прочим.&amp;quot;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_6&amp;lt;/text&amp;gt; -- &amp;quot;Зеленый свитер? А ты уверен, что не купил тедди-бир?&amp;quot;&lt;br /&gt;
			&amp;lt;next&amp;gt;7&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_7&amp;lt;/text&amp;gt; -- &amp;quot;Тедди-бир?... ТЕДДИ-БИР!!! Где мой зеленый свитер, ты что делаешь, демон?!&amp;quot;&lt;br /&gt;
			&amp;lt;next&amp;gt;8&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;8&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_8&amp;lt;/text&amp;gt; -- &amp;quot;Ладно, ладно... еще один фокус. Будь добр, взгляни на телевизор &lt;br /&gt;
			&amp;lt;next&amp;gt;9&amp;lt;/next&amp;gt;             рядом с тобой. Что он показывает?&amp;quot;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;9&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_9&amp;lt;/text&amp;gt; -- &amp;quot;Билд 1154!!! Ты что делаешь, демон, ты что делаешь?! Проваливай отсюда!&amp;quot;&lt;br /&gt;
			&amp;lt;next&amp;gt;10&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;10&amp;quot;&amp;gt;          &lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_10&amp;lt;/text&amp;gt; -- &amp;quot;Ладно.&amp;quot;&lt;br /&gt;
			&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&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;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для начала лучше попробовать свои силы в простом линейном диалоге вроде этого.&amp;lt;br&amp;gt;&lt;br /&gt;
Да, и не забудьте добавить строки с текстовыми фразами в массив.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Если вам неясно, что за ахинея написана в текстах, вам [http://ru.youtube.com/watch?v=CdTIQ6BVlvw&amp;amp;feature=related сюда] xD&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Динамические диалоги&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Выше был изложен вариант написания простых диалогов вопрос-ответ. Но в этой части статьи я расскажу как написать &amp;quot;динамические диалоги&amp;quot;, которые предполагают выбор ответа не только ГГ, но и НПС с которым мы говорим. Рассчитано на опытных пользователей диалога.&lt;br /&gt;
&lt;br /&gt;
Вообще урок это копия предыдущей статьи, с той лишь небольшой разницей, что у как и у ГГ, так и у НПС будет несколько вариантов ответов. Получившаяся структура диалога:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;dialog id=&amp;quot;название диалога&amp;quot;&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;слушаю&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;10&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;10&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;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;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;/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;Нормик, что хотел?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;21&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;Плохо, иди отсюда(&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&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;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;21&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да вот {....}&amp;lt;/text&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		[и так далее]&lt;br /&gt;
	&amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
&amp;lt;/dialog&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
Ну вот как-то так. Рассмотрим наиболее интересную часть:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;10&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;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
Здесь мы предоставляем выбор дальнейшего диалога для НПС, причём в этой структуре его выбор получается абсолютно рандомным.&lt;br /&gt;
Скриншоты: [[Изображение:Dialog02.jpg]] [[Изображение:Dialog01.jpg]]&lt;br /&gt;
 &lt;br /&gt;
Можно прописать установки и проверки для ответов, например, можно реализовать возможность отдавания ненужных вещей какому-нибудь нпс, тогда структура будет выглядеть примерно так(писать полностью не буду, только фразы):&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
ГГ: Привет, у меня тут есть некоторые вещи, взгляни, нужно что?&lt;br /&gt;
НПС ответ1: (проверка на АК-47) Да, мне нужна эта пушка!&lt;br /&gt;
НПС ответ2: (проверка на консервы) Ух как кушать хочется, можешь мне дать консерву?&lt;br /&gt;
НПС ответ3: (без предпроверки) Есть ли у тебя водка?&lt;br /&gt;
ГГ на ответ 1 и 2: Да, держи!&lt;br /&gt;
ГГ на ответ 3: (проверка) Держи/ Извини, нету((&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ну и напоследок скажу, что можно даже управлять вероятностью ответа НПС на фразу ГГ, если прописать несколько &amp;lt;next&amp;gt;номер ответа&amp;lt;/next&amp;gt;. Например, если написать:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
То вероятность ответа &amp;quot;3&amp;quot; будет составлять 75%&lt;br /&gt;
&lt;br /&gt;
P.S.: Это не просто увлекательная и интересная вещь, но и очень уж трудоёмкая - у меня день уходил на создание простого диалога. Для огромной модификации только на диалоги нужно человек 20-30. Но зато одних диалогов хватит чтобы впечатлить! Аналогов быть не должно, а сама игра использует этот приём только в ЗП и то в 2-х местах(на Затоне, другие локации не глядел).&lt;br /&gt;
&lt;br /&gt;
==Дополнительные сведения по диалогам==&lt;br /&gt;
&lt;br /&gt;
==Скрипт-генерируемые диалоги==&lt;br /&gt;
&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>Flack</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%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_(%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9_%D0%BE%D0%B1%D0%B7%D0%BE%D1%80)</id>
		<title>Создание диалогов (полный обзор)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%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_(%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9_%D0%BE%D0%B1%D0%B7%D0%BE%D1%80)"/>
				<updated>2010-05-12T12:21:46Z</updated>
		
		<summary type="html">&lt;p&gt;Flack: дополнение&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Статья в процессе написания...'''&lt;br /&gt;
&lt;br /&gt;
===Общие данные===&lt;br /&gt;
&lt;br /&gt;
В диалогах обычно задействуются три .xml-файла:&lt;br /&gt;
&lt;br /&gt;
* character_desc_x.xml&lt;br /&gt;
* dialogs_x.xml&lt;br /&gt;
* stable_dialogs_x.xml&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;
'''диалог 001'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''фраза 0'''&amp;lt;br&amp;gt;&lt;br /&gt;
''&amp;quot;Так, чего хотел-то?&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
следующие фразы: '''1'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''фраза 1'''&amp;lt;br&amp;gt;&lt;br /&gt;
''&amp;quot;Задание для тебя есть. Возьмешься?&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
следующие фразы: '''21, 22'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''фраза 21'''&amp;lt;br&amp;gt;&lt;br /&gt;
''&amp;quot;Ну, давай.&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
следующие фразы: '''3'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''фраза 22'''&amp;lt;br&amp;gt;&lt;br /&gt;
''&amp;quot;Не, иди к черту.&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
следующие фразы: '''нет'''&amp;lt;br&amp;gt;&lt;br /&gt;
действие: '''выйти из диалога'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[фраза 3 и дальнейшее продолжение...]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''конец диалога'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В файлах эта структура записывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;dialog id=&amp;quot;escape_trader_letat_gusi&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;phrase_list&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;Так, чего хотел-то?&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;
&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;21&amp;lt;/next&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;22&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;21&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;3&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;22&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Не, иди к черту.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		[...]&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
&amp;lt;/dialog&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разберемся подробнее.&lt;br /&gt;
&lt;br /&gt;
Во-первых, принадлежность фраз.&lt;br /&gt;
Они могут принадлежать или игроку, или NPC, причем:&lt;br /&gt;
&lt;br /&gt;
* фраза, принадлежащая игроку, всегда идет первой, а за ней уже по древу диалога игра понимает, чья фраза кому принадлежит (например, у нас 0, 21, 22 - игрока; а 1, 3 - NPC)&lt;br /&gt;
* только у фразы, принадлежащей NPC, можно выбрать несколько вариантов ответа игрока&lt;br /&gt;
&lt;br /&gt;
Впрочем, и у фразы игрока можно сделать несколько вариантов ответов, но поскольку компьютер не обладает способностью самостоятельно выбирать, то каждый из вариантов должен быть заранее определен по условиям выбора (например, по наличию у игрока какого-нибудь предмета, или количества денег, или репутации и т.д.), причем условия выбора различных вариантов никогда не должны одновременно становиться подходящими. Это мы разберем позднее.&lt;br /&gt;
&lt;br /&gt;
Во-вторых, структура фразы.&lt;br /&gt;
Простейшая фраза выглядит так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;    -- открывающий тег с ID фразы&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;/phrase&amp;gt;    -- закрытие тега фразы&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Но есть возможность строить и такие фразы (в данном случае она принадлежит NPC, а игрок на неё будет давать ответ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;give_info&amp;gt;propusk_given&amp;lt;/give_info&amp;gt; -- выдача инфопорции (см. объяснение №1 ниже)&lt;br /&gt;
	&amp;lt;text&amp;gt;Вот, держи пропуск. Теперь тебе охранник позволит войти.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;action&amp;gt;dialogs.give_propusk_item&amp;lt;/action&amp;gt; -- ссылка на скрипт (см. объяснение №2 ниже)&lt;br /&gt;
	&amp;lt;next&amp;gt;21&amp;lt;/next&amp;gt;&lt;br /&gt;
	&amp;lt;next&amp;gt;22&amp;lt;/next&amp;gt;&lt;br /&gt;
	&amp;lt;next&amp;gt;23&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 1. Здесь у нас выдается [[Инфопорция|инфопорция]], которая может потом использоваться в различных местах (например, её наличие может проверяться каким-нибудь охранником - и если она есть, то он, скажем, отойдет и пропустит игрока внутрь). Важно понимать отличие инфопорции от предмета. Инфопорция - это ''факт наличия'' пропуска, а лежащий в инвентаре пропуск - ''материальный предмет''. Можно, кстати, обойтись и без инфопорций, впоследствии пользуясь скриптами, проверяющими инвентарь игрока и ищущими нужный предмет, но этот способ сложен и нам пока не понадобится.&lt;br /&gt;
&lt;br /&gt;
* 2. Это скрипт, выдающий игроку предмет &amp;quot;пропуск&amp;quot; в инвентарь. Ссылка на скрипты дается в формате имя_файла.имя_функции.&lt;br /&gt;
&lt;br /&gt;
Как видите, фраза, в которой некий NPC выдает игроку пропуск, позволяющий пройти дальше, достаточно сложна.&lt;br /&gt;
&lt;br /&gt;
Вот еще один пример (здесь она принадлежит игроку):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;has_info&amp;gt;propusk_given&amp;lt;/has_info&amp;gt; -- проверка на наличие инфопорции propusk_given&lt;br /&gt;
	&amp;lt;text&amp;gt;Да, пропуск у меня есть.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&amp;gt; -- ссылка на скрипт, завершающий диалог&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь у нас фраза из диалога игрока с NPC - та, что после вопроса NPC &amp;quot;А пропуск у тебя есть?&amp;quot;. Это один из вариантов ответа на неё. Особенность в том, что этот вариант не появится, если пропуска у вас на самом деле нет - она появляется только при наличии нужной инфопорции (за это отвечает строка с &amp;lt;has_info&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Далее, поподробнее остановимся на задании условий появления фразы.&amp;lt;br&amp;gt;&lt;br /&gt;
Способов это сделать - два.&lt;br /&gt;
&lt;br /&gt;
    * проверка на наличие инфопорций&lt;br /&gt;
    * проверка через скриптовую функцию&lt;br /&gt;
&lt;br /&gt;
Первый метод мы видели выше, а второй - гораздо более комплексный и многофункциональный. Он запускает скрипт, который проводит проверку определенных вещей, и возвращает true/false. Простой пример - NPC требует денег (скажем, 5000 рублей), а нам нужно, чтобы ответная фраза игрока &amp;quot;Вот, держи свои 5000.&amp;quot;, могла быть доступна для выбора, только если у нас действительно есть эти деньги. Для этого пишем такую фразу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;8&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;text&amp;gt;Вот, держи, ровно 5000.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;precondition&amp;gt;dialogs.actor_have_5000&amp;lt;/precondition&amp;gt; -- вызываем условие (см. объяснение №1 ниже)&lt;br /&gt;
	&amp;lt;action&amp;gt;dialogs.transfer_5000&amp;lt;/action&amp;gt; -- передача денег скриптом (см. объяснение №2 ниже)&lt;br /&gt;
	&amp;lt;next&amp;gt;9&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 1. Этот скрипт который проверяет наличие денег: если было возвращено true, то фраза доступна.&lt;br /&gt;
* 2. Вызываем другой скрипт, действие - он осуществляет саму передачу денег.&lt;br /&gt;
&lt;br /&gt;
Да, кстати, порядок расстановки тегов внутри фразы не играет никакой роли - они все выполняются одновременно. Единственное - &amp;lt;next&amp;gt; всегда последний. Еще одно - есть второй вид проверки на инфопорцию - он наоборот, проверяет её отсутствие. Применяется точно так же, но называется не has_info, а dont_has_info.&lt;br /&gt;
&lt;br /&gt;
Итак, что у нас есть:&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;phrase id=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/phrase&amp;gt;''' - общий тег фразы, задание номера фразы&lt;br /&gt;
* '''&amp;lt;nowiki&amp;gt;&amp;lt;text&amp;gt;...&amp;lt;/text&amp;gt;&amp;lt;/nowiki&amp;gt;''' - тег, содержащий текст фразы&lt;br /&gt;
* '''&amp;lt;give_info&amp;gt;...&amp;lt;/give_info&amp;gt;''' - выдача инфопорции с именем, записанным в теге&lt;br /&gt;
* '''&amp;lt;has_info&amp;gt;...&amp;lt;/has_info&amp;gt;''' - проверка на наличие инфопорции с именем, записанным в теге&lt;br /&gt;
* '''&amp;lt;dont_has_info&amp;gt;...&amp;lt;/dont_has_info&amp;gt;''' - проверка на отсутствие инфопорции с именем, записанным в теге&lt;br /&gt;
* '''&amp;lt;precondition&amp;gt;...&amp;lt;/precondition&amp;gt;''' - запуск скрипта, возвращающего true или false в зависимости от чего-либо (скриптовая проверка)&lt;br /&gt;
* '''&amp;lt;action&amp;gt;...&amp;lt;/action&amp;gt;''' - запуск скрипта&lt;br /&gt;
* '''&amp;lt;next&amp;gt;...&amp;lt;/next&amp;gt;''' - тег ссылки на следующую фразу&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В первой версии - достаточно просто окна с формами для ввода этих параметров. А программа на основе введенных данных будет собирать фразу. Например, на основе вот таких введенных в поля данных:&lt;br /&gt;
&lt;br /&gt;
Номер фразы: '''12'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Текст: ''Да, там сейчас база военных.&amp;lt;br&amp;gt;Я не в курсе, сколько их там точно, но&amp;lt;br&amp;gt;могу сказать, не меньше, чем один два отряда.''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Выдать инфопорцию: '''info_about_military_base'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Проверить наличие инфопорции: '''info_1'''&amp;lt;br&amp;gt;Проверить отсутствие инфопорции: '''нет'''&amp;lt;br&amp;gt;Проверить через скрипт: '''dialogs.is_npc_a_friend'''&amp;lt;br&amp;gt;Совершить действие: '''dialogs.break_dialog'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Номера следующих фраз: '''13'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нам нужна вот такая запись:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;has_info&amp;gt;info_1&amp;lt;/has_info&amp;gt;&lt;br /&gt;
	&amp;lt;text&amp;gt;Да, там сейчас база военных. Я не в курсе, сколько их там точно [...]&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;precondition&amp;gt;dialogs.is_npc_a_friend&amp;lt;/precondition&amp;gt;&lt;br /&gt;
	&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&amp;gt;&lt;br /&gt;
	&amp;lt;give_info&amp;gt;info_about_military_base&amp;lt;/give_info&amp;gt;&lt;br /&gt;
	&amp;lt;next&amp;gt;13&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&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;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;54&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;55&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы записывали текст фразы в &amp;lt;'''text&amp;gt;...&amp;lt;/text&amp;gt;'''. Это, безусловно, удобно, но на самом деле - может привести к проблемам. Дело в том, что таким образом можно использовать только короткие фразы. Стоит ввести в тег длинный текст, и игра... так сказать, не переварит наш диалог.&lt;br /&gt;
&lt;br /&gt;
Поэтому нужно использовать не тексты, а ссылки на них. Работает это так:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Text massive explain.jpg]]&lt;br /&gt;
&lt;br /&gt;
То есть фразу мы записываем так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;54&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;text&amp;gt;my_text_1&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;next&amp;gt;55&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А в игре видим нормальный текст - игра по названию my_text_1 находит его в массиве.&amp;lt;br&amp;gt;&lt;br /&gt;
Массивы (для русскоязычной версии игры) находятся в папке:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;S.T.A.L.K.E.R\gamedata\config\text\rus&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нужные вам тексты фраз вы можете прописывать в любом из находящихся там .xml-файлов, их разделение на специализации - чисто формальное. Лучше всего держать тексты всех ваших диалогов в одном месте, поэтому выберите один файл - этим вы упростите работу тем, кто будет скрещивать ваш мод с другими.&lt;br /&gt;
&lt;br /&gt;
Запись текста происходит в такой форме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;string id=&amp;quot;my_text_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;/xml&amp;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;
&amp;lt;pre&amp;gt;S.T.A.L.K.E.R\gamedata\config\gameplay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сейчас нас интересует файл '''character_desc_escape.xml''', хранящий профили персонажей с локации &amp;quot;Кордон&amp;quot; (остальные файлы названы по аналогичной системе - вместо '''escape''', соответственно, идет название других уровней). Открываем его и видим профиль Сидоровича '''escape_trader''' - он находится в самом начале файла.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;specific_character id=&amp;quot;escape_trader&amp;quot; no_random = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;escape_trader_name&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;icon&amp;gt;ui_npc_u_trader&amp;lt;/icon&amp;gt;&lt;br /&gt;
	&amp;lt;bio&amp;gt;escape_trader_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;class&amp;gt;trader&amp;lt;/class&amp;gt;&lt;br /&gt;
	&amp;lt;community&amp;gt;trader&amp;lt;/community&amp;gt;&lt;br /&gt;
	&amp;lt;visual&amp;gt;actors\trader\trader&amp;lt;/visual&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;rank&amp;gt;330&amp;lt;/rank&amp;gt;&lt;br /&gt;
	&amp;lt;reputation&amp;gt;23&amp;lt;/reputation&amp;gt;&lt;br /&gt;
	&amp;lt;money min=&amp;quot;100000&amp;quot; max=&amp;quot;100000&amp;quot; infinitive=&amp;quot;1&amp;quot;/&amp;gt; &lt;br /&gt;
	&amp;lt;supplies&amp;gt;&lt;br /&gt;
		[spawn] \n&lt;br /&gt;
		wpn_knife \n&lt;br /&gt;
	&amp;lt;/supplies&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;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробный разбор параметров профиля мы делать не будем - для этого существует [[Редактирование_NPC|отдельная статья]]. Сейчас нас интересуют теги &amp;lt;actor_dialog&amp;gt;...&amp;lt;/actor_dialog&amp;gt;, ссылающиеся на доступные у этого NPC диалоги. Добавим в этот список и ссылку на наш будущий диалог:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;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;my_dialog_1&amp;lt;/actor_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;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее добавим в любой диалоговый файл, например, в '''dialogs_escape.xml''', следующий диалог:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;dialog id=&amp;quot;my_dialog_1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;precondition&amp;gt;my_script_for_dialogs.my_function_1&amp;lt;/precondition&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;my_text_0&amp;lt;/text&amp;gt; -- &amp;quot;Ага, вот эти ребята...&amp;quot;&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;my_text_1&amp;lt;/text&amp;gt; -- &amp;quot;Ненене!!! Нет, Меченый, нет!&amp;quot;&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;my_text_2&amp;lt;/text&amp;gt; -- &amp;quot;Я делаю особую, уличную магию. Кто хочет увидеть немного магии?&amp;quot;&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;my_text_3&amp;lt;/text&amp;gt; -- &amp;quot;Что я тебе, Толик какой-нибудь? Целый день у этих идиотов из лагеря &lt;br /&gt;
			&amp;lt;next&amp;gt;4&amp;lt;/next&amp;gt;             разный хлам скупал, устал, хочу просто отдохнуть...&amp;quot;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_4&amp;lt;/text&amp;gt; -- &amp;quot;И что купил?&amp;quot;&lt;br /&gt;
			&amp;lt;next&amp;gt;5&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_5&amp;lt;/text&amp;gt; -- &amp;quot;Я купил зеленый свитер, если ты так хочешь знать! Сорок долларов,&lt;br /&gt;
			&amp;lt;next&amp;gt;6&amp;lt;/next&amp;gt;             между прочим.&amp;quot;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_6&amp;lt;/text&amp;gt; -- &amp;quot;Зеленый свитер? А ты уверен, что не купил тедди-бир?&amp;quot;&lt;br /&gt;
			&amp;lt;next&amp;gt;7&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_7&amp;lt;/text&amp;gt; -- &amp;quot;Тедди-бир?... ТЕДДИ-БИР!!! Где мой зеленый свитер, ты что делаешь, демон?!&amp;quot;&lt;br /&gt;
			&amp;lt;next&amp;gt;8&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;8&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_8&amp;lt;/text&amp;gt; -- &amp;quot;Ладно, ладно... еще один фокус. Будь добр, взгляни на телевизор &lt;br /&gt;
			&amp;lt;next&amp;gt;9&amp;lt;/next&amp;gt;             рядом с тобой. Что он показывает?&amp;quot;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;9&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_9&amp;lt;/text&amp;gt; -- &amp;quot;Билд 1154!!! Ты что делаешь, демон, ты что делаешь?! Проваливай отсюда!&amp;quot;&lt;br /&gt;
			&amp;lt;next&amp;gt;10&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;10&amp;quot;&amp;gt;          &lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_10&amp;lt;/text&amp;gt; -- &amp;quot;Ладно.&amp;quot;&lt;br /&gt;
			&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&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;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для начала лучше попробовать свои силы в простом линейном диалоге вроде этого.&amp;lt;br&amp;gt;&lt;br /&gt;
Да, и не забудьте добавить строки с текстовыми фразами в массив.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Если вам неясно, что за ахинея написана в текстах, вам [http://ru.youtube.com/watch?v=CdTIQ6BVlvw&amp;amp;feature=related сюда] xD&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Динамические диалоги&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Выше был изложен вариант написания простых диалогов вопрос-ответ. Но в этой части статьи я расскажу как написать &amp;quot;динамические диалоги&amp;quot;, которые предполагают выбор ответа не только ГГ, но и НПС с которым мы говорим. Рассчитано на опытных пользователей диалога.&lt;br /&gt;
&lt;br /&gt;
Вообще урок это копия предыдущей статьи, с той лишь небольшой разницей, что у как и у ГГ, так и у НПС будет несколько вариантов ответов. Получившаяся структура диалога:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;dialog id=&amp;quot;название диалога&amp;quot;&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;слушаю&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;10&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;10&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;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;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;/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;Нормик, что хотел?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;21&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;Плохо, иди отсюда(&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&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;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;21&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да вот {....}&amp;lt;/text&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		[и так далее]&lt;br /&gt;
	&amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
&amp;lt;/dialog&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
Ну вот как-то так. Рассмотрим наиболее интересную часть:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;10&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;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
Здесь мы предоставляем выбор дальнейшего диалога для НПС, причём в этой структуре его выбор получается абсолютно рандомным.&lt;br /&gt;
Скриншоты: [[Изображение:Dialog01.jpg]] [[Изображение:Dialog02.jpg]]&lt;br /&gt;
 &lt;br /&gt;
Можно прописать установки и проверки для ответов, например, можно реализовать возможность отдавания ненужных вещей какому-нибудь нпс, тогда структура будет выглядеть примерно так(писать полностью не буду, только фразы):&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
ГГ: Привет, у меня тут есть некоторые вещи, взгляни, нужно что?&lt;br /&gt;
НПС ответ1: (проверка на АК-47) Да, мне нужна эта пушка!&lt;br /&gt;
НПС ответ2: (проверка на консервы) Ух как кушать хочется, можешь мне дать консерву?&lt;br /&gt;
НПС ответ3: (без предпроверки) Есть ли у тебя водка?&lt;br /&gt;
ГГ на ответ 1 и 2: Да, держи!&lt;br /&gt;
ГГ на ответ 3: (проверка) Держи/ Извини, нету((&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ну и напоследок скажу, что можно даже управлять вероятностью ответа НПС на фразу ГГ, если прописать несколько &amp;lt;next&amp;gt;номер ответа&amp;lt;/next&amp;gt;. Например, если написать:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
То вероятность ответа &amp;quot;3&amp;quot; будет составлять 75%&lt;br /&gt;
&lt;br /&gt;
P.S.: Это не просто увлекательная и интересная вещь, но и очень уж трудоёмкая - у меня день уходил на создание простого диалога. Для огромной модификации только на диалоги нужно человек 20-30. Но зато одних диалогов хватит чтобы впечатлить! Аналогов быть не должно, а сама игра использует этот приём только в ЗП и то в 2-х местах(на Затоне, другие локации не глядел).&lt;br /&gt;
&lt;br /&gt;
==Дополнительные сведения по диалогам==&lt;br /&gt;
&lt;br /&gt;
==Скрипт-генерируемые диалоги==&lt;br /&gt;
&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>Flack</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Dialog02.jpg</id>
		<title>Файл:Dialog02.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Dialog02.jpg"/>
				<updated>2010-05-12T12:20:19Z</updated>
		
		<summary type="html">&lt;p&gt;Flack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Flack</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Dialog01.jpg</id>
		<title>Файл:Dialog01.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Dialog01.jpg"/>
				<updated>2010-05-12T12:17:17Z</updated>
		
		<summary type="html">&lt;p&gt;Flack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Flack</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Dialog010101.jpg</id>
		<title>Файл:Dialog010101.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Dialog010101.jpg"/>
				<updated>2010-05-12T12:16:44Z</updated>
		
		<summary type="html">&lt;p&gt;Flack: 12123&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;12123&lt;/div&gt;</summary>
		<author><name>Flack</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%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_(%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9_%D0%BE%D0%B1%D0%B7%D0%BE%D1%80)</id>
		<title>Создание диалогов (полный обзор)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%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_(%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9_%D0%BE%D0%B1%D0%B7%D0%BE%D1%80)"/>
				<updated>2010-05-12T12:06:44Z</updated>
		
		<summary type="html">&lt;p&gt;Flack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Статья в процессе написания...'''&lt;br /&gt;
&lt;br /&gt;
===Общие данные===&lt;br /&gt;
&lt;br /&gt;
В диалогах обычно задействуются три .xml-файла:&lt;br /&gt;
&lt;br /&gt;
* character_desc_x.xml&lt;br /&gt;
* dialogs_x.xml&lt;br /&gt;
* stable_dialogs_x.xml&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;
'''диалог 001'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''фраза 0'''&amp;lt;br&amp;gt;&lt;br /&gt;
''&amp;quot;Так, чего хотел-то?&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
следующие фразы: '''1'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''фраза 1'''&amp;lt;br&amp;gt;&lt;br /&gt;
''&amp;quot;Задание для тебя есть. Возьмешься?&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
следующие фразы: '''21, 22'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''фраза 21'''&amp;lt;br&amp;gt;&lt;br /&gt;
''&amp;quot;Ну, давай.&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
следующие фразы: '''3'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''фраза 22'''&amp;lt;br&amp;gt;&lt;br /&gt;
''&amp;quot;Не, иди к черту.&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
следующие фразы: '''нет'''&amp;lt;br&amp;gt;&lt;br /&gt;
действие: '''выйти из диалога'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[фраза 3 и дальнейшее продолжение...]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''конец диалога'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В файлах эта структура записывается следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;dialog id=&amp;quot;escape_trader_letat_gusi&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;phrase_list&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;Так, чего хотел-то?&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;
&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;21&amp;lt;/next&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;22&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;21&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;3&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;22&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Не, иди к черту.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		[...]&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
&amp;lt;/dialog&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разберемся подробнее.&lt;br /&gt;
&lt;br /&gt;
Во-первых, принадлежность фраз.&lt;br /&gt;
Они могут принадлежать или игроку, или NPC, причем:&lt;br /&gt;
&lt;br /&gt;
* фраза, принадлежащая игроку, всегда идет первой, а за ней уже по древу диалога игра понимает, чья фраза кому принадлежит (например, у нас 0, 21, 22 - игрока; а 1, 3 - NPC)&lt;br /&gt;
* только у фразы, принадлежащей NPC, можно выбрать несколько вариантов ответа игрока&lt;br /&gt;
&lt;br /&gt;
Впрочем, и у фразы игрока можно сделать несколько вариантов ответов, но поскольку компьютер не обладает способностью самостоятельно выбирать, то каждый из вариантов должен быть заранее определен по условиям выбора (например, по наличию у игрока какого-нибудь предмета, или количества денег, или репутации и т.д.), причем условия выбора различных вариантов никогда не должны одновременно становиться подходящими. Это мы разберем позднее.&lt;br /&gt;
&lt;br /&gt;
Во-вторых, структура фразы.&lt;br /&gt;
Простейшая фраза выглядит так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;    -- открывающий тег с ID фразы&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;/phrase&amp;gt;    -- закрытие тега фразы&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Но есть возможность строить и такие фразы (в данном случае она принадлежит NPC, а игрок на неё будет давать ответ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;give_info&amp;gt;propusk_given&amp;lt;/give_info&amp;gt; -- выдача инфопорции (см. объяснение №1 ниже)&lt;br /&gt;
	&amp;lt;text&amp;gt;Вот, держи пропуск. Теперь тебе охранник позволит войти.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;action&amp;gt;dialogs.give_propusk_item&amp;lt;/action&amp;gt; -- ссылка на скрипт (см. объяснение №2 ниже)&lt;br /&gt;
	&amp;lt;next&amp;gt;21&amp;lt;/next&amp;gt;&lt;br /&gt;
	&amp;lt;next&amp;gt;22&amp;lt;/next&amp;gt;&lt;br /&gt;
	&amp;lt;next&amp;gt;23&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 1. Здесь у нас выдается [[Инфопорция|инфопорция]], которая может потом использоваться в различных местах (например, её наличие может проверяться каким-нибудь охранником - и если она есть, то он, скажем, отойдет и пропустит игрока внутрь). Важно понимать отличие инфопорции от предмета. Инфопорция - это ''факт наличия'' пропуска, а лежащий в инвентаре пропуск - ''материальный предмет''. Можно, кстати, обойтись и без инфопорций, впоследствии пользуясь скриптами, проверяющими инвентарь игрока и ищущими нужный предмет, но этот способ сложен и нам пока не понадобится.&lt;br /&gt;
&lt;br /&gt;
* 2. Это скрипт, выдающий игроку предмет &amp;quot;пропуск&amp;quot; в инвентарь. Ссылка на скрипты дается в формате имя_файла.имя_функции.&lt;br /&gt;
&lt;br /&gt;
Как видите, фраза, в которой некий NPC выдает игроку пропуск, позволяющий пройти дальше, достаточно сложна.&lt;br /&gt;
&lt;br /&gt;
Вот еще один пример (здесь она принадлежит игроку):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;has_info&amp;gt;propusk_given&amp;lt;/has_info&amp;gt; -- проверка на наличие инфопорции propusk_given&lt;br /&gt;
	&amp;lt;text&amp;gt;Да, пропуск у меня есть.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&amp;gt; -- ссылка на скрипт, завершающий диалог&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь у нас фраза из диалога игрока с NPC - та, что после вопроса NPC &amp;quot;А пропуск у тебя есть?&amp;quot;. Это один из вариантов ответа на неё. Особенность в том, что этот вариант не появится, если пропуска у вас на самом деле нет - она появляется только при наличии нужной инфопорции (за это отвечает строка с &amp;lt;has_info&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Далее, поподробнее остановимся на задании условий появления фразы.&amp;lt;br&amp;gt;&lt;br /&gt;
Способов это сделать - два.&lt;br /&gt;
&lt;br /&gt;
    * проверка на наличие инфопорций&lt;br /&gt;
    * проверка через скриптовую функцию&lt;br /&gt;
&lt;br /&gt;
Первый метод мы видели выше, а второй - гораздо более комплексный и многофункциональный. Он запускает скрипт, который проводит проверку определенных вещей, и возвращает true/false. Простой пример - NPC требует денег (скажем, 5000 рублей), а нам нужно, чтобы ответная фраза игрока &amp;quot;Вот, держи свои 5000.&amp;quot;, могла быть доступна для выбора, только если у нас действительно есть эти деньги. Для этого пишем такую фразу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;8&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;text&amp;gt;Вот, держи, ровно 5000.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;precondition&amp;gt;dialogs.actor_have_5000&amp;lt;/precondition&amp;gt; -- вызываем условие (см. объяснение №1 ниже)&lt;br /&gt;
	&amp;lt;action&amp;gt;dialogs.transfer_5000&amp;lt;/action&amp;gt; -- передача денег скриптом (см. объяснение №2 ниже)&lt;br /&gt;
	&amp;lt;next&amp;gt;9&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 1. Этот скрипт который проверяет наличие денег: если было возвращено true, то фраза доступна.&lt;br /&gt;
* 2. Вызываем другой скрипт, действие - он осуществляет саму передачу денег.&lt;br /&gt;
&lt;br /&gt;
Да, кстати, порядок расстановки тегов внутри фразы не играет никакой роли - они все выполняются одновременно. Единственное - &amp;lt;next&amp;gt; всегда последний. Еще одно - есть второй вид проверки на инфопорцию - он наоборот, проверяет её отсутствие. Применяется точно так же, но называется не has_info, а dont_has_info.&lt;br /&gt;
&lt;br /&gt;
Итак, что у нас есть:&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;phrase id=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/phrase&amp;gt;''' - общий тег фразы, задание номера фразы&lt;br /&gt;
* '''&amp;lt;nowiki&amp;gt;&amp;lt;text&amp;gt;...&amp;lt;/text&amp;gt;&amp;lt;/nowiki&amp;gt;''' - тег, содержащий текст фразы&lt;br /&gt;
* '''&amp;lt;give_info&amp;gt;...&amp;lt;/give_info&amp;gt;''' - выдача инфопорции с именем, записанным в теге&lt;br /&gt;
* '''&amp;lt;has_info&amp;gt;...&amp;lt;/has_info&amp;gt;''' - проверка на наличие инфопорции с именем, записанным в теге&lt;br /&gt;
* '''&amp;lt;dont_has_info&amp;gt;...&amp;lt;/dont_has_info&amp;gt;''' - проверка на отсутствие инфопорции с именем, записанным в теге&lt;br /&gt;
* '''&amp;lt;precondition&amp;gt;...&amp;lt;/precondition&amp;gt;''' - запуск скрипта, возвращающего true или false в зависимости от чего-либо (скриптовая проверка)&lt;br /&gt;
* '''&amp;lt;action&amp;gt;...&amp;lt;/action&amp;gt;''' - запуск скрипта&lt;br /&gt;
* '''&amp;lt;next&amp;gt;...&amp;lt;/next&amp;gt;''' - тег ссылки на следующую фразу&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В первой версии - достаточно просто окна с формами для ввода этих параметров. А программа на основе введенных данных будет собирать фразу. Например, на основе вот таких введенных в поля данных:&lt;br /&gt;
&lt;br /&gt;
Номер фразы: '''12'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Текст: ''Да, там сейчас база военных.&amp;lt;br&amp;gt;Я не в курсе, сколько их там точно, но&amp;lt;br&amp;gt;могу сказать, не меньше, чем один два отряда.''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Выдать инфопорцию: '''info_about_military_base'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Проверить наличие инфопорции: '''info_1'''&amp;lt;br&amp;gt;Проверить отсутствие инфопорции: '''нет'''&amp;lt;br&amp;gt;Проверить через скрипт: '''dialogs.is_npc_a_friend'''&amp;lt;br&amp;gt;Совершить действие: '''dialogs.break_dialog'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Номера следующих фраз: '''13'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нам нужна вот такая запись:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;has_info&amp;gt;info_1&amp;lt;/has_info&amp;gt;&lt;br /&gt;
	&amp;lt;text&amp;gt;Да, там сейчас база военных. Я не в курсе, сколько их там точно [...]&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;precondition&amp;gt;dialogs.is_npc_a_friend&amp;lt;/precondition&amp;gt;&lt;br /&gt;
	&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&amp;gt;&lt;br /&gt;
	&amp;lt;give_info&amp;gt;info_about_military_base&amp;lt;/give_info&amp;gt;&lt;br /&gt;
	&amp;lt;next&amp;gt;13&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&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;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;54&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;55&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы записывали текст фразы в &amp;lt;'''text&amp;gt;...&amp;lt;/text&amp;gt;'''. Это, безусловно, удобно, но на самом деле - может привести к проблемам. Дело в том, что таким образом можно использовать только короткие фразы. Стоит ввести в тег длинный текст, и игра... так сказать, не переварит наш диалог.&lt;br /&gt;
&lt;br /&gt;
Поэтому нужно использовать не тексты, а ссылки на них. Работает это так:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Text massive explain.jpg]]&lt;br /&gt;
&lt;br /&gt;
То есть фразу мы записываем так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;54&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;text&amp;gt;my_text_1&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;next&amp;gt;55&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А в игре видим нормальный текст - игра по названию my_text_1 находит его в массиве.&amp;lt;br&amp;gt;&lt;br /&gt;
Массивы (для русскоязычной версии игры) находятся в папке:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;S.T.A.L.K.E.R\gamedata\config\text\rus&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нужные вам тексты фраз вы можете прописывать в любом из находящихся там .xml-файлов, их разделение на специализации - чисто формальное. Лучше всего держать тексты всех ваших диалогов в одном месте, поэтому выберите один файл - этим вы упростите работу тем, кто будет скрещивать ваш мод с другими.&lt;br /&gt;
&lt;br /&gt;
Запись текста происходит в такой форме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;string id=&amp;quot;my_text_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;/xml&amp;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;
&amp;lt;pre&amp;gt;S.T.A.L.K.E.R\gamedata\config\gameplay&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сейчас нас интересует файл '''character_desc_escape.xml''', хранящий профили персонажей с локации &amp;quot;Кордон&amp;quot; (остальные файлы названы по аналогичной системе - вместо '''escape''', соответственно, идет название других уровней). Открываем его и видим профиль Сидоровича '''escape_trader''' - он находится в самом начале файла.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;specific_character id=&amp;quot;escape_trader&amp;quot; no_random = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;escape_trader_name&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;icon&amp;gt;ui_npc_u_trader&amp;lt;/icon&amp;gt;&lt;br /&gt;
	&amp;lt;bio&amp;gt;escape_trader_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;class&amp;gt;trader&amp;lt;/class&amp;gt;&lt;br /&gt;
	&amp;lt;community&amp;gt;trader&amp;lt;/community&amp;gt;&lt;br /&gt;
	&amp;lt;visual&amp;gt;actors\trader\trader&amp;lt;/visual&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;rank&amp;gt;330&amp;lt;/rank&amp;gt;&lt;br /&gt;
	&amp;lt;reputation&amp;gt;23&amp;lt;/reputation&amp;gt;&lt;br /&gt;
	&amp;lt;money min=&amp;quot;100000&amp;quot; max=&amp;quot;100000&amp;quot; infinitive=&amp;quot;1&amp;quot;/&amp;gt; &lt;br /&gt;
	&amp;lt;supplies&amp;gt;&lt;br /&gt;
		[spawn] \n&lt;br /&gt;
		wpn_knife \n&lt;br /&gt;
	&amp;lt;/supplies&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;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробный разбор параметров профиля мы делать не будем - для этого существует [[Редактирование_NPC|отдельная статья]]. Сейчас нас интересуют теги &amp;lt;actor_dialog&amp;gt;...&amp;lt;/actor_dialog&amp;gt;, ссылающиеся на доступные у этого NPC диалоги. Добавим в этот список и ссылку на наш будущий диалог:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;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;my_dialog_1&amp;lt;/actor_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;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее добавим в любой диалоговый файл, например, в '''dialogs_escape.xml''', следующий диалог:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;dialog id=&amp;quot;my_dialog_1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;precondition&amp;gt;my_script_for_dialogs.my_function_1&amp;lt;/precondition&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;my_text_0&amp;lt;/text&amp;gt; -- &amp;quot;Ага, вот эти ребята...&amp;quot;&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;my_text_1&amp;lt;/text&amp;gt; -- &amp;quot;Ненене!!! Нет, Меченый, нет!&amp;quot;&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;my_text_2&amp;lt;/text&amp;gt; -- &amp;quot;Я делаю особую, уличную магию. Кто хочет увидеть немного магии?&amp;quot;&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;my_text_3&amp;lt;/text&amp;gt; -- &amp;quot;Что я тебе, Толик какой-нибудь? Целый день у этих идиотов из лагеря &lt;br /&gt;
			&amp;lt;next&amp;gt;4&amp;lt;/next&amp;gt;             разный хлам скупал, устал, хочу просто отдохнуть...&amp;quot;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_4&amp;lt;/text&amp;gt; -- &amp;quot;И что купил?&amp;quot;&lt;br /&gt;
			&amp;lt;next&amp;gt;5&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_5&amp;lt;/text&amp;gt; -- &amp;quot;Я купил зеленый свитер, если ты так хочешь знать! Сорок долларов,&lt;br /&gt;
			&amp;lt;next&amp;gt;6&amp;lt;/next&amp;gt;             между прочим.&amp;quot;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_6&amp;lt;/text&amp;gt; -- &amp;quot;Зеленый свитер? А ты уверен, что не купил тедди-бир?&amp;quot;&lt;br /&gt;
			&amp;lt;next&amp;gt;7&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_7&amp;lt;/text&amp;gt; -- &amp;quot;Тедди-бир?... ТЕДДИ-БИР!!! Где мой зеленый свитер, ты что делаешь, демон?!&amp;quot;&lt;br /&gt;
			&amp;lt;next&amp;gt;8&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;8&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_8&amp;lt;/text&amp;gt; -- &amp;quot;Ладно, ладно... еще один фокус. Будь добр, взгляни на телевизор &lt;br /&gt;
			&amp;lt;next&amp;gt;9&amp;lt;/next&amp;gt;             рядом с тобой. Что он показывает?&amp;quot;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;9&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_9&amp;lt;/text&amp;gt; -- &amp;quot;Билд 1154!!! Ты что делаешь, демон, ты что делаешь?! Проваливай отсюда!&amp;quot;&lt;br /&gt;
			&amp;lt;next&amp;gt;10&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;10&amp;quot;&amp;gt;          &lt;br /&gt;
			&amp;lt;text&amp;gt;my_text_10&amp;lt;/text&amp;gt; -- &amp;quot;Ладно.&amp;quot;&lt;br /&gt;
			&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&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;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для начала лучше попробовать свои силы в простом линейном диалоге вроде этого.&amp;lt;br&amp;gt;&lt;br /&gt;
Да, и не забудьте добавить строки с текстовыми фразами в массив.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Если вам неясно, что за ахинея написана в текстах, вам [http://ru.youtube.com/watch?v=CdTIQ6BVlvw&amp;amp;feature=related сюда] xD&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Динамические диалоги&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Выше был изложен вариант написания простых диалогов вопрос-ответ. Но в этой части статьи я расскажу как написать &amp;quot;динамические диалоги&amp;quot;, которые предполагают выбор ответа не только ГГ, но и НПС с которым мы говорим. Рассчитано на опытных пользователей диалога.&lt;br /&gt;
&lt;br /&gt;
Вообще урок это копия предыдущей статьи, с той лишь небольшой разницей, что у как и у ГГ, так и у НПС будет несколько вариантов ответов. Получившаяся структура диалога:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;dialog id=&amp;quot;название диалога&amp;quot;&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;слушаю&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;10&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;10&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;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;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;/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;Нормик, что хотел?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;21&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;Плохо, иди отсюда(&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&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;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;21&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да вот {....}&amp;lt;/text&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		[и так далее]&lt;br /&gt;
	&amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
&amp;lt;/dialog&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
Ну вот как-то так. Рассмотрим наиболее интересную часть:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;10&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;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
Здесь мы предоставляем выбор дальнейшего диалога для НПС, причём в этой структуре его выбор получается абсолютно рандомным.&lt;br /&gt;
 &lt;br /&gt;
Можно прописать установки и проверки для ответов, например, можно реализовать возможность отдавания ненужных вещей какому-нибудь нпс, тогда структура будет выглядеть примерно так(писать полностью не буду, только фразы):&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
ГГ: Привет, у меня тут есть некоторые вещи, взгляни, нужно что?&lt;br /&gt;
НПС ответ1: (проверка на АК-47) Да, мне нужна эта пушка!&lt;br /&gt;
НПС ответ2: (проверка на консервы) Ух как кушать хочется, можешь мне дать консерву?&lt;br /&gt;
НПС ответ3: (без предпроверки) Есть ли у тебя водка?&lt;br /&gt;
ГГ на ответ 1 и 2: Да, держи!&lt;br /&gt;
ГГ на ответ 3: (проверка) Держи/ Извини, нету((&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ну и напоследок скажу, что можно даже управлять вероятностью ответа НПС на фразу ГГ, если прописать несколько &amp;lt;next&amp;gt;номер ответа&amp;lt;/next&amp;gt;. Например, если написать:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
То вероятность ответа &amp;quot;3&amp;quot; будет составлять 75%&lt;br /&gt;
&lt;br /&gt;
P.S.: Это не просто увлекательная и интересная вещь, но и очень уж трудоёмкая - у меня день уходил на создание простого диалога. Для огромной модификации только на диалоги нужно человек 20-30. Но зато одних диалогов хватит чтобы впечатлить! Аналогов быть не должно, а сама игра использует этот приём только в ЗП и то в 2-х местах(на Затоне, другие локации не глядел).&lt;br /&gt;
&lt;br /&gt;
==Дополнительные сведения по диалогам==&lt;br /&gt;
&lt;br /&gt;
==Скрипт-генерируемые диалоги==&lt;br /&gt;
&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>Flack</name></author>	</entry>

	</feed>