<?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=92.127.111.11&amp;*</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=92.127.111.11&amp;*"/>
		<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/92.127.111.11"/>
		<updated>2026-04-29T16:35:54Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._Respawn</id>
		<title>SoC. Respawn</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._Respawn"/>
				<updated>2009-04-28T08:58:47Z</updated>
		
		<summary type="html">&lt;p&gt;92.127.111.11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Респаун, один из самых часто задаваемый вопросов на форумах. Вот, решил написать статью, дабы не втирать одно и тоже каждому, кто не может с этим разобраться.&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------'''RESPAWN NPC'''-----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Для создания респавна, понадобится два файла, '''all.spawn''' и '''spawn_section.ltx'''. Это минимальный набор. Для полной настройки респавнера, нужны ещё '''character_desc_simulation.xml''' и '''npc_profile.xml'''.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''1.''' В '''all.spawn''' создаём секцию респавнера:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[10000]&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = respawn&lt;br /&gt;
name = имя респавнера&lt;br /&gt;
position = координаты (x,y,z)&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = гейм-вертекс&lt;br /&gt;
distance = 10&lt;br /&gt;
level_vertex_id = левел-вертекс&lt;br /&gt;
object_flags = 0xffffff3e&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[respawn]&lt;br /&gt;
respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9&lt;br /&gt;
max_count = 8&lt;br /&gt;
min_count = 4&lt;br /&gt;
max_spawn = 2&lt;br /&gt;
idle_spawn = medium&lt;br /&gt;
conditions = 100&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
; cse_shape properties&lt;br /&gt;
shapes = shape0&lt;br /&gt;
shape0:type = sphere&lt;br /&gt;
shape0:offset = 0,0,0&lt;br /&gt;
shape0:radius = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_space_restrictor properties&lt;br /&gt;
restrictor_type = 0&lt;br /&gt;
&lt;br /&gt;
; se_respawn properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если используется программа '''XrSpawner''', то копируем любую секцию &amp;quot;respawn&amp;quot;; меняем имя объекта, координаты, и в окошке &amp;quot;скрипт&amp;quot; прописываем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[respawn]&lt;br /&gt;
respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9&lt;br /&gt;
max_count = 8&lt;br /&gt;
min_count = 4&lt;br /&gt;
max_spawn = 2&lt;br /&gt;
idle_spawn = medium&lt;br /&gt;
conditions = 100&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
'''respawn_section =''' id респавн-секций из файла '''spawn_section.ltx'''. Цифры после запятой, означают отношение одной секции к другой. Если планируется одинаковое колличество респавна из каждой секции, то цифры ставить не требуется.&lt;br /&gt;
'''max_count =''' колличество респавн-запросов за период времени, пока ГГ находится на уровне. При переходе на другой уровень, счётчик '''max_count''' сбрасывается. (ставить не обязательно)&lt;br /&gt;
'''min_count =''' минимальное колличество нпс, для экстренного респавна. (ставить не обязательно)&lt;br /&gt;
'''max_spawn =''' колличество нпс за один цикл респавна.&lt;br /&gt;
'''idle_spawn =''' тип спавна. Известно три типа '''medium, often, seldom'''. Обычно, используется тип '''medium'''.&lt;br /&gt;
'''conditions ='''Условие респавна. Можно установить проверку условий (инфопоршень), где респавн будет происходить только при выполнении условия. Номер означает общий процент выполнения респавна. Например так:&lt;br /&gt;
'''conditions = {+инфо} 100, 0''' где, респавн будет происходить со сто-процентной вероятностью, только при наличии установленного инфопоршна.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''2.''' В файле '''spawn_section.ltx''', создаём респавн-секции:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[esc_urody_respawn_1]:stalker&lt;br /&gt;
$spawn = &amp;quot;respawn\esc_urody_respawn_1&amp;quot;&lt;br /&gt;
character_profile = sim_urody_novice&lt;br /&gt;
spec_rank = novice&lt;br /&gt;
community = bandit&lt;br /&gt;
&lt;br /&gt;
[esc_urody_respawn_2]:stalker&lt;br /&gt;
$spawn = &amp;quot;respawn\esc_urody_respawn_2&amp;quot;&lt;br /&gt;
character_profile = sim_urody_regular&lt;br /&gt;
spec_rank = regular&lt;br /&gt;
community = bandit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
'''esc_urody_respawn_1''' id респавн-секции.&lt;br /&gt;
'''sim_urody_novice''' и '''sim_urody_regular''' классы профайлов нпс.&lt;br /&gt;
'''novice''' и '''regular''' ранги нпс.&lt;br /&gt;
'''bandit''' группировка нпс.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''3.''' В файле '''npc_profile.xml''' регистрируем классы '''sim_urody_regular''' и '''sim_urody_novice'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;sim_urody_regular&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;class&amp;gt;sim_urody_regular&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/character&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;character id=&amp;quot;sim_urody_novice&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;class&amp;gt;sim_urody_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''4.''' Создаём профили, в файле '''character_desc_simulation.xml''', с классами '''sim_urody_regular''' и '''sim_urody_novice''' и группировкой '''bandit'''.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------'''RESPAWN MUTANTOV'''-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
В принципе, респавн мутантов идентичен респавну нпс. Но с одним лишь отличием, которое его значительно упрощает.&lt;br /&gt;
Вся настройка респавна мутантов, ограничивается секцией в файле &amp;quot;all.spawn&amp;quot;.&lt;br /&gt;
Вписываем секцию респавнера, как указано в -'''RESPAWN NPC'''-.&lt;br /&gt;
Все настройки идентичны, кроме строки '''respawn_section = '''.&lt;br /&gt;
В ней прописываем типы мутантов, из файла &amp;quot;se_respawn.script&amp;quot;. Такие как '''flesh_weak, flesh_normal, dog_weak, boar_strong, и т.д.'''.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------'''ОБЩИЕ НАСТРОЙКИ'''--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Обязательные условия респавна:&lt;br /&gt;
&lt;br /&gt;
'''1.''' На уровне обязательно должен быть хоть один гулаг для респавнящихся нпс и мутантов. Так как колличество неписей для респавна, берётся из доступных мест в гулаге.&lt;br /&gt;
&lt;br /&gt;
'''2.''' Респавн происходит, только после убийства одного, или нескольких неписей.&lt;br /&gt;
&lt;br /&gt;
'''3.''' На каждом уровне, респавн ограничен определёнными типами неписей. Данные ограничения установлены в файле '''misc\smart_terrain_presets.ltx'''. Чтобы сделать возможным респавн неписей, не предусмотренных на данном уровне. Надо в секции нужного уровня, дописать требуемые типы неписей.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Для проверки созданного респавнера, можно не ждать когда сработает системный респавн, а вызвать принудительно респавн в нужной секции. Для этого прописываем где-нибудь вызов функции '''%=respawner_spawn(имя респавнера)%'''. Где, &amp;quot;имя респавнера&amp;quot; - имя секции, созданой в файле all.spawn. Скобки обязательны. &lt;br /&gt;
&lt;br /&gt;
Функция принудительного вызова респавна, находится в файле '''xr_effects.script'''.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------'''RESPAWN ITEMS'''-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Респавн инвентаря в инвентарных ящиках, несколько отличается от способа респавна неписей.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''1.''' Первое, что нам нужно сделать, это создать инвентарный ящик в файле &amp;quot;all.spawn&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[10000]&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = inventory_box&lt;br /&gt;
name =  имя ящика&lt;br /&gt;
position = координаты x,y,z&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = гейм-вертекс&lt;br /&gt;
distance = 0&lt;br /&gt;
level_vertex_id = левел-вертекс&lt;br /&gt;
object_flags = 0xffffffba&lt;br /&gt;
&lt;br /&gt;
story_id = ай-ди ящика&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = equipments\item_box_01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''2.''' Затем, в файле '''game_story_id.ltx''' регистрируем id ящика. (выбираем любое свободное число).&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''3.''' Создаём респавнер в файле '''all.spawn'''. Координаты и размеры зоны респавнера, должны быть такими, чтоб инвентарный ящик поместился внутри зоны респавнера:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[10001]&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = respawn&lt;br /&gt;
name = имя респавнера&lt;br /&gt;
position = координаты x,y,z&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = гейм-вертекс&lt;br /&gt;
distance = 2&lt;br /&gt;
level_vertex_id = левел-вертекс&lt;br /&gt;
object_flags = 0xffffff3e&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[respawn]&lt;br /&gt;
respawn_section = список вещей респавна&lt;br /&gt;
idle_spawn = -1&lt;br /&gt;
parent = ай-ди ящика&lt;br /&gt;
item_spawn = true&lt;br /&gt;
max_count = 7&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
; cse_shape properties&lt;br /&gt;
shapes = shape0&lt;br /&gt;
shape0:type = box&lt;br /&gt;
shape0:axis_x = 0.5,0,0   (ширина зоны респавнера, по X)&lt;br /&gt;
shape0:axis_y = 0,0.5,0   (высота зоны респавнера)&lt;br /&gt;
shape0:axis_z = 0,0,1     (ширина зоны респавнера, по Z)&lt;br /&gt;
shape0:offset = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_space_restrictor properties&lt;br /&gt;
restrictor_type = 3&lt;br /&gt;
&lt;br /&gt;
; se_respawn properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где: &lt;br /&gt;
&lt;br /&gt;
'''respawn_section =''' список вещей респавна. Как и в респавнерах неписей, возможна прописка соотношений между вещами. Например:&lt;br /&gt;
                      respawn_section = wpn_pm,2, vodka,2, medkit,1, energy_drink,2, ammo_9x18_fmj,3  &lt;br /&gt;
&lt;br /&gt;
'''idle_spawn =''' тип спавна. Инвентарь не имеет типов спавна, поэтому ставится (-1).&lt;br /&gt;
&lt;br /&gt;
'''parent =''' ай-ди инвентарного ящика, в котором производить респавн вещей.&lt;br /&gt;
&lt;br /&gt;
'''item_spawn =''' (true\false) возможность включения и отключения респавна. Можно задавать условия.&lt;br /&gt;
&lt;br /&gt;
'''max_count =''' количество респав-циклов за определённый период времени. (Пока ГГ находится на уровне. После перехода ГГ на другой уровень, счётчик сбрасывается).&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''4.''' Создаём вызов респавна. Обычно вызов производится из '''smart_terrain'''. В &amp;quot;custom_data&amp;quot; любого подходящего '''smart_terrain''', под секцией [smart_terrain], вписываем вызов респавна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[smart_terrain]&lt;br /&gt;
respawn = имя респавнера &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Автор статьи '''Singapur22'''.&lt;/div&gt;</summary>
		<author><name>92.127.111.11</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._Respawn</id>
		<title>SoC. Respawn</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._Respawn"/>
				<updated>2009-04-28T08:57:59Z</updated>
		
		<summary type="html">&lt;p&gt;92.127.111.11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Респаун, один из самых часто задаваемый вопросов на форумах. Вот, решил написать статью, дабы не втирать одно и тоже каждому, кто не может с этим разобраться.&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------'''RESPAWN NPC'''-----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Для создания респавна, понадобится два файла, '''all.spawn''' и '''spawn_section.ltx'''. Это минимальный набор. Для полной настройки респавнера, нужны ещё '''character_desc_simulation.xml''' и '''npc_profile.xml'''.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''1.''' В '''all.spawn''' создаём секцию респавнера:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[10000]&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = respawn&lt;br /&gt;
name = имя респавнера&lt;br /&gt;
position = координаты (x,y,z)&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = гейм-вертекс&lt;br /&gt;
distance = 10&lt;br /&gt;
level_vertex_id = левел-вертекс&lt;br /&gt;
object_flags = 0xffffff3e&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[respawn]&lt;br /&gt;
respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9&lt;br /&gt;
max_count = 8&lt;br /&gt;
min_count = 4&lt;br /&gt;
max_spawn = 2&lt;br /&gt;
idle_spawn = medium&lt;br /&gt;
conditions = 100&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
; cse_shape properties&lt;br /&gt;
shapes = shape0&lt;br /&gt;
shape0:type = sphere&lt;br /&gt;
shape0:offset = 0,0,0&lt;br /&gt;
shape0:radius = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_space_restrictor properties&lt;br /&gt;
restrictor_type = 0&lt;br /&gt;
&lt;br /&gt;
; se_respawn properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если используется программа '''XrSpawner''', то копируем любую секцию &amp;quot;respawn&amp;quot;; меняем имя объекта, координаты, и в окошке &amp;quot;скрипт&amp;quot; прописываем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[respawn]&lt;br /&gt;
respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9&lt;br /&gt;
max_count = 8&lt;br /&gt;
min_count = 4&lt;br /&gt;
max_spawn = 2&lt;br /&gt;
idle_spawn = medium&lt;br /&gt;
conditions = 100&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
'''respawn_section =''' id респавн-секций из файла '''spawn_section.ltx'''. Цифры после запятой, означают отношение одной секции к другой. Если планируется одинаковое колличество респавна из каждой секции, то цифры ставить не требуется.&lt;br /&gt;
'''max_count =''' колличество респавн-запросов за период времени, пока ГГ находится на уровне. При переходе на другой уровень, счётчик '''max_count''' сбрасывается. (ставить не обязательно)&lt;br /&gt;
'''min_count =''' минимальное колличество нпс, для экстренного респавна. (ставить не обязательно)&lt;br /&gt;
'''max_spawn =''' колличество нпс за один цикл респавна.&lt;br /&gt;
'''idle_spawn =''' тип спавна. Известно три типа '''medium, often, seldom'''. Обычно, используется тип '''medium'''.&lt;br /&gt;
'''conditions ='''Условие респавна. Можно установить проверку условий (инфопоршень), где респавн будет происходить только при выполнении условия. Номер означает общий процент выполнения респавна. Например так:&lt;br /&gt;
'''conditions = {+инфо} 100, 0''' где, респавн будет происходить со сто-процентной вероятностью, только при наличии установленного инфопоршна.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''2.''' В файле '''spawn_section.ltx''', создаём респавн-секции:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[esc_urody_respawn_1]:stalker&lt;br /&gt;
$spawn = &amp;quot;respawn\esc_urody_respawn_1&amp;quot;&lt;br /&gt;
character_profile = sim_urody_novice&lt;br /&gt;
spec_rank = novice&lt;br /&gt;
community = bandit&lt;br /&gt;
&lt;br /&gt;
[esc_urody_respawn_2]:stalker&lt;br /&gt;
$spawn = &amp;quot;respawn\esc_urody_respawn_2&amp;quot;&lt;br /&gt;
character_profile = sim_urody_regular&lt;br /&gt;
spec_rank = regular&lt;br /&gt;
community = bandit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
'''esc_urody_respawn_1''' id респавн-секции.&lt;br /&gt;
'''sim_urody_novice''' и '''sim_urody_regular''' классы профайлов нпс.&lt;br /&gt;
'''novice''' и '''regular''' ранги нпс.&lt;br /&gt;
'''bandit''' группировка нпс.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''3.''' В файле '''npc_profile.xml''' регистрируем классы '''sim_urody_regular''' и '''sim_urody_novice'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;sim_urody_regular&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;class&amp;gt;sim_urody_regular&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/character&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;character id=&amp;quot;sim_urody_novice&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;class&amp;gt;sim_urody_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''4.''' Создаём профили, в файле '''character_desc_simulation.xml''', с классами '''sim_urody_regular''' и '''sim_urody_novice''' и группировкой '''bandit'''.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------'''RESPAWN MUTANTOV'''-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
В принципе, респавн мутантов идентичен респавну нпс. Но с одним лишь отличием, которое его значительно упрощает.&lt;br /&gt;
Вся настройка респавна мутантов, ограничивается секцией в файле &amp;quot;all.spawn&amp;quot;.&lt;br /&gt;
Вписываем секцию респавнера, как указано в -'''RESPAWN NPC'''-.&lt;br /&gt;
Все настройки идентичны, кроме строки '''respawn_section = '''.&lt;br /&gt;
В ней прописываем типы мутантов, из файла &amp;quot;se_respawn.script&amp;quot;. Такие как '''flesh_weak, flesh_normal, dog_weak, boar_strong, и т.д.'''.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------'''ОБЩИЕ НАСТРОЙКИ'''--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Обязательные условия респавна:&lt;br /&gt;
&lt;br /&gt;
'''1.''' На уровне обязательно должен быть хоть один гулаг для респавнящихся нпс и мутантов. Так как колличество неписей для респавна, берётся из доступных мест в гулаге.&lt;br /&gt;
&lt;br /&gt;
'''2.''' Респавн происходит, только после убийства одного, или нескольких неписей.&lt;br /&gt;
&lt;br /&gt;
'''3.''' На каждом уровне, респавн ограничен определёнными типами неписей. Данные ограничения установлены в файле '''misc\smart_terrain_presets.ltx'''. Чтобы сделать возможным респавн неписей, не предусмотренных на данном уровне. Надо в секции нужного уровня, дописать требуемые типы неписей.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Для проверки созданного респавнера, можно не ждать когда сработает системный респавн, а вызвать принудительно респавн в нужной секции. Для этого прописываем где-нибудь вызов функции '''%=respawner_spawn(имя респавнера)%'''. Где, &amp;quot;имя респавнера&amp;quot; - имя секции, созданой в файле all.spawn. Скобки обязательны. &lt;br /&gt;
&lt;br /&gt;
Функция принудительного вызова респавна, находится в файле '''xr_effects.script'''.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------'''RESPAWN ITEMS'''-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Респавн инвентаря в инвентарных ящиках, несколько отличается от способа респавна неписей.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''1.''' Первое, что нам нужно сделать, это создать инвентарный ящик в файле &amp;quot;all.spawn&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[10000]&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = inventory_box&lt;br /&gt;
name =  имя ящика&lt;br /&gt;
position = координаты x,y,z&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = гейм-вертекс&lt;br /&gt;
distance = 0&lt;br /&gt;
level_vertex_id = левел-вертекс&lt;br /&gt;
object_flags = 0xffffffba&lt;br /&gt;
&lt;br /&gt;
story_id = ай-ди ящика&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = equipments\item_box_01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''2.''' Затем, в файле '''game_story_id.ltx''' регистрируем id ящика. (выбираем любое свободное число).&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''3.''' Создаём респавнер в файле '''all.spawn'''. Координаты и размеры зоны респавнера, должны быть такими, чтоб инвентарный ящик поместился внутри зоны респавнера:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[10001]&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = respawn&lt;br /&gt;
name = имя респавнера&lt;br /&gt;
position = координаты x,y,z&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = гейм-вертекс&lt;br /&gt;
distance = 2&lt;br /&gt;
level_vertex_id = левел-вертекс&lt;br /&gt;
object_flags = 0xffffff3e&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[respawn]&lt;br /&gt;
respawn_section = список вещей респавна&lt;br /&gt;
idle_spawn = -1&lt;br /&gt;
parent = ай-ди ящика&lt;br /&gt;
item_spawn = true&lt;br /&gt;
max_count = 7&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
; cse_shape properties&lt;br /&gt;
shapes = shape0&lt;br /&gt;
shape0:type = box&lt;br /&gt;
shape0:axis_x = 0.5,0,0   (ширина зоны респавнера, по X)&lt;br /&gt;
shape0:axis_y = 0,0.5,0   (высота зоны респавнера)&lt;br /&gt;
shape0:axis_z = 0,0,1     (ширина зоны респавнера, по Z)&lt;br /&gt;
shape0:offset = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_space_restrictor properties&lt;br /&gt;
restrictor_type = 3&lt;br /&gt;
&lt;br /&gt;
; se_respawn properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где: &lt;br /&gt;
&lt;br /&gt;
'''respawn_section =''' список вещей респавна. Как и в респавнерах неписей, возможна прописка соотношений между вещами. Например:&lt;br /&gt;
                      respawn_section = wpn_pm,2, vodka,2, medkit,1, energy_drink,2, ammo_9x18_fmj,3  &lt;br /&gt;
&lt;br /&gt;
'''idle_spawn =''' тип спавна. Инвентарь не имеет типов спавна, поэтому ставится (-1).&lt;br /&gt;
&lt;br /&gt;
'''parent =''' ай-ди инвентарного ящика, в котором производить респавн вещей.&lt;br /&gt;
&lt;br /&gt;
'''item_spawn =''' (true\false) возможность включения и отключения респавна. Можно задавать условия.&lt;br /&gt;
&lt;br /&gt;
'''max_count =''' количество респав-циклов за определённый период времени. (Пока ГГ находится на уровне. После перехода ГГ на другой уровень, счётчик сбрасывается).&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''4.''' Создаём вызов респавна. Обычно вызов производится из '''smart_terrain'''. В &amp;quot;custom_data&amp;quot; любого подходящего '''smart_terrain''', под секцией [smart_terrain], вписываем вызов респавна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[smart_terrain]&lt;br /&gt;
respawn = имя респавнера &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Автор статьи '''Singapur22'''.&lt;/div&gt;</summary>
		<author><name>92.127.111.11</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._Respawn</id>
		<title>SoC. Respawn</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._Respawn"/>
				<updated>2009-04-28T08:49:14Z</updated>
		
		<summary type="html">&lt;p&gt;92.127.111.11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Респаун, один из самых часто задаваемый вопросов на форумах. Вот, решил написать статью, дабы не втирать одно и тоже каждому, кто не может с этим разобраться.&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------'''RESPAWN NPC'''-----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Для создания респавна, понадобится два файла, '''all.spawn''' и '''spawn_section.ltx'''. Это минимальный набор. Для полной настройки респавнера, нужны ещё '''character_desc_simulation.xml''' и '''npc_profile.xml'''.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''1.''' В '''all.spawn''' создаём секцию респавнера:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[10000]&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = respawn&lt;br /&gt;
name = имя респавнера&lt;br /&gt;
position = координаты (x,y,z)&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = гейм-вертекс&lt;br /&gt;
distance = 10&lt;br /&gt;
level_vertex_id = левел-вертекс&lt;br /&gt;
object_flags = 0xffffff3e&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[respawn]&lt;br /&gt;
respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9&lt;br /&gt;
max_count = 8&lt;br /&gt;
min_count = 4&lt;br /&gt;
max_spawn = 2&lt;br /&gt;
idle_spawn = medium&lt;br /&gt;
conditions = 100&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
; cse_shape properties&lt;br /&gt;
shapes = shape0&lt;br /&gt;
shape0:type = sphere&lt;br /&gt;
shape0:offset = 0,0,0&lt;br /&gt;
shape0:radius = 1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_space_restrictor properties&lt;br /&gt;
restrictor_type = 0&lt;br /&gt;
&lt;br /&gt;
; se_respawn properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если используется программа '''XrSpawner''', то копируем любую секцию &amp;quot;respawn&amp;quot;; меняем имя объекта, координаты, и в окошке &amp;quot;скрипт&amp;quot; прописываем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[respawn]&lt;br /&gt;
respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9&lt;br /&gt;
max_count = 8&lt;br /&gt;
min_count = 4&lt;br /&gt;
max_spawn = 2&lt;br /&gt;
idle_spawn = medium&lt;br /&gt;
conditions = 100&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
'''respawn_section =''' id респавн-секций из файла '''spawn_section.ltx'''. Цифры после запятой, означают отношение одной секции к другой. Если планируется одинаковое колличество респавна из каждой секции, то цифры ставить не требуется.&lt;br /&gt;
'''max_count =''' колличество респавн-запросов за период времени, пока ГГ находится на уровне. При переходе на другой уровень, счётчик '''max_count''' сбрасывается. (ставить не обязательно)&lt;br /&gt;
'''min_count =''' минимальное колличество нпс, для экстренного респавна. (ставить не обязательно)&lt;br /&gt;
'''max_spawn =''' колличество нпс за один цикл респавна.&lt;br /&gt;
'''idle_spawn =''' тип спавна. Известно три типа '''medium, often, seldom'''. Обычно, используется тип '''medium'''.&lt;br /&gt;
'''conditions ='''Условие респавна. Можно установить проверку условий (инфопоршень), где респавн будет происходить только при выполнении условия. Номер означает общий процент выполнения респавна. Например так:&lt;br /&gt;
'''conditions = {+инфо} 100, 0''' где, респавн будет происходить со сто-процентной вероятностью, только при наличии установленного инфопоршна.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''2.''' В файле '''spawn_section.ltx''', создаём респавн-секции:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[esc_urody_respawn_1]:stalker&lt;br /&gt;
$spawn = &amp;quot;respawn\esc_urody_respawn_1&amp;quot;&lt;br /&gt;
character_profile = sim_urody_novice&lt;br /&gt;
spec_rank = novice&lt;br /&gt;
community = bandit&lt;br /&gt;
&lt;br /&gt;
[esc_urody_respawn_2]:stalker&lt;br /&gt;
$spawn = &amp;quot;respawn\esc_urody_respawn_2&amp;quot;&lt;br /&gt;
character_profile = sim_urody_regular&lt;br /&gt;
spec_rank = regular&lt;br /&gt;
community = bandit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
'''esc_urody_respawn_1''' id респавн-секции.&lt;br /&gt;
'''sim_urody_novice''' и '''sim_urody_regular''' классы профайлов нпс.&lt;br /&gt;
'''novice''' и '''regular''' ранги нпс.&lt;br /&gt;
'''bandit''' группировка нпс.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''3.''' В файле '''npc_profile.xml''' регистрируем классы '''sim_urody_regular''' и '''sim_urody_novice'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;character id=&amp;quot;sim_urody_regular&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;class&amp;gt;sim_urody_regular&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/character&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;character id=&amp;quot;sim_urody_novice&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;class&amp;gt;sim_urody_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/character&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''4.''' Создаём профили, в файле '''character_desc_simulation.xml''', с классами '''sim_urody_regular''' и '''sim_urody_novice''' и группировкой '''bandit'''.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
********************************************************************************************************************************************************&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------'''RESPAWN MUTANTOV'''-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
В принципе, респавн мутантов идентичен респавну нпс. Но с одним лишь отличием, которое его значительно упрощает.&lt;br /&gt;
Вся настройка респавна мутантов, ограничивается секцией в файле &amp;quot;all.spawn&amp;quot;.&lt;br /&gt;
Вписываем секцию респавнера, как указано в -'''RESPAWN NPC'''-.&lt;br /&gt;
Все настройки идентичны, кроме строки '''respawn_section = '''.&lt;br /&gt;
В ней прописываем типы мутантов, из файла &amp;quot;se_respawn.script&amp;quot;. Такие как '''flesh_weak, flesh_normal, dog_weak, boar_strong, и т.д.'''.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
********************************************************************************************************************************************************&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------'''ОБЩИЕ НАСТРОЙКИ'''--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Обязательные условия респавна:&lt;br /&gt;
&lt;br /&gt;
'''1.''' На уровне обязательно должен быть хоть один гулаг для респавнящихся нпс и мутантов. Так как колличество неписей для респавна, берётся из доступных мест в гулаге.&lt;br /&gt;
&lt;br /&gt;
'''2.''' Респавн происходит, только после убийства одного, или нескольких неписей.&lt;br /&gt;
&lt;br /&gt;
'''3.''' На каждом уровне, респавн ограничен определёнными типами неписей. Данные ограничения установлены в файле '''misc\smart_terrain_presets.ltx'''. Чтобы сделать возможным респавн неписей, не предусмотренных на данном уровне. Надо в секции нужного уровня, дописать требуемые типы неписей.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Для проверки созданного респавнера, можно не ждать когда сработает системный респавн, а вызвать принудительно респавн в нужной секции. Для этого прописываем где-нибудь вызов функции '''%=respawner_spawn(имя респавнера)%'''. Где, &amp;quot;имя респавнера&amp;quot; - имя секции, созданой в файле all.spawn. Скобки обязательны. &lt;br /&gt;
&lt;br /&gt;
Функция принудительного вызова респавна, находится в файле '''xr_effects.script'''.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
********************************************************************************************************************************************************&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------'''RESPAWN ITEMS'''-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Респавн инвентаря в инвентарных ящиках, несколько отличается от способа респавна неписей.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''1.''' Первое, что нам нужно сделать, это создать инвентарный ящик в файле &amp;quot;all.spawn&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[10000]&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = inventory_box&lt;br /&gt;
name =  имя ящика&lt;br /&gt;
position = координаты x,y,z&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = гейм-вертекс&lt;br /&gt;
distance = 0&lt;br /&gt;
level_vertex_id = левел-вертекс&lt;br /&gt;
object_flags = 0xffffffba&lt;br /&gt;
&lt;br /&gt;
story_id = ай-ди ящика&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = equipments\item_box_01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''2.''' Затем, в файле '''game_story_id.ltx''' регистрируем id ящика. (выбираем любое свободное число).&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''3.''' Создаём респавнер в файле '''all.spawn'''. Координаты и размеры зоны респавнера, должны быть такими, чтоб инвентарный ящик поместился внутри зоны респавнера:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[10001]&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = respawn&lt;br /&gt;
name = имя респавнера&lt;br /&gt;
position = координаты x,y,z&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = гейм-вертекс&lt;br /&gt;
distance = 2&lt;br /&gt;
level_vertex_id = левел-вертекс&lt;br /&gt;
object_flags = 0xffffff3e&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[respawn]&lt;br /&gt;
respawn_section = список вещей респавна&lt;br /&gt;
idle_spawn = -1&lt;br /&gt;
parent = ай-ди ящика&lt;br /&gt;
item_spawn = true&lt;br /&gt;
max_count = 7&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
; cse_shape properties&lt;br /&gt;
shapes = shape0&lt;br /&gt;
shape0:type = box&lt;br /&gt;
shape0:axis_x = 0.5,0,0   (ширина зоны респавнера, по X)&lt;br /&gt;
shape0:axis_y = 0,0.5,0   (высота зоны респавнера)&lt;br /&gt;
shape0:axis_z = 0,0,1     (ширина зоны респавнера, по Z)&lt;br /&gt;
shape0:offset = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_space_restrictor properties&lt;br /&gt;
restrictor_type = 3&lt;br /&gt;
&lt;br /&gt;
; se_respawn properties&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где: &lt;br /&gt;
&lt;br /&gt;
'''respawn_section =''' список вещей респавна. Как и в респавнерах неписей, возможна прописка соотношений между вещами. Например:&lt;br /&gt;
                      respawn_section = wpn_pm,2, vodka,2, medkit,1, energy_drink,2, ammo_9x18_fmj,3  &lt;br /&gt;
&lt;br /&gt;
'''idle_spawn =''' тип спавна. Инвентарь не имеет типов спавна, поэтому ставится (-1).&lt;br /&gt;
&lt;br /&gt;
'''parent =''' ай-ди инвентарного ящика, в котором производить респавн вещей.&lt;br /&gt;
&lt;br /&gt;
'''item_spawn =''' (true\false) возможность включения и отключения респавна. Можно задавать условия.&lt;br /&gt;
&lt;br /&gt;
'''max_count =''' количество респав-циклов за определённый период времени. (Пока ГГ находится на уровне. После перехода ГГ на другой уровень, счётчик сбрасывается).&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
'''4.''' Создаём вызов респавна. Обычно вызов производится из '''smart_terrain'''. В &amp;quot;custom_data&amp;quot; любого подходящего '''smart_terrain''', под секцией [smart_terrain], вписываем вызов респавна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[smart_terrain]&lt;br /&gt;
respawn = имя респавнера &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Автор статьи '''Singapur22'''.&lt;/div&gt;</summary>
		<author><name>92.127.111.11</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B9_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8</id>
		<title>Создание новой группировки</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B9_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8"/>
				<updated>2009-04-28T07:46:49Z</updated>
		
		<summary type="html">&lt;p&gt;92.127.111.11: /* Базовый уровень */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Новая группировка==&lt;br /&gt;
&lt;br /&gt;
Сегодня мы создадим новую группировку. Назовем её, скажем, &amp;quot;Ветер&amp;quot;. Не суть важно.&lt;br /&gt;
&lt;br /&gt;
==Практика==&lt;br /&gt;
&lt;br /&gt;
===Базовый уровень===&lt;br /&gt;
&lt;br /&gt;
'''1.''' Для начала в '''game_relations.ltx''' и в таблицу отношений группировок в конце и в заголовке добавляем название своей группировки и коэффициенты отношений к ней у других группировок. Также, не забываем прописать её собственное отношение к другим группировкам:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[communities_relations]&lt;br /&gt;
;|actor  |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg   |freedom|bandit |zombied|strange|trader|arena_enemy|wind|&lt;br /&gt;
;=================================================================================================================================&lt;br /&gt;
actor = 0,	   0,	   0,	   0,  -5000,  -5000,  -5000,      0,	   0,	   0,  -5000,  -5000,	   0,	  0,  -5000, 0&lt;br /&gt;
actor_dolg = 0,	   0,	   0,      0,  -5000,   -500,  -5000,   5000,    600,  -5000,  -5000,  -5000,	   0,	  0,  -5000&lt;br /&gt;
actor_freedom = 0,	   0,	   0,	   0,  -5000,  -5000,  -5000,  -1500,  -5000,   5000,	   0,  -5000,	   0,	 0,  -5000, 0&lt;br /&gt;
&lt;br /&gt;
stalker	= 0,	   0,	   0,	   0,  -5000,  -5000,  -5000,      0,	   0,	   0,  -5000,  -5000,	   0,	  0,  -5000, 0&lt;br /&gt;
monolith = -5000,  -5000,  -5000,  -5000,   5000,  -5000,  -5000,  -5000,  -5000,  -5000,   5000,   5000,  -5000,	 0,  -5000, 0&lt;br /&gt;
military = -5000,  -5000,  -5000,  -5000,  -5000,   5000,  -5000,      0,  -5000,  -5000,  -5000,  -5000, 	   0,	 0,  -5000, 0&lt;br /&gt;
killer = -5000,  -5000,      0,  -5000,  -5000,  -5000,   5000,  -5000,  -5000,  -5000,	   0,  -5000,  -5000,	  0,  -5000, 0&lt;br /&gt;
ecolog = 0,	 600,  -5000,      0,  -5000,   1000,  -5000,   5000,    500,  -5000,   -500,  -5000,	   0,	  0,      0, 0&lt;br /&gt;
dolg = 0,    600,  -5000,      0,  -5000,   -500,  -5000,   5000,   5000,  -5000,  -5000,  -5000,	   0,	  0,      0, 0&lt;br /&gt;
freedom = 0,  -5000,	 600,	   0,  -5000,  -5000,  -5000,  -1500,  -5000,   5000,	   0,  -5000,	   0,	  0,      0, 0&lt;br /&gt;
bandit = -5000,  -5000,	   0,  -5000,  -5000,   -500,      0,  -5000,  -5000,	   0,	   0,  -5000,  -5000,	  0,  -5000, 0&lt;br /&gt;
zombied	= -5000,  -5000,  -5000,  -5000,   5000,  -5000,  -5000,  -5000,  -5000,  -5000,  -5000,   5000,  -5000,	 0,  -5000, 0&lt;br /&gt;
stranger = 0,	   0,	   0,      0,  -5000,  -5000,  -5000,      0,	   0,	   0,   -500,  -5000,	   0,	  0,      0, 0&lt;br /&gt;
trader = 0,	   0,	   0,	   0,	   0, 	   0,	   0,	   0,	   0,	   0,	   0,	   0,      0,	  0,      0&lt;br /&gt;
arena_enemy = -5000,  -5000,  -5000,  -5000,  -5000,  -5000,      0,      0,      0,  -5000,  -5000,      0,      0,	  0,     0, 0&lt;br /&gt;
&lt;br /&gt;
wind = 0,	   0,	   0,	   0,  -5000,  -5000,  -5000,      0,	   0,	   0,  -5000,  -5000,	   0,	  0,  -5000, 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
мир= 0,    0,     0,    700, 0,    0,      0,   1000,    100,      0,      0,      0,  -5000,      0,      0,   100,       0,   &lt;br /&gt;
Также, изменим эту строку, добавив туда имя и номер группировки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;мир&amp;gt;;названия группировок&lt;br /&gt;
communities = actor, 0, actor_dolg, 1, actor_freedom, 2, stalker, 5, monolith, 6, military, 7, killer, 8, ecolog, 9, dolg, 10, &lt;br /&gt;
freedom, 11, bandit, 12, zombied, 13, stranger, 14, trader, 15, arena_enemy, 16, wind, 18,&amp;lt;мир, 20&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Отсчет идет построчно начиная сверху. Хотя есть небольшой нюанс. У первых трех строк - нумерация начинается с нуля, с остальных группировок она идет как надо. Для wind выставили 18, так как мы эту группировку отделили от других.&lt;br /&gt;
&lt;br /&gt;
Далее, в разделе ''[communities_sympathy]'' в конце добавляем свою группировку и коэффициент &amp;quot;впечатлительности&amp;quot; - чем он меньше, тем меньше отношение группировки будет меняться к вам в целом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[communities_sympathy]&lt;br /&gt;
actor		=		0.0&lt;br /&gt;
actor_dolg	=		0.0&lt;br /&gt;
actor_freedom	=		0.0&lt;br /&gt;
stalker		=		0.0&lt;br /&gt;
monolith	=		0.0&lt;br /&gt;
military	=		0.0&lt;br /&gt;
killer		=		0.0&lt;br /&gt;
ecolog		=		0.0&lt;br /&gt;
dolg		=		0.1&lt;br /&gt;
freedom		=		0.1&lt;br /&gt;
bandit		=		0.0&lt;br /&gt;
zombied		=		0.0&lt;br /&gt;
trader		=		0.0&lt;br /&gt;
stranger	=		0.0&lt;br /&gt;
arena_enemy	=	    	0.0&lt;br /&gt;
wind 		= 		0.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
мир             =               0.1&lt;br /&gt;
'''2.''' После этого в файле '''death_manager.script''' ищем строку ''local community_list'' и в скобках добавляем название своей группировки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;function init_drop_settings()&lt;br /&gt;
	local community_list = { &amp;quot;stalker&amp;quot;, &amp;quot;dolg&amp;quot;, &amp;quot;freedom&amp;quot;, &amp;quot;bandit&amp;quot;, &amp;quot;military&amp;quot;, &amp;quot;zombied&amp;quot;, &amp;quot;ecolog&amp;quot;, &amp;quot;killer&amp;quot;, &amp;quot;monolith&amp;quot;, &lt;br /&gt;
&amp;quot;arena_enemy&amp;quot;, &amp;quot;actor_dolg&amp;quot;, &amp;quot;wind&amp;quot; }&amp;lt;/pre&amp;gt;, &amp;quot;мир&amp;quot; }&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''3.''' В файле '''death_items_by_communities.ltx''' пишем ''[x]:stalker'' (вместо ''x'' - название вашей группировки):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[...]&lt;br /&gt;
af_dummy_spring			= 0&lt;br /&gt;
af_fuzz_kolobok			= 0&lt;br /&gt;
&lt;br /&gt;
;Еда&lt;br /&gt;
vodka					= 0&lt;br /&gt;
&lt;br /&gt;
[arena_enemy]&lt;br /&gt;
[actor_dolg]&lt;br /&gt;
&lt;br /&gt;
[wind]: stalker&lt;br /&gt;
bread					= 0&lt;br /&gt;
kolbasa					= 0&lt;br /&gt;
vodka					= 0&lt;br /&gt;
energy_drink			= 0.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[мир]: stalker&lt;br /&gt;
bread                                   = 0 &lt;br /&gt;
kolbasa                                 = 0&lt;br /&gt;
vodka                                   = 0&lt;br /&gt;
energy_drink                    = 0.3 &lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
'''4.''' Если предусматривается респавн бойцов новой группировки, в '''se_respawn.script''' прописываем в '''local simMaxCount = {''' после строчек с зомбированными сталкерами строку:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wind_novice = 20, wind_regular = 20, wind_veteran = 20, wind_master = 6,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
мир novice =30, мир_regular =20, мир_veteran =20, мир_master =10&lt;br /&gt;
&lt;br /&gt;
И в файле '''misc\smart_terrain_presets.ltx''', в секциях требуемых уровней, на которых предусматривается респаун бойцов новой группировки, добавляем строки с названием своей группировки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[l02_garbage]&lt;br /&gt;
wind = novice, experienced, veteran, master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''5.''' Чтобы при убийстве непися новой группировки игра не вылетала в '''xr_statistic.script''',&lt;br /&gt;
&lt;br /&gt;
после строки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4,&lt;br /&gt;
пишем&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dark_stalker_novice = 1, dark_stalker_experienced = 2, dark_stalker_veteran = 3, dark_stalker_master = 4,&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6.''' Ну а в '''character_desk_x.xml''' выбираем любого NPC (или группу) и меняем группировку на свою:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;мир&amp;gt;&amp;lt;!---esc_wolf---&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_wolf&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;esc_wolf_name&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_stalker_neytral_balon_1&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_wolf_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_wolf&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;wind&amp;lt;/community&amp;gt;&lt;br /&gt;
		[...]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''7.''' Чтобы у персонажа в графе &amp;quot;Группировка&amp;quot; отображалось не &amp;quot;wind&amp;quot;, а &amp;quot;Ветер&amp;quot;, зарегистрируем соответствующую строку в файле string_table_general.xml:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;windows-1251&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;string_table&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;wind&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Ветер&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;actor&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Одиночка&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	[...]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''8.''' Существует возможность создать для нашей новой группировки места, где они будут ходить (''*_terrain'' брать из '''m_stalker.ltx'''):&lt;br /&gt;
