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

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%81%D0%B8-%D0%B2%D1%8B%D0%B1%D1%80%D0%BE%D1%81%D0%B0_%D0%BD%D0%B0_%D0%AF%D0%BD%D1%82%D0%B0%D1%80%D1%8C</id>
		<title>SoC. Добавление пси-выброса на Янтарь</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%81%D0%B8-%D0%B2%D1%8B%D0%B1%D1%80%D0%BE%D1%81%D0%B0_%D0%BD%D0%B0_%D0%AF%D0%BD%D1%82%D0%B0%D1%80%D1%8C"/>
				<updated>2012-12-20T13:54:08Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]В этот туторе я хочу объяснить, как добавить похожий пси-выброс на Янтарь как в ЧН. Правда есть один недостаток. Он появляется всегда в начале, как загружаешь любой сейв на Янтаре, но думаю,&lt;br /&gt;
это не сильный недостаток. Автор не я, благодарность &amp;lt;b&amp;gt;Shadows&amp;lt;/b&amp;gt; за скрипт выброса из его &amp;lt;b&amp;gt;&amp;quot;Shadows Addon&amp;quot;&amp;lt;/b&amp;gt; aka &amp;lt;b&amp;gt;Phantoms Zone&amp;lt;/b&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Автор статьи: &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Автор скрипта: &amp;lt;b&amp;gt;Shadows&amp;lt;/b&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;
&amp;lt;br&amp;gt;Для этого создаём новый скрипт. Пускай &amp;lt;b&amp;gt;yantar_psy_blowout.script&amp;lt;/b&amp;gt; и пишем туда:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function update()&lt;br /&gt;
yantar_psy_blowout()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local next_blowout = 0&lt;br /&gt;
local effects_off = 0&lt;br /&gt;
function yantar_psy_blowout()&lt;br /&gt;
if level.name()==&amp;quot;l08_yantar&amp;quot; then ; имя локации, на которой будет пси-выброс&lt;br /&gt;
if not has_alife_info(&amp;quot;yan_labx16_switcher_3_end&amp;quot;) and next_blowout &amp;lt; time_global() then&lt;br /&gt;
next_blowout = time_global() + 300000 ; время между пси-выбросами&lt;br /&gt;
effects_off = time_global() + 30000 ; его длительность&lt;br /&gt;
db.actor.psy_health = -0.45 ; количество здоровья, которое отнимается при нём&lt;br /&gt;
play_sound([[characters_voice\scenario\yantar\psy_voices_1]]) ; ссылка на звук во время пси-выброса&lt;br /&gt;
play_sound([[ambient\blowout]]) ; звук начала выброса&lt;br /&gt;
level.add_call(yantar_psy_blowout_timer, yantar_psy_blowout_off)&lt;br /&gt;
level.add_pp_effector(&amp;quot;psy_antenna.ppe&amp;quot;, 1875, true)&lt;br /&gt;
level.add_pp_effector(&amp;quot;yantar_underground_psi.ppe&amp;quot;, 1876, false)&lt;br /&gt;
level.add_cam_effector(&amp;quot;camera_effects\\shell_shock.anm&amp;quot;, 396, false, &amp;quot;&amp;quot;)&lt;br /&gt;
level.add_cam_effector(&amp;quot;camera_effects\\earthquake.anm&amp;quot;, 397, false, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function yantar_psy_blowout_timer()&lt;br /&gt;
return time_global() &amp;gt; effects_off&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function yantar_psy_blowout_off()&lt;br /&gt;
level.remove_pp_effector(1875)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function play_sound(sound,obj)&lt;br /&gt;
if obj == nil then obj = db.actor end&lt;br /&gt;
snd = xr_sound.get_safe_sound_object(sound)&lt;br /&gt;
snd:play_no_feedback(obj,sound_object.s2d,0,vector(),1.0)&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Регистрация в bind_stalker.script ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;bind_stalker.script&amp;lt;/b&amp;gt; и находим &amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;--' Вывод сообщения о большой радиации&lt;br /&gt;
if self.object.radiation &amp;gt;= 0.7 then&lt;br /&gt;
local hud = get_hud()&lt;br /&gt;
local custom_static = hud:GetCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;)&lt;br /&gt;
if custom_static == nil then&lt;br /&gt;
hud:AddCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;, true)&lt;br /&gt;
hud:GetCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;):wnd():SetTextST(&amp;quot;st_radiation_danger&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
else&lt;br /&gt;
local hud = get_hud()&lt;br /&gt;
local custom_static = hud:GetCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;)&lt;br /&gt;
if custom_static ~= nil then&lt;br /&gt;
hud:RemoveCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;И пишем это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;yantar_psy_blowout.update()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Всё, готово. Правда вам необходимо добавить звук &amp;lt;b&amp;gt;blowout.ogg&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Качаем его отсюда http://rusfolder.com/33743634&lt;br /&gt;
и добавляем в &amp;lt;i&amp;gt;sounds/ambient&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Всё, готово. Идите и проверяйте!) Удачи.&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%81%D0%B8-%D0%B2%D1%8B%D0%B1%D1%80%D0%BE%D1%81%D0%B0_%D0%BD%D0%B0_%D0%AF%D0%BD%D1%82%D0%B0%D1%80%D1%8C</id>
		<title>SoC. Добавление пси-выброса на Янтарь</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%81%D0%B8-%D0%B2%D1%8B%D0%B1%D1%80%D0%BE%D1%81%D0%B0_%D0%BD%D0%B0_%D0%AF%D0%BD%D1%82%D0%B0%D1%80%D1%8C"/>
				<updated>2012-12-02T09:28:51Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]В этот туторе я хочу объяснить, как добавить похожий пси-выброс на Янтарь как в ЧН. Правда есть один недостаток. Он появляется всегда в начале, как загружаешь любой сейв на Янтаре, но думаю,&lt;br /&gt;
