SoC. Respawn — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

SoC. Respawn — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
 
м (Защищена страница «SoC. Respawn» ([edit=autoconfirmed] (бессрочно) [move=autoconfirmed] (бессрочно)))
 
(не показаны 11 промежуточные версии 5 участников)
Строка 1: Строка 1:
 
Респаун, один из самых часто задаваемый вопросов на форумах. Вот, решил написать статью, дабы не втирать одно и тоже каждому, кто не может с этим разобраться.
 
Респаун, один из самых часто задаваемый вопросов на форумах. Вот, решил написать статью, дабы не втирать одно и тоже каждому, кто не может с этим разобраться.
  
------------------------------------------------------------------------------------------------------------------------------------------------------
+
-----------------------------------------------------------------------------------------------------------------------------------
  
--------------------------------------------------------'''RESPAWN NPC'''-----------------------------------------------------------------------------
+
== Respawn NPC. ==
  
Для создания респавна, понадобится два файла, '''all.spawn''' и '''spawn_section.ltx'''. Это минимальный набор. Для полной настройки респавнера, нужны ещё '''character_desc_simulation.xml''' и '''npc_profile.xml'''.
+
Для создания респавна NPC, понадобится два файла: '''all.spawn''' и '''spawn_section.ltx'''.  
 +
<br>Это минимальный набор. Для полной настройки респавнера, нужны ещё '''character_desc_simulation.xml''' и '''npc_profile.xml'''.
  
 
-----------------------------------------------------------------------
 
-----------------------------------------------------------------------
Строка 11: Строка 12:
 
'''1.''' В '''all.spawn''' создаём секцию респавнера:
 
'''1.''' В '''all.spawn''' создаём секцию респавнера:
  
<pre>[10000]
+
<ini>
 +
[10000]
 
; cse_abstract properties
 
; cse_abstract properties
 
section_name = respawn
 
section_name = respawn
Строка 42: Строка 44:
 
restrictor_type = 0
 
restrictor_type = 0
  
; se_respawn properties</pre>
+
; se_respawn properties
 +
</ini>
  
 
Если используется программа '''XrSpawner''', то копируем любую секцию "respawn"; меняем имя объекта, координаты, и в окошке "скрипт" прописываем:
 
Если используется программа '''XrSpawner''', то копируем любую секцию "respawn"; меняем имя объекта, координаты, и в окошке "скрипт" прописываем:
  
<pre>[respawn]
+
<ini>
 +
[respawn]
 
respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9
 
respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9
 
max_count = 8
 
max_count = 8
Строка 52: Строка 56:
 
max_spawn = 2
 
max_spawn = 2
 
idle_spawn = medium
 
idle_spawn = medium
conditions = 100</pre>
+
conditions = 100
 +
</ini>
  
 
Где:
 
Где:
'''respawn_section =''' id респавн-секций из файла '''spawn_section.ltx'''. Цифры после запятой, означают отношение одной секции к другой. Если планируется одинаковое колличество респавна из каждой секции, то цифры ставить не требуется.
+
<br>'''respawn_section =''' id респавн-секций из файла '''spawn_section.ltx'''. Цифры после запятой, означают отношение одной секции к другой. Если планируется одинаковое колличество респавна из каждой секции, то цифры ставить не требуется.
'''max_count =''' колличество респавн-запросов за период времени, пока ГГ находится на уровне. При переходе на другой уровень, счётчик '''max_count''' сбрасывается. (ставить не обязательно)
+
<br>
'''min_count =''' минимальное колличество нпс, для экстренного респавна. (ставить не обязательно)
+
<br>'''max_count =''' колличество респавн-запросов за период времени, пока ГГ находится на локации. При переходе на другую локацию, счётчик '''max_count''' сбрасывается. (ставить не обязательно)
'''max_spawn =''' колличество нпс за один цикл респавна.
+
<br>
'''idle_spawn =''' тип спавна. Известно три типа '''medium, often, seldom'''. Обычно, используется тип '''medium'''.
+
<br>'''min_count =''' минимальное колличество нпс, для экстренного респавна. (ставить не обязательно)
'''conditions ='''Условие респавна. Можно установить проверку условий (инфопоршень), где респавн будет происходить только при выполнении условия. Номер означает общий процент выполнения респавна. Например так:
+
<br>
'''conditions = {+инфо} 100, 0''' где, респавн будет происходить со сто-процентной вероятностью, только при наличии установленного инфопоршна.
+
<br>'''max_spawn =''' колличество нпс за один цикл респавна.
 