&lt;br /&gt;
То есть, к примеру, существует секция:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[stalker_terrain]&lt;br /&gt;
	255,000,255,255&lt;br /&gt;
	008,001,255,255 ;Разрешено ходить по опасным местам на баре&lt;br /&gt;
	012,001,255,255 ;Разрешено ходить по опасным местам на Милитари&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда можно создать новую, по аналогии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wind_terrain]&lt;br /&gt;
	255,000,255,255&lt;br /&gt;
	008,001,255,255 ;Разрешено ходить по опасным местам на баре&lt;br /&gt;
	012,001,255,255 ;Разрешено ходить по опасным местам на Милитари&lt;br /&gt;
	010,001,255,255	;Разрешено ходить по опасным местам на янтаре&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Здесь, очевидно, указаны координаты самого уровня. Для каждого уровня существует своя начальная координата.&lt;br /&gt;
&lt;br /&gt;
===Продвинутый уровень===&lt;br /&gt;
&lt;br /&gt;
Такой метод достаточно примитивен. Это не полноценная группировка. Нам нужны соответствующие диалоги, возможность получения квестов и вступления в группировку, уникальные NPC.&lt;br /&gt;
&lt;br /&gt;
====Квесты====&lt;br /&gt;
&lt;br /&gt;
Добавим квесты, которые нужно выполнить для группировки. Пока - простые поручения распространенных типов.&lt;br /&gt;
&lt;br /&gt;
Во-первых, пропишите в список диалогов персонажа следующие строки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&amp;lt;actor_dialog&amp;gt;[tm_trader_diolog]_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;[tm_wolf_diolog]_reward&amp;lt;/actor_dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры названий: ''tm_trader_dialog'', ''tm_wolf_dialog''...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray&amp;quot;&amp;gt;Внимание! Метод не проверен.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этим мы добавили ему ветку диалога &amp;quot;Есть работа?&amp;quot;, а также ветку для награды за квест/отказа от него. Теперь зарегистрируем в '''task_manager.ltx''' набор новых заданий.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[list]&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
;--------Wind------------------------&lt;br /&gt;
;----------Kill Stalker----&lt;br /&gt;
wind_kill_stalker&lt;br /&gt;
;----------Find Item----	&lt;br /&gt;
wind_find_item&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
;tasks for Wind	&lt;br /&gt;
&lt;br /&gt;
[wind_find_item]&lt;br /&gt;
type = find_item&lt;br /&gt;
community = actor&lt;br /&gt;
text = [ссылка на текст с рассказом заказчика о задании]&lt;br /&gt;
description = [ссылка на текст с описанием задания]&lt;br /&gt;
parent = [имя NPC-заказчика]&lt;br /&gt;
target = scientific_outfit&lt;br /&gt;
reward_money = 5000&lt;br /&gt;
reward_reputation = +5&lt;br /&gt;
reward_rank = 4&lt;br /&gt;
reward_item = wpn_sig_m1&lt;br /&gt;
time = 86400&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[wind_kill_stalker]&lt;br /&gt;
type = kill_stalker&lt;br /&gt;
community = actor&lt;br /&gt;
text = [ссылка на текст с рассказом заказчика о задании]&lt;br /&gt;
description = [ссылка на текст с описанием задания]&lt;br /&gt;
parent = [имя NPC-заказчика]&lt;br /&gt;
target = sim_stalker_master_master&lt;br /&gt;
reward_money = 4000&lt;br /&gt;
reward_reputation = +5&lt;br /&gt;
reward_rank = 9&lt;br /&gt;
reward_item = ammo_5.56x45_ap, ammo_5.56x45_ap, ammo_5.56x45_ap&lt;br /&gt;
time = 86400&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Не забудьте прописать описания заданий в текстовые массивы. Подробнее о редактировании '''task_manager.ltx''' читайте в [[Однотипные квесты|уроке]], посвященном однотипным квестам.&lt;br /&gt;
&lt;br /&gt;
Да, и зарегистрируйте сами ветки диалогов в файле '''dialogs.xml'''. Вот пример того, как это сделано для заданий &amp;quot;Долга&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;    &amp;lt;dialog id=&amp;quot;tm_dolg_dialog&amp;quot; priority=&amp;quot;-1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;init_func&amp;gt;task_manager.init_dolg_task_dialog&amp;lt;/init_func&amp;gt;&lt;br /&gt;
    &amp;lt;/dialog&amp;gt;&lt;br /&gt;
    &amp;lt;dialog id=&amp;quot;tm_dolg_reward&amp;quot; priority=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;init_func&amp;gt;task_manager.init_dolg_reward_dialog&amp;lt;/init_func&amp;gt;&lt;br /&gt;
		&amp;lt;precondition&amp;gt;task_manager.has_active_vendor_task&amp;lt;/precondition&amp;gt;&lt;br /&gt;
    &amp;lt;/dialog&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Соответственно, пройдем туда, куда указывает строка ''task_manager.init_dolg_task_dialog'' - в '''task_manager.script''':	 &lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;function init_dolg_task_dialog(dlg)	 &lt;br /&gt;
	get_random_task():init_task_dialog(dlg, &amp;quot;dolg&amp;quot;)&amp;lt;/pre&amp;gt;	 &lt;br /&gt;
		 &lt;br /&gt;
