Что такое смарты в сталкере

Обновлено: 30.06.2024

Для добавления лагеря необходимо поставить объект Spawn Element -> ai -> smart_terrain. В его Properties -> Custom data нужно прописать следующее:

Необходимо ставить точку графа Spawn Element -> ai -> graph point в центре каждого smart_terrain’а и на середине пути от него к лагерями, которые указаны в его targets. Это делается для того, чтобы в оффлайне передвижение отрядов хорошо смотрелось на карте.

Что такое смарты в сталкере

Посоны, я решительно не могу создать работающий смарттеррейн в ЧН. Игра валится со знаменитой жалобой на _G.script:973, и я даже не могу понять, что делаю не так.
Если закомментировать строку, на которую вылезает ругань, то игра запустится, но никаких неписей в ней не появится. Если после этого добавить на карту уникального НПС, то он уйдёт бродить по локации, не подчиняясь смарту.

Внимание, вопрос: каков минимальный набор ИИ-сущностей для запуска респавна в игре?

У меня есть голая карта с одним Сидоровичем на ней, но он не считается, т.к. на классе монстра и сталкирским схемам не подчиняется.
ИИ-сетка и графпойнты есть.
ИИ-сетка скомпилирована командой xrAI.exe -f map, спавн скомпилирован командой xrAI.exe -s escape -no_separator_check

Что я делаю:
1) добавляю смарттеррейн, настройки не трогаю
2) в кастомдату пишу следующее:

3) накрываю смарттеррейн двумя рестрикторами (со стандартными настройками) — esc_st_village_sr_defense и esc_st_village_sr_attack
4) делаю аналогичный рестриктор esc_st_test рядом, ему в targets указываю esc_st_village
5) экспортирую спавн, собираю спавн, запускаю игру, получаю описанное сверху

Что не так, чего не хватает?


Shoкer



Просмотр профиля

Кандидат Игровых Наук

973 строка это из скриптовой функции abort(), то-есть скрипты сознательно крашат игру т.к ты неправильно что то настроил.
После такого вылета ты должен открыть лог (целиком) и чуть выше FATAL ERROR будет собственно сам текст ошибки (Начинаться с "ERROR:" )

Единственное что - в ТЧ в релизной версии движка текст ошибки в лог не выводился (т.к сама функция не была экспортирована корректно), но вроде как в ЧН с этим порядок. Если никакого текста с ошибкой нету, то попробуй в _g.script поменять местами строки 973 (assert) и 974 (error_log).


Trollz0r



Просмотр профиля


Перейти к альбомам пользователя

Что такое смарты в сталкере

В последнее время люди постоянно меня спрашивали как создать скрипт гулага для смартеррейнов. Чтобы постоянно не отвечать на каждое отдельное письмо, я решил написать небольшой тутор. Прежде чем начать, хотелось бы предупредить, что не являюсь экспертом в подобного рода вещах и некоторые моменты мне всё еще не ясны до конца, так что вероятно я не смогу объяснить всё правильно. Также я буду использовать ST как абревиатуру смартеррейна. Этот тутор посвящен НПС в ST, но он также сгодится и для мутантов. Предполагаю что вы знакомы с:

В первую очередить подумайте о своём ST, где бы его заспавнить, сколько нпс/мутантов будут в нем выполнять определенную "работу", когда ST должен активироваться/отключаться, сколько и какие состояния будет у вашего ST и тд. Думаю, наиболее эффективный способ объяснить вам как это работает на примере. Давайте предположим.. мы хотим поставить ST(smart terrain) на Кордоне для 3х бандитов.

position = 131.02030944824,0.065616846084595,-248.9094543457

; cse_alife_space_restrictor properties (параметры рестриктора)

; se_smart_terrain properties (параметры смарттеррейна)

cond описывает условия, которые необходимы для включения гулага(по желанию)

capacity количество мутантов/нпс, которое может вместить смарттеррейн(обязательно)

squad, groups - номер сквада и количество групп(по желанию)

respawn название тайника(синяя коробка) куда будут спавниться предметы, когда мы вызовем респавн в ST.(по желанию)

2. Спавн нпс/мутантов и назначение(биндинг) их к нашему ST: для этого мы должны добавить каждому мутанту/нпс определенную логику:

Если таковых нпс не обнаружится то гулаг выберет себе население из числа заспавнившихся в Зоне нпс с подходящими параметрами. Даже если они на другой локации.

3. Добавляем "работу" (логика) для каждого нпс/мутанта из нашего ST(для каждого состояния). Предположии у ST их два: состояние 0 (описывает какие нпс/мутанты "работают" днем) и состояние 1 (ночью). У нас 3 бандита, определяемся:

- bandit3: walker (состояние 0 и 1 <= он делает тоже и днём, и ночью)

- грузим логику (работу) для каждого нпс/мутанта и для каждого состояния -> function load_job(. )

;-- "соеденительная секция" для логики, определяем ltx фаилом

t.section = "logic@esc_bandits_smart_terrain_bandit1_walker"

;-- Какой squad и group назначится персонажу принявшему эту работу.

;-- описывает рестрикторы (куда нпс могут/не могут пойти)

;-- smart_terrain.script вы никогда не знаете, какая работа

;-- будет использоваться каждым нпсом; если вы хотите быть уверенным

;-- вам нужно заюзать предикатную функцию; в этом слуае

;-- мы хотим чтобы эта работа присвоилась мастеру бандиту

t.predicate = function(obj_info) return obj_info.rank >= 900 end

t =

group = groups[1], position_threshold = 100, online = true, in_rest = "",

out_rest = "", predicate = function(obj_info) return obj_info.rank >= 900 end>

t =

idle = 0, prior = 5, state = <0>, squad = squad, group = groups[1],

t =

idle = 0, prior = 5, state = <1>, squad = squad, group = groups[1],

t =

idle = 0, prior = 5, state = <0, 1>, squad = squad, group = groups[1],

Еще один момент о состояниях ST, всё зависит от того сколько у вас их в ST. Еще одна важной вещью является добавление логики для каждого состояния. Например в вашем ST такие состояния:

К сведению, меня не прет заполнять такое большое количество таблиц, так что обычно я использую эту функцию:

function fill_tbl(section, idle, prior, states, squad, group, in_rest, out_rest, online, gulag_name)

Используя функцию выше, мы можем загружать логику наподобие этой:

local t = table.insert(sj, fill_tbl("bandit1_walker", 0, 100, <0>, squad, groups[1], "", "", true, type))

t.predicate = function(obj_info) return obj_info.rank >= 900 end

t = table.insert(sj, fill_tbl("bandit1_kamp", 0, 100, <1>, squad, groups[1], "", "", true, type))

t.predicate = function(obj_info) return obj_info.rank >= 900 end

table.insert(sj, fill_tbl("bandit2_walker", 0, 5, <0>, squad, groups[1], "", "", true, type))

table.insert(sj, fill_tbl("bandit2_sleeper", 0, 5, <1>, squad, groups[1], "", "", true, type))

table.insert(sj, fill_tbl("bandit3_walker", 0, 5, <0, 1>, squad, groups[1], "", "", true, type))

- автоматически изменяем работу для каждого нпс/мутанта -> function load_states(. )

if level.get_time_hours() >= 5 and level.get_time_hours() <= 22 then

return 0 -- переключает всех мутантов/нпс на дневную работу

return 1 -- ереключает всех мутантов/нпс на ночную работу

- убедитесь что наш ST будет использоваться только для бандитов -> function checkStalker(. )

Так же существуют универсальные гулаги General_lager для сталкеров. Они считаются упрощенными гулагами.

position = 131.02030944824,0.065616846084595,-248.9094543457

; cse_alife_space_restrictor properties (параметры рестриктора)

; se_smart_terrain properties (параметры смарттеррейна)

General_lager автоматически соберет все точки путей на уровне начинающиеся на имя смарта(в нашем случае esc_gen_lager) и разделит их названия таким образом: (имя_смарта)_(аи схема)_(номер если требуется,напрмер если 2 walkerа то 1 и 2 соответственно)_(поднастройка схемы)_(состояние гулага 1 или 0,день или ночь) пример: esc_gen_lager _walker _1 _walk _1 (walk то же что и path_walk,look это path_look соответственно)