+
<br>
 +
<br>'''idle_spawn =''' тип спавна. Известно три типа '''medium, often, seldom'''. Обычно, используется тип '''medium'''.
 +
<br>
 +
<br>'''conditions ='''Условие респавна. Можно установить проверку условий (инфопоршень), где респавн будет происходить только при выполнении условия. Номер означает общий процент выполнения респавна. Например так:
 +
<br>
 +
<br>'''conditions = {+инфо} 100, 0''' где, респавн будет происходить со сто-процентной вероятностью, только при наличии установленного инфопоршна.
 
-----------------------------------------------------------------------
 
-----------------------------------------------------------------------
 
+
<br>'''2.''' В файле '''spawn_section.ltx''', создаём респавн-секции:
'''2.''' В файле '''spawn_section.ltx''', создаём респавн-секции:
+
<ini>
 
+
[esc_urody_respawn_1]:stalker
<pre>[esc_urody_respawn_1]:stalker
+
 
$spawn = "respawn\esc_urody_respawn_1"
 
$spawn = "respawn\esc_urody_respawn_1"
 
character_profile = sim_urody_novice
 
character_profile = sim_urody_novice
Строка 77: Строка 86:
 
character_profile = sim_urody_regular
 
character_profile = sim_urody_regular
 
spec_rank = regular
 
spec_rank = regular
community = bandit</pre>
+
community = bandit
 
+
</ini>
 
Где:
 
Где:
'''esc_urody_respawn_1''' id респавн-секции.
+
<br>'''esc_urody_respawn_1''' id респавн-секции.
'''sim_urody_novice''' и '''sim_urody_regular''' классы профайлов нпс.
+
<br>'''sim_urody_novice''' и '''sim_urody_regular''' классы профайлов нпс.
'''novice''' и '''regular''' ранги нпс.
+
<br>'''novice''' и '''regular''' ранги нпс.
'''bandit''' группировка нпс.
+
<br>'''bandit''' группировка нпс.
 
+
<br>
 
-----------------------------------------------------------------------
 
-----------------------------------------------------------------------
 
 
'''3.''' В файле '''npc_profile.xml''' регистрируем классы '''sim_urody_regular''' и '''sim_urody_novice'''
 
'''3.''' В файле '''npc_profile.xml''' регистрируем классы '''sim_urody_regular''' и '''sim_urody_novice'''
 
 
<pre><character id="sim_urody_regular">
 
<pre><character id="sim_urody_regular">
 
<class>sim_urody_regular</class>
 
<class>sim_urody_regular</class>
Строка 101: Строка 108:
 
'''4.''' Создаём профили, в файле '''character_desc_simulation.xml''', с классами '''sim_urody_regular''' и '''sim_urody_novice''' и группировкой '''bandit'''.
 
'''4.''' Создаём профили, в файле '''character_desc_simulation.xml''', с классами '''sim_urody_regular''' и '''sim_urody_novice''' и группировкой '''bandit'''.
  
--------------------------------------------------------------------------------------------------------------------------------------------------------
+
== Respawn монстров. ==
********************************************************************************************************************************************************
+
 
+
---------------------------------------------------'''RESPAWN MUTANTOV'''-------------------------------------------------------------------------------
+
  
 
В принципе, респавн мутантов идентичен респавну нпс. Но с одним лишь отличием, которое его значительно упрощает.
 
В принципе, респавн мутантов идентичен респавну нпс. Но с одним лишь отличием, которое его значительно упрощает.
Строка 112: Строка 116:
 
В ней прописываем типы мутантов, из файла "se_respawn.script". Такие как '''flesh_weak, flesh_normal, dog_weak, boar_strong, и т.д.'''.
 
В ней прописываем типы мутантов, из файла "se_respawn.script". Такие как '''flesh_weak, flesh_normal, dog_weak, boar_strong, и т.д.'''.
  
--------------------------------------------------------------------------------------------------------------------------------------------------------
+
-----------------------------------------------------------------
********************************************************************************************************************************************************
+
'''ОБЩИЕ НАСТРОЙКИ.'''
 
+
---------------------------------------------------'''ОБЩИЕ НАСТРОЙКИ'''--------------------------------------------------------------------------------
+
  
 
Обязательные условия респавна:
 
Обязательные условия респавна:
  