По аналогии делаем и с нашим &amp;quot;Ветром&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Вступление в группировку====&lt;br /&gt;
&lt;br /&gt;
Реализуем возможность вступления в группировку.&lt;br /&gt;
&lt;br /&gt;
Прописываем в '''dialogs.script''' такие action'ы:&lt;br /&gt;
&amp;lt;pre&amp;gt;-----------------------------------------------------------------------------------&lt;br /&gt;
-- Community&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
function actor_set_wind (actor, npc)&lt;br /&gt;
printf (&amp;quot;ACTOR NOW IN WIND COMMUNITY&amp;quot;&lt;br /&gt;
if db.actor then&lt;br /&gt;
db.actor:set_character_community (&amp;quot;actor_wind&amp;quot;, 0, 0)&lt;br /&gt;
end&lt;br /&gt;
return true&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После чего создадим диалог, и сделаем в нем фразу с action'ом вида ''&amp;lt;action&amp;gt;actor_set_wind&amp;lt;/action&amp;gt;''. Советую изучить [[Создание диалогов|урок]], посвященный диалогам.&lt;br /&gt;
&lt;br /&gt;
====Новые NPC====&lt;br /&gt;
&lt;br /&gt;
Лучше всего всё вышеприведенное повесить на нового, уникального персонажа. Способ его спавна описан [[Cпавн через скрипт#Спавн NPC|здесь]].&lt;br /&gt;
&lt;br /&gt;
==Авторы==&lt;br /&gt;
&lt;br /&gt;
Статья [[Участник:BAC9-FLCL|BAC9-FLCL]].&amp;lt;br&amp;gt;&lt;br /&gt;
Способ открыт [[Участник:Arhet|Arhet]] ([[Team:SRP Team|SRP Team]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Альтернатива - статья [[Участник:SenseyVit|SenseyVit]] ([http://stalkerhunt.ucoz.ru/publ/1-1-0-2 открыть]).&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]][[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>92.127.111.11</name></author>	</entry>

	</feed>