Пришедший на general_lager сталкер рандомно примет любую свободную работу работой считается комбинация схем с одним номером. например esc_gen_lager_walker_1_walk_1 и esc_gen_lager_walker_1_look_1 это схема дневной работы одного персонажа из гулага.

Так что для каждого general_lager нужны заранее расставленые точки путей для него.

Создание Смарт террэйна на основе схемы General Lager

Итак, вы хотите создать смарт, но не охота копошится в скриптах и конфигах и создавать свои скрипты для смарта? тогда этот способ именно для вас. Генерал лагер это универсальный смарт, с его помощью можно заселить локации или переобустроить ПЫСовские. Начнем с простенького.

Открываем сдк, жмем spawn element>ai>smart terrains, шлепаем сие на локацию, затем переходим в shape>sphere(можно и box по желанию) и снова вставляем сие на локацию, увеличиваем до нужных размеров (не сильно больших), переходим обратно в режим spawn element, жмем кнопку attach object и кликаем на созданной нами сфере. Мы создали смарт с зоной влияния. открываем properties правым щелчком мыши или eneter по умолчанию. открываем custom data и пишем в ней [smart_terrain] type = general_lair capacity = 4 где capacity = 4, это число мутантов, которые могут в ходить в смарт (тобешь есле capacity = 4, то в смарте будет 4 места для мутанта) переходим в режим way points, добавляем новый путь (он будет состоять из одной точки) и обзываем его smart_name_home_1, где smart_name это имя вашего смарта, все, смарт готов, осталось только создать самих мутантов, берем любого, нужного вам мутанта, ставим в зону влияния смарта и идем в custom data, в ней пишем [smart_terrain] smart_terrain_name = true где smart_terrain_name - имя вашего смарта. Все, смарт террэйн для мутантов готов, собираем уровень и идем туда, куда поставили свой смарт и любуемся тем, что мутанты не разбредаются кто куда, а чем то занимаются рядом со смартом

[Имя уровня] boar = weak, normal, strong bloodsucker = weak, normal, strong flesh = weak, normal, strong dog = weak, normal, strong pseudodog = weak, normal, strong giant = weak, normal, strong zombie = weak, normal, strong burer = weak, normal, strong controller = weak, normal, strong poltergeist = weak, normal, strong snork = weak, normal, strong tushkano = weak, normal, strong

[Имя уровня] stalker = novice, experienced, veteran, master monolith = novice, experienced, veteran, master military = novice, experienced, veteran, master killer = novice, experienced, veteran, master ecolog = novice, experienced, veteran, master dolg = novice, experienced, veteran, master freedom = novice, experienced, veteran, master bandit = novice, experienced, veteran, master zombied = novice, experienced, veteran, master

boar = weak, normal, strong bloodsucker = weak, normal, strong flesh = weak, normal, strong dog = weak, normal, strong pseudodog = weak, normal, strong giant = weak, normal, strong zombie = weak, normal, strong burer = weak, normal, strong controller = weak, normal, strong poltergeist = weak, normal, strong snork = weak, normal, strong tushkano = weak, normal, strong

И так, повторяем действия сделанные выше Открываем сдк, жмем spawn element>ai>smart terrains, шлепаем сие на локацию, затем переходим в shape>sphere(можно и box по желанию) и снова вставляем сие на локацию, увеличиваем до нужных размеров (не сильно больших), переходим обратно в режим spawn element, жмем кнопку attach object и кликаем на созданной нами сфере. открываем properties правым щелчком мыши или eneter по умолчанию. открываем custom data и пишем в ней [smart_terrain] type = general_lager capacity = 5 что такое capacity вы уже знаете. Создаем пути для НПС (Работы для НПС) вот примеры путей

* sleep - место для сна НПС состоит из двух точек, НПС ложится на нулевой точке и смотрит в первую.

* walker - обычное бродяжничество по точкам НПС, при использовании точек для пути больше двух - smart_name_walker_1_look не применяется (путь у этого вида волкера должен быть не замкнут и состоять из точек пути больше одного)

* walker2 - тот же волкер что и выше, только он ходит по замкнутым путям, лук пути почти не используются.

* patrol - патруль лагеря, используется во множественном количестве (количество точек пути в одном пути больше единицы, путь должен быть замкнут),не применяются look пути