'''1.''' На уровне обязательно должен быть хоть один гулаг для респавнящихся нпс и мутантов. Так как колличество неписей для респавна, берётся из доступных мест в гулаге.
+
'''1.''' На локации обязательно должен быть хоть один гулаг для респавнящихся NPC и мутантов, так как количество NPC для респавна, ориентируется по доступным местам в гулагах.
  
'''2.''' Респавн происходит, только после убийства одного, или нескольких неписей.
+
'''2.''' Респавн производится, только если под гулагами есть доступные работы.
  
'''3.''' На каждом уровне, респавн ограничен определёнными типами неписей. Данные ограничения установлены в файле '''misc\smart_terrain_presets.ltx'''. Чтобы сделать возможным респавн неписей, не предусмотренных на данном уровне. Надо в секции нужного уровня, дописать требуемые типы неписей.
+
'''3.''' На каждой локации, респавн ограничен определёнными типами неписей. Данные ограничения установлены в файле '''misc\smart_terrain_presets.ltx'''. Чтобы сделать возможным респавн неписей, не предусмотренных на данной локации. Надо в указанном файле, в секции нужной локации, дописать требуемые типы неписей.
  
--------------------------------------------------------------------------------------------------------------------------------------------------------
+
--------------------------------------------------------------------------
  
Для проверки созданного респавнера, можно не ждать когда сработает системный респавн, а вызвать принудительно респавн в нужной секции. Для этого прописываем где-нибудь вызов функции '''%=respawner_spawn(имя респавнера)%'''. Где, "имя респавнера" - имя секции, созданой в файле all.spawn. Скобки обязательны.  
+
Для проверки созданного респавнера, можно не ждать когда сработает системный респавн, а вызвать принудительно респавн в нужной секции. Для этого, прописываем в любой логике, вызов функции '''%=respawner_spawn(имя респавнера)%'''. Где, "имя респавнера" - имя секции, созданной в файле all.spawn. Скобки обязательны.  
  
Функция принудительного вызова респавна, находится в файле '''xr_effects.script'''.
+
Например, можно создать рядом с зоной респавнера, временный рестриктор. И в кастом дате рестриктора, прописать вызов функции принудительного вызова респавна, в нужном респавнере, при входе ГГ в зону рестриктора:
  
--------------------------------------------------------------------------------------------------------------------------------------------------------
+
<ini>
********************************************************************************************************************************************************
+
[logic]
 +
active = sr_idle@in
  
------------------------------------------------------'''RESPAWN ITEMS'''-------------------------------------------------------------------------------
+
[sr_idle@in]
 +
on_actor_inside = %=respawner_spawn(имя респавнера)% sr_idle@out
  
Респавн инвентаря в инвентарных ящиках, несколько отличается от способа респавна неписей.
+
[sr_idle@out]
 +
on_actor_outside = sr_idle@in
 +
</ini>
  
-----------------------------------------------------------------------
+
Функция принудительного вызова респавна, находится в файле '''xr_effects.script'''.
 +
-----------------------------------------------------------------------------------------------------------------------------------
  
'''1.''' Первое, что нам нужно сделать, это создать инвентарный ящик в файле "all.spawn":
+
== Respawn предметов. ==
  
<pre>[10000]
+
<br>Респавн предметов в инвентарных ящиках, несколько отличается от способа респавна NPC.
 +
-----------------------------------------------------------------------
 +
<br>
 +
<br>'''1.''' Первое, что нам нужно сделать, это создать инвентарный ящик в файле "all.spawn":
 +
<ini>
 +
[10000]
 
; cse_abstract properties
 
; cse_abstract properties
 
section_name = inventory_box
 
section_name = inventory_box
Строка 155: Строка 167:
 
object_flags = 0xffffffba
 
object_flags = 0xffffffba
  
story_id = ай-ди ящика
+
story_id = стори ай-ди ящика
  
 
; cse_visual properties
 
; cse_visual properties
visual_name = equipments\item_box_01</pre>
+
visual_name = equipments\item_box_01
 
+
</ini>
 +
<br>
 
-----------------------------------------------------------------------
 
-----------------------------------------------------------------------
 
+
'''2.''' Затем, в файле '''game_story_id.ltx''' регистрируем story_id ящика. (выбираем любое свободное число).
'''2.''' Затем, в файле '''game_story_id.ltx''' регистрируем id ящика. (выбираем любое свободное число).
+
<br>
 
+
<br>
 
-----------------------------------------------------------------------
 
