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

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BC%D0%B0%D1%80%D1%82%D0%B5%D1%80%D1%80%D0%B5%D0%B9%D0%BD%D1%8B_%D0%B8_%D0%B3%D1%83%D0%BB%D0%B0%D0%B3%D0%B8</id>
		<title>SoC. Смартеррейны и гулаги</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BC%D0%B0%D1%80%D1%82%D0%B5%D1%80%D1%80%D0%B5%D0%B9%D0%BD%D1%8B_%D0%B8_%D0%B3%D1%83%D0%BB%D0%B0%D0%B3%D0%B8"/>
				<updated>2009-01-11T12:12:11Z</updated>
		
		<summary type="html">&lt;p&gt;90.150.127.141: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В последнее время люди постоянно меня спрашивали как создать скрипт гулага для смартеррейнов. Чтобы постоянно не отвечать на каждое отдельное письмо, я решил написать небольшой тутор. Прежде чем начать, хотелось бы предупредить, что не являюсь экспертом в подобного рода вещах и некоторые моменты мне всё еще не ясны до конца, так что вероятно я не смогу объяснить всё правильно. Также я буду использовать ST как абревиатуру смартеррейна. Этот тутор посвящен НПС в ST, но он также сгодится и для мутантов. Предполагаю что вы знакомы с:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- луа программированием&amp;lt;br&amp;gt;&lt;br /&gt;
- редактированием all.spawn&amp;lt;br&amp;gt;&lt;br /&gt;
- работа с вейпоинтами(патрульными путями)&amp;lt;br&amp;gt;&lt;br /&gt;
- утилитами аи&lt;br /&gt;
&lt;br /&gt;
В первую очередить подумайте о своём ST, где бы его заспавнить, сколько нпс/мутантов будут в нем выполнять определенную &amp;quot;работу&amp;quot;, когда ST должен активироваться/отключаться, сколько и какие состояния будет у вашего ST и тд. Думаю, наиболее эффективный способ объяснить вам как это работает на примере. Давайте предположим.. мы хотим поставить ST(smart terrain) на Кордоне для 3х бандитов.&lt;br /&gt;
&lt;br /&gt;
1. Спавн ST:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[2515]&lt;br /&gt;
; cse_abstract properties (основные параметры)&lt;br /&gt;
section_name = smart_terrain&lt;br /&gt;
name         = esc_bandits_smart_terrain&lt;br /&gt;
position     = 131.02030944824,0.065616846084595,-248.9094543457&lt;br /&gt;
direction    = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties (параметры объекта)&lt;br /&gt;
game_vertex_id  = 635&lt;br /&gt;
distance        = 9.09999942779541&lt;br /&gt;
level_vertex_id = 363757&lt;br /&gt;
object_flags    = 0x==3e&lt;br /&gt;
custom_data     = &amp;lt;&amp;lt;END&lt;br /&gt;
[smart_terrain]&lt;br /&gt;
type     = esc_bandits_smart_terrain&lt;br /&gt;
cond     = {-infoportion}&lt;br /&gt;
capacity = 3&lt;br /&gt;
squad    = 1&lt;br /&gt;
groups   = 5&lt;br /&gt;
respawn  = esc_respawn_inventory_box_0002&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 = 20.55957102775574&lt;br /&gt;
&lt;br /&gt;
; cse_alife_space_restrictor properties (параметры рестриктора)&lt;br /&gt;
restrictor_type = 3&lt;br /&gt;
&lt;br /&gt;
; se_smart_terrain properties (параметры смарттеррейна)&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эта наиболее важная часть:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
type     = esc_bandits_smart_terrain&lt;br /&gt;
cond     = {-infoportion}&lt;br /&gt;
capacity = 3&lt;br /&gt;
squad    = 1&lt;br /&gt;
groups   = 5&lt;br /&gt;
respawn  = esc_respawn_inventory_box_0002&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''type''' название вашего нового ST(обязательно)&amp;lt;br&amp;gt;&lt;br /&gt;
'''cond''' описывает условия, которые необходимы для включения гулага(по желанию)&amp;lt;br&amp;gt;&lt;br /&gt;
'''capacity''' количество мутантов/нпс, которое может вместить смарттеррейн(обязательно)&amp;lt;br&amp;gt;&lt;br /&gt;
'''squad, groups''' - номер сквада и количество групп(по желанию)&amp;lt;br&amp;gt;&lt;br /&gt;
'''respawn''' название тайника(синяя коробка) куда будут спавниться предметы, когда мы вызовем респавн в ST.(по желанию)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Спавн нпс/мутантов и назначение(биндинг) их к нашему ST: для этого мы должны добавить каждому мутанту/нпс определенную логику:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
[smart_terrains]&lt;br /&gt;
esc_bandits_smart_terrain = true&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если таковых нпс не обнаружится то гулаг выберет себе население из числа заспавнившихся в Зоне нпс с подходящими параметрами.&lt;br /&gt;
Даже если они на другой локации. &lt;br /&gt;
&lt;br /&gt;
3. Добавляем &amp;quot;работу&amp;quot; (логика) для каждого нпс/мутанта из нашего ST(для каждого состояния). Предположии у ST их два: состояние 0 (описывает какие нпс/мутанты &amp;quot;работают&amp;quot; днем) и состояние 1 (ночью). У нас 3 бандита, определяемся:&lt;br /&gt;
&lt;br /&gt;
- bandit1: walker (состояние 0) и kamp (состояние 1)&amp;lt;br&amp;gt;&lt;br /&gt;
- bandit2: guard (состояние 0) и sleeper (состояние 1)&amp;lt;br&amp;gt;&lt;br /&gt;
- bandit3: walker (состояние 0 и 1 &amp;lt;= он делает тоже и днём, и ночью)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
У нас есть 3 способа добавить логику (работу) для каждого нпс/мутанта, мы будем использовать наиболее общепринятый способ, добавим логику в фаил config\misc\gulag_escape.ltx. Она должна выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
;-- bandit1 (walker(прогуливающийся) -&amp;gt; состояние 0, днем)&lt;br /&gt;
[logic@esc_bandits_smart_terrain_bandit1_walker]&lt;br /&gt;
active = walker@esc_bandits_smart_terrain_bandit1&lt;br /&gt;
&lt;br /&gt;
[walker@esc_bandits_smart_terrain_bandit1]&lt;br /&gt;
path_walk         = bandit1_walk&lt;br /&gt;
danger            = danger_condition@esc_bandits_smart_terrain&lt;br /&gt;
def_state_moving1 = patrol&lt;br /&gt;
def_state_moving2 = patrol&lt;br /&gt;
def_state_moving3 = patrol&lt;br /&gt;
meet              = no_meet&lt;br /&gt;
&lt;br /&gt;
;-- bandit1 (kamp(лагерь) -&amp;gt; состояние 1, ночью)&lt;br /&gt;
[logic@esc_bandits_smart_terrain_bandit1_kamp]&lt;br /&gt;
active = kamp@esc_bandits_smart_terrain_bandit1&lt;br /&gt;
&lt;br /&gt;
[kamp@esc_bandits_smart_terrain_bandit1]&lt;br /&gt;
center_point = bandit_kamp&lt;br /&gt;
path_walk    = bandit_kamp_task&lt;br /&gt;
&lt;br /&gt;
;-- bandit2 (guard(охранник) -&amp;gt; состояние 0, днем)&lt;br /&gt;
[logic@esc_bandits_smart_terrain_bandit2_walker]&lt;br /&gt;
active = walker@esc_bandits_smart_terrain_bandit2&lt;br /&gt;
&lt;br /&gt;
[walker@esc_bandits_smart_terrain_bandit2]&lt;br /&gt;
path_walk = bandit2_walk&lt;br /&gt;
path_look = bandit2_look&lt;br /&gt;
danger    = danger_condition@esc_bandits_smart_terrain&lt;br /&gt;
&lt;br /&gt;
;-- bandit2 (sleeper(спящий) -&amp;gt; состояние 1, ночью)&lt;br /&gt;
[logic@esc_bandits_smart_terrain_bandit2_sleeper]&lt;br /&gt;
active = sleeper@esc_bandits_smart_terrain_bandit2&lt;br /&gt;
&lt;br /&gt;
[sleeper@esc_bandits_smart_terrain_bandit2]&lt;br /&gt;
path_main = bandit2_sleep&lt;br /&gt;
wakeable  = false&lt;br /&gt;
&lt;br /&gt;
;-- bandit3 (guard -&amp;gt; состояние 0 и 1, днем/ночью)&lt;br /&gt;
[logic@esc_bandits_smart_terrain_bandit3_walker]&lt;br /&gt;
active = walker@esc_bandits_smart_terrain_bandit3&lt;br /&gt;
&lt;br /&gt;
[walker@esc_bandits_smart_terrain_bandit3]&lt;br /&gt;
path_walk = bandit3_walk&lt;br /&gt;
path_look = bandit3_look&lt;br /&gt;
&lt;br /&gt;
[danger_condition@esc_bandits_smart_terrain]&lt;br /&gt;
ignore_distance_corpse = 0&lt;br /&gt;
ignore_distance        = 0&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Теперь нам нужно заскриптовать наш ST. Так что добавим наш код в фаил скрипта \gulag_escape.script. Есть еще несколько моментов, которые мы должны здесь доделать (каждый из этих шагов обязателен):&lt;br /&gt;
&lt;br /&gt;
- грузим логику (работу) для каждого нпс/мутанта и для каждого состояния -&amp;gt; function load_job(...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
if type == &amp;quot;esc_bandits_smart_terrain&amp;quot; then&lt;br /&gt;
	t = {}&lt;br /&gt;
	;-- &amp;quot;соеденительная секция&amp;quot; для логики, определяем ltx фаилом&lt;br /&gt;
	t.section = &amp;quot;logic@esc_bandits_smart_terrain_bandit1_walker&amp;quot;&lt;br /&gt;
	;-- no idea, probably describes after what time&lt;br /&gt;
	;-- npc will use this job again (?)&lt;br /&gt;
	t.idle = 0&lt;br /&gt;
	;-- no idea but i guess it's optional&lt;br /&gt;
	t.timeout = 0&lt;br /&gt;
	;-- пріоритет&lt;br /&gt;
	t.prior = 100&lt;br /&gt;
	;-- нпс будет использовать эту логику, &lt;br /&gt;
        ;-- если ST переключится в это состояние&lt;br /&gt;
	;-- в этом случае - состояние 0 (день)&lt;br /&gt;
	t.state = {0}&lt;br /&gt;
	;-- Какой squad и group назначится персонажу принявшему эту работу.&lt;br /&gt;
	t.squad = squad&lt;br /&gt;
	t.group = groups[1]&lt;br /&gt;
	;-- no idea what means position_threshold&lt;br /&gt;
	t.position_threshold = 100&lt;br /&gt;
	;-- описывает нпс в этом состоянии: онлайн или офлайн&lt;br /&gt;
	;-- онлайн = истина по дефолту&lt;br /&gt;
	t.online = true&lt;br /&gt;
	;-- описывает рестрикторы (куда нпс могут/не могут пойти)&lt;br /&gt;
	t.in_rest = &amp;quot;&amp;quot;&lt;br /&gt;
	t.out_rest = &amp;quot;&amp;quot;&lt;br /&gt;
        ;-- ввиду особого способа присвоения работ в  &lt;br /&gt;
        ;-- smart_terrain.script вы никогда не знаете, какая работа&lt;br /&gt;
	;-- будет использоваться каждым нпсом; если вы хотите быть уверенным&lt;br /&gt;
	;-- что конкретный нпс взял конкретную работу, тогда&lt;br /&gt;
	;-- вам нужно заюзать предикатную функцию; в этом слуае&lt;br /&gt;
	;-- мы хотим чтобы эта работа присвоилась мастеру бандиту&lt;br /&gt;
	t.predicate = function(obj_info) return obj_info.rank &amp;gt;= 900 end&lt;br /&gt;
	table.insert(sj, t)&lt;br /&gt;
&lt;br /&gt;
	t = {section = &amp;quot;logic@esc_bandits_smart_terrain_bandit1_kamp&amp;quot;,&lt;br /&gt;
	idle = 0, timeout = 0, prior = 100, state = {1},squad = squad,&lt;br /&gt;
	group = groups[1], position_threshold = 100, online = true, in_rest = &amp;quot;&amp;quot;,&lt;br /&gt;
	out_rest = &amp;quot;&amp;quot;, predicate = function(obj_info) return obj_info.rank &amp;gt;= 900 end}&lt;br /&gt;
	table.insert(sj, t)&lt;br /&gt;
&lt;br /&gt;
	;-- bandit2 -&amp;gt; состояние 0 (день)&lt;br /&gt;
	t = {section = &amp;quot;logic@esc_bandits_smart_terrain_bandit2_walker&amp;quot;,&lt;br /&gt;
	idle = 0, prior = 5, state = {0}, squad = squad, group = groups[1],&lt;br /&gt;
	in_rest = &amp;quot;&amp;quot;, out_rest = &amp;quot;&amp;quot;}&lt;br /&gt;
	table.insert(sj, t)&lt;br /&gt;
&lt;br /&gt;
	;-- bandit2 -&amp;gt; состояние 1 (ночь)&lt;br /&gt;
	t = {section = &amp;quot;logic@esc_bandits_smart_terrain_bandit2_sleeper&amp;quot;,&lt;br /&gt;
	idle = 0, prior = 5, state = {1}, squad = squad, group = groups[1],&lt;br /&gt;
	in_rest = &amp;quot;&amp;quot;, out_rest = &amp;quot;&amp;quot;}&lt;br /&gt;
	table.insert(sj, t)&lt;br /&gt;
&lt;br /&gt;
	;-- bandit3 -&amp;gt; состояние 0 (день) и состояние 1 (ночь)&lt;br /&gt;
	t = {section = &amp;quot;logic@esc_bandits_smart_terrain_bandit3_walker&amp;quot;,&lt;br /&gt;
	idle = 0, prior = 5, state = {0, 1}, squad = squad, group = groups[1],&lt;br /&gt;
	in_rest = &amp;quot;&amp;quot;, out_rest = &amp;quot;&amp;quot;}&lt;br /&gt;
	table.insert(sj, t)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Еще один момент о состояниях ST, всё зависит от того сколько у вас их в ST. Еще одна важной вещью является добавление логики для каждого состояния. Например в вашем ST такие состояния:&lt;br /&gt;
&lt;br /&gt;
0 - нпс оффлайн&amp;lt;br&amp;gt;&lt;br /&gt;
1 - нпс онлайн (день)&amp;lt;br&amp;gt;&lt;br /&gt;
2 - нпс онлайн (ночь)&amp;lt;br&amp;gt;&lt;br /&gt;
3 - нпс онлайн, они решили напасть на другой ST&amp;lt;br&amp;gt;&lt;br /&gt;
4 - нпс онлайн, актор напал на них&lt;br /&gt;
&lt;br /&gt;
К сведению, меня не прет заполнять такое большое количество таблиц, так что обычно я использую эту функцию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function fill_tbl(section, idle, prior, states, squad, group, in_rest, out_rest, online, gulag_name)&lt;br /&gt;
	local tbl = {}&lt;br /&gt;
&lt;br /&gt;
	tbl.section = &amp;quot;logic@&amp;quot; .. gulag_name .. &amp;quot;_&amp;quot; .. section&lt;br /&gt;
	tbl.idle = idle&lt;br /&gt;
	tbl.prior = prior	&lt;br /&gt;
	tbl.state = {}&lt;br /&gt;
&lt;br /&gt;
	for index = 1, #states do&lt;br /&gt;
		table.insert(tbl.state, states[index])&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	tbl.squad = squad&lt;br /&gt;
	tbl.group = group&lt;br /&gt;
	tbl.in_rest = in_rest&lt;br /&gt;
	tbl.out_rest = out_rest&lt;br /&gt;
	tbl.online = online&lt;br /&gt;
	return tbl&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используя функцию выше, мы можем загружать логику наподобие этой:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
if type == &amp;quot;esc_bandits_smart_terrain&amp;quot; then&lt;br /&gt;
	local t = table.insert(sj, fill_tbl(&amp;quot;bandit1_walker&amp;quot;, 0, 100, {0}, squad, groups[1], &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, true, type))&lt;br /&gt;
	t.timeout = 0&lt;br /&gt;
	t.position_threshold = 100&lt;br /&gt;
	t.predicate = function(obj_info) return obj_info.rank &amp;gt;= 900 end&lt;br /&gt;
	table.insert(sj, t)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	t = table.insert(sj, fill_tbl(&amp;quot;bandit1_kamp&amp;quot;, 0, 100, {1}, squad, groups[1], &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, true, type))&lt;br /&gt;
	t.timeout = 0&lt;br /&gt;
	t.position_threshold = 100&lt;br /&gt;
	t.predicate = function(obj_info) return obj_info.rank &amp;gt;= 900 end&lt;br /&gt;
	table.insert(sj, t)&lt;br /&gt;
&lt;br /&gt;
	table.insert(sj, fill_tbl(&amp;quot;bandit2_walker&amp;quot;, 0, 5, {0}, squad, groups[1], &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, true, type))&lt;br /&gt;
	table.insert(sj, fill_tbl(&amp;quot;bandit2_sleeper&amp;quot;, 0, 5, {1}, squad, groups[1], &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, true, type))&lt;br /&gt;
	table.insert(sj, fill_tbl(&amp;quot;bandit3_walker&amp;quot;, 0, 5, {0, 1}, squad, groups[1], &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, true, type))&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- автоматически изменяем работу для каждого нпс/мутанта -&amp;gt; function load_states(...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
if type == &amp;quot;esc_bandits_smart_terrain&amp;quot; then&lt;br /&gt;
	return function(gulag)&lt;br /&gt;
		if not db.actor then&lt;br /&gt;
			return gulag.state&lt;br /&gt;
		end&lt;br /&gt;
		if level.get_time_hours() &amp;gt;= 5 and level.get_time_hours() &amp;lt;= 22 then&lt;br /&gt;
		        return 0  -- переключает всех мутантов/нпс на дневную работу&lt;br /&gt;
		else&lt;br /&gt;
			return 1  -- ереключает всех мутантов/нпс на ночную работу&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- убедитесь что наш ST будет использоваться только для бандитов -&amp;gt; function checkStalker(...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
if gulag_type == &amp;quot;esc_bandits_smart_terrain&amp;quot; then&lt;br /&gt;
	return npc_community == &amp;quot;bandit&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Так же существуют универсальные гулаги General_lager для сталкеров. Они считаются упрощенными гулагами.&lt;br /&gt;
&lt;br /&gt;
Пример, создаем смарт:&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
[9999]&lt;br /&gt;
; cse_abstract properties (основные параметры)&lt;br /&gt;
section_name = smart_terrain&lt;br /&gt;
name         = esc_gen_lager&lt;br /&gt;
position     = 131.02030944824,0.065616846084595,-248.9094543457&lt;br /&gt;
direction    = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties (параметры объекта)&lt;br /&gt;
game_vertex_id  = 635&lt;br /&gt;
distance        = 9.09999942779541&lt;br /&gt;
level_vertex_id = 363757&lt;br /&gt;
object_flags    = 0x==3e&lt;br /&gt;
custom_data     = &amp;lt;&amp;lt;END&lt;br /&gt;
[smart_terrain]&lt;br /&gt;
type     = general_lager&lt;br /&gt;
capacity = 3 ;вместимость&lt;br /&gt;
communities = bandit ; комьюнити населения&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 = 20.55957102775574&lt;br /&gt;
&lt;br /&gt;
; cse_alife_space_restrictor properties (параметры рестриктора)&lt;br /&gt;
restrictor_type = 3&lt;br /&gt;
&lt;br /&gt;
; se_smart_terrain properties (параметры смарттеррейна)&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
General_lager автоматически соберет все точки путей на уровне начинающиеся на имя смарта(в нашем случае esc_gen_lager)&lt;br /&gt;
и разделит их названия таким образом:&lt;br /&gt;
(имя_смарта)_(аи схема)_(номер если требуется,напрмер если 2 walkerа то 1 и 2 соответственно)_(поднастройка схемы)_(состояние гулага 1 или 0,день или ночь)&lt;br /&gt;
пример:&lt;br /&gt;
esc_gen_lager _walker _1 _walk _1 (walk то же что и path_walk,look это path_look соответственно)&lt;br /&gt;
&lt;br /&gt;
Пришедший на general_lager сталкер рандомно примет любую свободную работу&lt;br /&gt;
работой считается комбинация схем с одним номером.&lt;br /&gt;
например esc_gen_lager_walker_1_walk_1 и esc_gen_lager_walker_1_look_1 это схема дневной работы одного персонажа из гулага.&lt;br /&gt;
&lt;br /&gt;
Так что для каждого general_lager нужны заранее расставленые точки путей для него.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Автор ==&lt;br /&gt;
&lt;br /&gt;
[[Dez0wave]]&lt;br /&gt;
&lt;br /&gt;
== Перевод ==&lt;br /&gt;
[[Loxotron]]&lt;br /&gt;
&lt;br /&gt;
== Дополнял ==&lt;br /&gt;
[[IamFarsight]]&lt;br /&gt;
&lt;br /&gt;
==Ссылки==&lt;br /&gt;
[http://www.gsc-game.com/main.php?t=community&amp;amp;s=forums&amp;amp;s_game_type=xr&amp;amp;thm_page=77&amp;amp;thm_id=14712&amp;amp;sec_id=16&amp;amp;page=1#199726 Обсуждение тут]&lt;br /&gt;
&lt;br /&gt;
Используйте нашу утилиту для дебаггинга смартеррейнов и экспорта вейпоинтов:&lt;br /&gt;
&lt;br /&gt;
[http://sdk.stalker-game.com/ru/images/d/d7/Smartterrain_and_Waypoint_Tools_by_dez0wave.zip Скачать Smartterrain and Waypoint Tools]&lt;br /&gt;
&lt;br /&gt;
[http://ifolder.ru/7179080 Зеркало на всякий случай]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>90.150.127.141</name></author>	</entry>

	</feed>