* guard - часовой, используется в двойном количестве (в пути имеется две точки), очень часто используется look пути

* sniper - работа для снайпера, задается двумя точками и look путями. Почему то НПС игнорируют данную работу.

Так, теперь, когда вы узнали виды работ - создайте по вкусу работы (их количество не должно превышать количество сталкеров в смарте) и не забудьте приписывать в начале имя смарта (например red_bridge_blokpoats_kamp_1) все, собираем уровень и смотрим на наш смарт, есле вы создали несколько лагерей на одном уровне с одинаковой кастом датой и ваши НПС начали разбредатся - сначала проследите, куда они пойдут, может их принял под себя другой смарт (лично у меня такое было)

smart_name_kamp_1 имя_гулага_kamp_коментарии типа [esc2_tunnel3_home_1] причем вместо 1 может быть все что угодно

Что такое смарты в сталкере



Вообще в ЗП можно спавнить НПС двумя способами - через алл.спавн и через смарт_терраин. Сегодня я вам расскажу как спавнить НПС через смарт. Почему через смарт?

Потому что:
1. Как заспавнить НПС через алл.спавн знают уже все.
2. Спавнить через смарт для меня лично удобней.
3. ПЫСовцы спавнили сталкеров только через смарты.

Итак:
Для того чтобы заспавнить НПС необходимо сначала заспавнить смарт_терраин. Создадим секцию в алл.спавне для смарта:

После этого заходим в игру и. О чудо, наш сталкер появился! Правда так как мы ему не прописали логику то он уходит из смарта в смарт, где есть работа.

Работы универсальных лагерей

У каждого универсального лагеря есть 4 состояния:

  1. День (6:00 – 21:00)
  2. Ночь (21:00 – 6:00)
  3. Атака (контролируется менеджером симуляции)
  4. Оборона (контролируется менеджером симуляции)

Атака и защита являются более приоритетными состояниями, т.е. если нет атаки или защиты, то действует правило день/ночь.

Если нужно добавить эксклюзивные работы, нужно в кастом дате смарт террейна в секции [exclusive] вписать строчки:

Путь к файлу настроек пишется относительно папки \gamedata\configs\scripts\

В файле настроек писать стандартную логику как в кастом дате сталкера, со следующими дополнительными параметрами:

  1. Имя секции [logic] должно выглядеть как [logic@соответствующее_имя_работы]
  2. В секции [logic@имя_работы] можно прописать ключ suitable. Его значение — кондлист, который определяет, может ли занять эту эксклюзивную работу определённый npc. Если этот ключ не указан — работу может занять любой npc.
  3. Есть возможность сделать так, чтобы npc на уникальной работе, всегда находился в online. Для этого, нужно прописать ключ: job_online = true
  4. Можно задать приоритет экслюзивной работы prior = 70. Чем больше число тем выше приоритет работы. Обычно, не эксклюзивные работы имеют приоритет ниже 70.

Эксклюзивные работы не зависят от состояния смарт террейна.

Пример кастом даты смарт террейна:

Пример файла настройки:

Также работает старая система:

kamp — только днём

Работает как для монстров, так и для сталкеров. Сталкеры сидят в центре лагеря возле костра, монстры живут вокруг точки в определённом радиусе.

Ставится точка патрульного пути с именем: [имя_смарттеррейна]_kamp_[номер_кемпа]

Нумерация кемпов должна начинаться с 1, то есть если нужно поставить 3 кемпа в гулаге с именем test_gulag, мы в LevelEditor ставим way point‘ы:

  • test_gulag_kamp_1
  • test_gulag_kamp_2
  • test_gulag_kamp_3

По умолчанию каждый кемп имеет в себе 5 мест, это количество можно менять, задавая флаг в нулевой точке этого пути.
Для сталкеров: name00|count = количество_мест
Для монстров: name00|mcount = количество_мест

Монстрам можно задавать минимальный радиус (по входу противника в который они будут нападать):
name00|max = радиус_в_метрах
И максимальный радиус (до границ которого они будут преследовать противника):
name00|min = радиус_в_метрах

sleep — только ночью

Сталкеры спят в укромном месте, недалеко от центра лагеря.