это не сильный недостаток. Автор не я, благодарность Валерию Доброву.&lt;br /&gt;
&amp;lt;br&amp;gt;Автор: &amp;lt;b&amp;gt;Valeras(Добряк)&amp;lt;/b&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;
&amp;lt;br&amp;gt;Для этого создаём новый скрипт. Пускай &amp;lt;b&amp;gt;yantar_psy_blowout.script&amp;lt;/b&amp;gt; и пишем туда:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function update()&lt;br /&gt;
yantar_psy_blowout()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local next_blowout = 0&lt;br /&gt;
local effects_off = 0&lt;br /&gt;
function yantar_psy_blowout()&lt;br /&gt;
if level.name()==&amp;quot;l08_yantar&amp;quot; then ; имя локации, на которой будет пси-выброс&lt;br /&gt;
if not has_alife_info(&amp;quot;yan_labx16_switcher_3_end&amp;quot;) and next_blowout &amp;lt; time_global() then&lt;br /&gt;
next_blowout = time_global() + 300000 ; время между пси-выбросами&lt;br /&gt;
effects_off = time_global() + 30000 ; его длительность&lt;br /&gt;
db.actor.psy_health = -0.45 ; количество здоровья, которое отнимается при нём&lt;br /&gt;
play_sound([[characters_voice\scenario\yantar\psy_voices_1]]) ; ссылка на звук во время пси-выброса&lt;br /&gt;
play_sound([[ambient\blowout]]) ; звук начала выброса&lt;br /&gt;
level.add_call(yantar_psy_blowout_timer, yantar_psy_blowout_off)&lt;br /&gt;
level.add_pp_effector(&amp;quot;psy_antenna.ppe&amp;quot;, 1875, true)&lt;br /&gt;
level.add_pp_effector(&amp;quot;yantar_underground_psi.ppe&amp;quot;, 1876, false)&lt;br /&gt;
level.add_cam_effector(&amp;quot;camera_effects\\shell_shock.anm&amp;quot;, 396, false, &amp;quot;&amp;quot;)&lt;br /&gt;
level.add_cam_effector(&amp;quot;camera_effects\\earthquake.anm&amp;quot;, 397, false, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function yantar_psy_blowout_timer()&lt;br /&gt;
return time_global() &amp;gt; effects_off&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function yantar_psy_blowout_off()&lt;br /&gt;
level.remove_pp_effector(1875)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function play_sound(sound,obj)&lt;br /&gt;
if obj == nil then obj = db.actor end&lt;br /&gt;
snd = xr_sound.get_safe_sound_object(sound)&lt;br /&gt;
snd:play_no_feedback(obj,sound_object.s2d,0,vector(),1.0)&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Регистрация в bind_stalker.script ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;bind_stalker.script&amp;lt;/b&amp;gt; и находим &amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;--' Вывод сообщения о большой радиации&lt;br /&gt;
if self.object.radiation &amp;gt;= 0.7 then&lt;br /&gt;
local hud = get_hud()&lt;br /&gt;
local custom_static = hud:GetCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;)&lt;br /&gt;
if custom_static == nil then&lt;br /&gt;
hud:AddCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;, true)&lt;br /&gt;
hud:GetCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;):wnd():SetTextST(&amp;quot;st_radiation_danger&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
else&lt;br /&gt;
local hud = get_hud()&lt;br /&gt;
local custom_static = hud:GetCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;)&lt;br /&gt;
if custom_static ~= nil then&lt;br /&gt;
hud:RemoveCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;И пишем это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;yantar_psy_blowout.update()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Всё, готово. Правда вам необходимо добавить звук &amp;lt;b&amp;gt;blowout.ogg&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Качаем его отсюда http://rusfolder.com/33743634&lt;br /&gt;
и добавляем в &amp;lt;i&amp;gt;sounds/ambient&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Всё, готово. Идите и проверяйте!) Удачи.&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%81%D0%B8-%D0%B2%D1%8B%D0%B1%D1%80%D0%BE%D1%81%D0%B0_%D0%BD%D0%B0_%D0%AF%D0%BD%D1%82%D0%B0%D1%80%D1%8C</id>
		<title>SoC. Добавление пси-выброса на Янтарь</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%81%D0%B8-%D0%B2%D1%8B%D0%B1%D1%80%D0%BE%D1%81%D0%B0_%D0%BD%D0%B0_%D0%AF%D0%BD%D1%82%D0%B0%D1%80%D1%8C"/>
				<updated>2012-12-02T09:25:13Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создаём функцию пси-выброса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В этот туторе я хочу объяснить, как добавить похожий пси-выброс на Янтарь как в ЧН. Правда есть один недостаток. Он появляется всегда в начале, как загружаешь любой сейв на Янтаре, но думаю,&lt;br /&gt;