-----------------------------------------------------------------------
 
 
'''3.''' Создаём респавнер в файле '''all.spawn'''. Координаты и размеры зоны респавнера, должны быть такими, чтоб инвентарный ящик поместился внутри зоны респавнера:
 
'''3.''' Создаём респавнер в файле '''all.spawn'''. Координаты и размеры зоны респавнера, должны быть такими, чтоб инвентарный ящик поместился внутри зоны респавнера:
  
<pre>[10001]
+
<ini>
 +
[10001]
 
; cse_abstract properties
 
; cse_abstract properties
 
section_name = respawn
 
section_name = respawn
name = имя респавнера
+
name = имя_респавнера
 
position = координаты x,y,z
 
position = координаты x,y,z
 
direction = 0,0,0
 
direction = 0,0,0
Строка 184: Строка 197:
 
respawn_section = список вещей респавна
 
respawn_section = список вещей респавна
 
idle_spawn = -1
 
idle_spawn = -1
parent = ай-ди ящика
+
parent = стори ай-ди ящика
 
item_spawn = true
 
item_spawn = true
 
max_count = 7
 
max_count = 7
Строка 192: Строка 205:
 
shapes = shape0
 
shapes = shape0
 
shape0:type = box
 
shape0:type = box
shape0:axis_x = 0.5,0,0  (ширина зоны респавнера, по X)
+
shape0:axis_x = 0.5,0,0  ;(ширина зоны респавнера, по X)
shape0:axis_y = 0,0.5,0  (высота зоны респавнера)
+
shape0:axis_y = 0,0.5,0  ;(высота зоны респавнера)
shape0:axis_z = 0,0,1    (ширина зоны респавнера, по Z)
+
shape0:axis_z = 0,0,1    ;(ширина зоны респавнера, по Z)
 
shape0:offset = 0,0,0
 
shape0:offset = 0,0,0
  
Строка 200: Строка 213:
 
restrictor_type = 3
 
restrictor_type = 3
  
; se_respawn properties</pre>
+
; se_respawn properties
 
+
</ini>
Где:
+
 
+
'''respawn_section =''' список вещей респавна. Как и в респавнерах неписей, возможна прописка соотношений между вещами. Например:
+
                      respawn_section = wpn_pm,2, vodka,2, medkit,1, energy_drink,2, ammo_9x18_fmj,3 
+
 
+
'''idle_spawn =''' тип спавна. Инвентарь не имеет типов спавна, поэтому ставится (-1).
+
 
+
'''parent =''' ай-ди инвентарного ящика, в котором производить респавн вещей.
+
 
+
'''item_spawn =''' (true\false) возможность включения и отключения респавна. Можно задавать условия.
+
 
+
'''max_count =''' количество респав-циклов за определённый период времени. (Пока ГГ находится на уровне. После перехода ГГ на другой уровень, счётчик сбрасывается).
+
  
 +
Где:
 +
<br>'''respawn_section =''' список вещей респавна, в виде их спавн - секций. Как и в респавнерах неписей, возможна прописка соотношений между вещами.
 +
<br>Например: respawn_section = wpn_pm,2, vodka,2, medkit,1, energy_drink,2, ammo_9x18_fmj,3 
 +
<br>
 +
<br>'''idle_spawn =''' тип спавна. Инвентарь не имеет типов спавна, поэтому ставится (-1).
 +
<br>
 +
<br>'''parent =''' Story_id инвентарного ящика (из game_story_id.ltx), в котором производить респавн вещей .
 +
<br>
 +
<br>'''item_spawn =''' (true\false) возможность включения и отключения респавна. Можно задавать условия, например инфопоршнем или функцией (разумеется прописанной в xr_conditions.script).
 +
<br>
 +
<br>'''max_count =''' количество респав-циклов за определённый период времени. (Пока ГГ находится на локации. После перехода ГГ на другую локацию, счётчик сбрасывается).
 +
<br>
 
-----------------------------------------------------------------------
 
-----------------------------------------------------------------------
  
 
'''4.''' Создаём вызов респавна. Обычно вызов производится из '''smart_terrain'''. В "custom_data" любого подходящего '''smart_terrain''', под секцией [smart_terrain], вписываем вызов респавна:
 
'''4.''' Создаём вызов респавна. Обычно вызов производится из '''smart_terrain'''. В "custom_data" любого подходящего '''smart_terrain''', под секцией [smart_terrain], вписываем вызов респавна:
 +
<ini>
 +
[smart_terrain]
 +
respawn = имя респавнера
 +