Ставится точка патрульного пути с именем:
[имя_смарттеррейна]_sleep_[номер_работы]

walker — днём и ночью

Сталкер тыняется по лагерю без особой цели.

Ставится патрульный путь с именем:
[имя_смарттеррейна]_walker_[номер_работы]_walk

Можно поставить патрульный путь с точками look (опционально), в том случае, если путь walk содержит в себе только одну вершину:
[имя_смарттеррейна]_walker_[номер_работы]_look

patrol — днём и ночью

Сталкеры патрулируют периметр лагеря.

Ставится патрульный путь с именем:
[имя_смарттеррейна]_patrol_[номер_работы]_walk

Можно поставить патрульный путь с точками look(опционально), в том случае, если путь walk содержит в себе только одну вершину:
[имя_смарттеррейна]_patrol_[номер_работы]_look

Каждый патрульный путь по умолчанию содержит в себе 5 работ, т.е. в патруль могут выйти 5 сталкеров. Это количество можно менять, задавая флаг в нулевой точке этого пути:
name00|count = количество_человек_в_патруле

guard — днём и ночью

Сталкеры стоят в точках по краям лагеря, охраняют.

Ставится патрульный путь с именем:
[имя_смарттеррейна]_guard_[номер_работы]_walk

В этой работе обязательно нужно указывать патрульный путь с точками look:
[имя_смарттеррейна]_guard_[номер_работы]_look

sniper — днём, ночью и в состоянии обороны

Работа только для чувака, у которого оружие с оптикой. Кемперит рядом с лагерем и стреляет по всему что движется.

Ставится точка патрульного пути с именем:
[имя_смарттеррейна]_sniper_[номер_работы]_walk

В этой работе обязательно нужно указывать патрульный путь с точками look:
[имя_смарттеррейна]_sniper_[номер_работы]_look

ranger — только в состоянии атаки

Обстрел с большого расстояния, при приближении противника переход в универсальный комбат.

Ставится патрульный путь с именем:
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_ranger_[номер_работы]_walk