это не сильный недостаток. Автор не я, благодарность Валерию Доброву.&lt;br /&gt;
Автор: &amp;lt;b&amp;gt;Valeras(Добряк)&amp;lt;/b&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;br&amp;gt;Для этого создаём новый скрипт. Пускай &amp;lt;b&amp;gt;yantar_psy_blowout.script&amp;lt;/b&amp;gt; и пишем туда:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function update()&lt;br /&gt;
yantar_psy_blowout()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local next_blowout = 0&lt;br /&gt;
local effects_off = 0&lt;br /&gt;
function yantar_psy_blowout()&lt;br /&gt;
if level.name()==&amp;quot;l08_yantar&amp;quot; then ; имя локации, на которой будет пси-выброс&lt;br /&gt;
if not has_alife_info(&amp;quot;yan_labx16_switcher_3_end&amp;quot;) and next_blowout &amp;lt; time_global() then&lt;br /&gt;
next_blowout = time_global() + 300000 ; время между пси-выбросами&lt;br /&gt;
effects_off = time_global() + 30000 ; его длительность&lt;br /&gt;
db.actor.psy_health = -0.45 ; количество здоровья, которое отнимается при нём&lt;br /&gt;
play_sound([[characters_voice\scenario\yantar\psy_voices_1]]) ; ссылка на звук во время пси-выброса&lt;br /&gt;
play_sound([[ambient\blowout]]) ; звук начала выброса&lt;br /&gt;
level.add_call(yantar_psy_blowout_timer, yantar_psy_blowout_off)&lt;br /&gt;
level.add_pp_effector(&amp;quot;psy_antenna.ppe&amp;quot;, 1875, true)&lt;br /&gt;
level.add_pp_effector(&amp;quot;yantar_underground_psi.ppe&amp;quot;, 1876, false)&lt;br /&gt;
level.add_cam_effector(&amp;quot;camera_effects\\shell_shock.anm&amp;quot;, 396, false, &amp;quot;&amp;quot;)&lt;br /&gt;
level.add_cam_effector(&amp;quot;camera_effects\\earthquake.anm&amp;quot;, 397, false, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function yantar_psy_blowout_timer()&lt;br /&gt;
return time_global() &amp;gt; effects_off&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function yantar_psy_blowout_off()&lt;br /&gt;
level.remove_pp_effector(1875)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function play_sound(sound,obj)&lt;br /&gt;
if obj == nil then obj = db.actor end&lt;br /&gt;
snd = xr_sound.get_safe_sound_object(sound)&lt;br /&gt;
snd:play_no_feedback(obj,sound_object.s2d,0,vector(),1.0)&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Регистрация в bind_stalker.script ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Открываем --' Вывод сообщения о большой радиации&lt;br /&gt;
if self.object.radiation &amp;gt;= 0.7 then&lt;br /&gt;
local hud = get_hud()&lt;br /&gt;
local custom_static = hud:GetCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;)&lt;br /&gt;
if custom_static == nil then&lt;br /&gt;
hud:AddCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;, true)&lt;br /&gt;
hud:GetCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;):wnd():SetTextST(&amp;quot;st_radiation_danger&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
else&lt;br /&gt;
local hud = get_hud()&lt;br /&gt;
local custom_static = hud:GetCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;)&lt;br /&gt;
if custom_static ~= nil then&lt;br /&gt;
hud:RemoveCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Это:&lt;br /&gt;
yantar_psy_blowout.update()&lt;br /&gt;
&lt;br /&gt;
Всё, готово. Правда вам необходимо добавить звук blowout.ogg&lt;br /&gt;
&lt;br /&gt;
Качаем его отсюда http://rusfolder.com/33743634&lt;br /&gt;
и добавляем в sounds/ambient&lt;br /&gt;
Всё, готово. Идите и проверяйте!) Удачи.&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%81%D0%B8-%D0%B2%D1%8B%D0%B1%D1%80%D0%BE%D1%81%D0%B0_%D0%BD%D0%B0_%D0%AF%D0%BD%D1%82%D0%B0%D1%80%D1%8C</id>
		<title>SoC. Добавление пси-выброса на Янтарь</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%81%D0%B8-%D0%B2%D1%8B%D0%B1%D1%80%D0%BE%D1%81%D0%B0_%D0%BD%D0%B0_%D0%AF%D0%BD%D1%82%D0%B0%D1%80%D1%8C"/>
				<updated>2012-12-02T09:22:49Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: Новая страница: «В этот туторе я хочу объяснить, как добавить похожий пси-выброс на Янтарь как в ЧН. Правда е...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В этот туторе я хочу объяснить, как добавить похожий пси-выброс на Янтарь как в ЧН. Правда есть один недостаток. Он появляется всегда в начале, как загружаешь любой сейв на Янтаре, но думаю,&lt;br /&gt;
это не сильный недостаток. Автор не я, благодарность Валерию Доброву.&lt;br /&gt;
Автор: &amp;lt;b&amp;gt;Valeras(Добряк)&amp;lt;/b&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;
Для этого создаём новый скрипт. Пускай yantar_psy_blowout.script и пишем туда:&lt;br /&gt;
function update()&lt;br /&gt;
yantar_psy_blowout()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local next_blowout = 0&lt;br /&gt;
local effects_off = 0&lt;br /&gt;
function yantar_psy_blowout()&lt;br /&gt;
if level.name()==&amp;quot;l08_yantar&amp;quot; then ; имя локации, на которой будет пси-выброс&lt;br /&gt;
if not has_alife_info(&amp;quot;yan_labx16_switcher_3_end&amp;quot;) and next_blowout &amp;lt; time_global() then&lt;br /&gt;
next_blowout = time_global() + 300000 ; время между пси-выбросами&lt;br /&gt;
effects_off = time_global() + 30000 ; его длительность&lt;br /&gt;
db.actor.psy_health = -0.45 ; количество здоровья, которое отнимается при нём&lt;br /&gt;
play_sound([[characters_voice\scenario\yantar\psy_voices_1]]) ; ссылка на звук во время пси-выброса&lt;br /&gt;
play_sound([[ambient\blowout]]) ; звук начала выброса&lt;br /&gt;
level.add_call(yantar_psy_blowout_timer, yantar_psy_blowout_off)&lt;br /&gt;
level.add_pp_effector(&amp;quot;psy_antenna.ppe&amp;quot;, 1875, true)&lt;br /&gt;
level.add_pp_effector(&amp;quot;yantar_underground_psi.ppe&amp;quot;, 1876, false)&lt;br /&gt;
level.add_cam_effector(&amp;quot;camera_effects\\shell_shock.anm&amp;quot;, 396, false, &amp;quot;&amp;quot;)&lt;br /&gt;
level.add_cam_effector(&amp;quot;camera_effects\\earthquake.anm&amp;quot;, 397, false, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function yantar_psy_blowout_timer()&lt;br /&gt;
return time_global() &amp;gt; effects_off&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function yantar_psy_blowout_off()&lt;br /&gt;
level.remove_pp_effector(1875)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function play_sound(sound,obj)&lt;br /&gt;
if obj == nil then obj = db.actor end&lt;br /&gt;
snd = xr_sound.get_safe_sound_object(sound)&lt;br /&gt;
snd:play_no_feedback(obj,sound_object.s2d,0,vector(),1.0)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регистрация в bind_stalker.script ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Открываем --' Вывод сообщения о большой радиации&lt;br /&gt;
if self.object.radiation &amp;gt;= 0.7 then&lt;br /&gt;
local hud = get_hud()&lt;br /&gt;
local custom_static = hud:GetCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;)&lt;br /&gt;
if custom_static == nil then&lt;br /&gt;
hud:AddCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;, true)&lt;br /&gt;
hud:GetCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;):wnd():SetTextST(&amp;quot;st_radiation_danger&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
else&lt;br /&gt;
local hud = get_hud()&lt;br /&gt;
local custom_static = hud:GetCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;)&lt;br /&gt;
if custom_static ~= nil then&lt;br /&gt;
hud:RemoveCustomStatic(&amp;quot;cs_radiation_danger&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Это:&lt;br /&gt;
yantar_psy_blowout.update()&lt;br /&gt;
&lt;br /&gt;
Всё, готово. Правда вам необходимо добавить звук blowout.ogg&lt;br /&gt;
&lt;br /&gt;
Качаем его отсюда http://rusfolder.com/33743634&lt;br /&gt;
и добавляем в sounds/ambient&lt;br /&gt;
Всё, готово. Идите и проверяйте!) Удачи.&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-21T16:26:01Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Спавним персонажа на локации */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;esc_kill_danila_dialog&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death ; позволяет установить что будет после смерти НПС&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что зафиксируется смерть НПС при его смерти. Помогает завершить квеста&lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко, и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_danila_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_danila_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; из той же папки, пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt; ; имя диалога&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и всё той же папки добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; название квеста, чтобы было понятно, к какому квесту давай инфопоршень о его начале&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень смерти нашего НПС, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/text/rus&amp;lt;/i&amp;gt;, пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config&amp;lt;/i&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-21T16:19:00Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создание персонажа */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;esc_kill_danila_dialog&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death ; позволяет установить что будет после смерти НПС&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что зафиксируется смерть НПС при его смерти. Помогает завершить квеста&lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко, и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; из той же папки, пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt; ; имя диалога&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и всё той же папки добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; название квеста, чтобы было понятно, к какому квесту давай инфопоршень о его начале&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень смерти нашего НПС, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/text/rus&amp;lt;/i&amp;gt;, пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config&amp;lt;/i&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:55:47Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создаём имя отметки нашего NPC на карте */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death ; позволяет установить что будет после смерти НПС&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что зафиксируется смерть НПС при его смерти. Помогает завершить квеста&lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко, и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; из той же папки, пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt; ; имя диалога&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и всё той же папки добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; название квеста, чтобы было понятно, к какому квесту давай инфопоршень о его начале&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень смерти нашего НПС, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/text/rus&amp;lt;/i&amp;gt;, пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config&amp;lt;/i&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:54:33Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Спавним персонажа на локации */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death ; позволяет установить что будет после смерти НПС&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что зафиксируется смерть НПС при его смерти. Помогает завершить квеста&lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко, и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; из той же папки, пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt; ; имя диалога&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и всё той же папки добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; название квеста, чтобы было понятно, к какому квесту давай инфопоршень о его начале&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень смерти нашего НПС, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/text/rus&amp;lt;/i&amp;gt; пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config&amp;lt;/i&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:51:54Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Спавним персонажа на локации */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко, и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; из той же папки, пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt; ; имя диалога&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и всё той же папки добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; название квеста, чтобы было понятно, к какому квесту давай инфопоршень о его начале&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень смерти нашего НПС, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/text/rus&amp;lt;/i&amp;gt; пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config&amp;lt;/i&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:51:11Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создание диалога */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; из той же папки, пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt; ; имя диалога&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и всё той же папки добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; название квеста, чтобы было понятно, к какому квесту давай инфопоршень о его начале&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень смерти нашего НПС, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/text/rus&amp;lt;/i&amp;gt; пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config&amp;lt;/i&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:50:31Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создадим инфопоршни */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; из той же папки пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt; ; имя диалога&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и всё той же папки добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; название квеста, чтобы было понятно, к какому квесту давай инфопоршень о его начале&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень смерти нашего НПС, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/text/rus&amp;lt;/i&amp;gt; пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config&amp;lt;/i&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:49:24Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создаём Game Story Id */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; из той же папки пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt; ; имя диалога&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и всё той же папки добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; название квеста, чтобы было понятно, к какому квесту давай инфопоршень о его начале&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/text/rus&amp;lt;/i&amp;gt; пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config&amp;lt;/i&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:48:52Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создаём Game Story Id */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; из той же папки пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt; ; имя диалога&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и всё той же папки добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; название квеста, чтобы было понятно, к какому квесту давай инфопоршень о его начале&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/text/rus&amp;lt;/i&amp;gt; пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config&amp;lt;/i&amp;gt; пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:44:47Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создаём имя отметки нашего NPC на карте */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; из той же папки пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt; ; имя диалога&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и всё той же папки добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; название квеста, чтобы было понятно, к какому квесту давай инфопоршень о его начале&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/text/rus&amp;lt;/i&amp;gt; пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:43:50Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создадим инфопоршни */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; из той же папки пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt; ; имя диалога&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и всё той же папки добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; название квеста, чтобы было понятно, к какому квесту давай инфопоршень о его начале&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:42:29Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создание диалога */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; из той же папки пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt; ; имя диалога&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; сам квест&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:41:07Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создание квеста */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; из &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt; ; имя квеста&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; и пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; сам квест&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:40:01Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Спавним персонажа на локации */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Дадим ему одну точку, чтобы он не уходил далеко и вы не искали его на локации. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять в вагоне, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; и пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; сам квест&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T19:38:00Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создание персонажа */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; ; имя профиля нашего НПС&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt; ; само имя персонажа&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; класс должен быть всегда тот же, как и имя профиля&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; в секции профиля Волка снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt; ; имя профиля&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt; ;имя профиля&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять у вагона, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; и пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; сам квест&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-20T11:01:47Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создание персонажа */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila_dialog&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять у вагона, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; и пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; сам квест&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-19T17:31:23Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Создание диалога */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять у вагона, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; и пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повторится&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; сам квест&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-19T17:29:37Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Спавним персонажа на локации */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять у вагона, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; и пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повториться&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повториться&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; сам квест&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-19T16:49:40Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look_1]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять у вагона, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; и пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повториться&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повториться&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; сам квест&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-19T16:49:09Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Участник:LaRento]][[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look_1]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять у вагона, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; и пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повториться&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повториться&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; сам квест&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-19T16:47:24Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Скрипты]]Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look_1]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять у вагона, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; и пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повториться&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повториться&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; сам квест&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-19T16:39:10Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: /* Спавним персонажа на локации */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобится для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look_1]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять у вагона, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; и пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повториться&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повториться&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; сам квест&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC</id>
		<title>SoC. Создание квеста на убийство NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0_%D0%BD%D0%B0_%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_NPC"/>
				<updated>2012-11-19T16:38:03Z</updated>
		
		<summary type="html">&lt;p&gt;LaRento: ~~~~&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Здравствуйте. В этой статье я хочу написать о том, как создать сложный квест на убийство сталкера. &amp;lt;b&amp;gt;ВО ВСЕХ СЕКЦИЯХ, КОТОРЫЕ ВЫ ВСТАВЛЯЛИ В ФАЙЛЫ, УДАЛЯЙТЕ ПОЯСНЕНИЯ С ТОЧКОЙ-ЗАПЯТОЙ.&amp;lt;/b&amp;gt; Итак, начнём.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Потребуются следующие файлы:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;character_desc_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;npc_profile.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;game_story_ids.ltx&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;info_l01escape.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Создание персонажа ==&lt;br /&gt;
&amp;lt;br&amp;gt;На примере я решил создать персонажа, которого нам надо убить на локации Кордон. Открываем файл &amp;lt;b&amp;gt;character_desc_escape&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;config/gameplay&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Создаём там секцию нашего персонажа, написав это:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;specific_character id=&amp;quot;esc_danila&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;Данила&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_captain_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;906&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;20&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;0&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_1&amp;lt;/visual&amp;gt;		&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_mp5 \n&lt;br /&gt;
			ammo_9x19_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_5.xml&amp;quot;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Думаю тут всё ясно.&lt;br /&gt;
&amp;lt;br&amp;gt;Так же после строчки &amp;lt;i&amp;gt;&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/i&amp;gt; снизу пишем &amp;lt;i&amp;gt;&amp;lt;actor&amp;gt;esc_kill_danila&amp;lt;/actor&amp;gt;&amp;lt;/i&amp;gt;. Этим мы добавили Волку диалог, после которого выдастся квест.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;npc_profile&amp;lt;/b&amp;gt; из той же папки пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;esc_danila&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;class&amp;gt;esc_danila&amp;lt;/class&amp;gt;&lt;br /&gt;
      &amp;lt;specific_character&amp;gt;esc_danila&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
   &amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Спавним персонажа на локации ==&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Распаковываем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt; из папки &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Думаю, вы знаете как, если что, качаем ACDC для Тень Чернобыля, кидаем файлы, которые скачали в папку &amp;lt;i&amp;gt;spawns&amp;lt;/i&amp;gt;. Декомпилируем &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Надеюсь, вы поймёте. После этого у вас появятся множество файлов. В нашем случае открываем файл &amp;lt;b&amp;gt;alife_l01_escape.ltx&amp;lt;/b&amp;gt; и вставляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[20000] ; уникальный номер секции&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = esc_danila ; имя нашего персонажа&lt;br /&gt;
position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа&lt;br /&gt;
direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_danila ; профиль нашего персонажа, созданного в character_desc_escape&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 76 &lt;br /&gt;
distance = 9.09999942779541&lt;br /&gt;
level_vertex_id = 186578&lt;br /&gt;
object_flags = 0xffffffbb&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[logic] &lt;br /&gt;
active = walker&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+esc_danila_dead% ; здесь эта строчка отвечает за то, что при смерти этого персонажа выдастся инфопоршень, который завершит квест &lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = esc_danila_walk ; имя точки пути нашего персонажа &lt;br /&gt;
path_look = esc_danila_look ; имя точки , куда наш персонаж будет смотреть&lt;br /&gt;
END&lt;br /&gt;
story_id = 20000 ; стори ид, понадобиться для квеста&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 1&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions = &lt;br /&gt;
dynamic_in_restrictions = &lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0x75646f6d&lt;br /&gt;
upd:creature_flags = 0x6c&lt;br /&gt;
upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; тоже координаты, обязательно писать и тут их&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 0,1,1,1,2&lt;br /&gt;
predicate4 = 2,0,1,0&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog = &lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Осталось прописать путь нашему персонажу. Для этого в этой же папке открываем файл &amp;lt;b&amp;gt;way_l01_escape.ltx&amp;lt;/b&amp;gt;. Пишем туда в конец:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;[esc_dio_walk]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 186578&lt;br /&gt;
&lt;br /&gt;
[esc_dio_look_1]&lt;br /&gt;
points = p0&lt;br /&gt;
p0:name = wp00&lt;br /&gt;
p0:flags = 0x1&lt;br /&gt;
p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938&lt;br /&gt;
p0:game_vertex_id = 76&lt;br /&gt;
p0:level_vertex_id = 188614&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Готово, только обязательно компилируем новый &amp;lt;b&amp;gt;all.spawn&amp;lt;/b&amp;gt;. Теперь наш персонаж будет стоять у вагона, где лежал раненый Толик.&lt;br /&gt;
&lt;br /&gt;
== Создание квеста ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;tasks_escape.xml&amp;lt;/b&amp;gt; и добавляем секцию нашего квеста:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;	&amp;lt;game_task id=&amp;quot;esc_kill_danila_quest&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;title&amp;gt;Убить предателя&amp;lt;/title&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить предателя&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_esc_dinamit_to_volk&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста        	&lt;br /&gt;
		&amp;lt;/objective&amp;gt;&lt;br /&gt;
                &amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Убить Данилу&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_danila&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt; ; имя отметки нашего НПС на карте&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;esc_danila&amp;lt;/object_story_id&amp;gt; ; отметка нашего НПС на карте&lt;br /&gt;
                        &amp;lt;function_complete&amp;gt;escape_tasks.esc_kill_danila&amp;lt;/function_complete&amp;gt; ; строчка, отвечающая за условие выполнения квеста&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;esc_kill_danila_quest_complete&amp;lt;/infoportion_complete&amp;gt; ; выполнение квеста&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        &amp;lt;/game_task&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создание диалога ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим диалог с Волком, после которого выдастся квест. Открываем &amp;lt;b&amp;gt;dialogs_escape.xml&amp;lt;/b&amp;gt; и пишем снизу:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;dialog id=&amp;quot;esc_kill_danila_dialog&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dont_has_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/dont_has_info&amp;gt; ; конец диалога, больше он не повториться&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
	    	&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Есть дополнительная работа?&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Да, предал нас один сталкер, Данилой кличут, убей его. Координаты его я тебе скину.&amp;lt;/text&amp;gt;&lt;br /&gt;
			&amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
		&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;text&amp;gt;Хорошо.&amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_quest_started&amp;lt;/give_info&amp;gt; ; выдача квеста после диалога&lt;br /&gt;
			 &amp;lt;give_info&amp;gt;esc_kill_danila_dialog_finished&amp;lt;/give_info&amp;gt; ; конец диалога, больше он не повториться&lt;br /&gt;
		&amp;lt;/phrase&amp;gt;&lt;br /&gt;
	     &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
	&amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим инфопоршни ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;info_l01_escape.xml&amp;lt;/b&amp;gt; и добавляем следующее:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt; &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_started&amp;quot;&amp;gt; ; строчка, которая даёт начало квеста&lt;br /&gt;
             &amp;lt;task&amp;gt;esc_kill_danila_quest&amp;lt;/task&amp;gt; ; сам квест&lt;br /&gt;
        &amp;lt;/info_portion&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_danila_dead&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; инфопоршень, который позволяет завершить квеста. Ранее мы его добавили в логику, в раздел смерти нашего персонажа.&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_quest_complete&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; выполнение квеста&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;esc_kill_danila_dialog_finished&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; ; конец диалога, больше он не появится&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создадим функцию, которая совершит выполнение квеста после убийства нашего NPC ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем &amp;lt;b&amp;gt;escape_tasks.script&amp;lt;/b&amp;gt; и вписываем нашу функцию:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;function esc_kill_danila(actor,npc) &lt;br /&gt;
	local actor = db.actor&lt;br /&gt;
	if has_alife_info(&amp;quot;esc_danila_dead&amp;quot;) and not has_alife_info(&amp;quot;esc_kill_danila_quest_started&amp;quot;) ; если имеется информация, что наш НПС убит, то выдаётся инфопоршень на выполнение квеста&lt;br /&gt;
        then&lt;br /&gt;
		return db.actor:give_info_portion(&amp;quot;esc_kill_danila_quest_complete&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаём имя отметки нашего NPC на карте ==&lt;br /&gt;
&amp;lt;br&amp;gt;Открываем файл &amp;lt;b&amp;gt;stable_bio_name.xml&amp;lt;/b&amp;gt; и пишем там в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;esc_danila&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;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Создаём Game Story Id ==&lt;br /&gt;
&amp;lt;br&amp;gt;Создадим его, чтобы НПС наш отображался на карте. Для этого открываем файл &amp;lt;b&amp;gt;game_story_ids&amp;lt;/b&amp;gt; и пишем в конце:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;20000 = &amp;quot;esc_danila&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Ну вот собственно и всё. Вроде написал всё, что надо. Автор &amp;lt;b&amp;gt;LaRento&amp;lt;/b&amp;gt;. Буду постепенно заливать туторы по созданию разных типов квестов. Всем пока, удачи)&lt;/div&gt;</summary>
		<author><name>LaRento</name></author>	</entry>

	</feed>