</ini>
 +
И респавн будет производиться, при каждом пополнении нпс, под данным смартом.
 +
<br>
 +
-----------------------------------------------------------------------------------------------------------------------------------
  
<pre>[smart_terrain]
+
== Авторы статьи. ==
respawn = имя респавнера </pre>
+
[[Singapur22]]
 
+
<br>[[Pihan13]] (дополнил и переоформил)
--------------------------------------------------------------------------------------------------------------------------------------------------------
+
<br>[[Категория:скрипты]]
 
+
Автор статьи '''Singapur22'''.
+

Текущая версия на 08:01, 26 марта 2011

Респаун, один из самых часто задаваемый вопросов на форумах. Вот, решил написать статью, дабы не втирать одно и тоже каждому, кто не может с этим разобраться.


Respawn NPC.

Для создания респавна NPC, понадобится два файла: all.spawn и spawn_section.ltx.
Это минимальный набор. Для полной настройки респавнера, нужны ещё character_desc_simulation.xml и npc_profile.xml.


1. В all.spawn создаём секцию респавнера:

 
[10000]
; cse_abstract properties
section_name = respawn
name = имя респавнера
position = координаты (x,y,z)
direction = 0,0,0
 
; cse_alife_object properties
game_vertex_id = гейм-вертекс
distance = 10
level_vertex_id = левел-вертекс
object_flags = 0xffffff3e
custom_data = <<END
[respawn]
respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9
max_count = 8
min_count = 4
max_spawn = 2
idle_spawn = medium
conditions = 100
END
 
; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1
 
; cse_alife_space_restrictor properties
restrictor_type = 0
 
; se_respawn properties
 

Если используется программа XrSpawner, то копируем любую секцию "respawn"; меняем имя объекта, координаты, и в окошке "скрипт" прописываем:

 
[respawn]
respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9
max_count = 8
min_count = 4
max_spawn = 2
idle_spawn = medium
conditions = 100
 

Где:
respawn_section = id респавн-секций из файла spawn_section.ltx. Цифры после запятой, означают отношение одной секции к другой. Если планируется одинаковое колличество респавна из каждой секции, то цифры ставить не требуется.

max_count = колличество респавн-запросов за период времени, пока ГГ находится на локации. При переходе на другую локацию, счётчик max_count сбрасывается. (ставить не обязательно)

min_count = минимальное колличество нпс, для экстренного респавна. (ставить не обязательно)

max_spawn = колличество нпс за один цикл респавна.

idle_spawn = тип спавна. Известно три типа medium, often, seldom. Обычно, используется тип medium.

conditions =Условие респавна. Можно установить проверку условий (инфопоршень), где респавн будет происходить только при выполнении условия. Номер означает общий процент выполнения респавна. Например так:

conditions = {+инфо} 100, 0 где, респавн будет происходить со сто-процентной вероятностью, только при наличии установленного инфопоршна.



2. В файле spawn_section.ltx, создаём респавн-секции:

 
[esc_urody_respawn_1]:stalker
$spawn = "respawn\esc_urody_respawn_1"
character_profile = sim_urody_novice
spec_rank = novice
community = bandit
 
[esc_urody_respawn_2]:stalker
$spawn = "respawn\esc_urody_respawn_2"
character_profile = sim_urody_regular
spec_rank = regular
community = bandit
 

Где:
esc_urody_respawn_1 id респавн-секции.
sim_urody_novice и sim_urody_regular классы профайлов нпс.
novice и regular ранги нпс.
bandit группировка нпс.


3. В файле npc_profile.xml регистрируем классы sim_urody_regular и sim_urody_novice

<character id="sim_urody_regular">
<class>sim_urody_regular</class>
</character>

<character id="sim_urody_novice">
<class>sim_urody_novice</class>
</character>

4. Создаём профили, в файле character_desc_simulation.xml, с классами sim_urody_regular и sim_urody_novice и группировкой bandit.

Respawn монстров.

В принципе, респавн мутантов идентичен респавну нпс. Но с одним лишь отличием, которое его значительно упрощает. Вся настройка респавна мутантов, ограничивается секцией в файле "all.spawn". Вписываем секцию респавнера, как указано в -RESPAWN NPC-. Все настройки идентичны, кроме строки respawn_section = . В ней прописываем типы мутантов, из файла "se_respawn.script". Такие как flesh_weak, flesh_normal, dog_weak, boar_strong, и т.д..


ОБЩИЕ НАСТРОЙКИ.

Обязательные условия респавна:

1. На локации обязательно должен быть хоть один гулаг для респавнящихся NPC и мутантов, так как количество NPC для респавна, ориентируется по доступным местам в гулагах.

2. Респавн производится, только если под гулагами есть доступные работы.

3. На каждой локации, респавн ограничен определёнными типами неписей. Данные ограничения установлены в файле misc\smart_terrain_presets.ltx. Чтобы сделать возможным респавн неписей, не предусмотренных на данной локации. Надо в указанном файле, в секции нужной локации, дописать требуемые типы неписей.


Для проверки созданного респавнера, можно не ждать когда сработает системный респавн, а вызвать принудительно респавн в нужной секции. Для этого, прописываем в любой логике, вызов функции %=respawner_spawn(имя респавнера)%. Где, "имя респавнера" - имя секции, созданной в файле all.spawn. Скобки обязательны.

Например, можно создать рядом с зоной респавнера, временный рестриктор. И в кастом дате рестриктора, прописать вызов функции принудительного вызова респавна, в нужном респавнере, при входе ГГ в зону рестриктора:

 
[logic]
active = sr_idle@in
 
[sr_idle@in]
on_actor_inside = %=respawner_spawn(имя респавнера)% sr_idle@out
 
[sr_idle@out]
on_actor_outside = sr_idle@in
 

Функция принудительного вызова респавна, находится в файле xr_effects.script.


Respawn предметов.


Респавн предметов в инвентарных ящиках, несколько отличается от способа респавна NPC.




1. Первое, что нам нужно сделать, это создать инвентарный ящик в файле "all.spawn":

 
[10000]
; cse_abstract properties
section_name = inventory_box
name =  имя ящика
position = координаты x,y,z
direction = 0,0,0
 
; cse_alife_object properties
game_vertex_id = гейм-вертекс
distance = 0
level_vertex_id = левел-вертекс
object_flags = 0xffffffba
 
story_id = стори ай-ди ящика
 
; cse_visual properties
visual_name = equipments\item_box_01
 



2. Затем, в файле game_story_id.ltx регистрируем story_id ящика. (выбираем любое свободное число).


3. Создаём респавнер в файле all.spawn. Координаты и размеры зоны респавнера, должны быть такими, чтоб инвентарный ящик поместился внутри зоны респавнера:

 
[10001]
; cse_abstract properties
section_name = respawn
name = имя_респавнера
position = координаты x,y,z
direction = 0,0,0
 
; cse_alife_object properties
game_vertex_id = гейм-вертекс
distance = 2
level_vertex_id = левел-вертекс
object_flags = 0xffffff3e
custom_data = <<END
[respawn]
respawn_section = список вещей респавна
idle_spawn = -1
parent = стори ай-ди ящика
item_spawn = true
max_count = 7
END
 
; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 0.5,0,0   ;(ширина зоны респавнера, по X)
shape0:axis_y = 0,0.5,0   ;(высота зоны респавнера)
shape0:axis_z = 0,0,1     ;(ширина зоны респавнера, по Z)
shape0:offset = 0,0,0
 
; cse_alife_space_restrictor properties
restrictor_type = 3
 
; se_respawn properties
 

Где:
respawn_section = список вещей респавна, в виде их спавн - секций. Как и в респавнерах неписей, возможна прописка соотношений между вещами.
Например: respawn_section = wpn_pm,2, vodka,2, medkit,1, energy_drink,2, ammo_9x18_fmj,3

idle_spawn = тип спавна. Инвентарь не имеет типов спавна, поэтому ставится (-1).

parent = Story_id инвентарного ящика (из game_story_id.ltx), в котором производить респавн вещей .

item_spawn = (true\false) возможность включения и отключения респавна. Можно задавать условия, например инфопоршнем или функцией (разумеется прописанной в xr_conditions.script).

max_count = количество респав-циклов за определённый период времени. (Пока ГГ находится на локации. После перехода ГГ на другую локацию, счётчик сбрасывается).


4. Создаём вызов респавна. Обычно вызов производится из smart_terrain. В "custom_data" любого подходящего smart_terrain, под секцией [smart_terrain], вписываем вызов респавна:

 
[smart_terrain]
respawn = имя респавнера
 

И респавн будет производиться, при каждом пополнении нпс, под данным смартом.


Авторы статьи.

Singapur22
Pihan13 (дополнил и переоформил)

Другие места
LANGUAGE