Можно поставить патрульный путь с точками look (опционально), в том случае если путь walk содержит в себе только одну вершину: [имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_ranger_[номер_работы]_look

Также нужно указать точку, в которой боец перейдёт в состояние ожидания. Для этого нужно в имени одной из точек пути walk указать:
_точки|sig=arrive_to_wait

В состоянии ожидания боец некоторое время будет отыгрывать анимацию подготовки к бою. Можно указать точку, в которой он это будет делать. Для этого нужно поставить патрульный путь (из одной точки) с именем:
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_ranger_[номер_работы]_wait_walk

Можно поставить патрульный путь с точкой look (опционально):
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_ranger_[номер_работы]_wait_look

Если точка перехода в состояние ожидания ближе к целевому смарту, чем 30 метров, то боец перейдёт в состояние ожидания за 30 метров до этого смарта. Если путь ожидания не поставлен — боец будет отыгрывать анимацию подготовки к бою в той точке, в которой он перешёл в состояние ожидания.

assault — только в состоянии атаки

Сталкеры ломятся толпой в атаку в универсальном комбате.

Ставится патрульный путь с именем:
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_assault_[номер_работы]_walk

Можно поставить патрульный путь с точками look(опционально), в том случае если путь walk содержит в себе только одну вершину:
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_assault_[номер_работы]_look

Также нужно указать точку, в которой боец перейдёт в состояние ожидания. Для этого нужно в имени одной из точек пути walk указать:
имя_точки|sig=arrive_to_wait

В состоянии ожидания боец некоторое время будет отыгрывать анимацию подготовки к бою. Можно указать точку, в которой он это будет делать. Для этого нужно поставить патрульный путь (из одной точки) с именем:
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_assault_[номер_работы]_wait_walk

Можно поставить патрульный путь с точкой look (опционально):
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_assault_[номер_работы]_wait_look

Если точка перехода в состояние ожидания ближе к целевому смарту, чем 30 метров, то боец перейдёт в состояние ожидания за 30 метров до этого смарта. Если путь ожидания не поставлен – боец будет отыгрывать анимацию подготовки к бою в той точке, в которой он перешёл в состояние ожидания.

sneak — только в состоянии атаки

Чуваки подкрадываются на максимально близкое расстояние к вражескому лагерю и синхронно переходят в универсальный комбат.

Ставится патрульный путь с именем:
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_sneak_[номер_работы]_walk

Можно поставить патрульный путь с точками look(опционально), в том случае если путь walk содержит в себе только одну вершину:
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_sneak_[номер_работы]_look

Также нужно указать точку, в которой боец перейдёт в состояние ожидания. Для этого нужно в имени одной из точек пути walk указать:
имя_точки|sig=arrive_to_wait

В состоянии ожидания боец некоторое время будет отыгрывать анимацию подготовки к бою. Можно указать точку, в которой он это будет делать. Для этого нужно поставить патрульный путь (из одной точки) с именем:
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_sneak_[номер_работы]_wait_walk

Можно поставить патрульный путь с точкой look (опционально):
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_sneak_[номер_работы]_wait_look

Если точка перехода в состояние ожидания ближе к целевому смарту, чем 30 метров, то боец перейдёт в состояние ожидания за 30 метров до этого смарта. Если путь ожидания не поставлен – боец будет отыгрывать анимацию подготовки к бою в той точке, в которой он перешёл в состояние ожидания.

patrol (атака) — только в состоянии атаки

Идут к лагерю в патруле, если там пусто, или нападают в рейде, если там враги.

Ставится патрульный путь с именем:
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_patrol_[номер_работы]_walk

Можно поставить патрульный путь с точками look(опционально), в том случае если путь walk содержит в себе только одну вершину:
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_patrol_[номер_работы]_look

Каждый патрульный путь по умолчанию содержит в себе 5 работ, т.е. в патруль могут выйти 5 сталкеров. Это количество можно менять, задавая флаг в нулевой точке этого пути:
name00|count = количество_человек_в_патруле

В каждой точке walk можно задавать анимацию, в которой сталкеры будут идти до следующей точки, иначе они будут идти в состоянии по умолчанию (патруль/рейд).

Также нужно указать точку, в которой бойцы перейдут в состояние ожидания. Для этого нужно в имени одной из точек пути walk указать:
имя_точки|sig=arrive_to_wait

В состоянии ожидания бойцы некоторое время будут готовиться к бою. Для каждого бойца можно указать смарт-кавер, в котором он это будет делать. Для этого нужно поставить смарт-кавер с именем:
[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_patrol_[номер_работы]_wait_[номер_бойца]_smartcover

Если точка перехода в состояние ожидания ближе к целевому смарту, чем 30 метров, то бойцы перейдут в состояние ожидания за 30 метров до этого смарта. Если смарт-кавер ожидания не поставлен – бойцы будут отыгрывать remark подготовки к бою в той точке, в которой они перешли в состояние ожидания.

По окончанию ожидания бойцы снова встанут на путь патруля, по которому дойдут до вражеского лагеря. Желательно, чтобы последняя точка патрульного пути находилась в центре вражеского смарта.

camper — только в состоянии обороны

По поднятию тревоги занимают позицию для обороны, кемперят, переходят в универсальный комбат при сильном приближении противника

Ставится точка патрульного пути с именем:
[имя_смарттеррейна]_camper_[номер_работы]_walk

В этой работе обязательно нужно указывать патрульный путь с точками look:
[имя_смарттеррейна]_camper_[номер_работы]_look

По умолчанию кемпер на точке пути находится в сидячем состоянии, т.е. если перед ним кавер, то он присядет и будет тупить, чтобы указать ему стоячее состояние ведения боя, нужно в нулевой вершине патрульного пути указать флажок:
name00|state=stand

defender — только в состоянии обороны

По поднятию тревоги занимают позицию для обороны, переходят в универсальный комбат, сидят в out-рестрикторе, в лагере.

Ставится точка патрульного пути с именем:
[имя_смарттеррейна]_defender_[номер_работы]_walk

Можно поставить патрульный путь с точками look(опционально), в том случае, если путь walk содержит в себе только одну вершину:
[имя_смарттеррейна]_defender_[номер_работы]_look

В этой схеме можно указать сталкеру out_restrictor, чтобы он держался в нем во время универсального комбата. Для этого в нулевой точке пути задаем флаг: name00|out_restr=имя_рестриктора

Читайте также: