Лагерь (smart terrain)

Материал из xrWiki
Перейти к: навигация, поиск

Добавление лагеря[править]

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

[smart_terrain]
targets              = имя_соседнего_smart_terrain, имя_соседнего_smart_terrain, имя_соседнего_smart_terrain...
sim_type             = тип_лагеря
sim_value            = устаревший параметр, не используется
important_point      = true/false
squad_capacity       = количество_отрядов
mutant_lair          = true/false
group_id             = уникальный_номер
spawn_point          = точка_спауна
att_restr            = space_restrictor_атакующих
def_restr            = space_restrictor_обороняющихся
sim_avail            = {условие} true/false, {условие} true/false...
respawn_sector       = true/false/имя_фракции
no_mutant            = true/false
respawn              = имя_ящика_с_припасами
actor_hides          = имя1, имя2, имя3...
surge_hide_avaliable = true/false
Параметр Описание
targets Имена smart terrain’ов, которые можно атаковать из этого лагеря, через запятую. Желательно создавать симметричную связь между лагерями, то есть если у лагеря A в targets есть лагерь B, то у лагеря B в targets должен быть лагерь A.
sim_type Тип лагеря. Может быть: territory (важные точки, например, перехода на другой уровень, и ключевые точки, например, базы группировок; захват этих точек приводит к появлению дополнительных отрядов), resource (точки, которые увеличивают ресурсы группировки, что приводит к появлению более крутых бойцов), base (база группировки???), default (все остальные лагеря).
sim_value Устаревший параметр, в 10 патче не используется. Можно удалять из настроек.
important_point  ??? Ставится для смартов типа base.
squad_capacity Количество отрядов, которые могут разместиться в этом лагере. Чем больше лагерь – тем больше в нём должно быть отрядов. Количество работ в лагере (см. ниже) должно быть равным или более [количество_человек_в_отряде] * [squad_capacity]. На данный момент в каждом отряде пять человек.
mutant_lair  ???
group_id Уникальный (для соответствующего уровня) номер smart terrain’а. Этот номер будет являться номером group’ы отрядов, находящихся в этом лагере. На одном уровне не должно быть двух лагерей с одинаковыми group_id.
spawn_point Патрульный путь, в нулевой точке которого будут появляться новые отряды.
att_restr Space restrictor, за пределы которого не могут выйти бойцы, атакующие этот лагерь. Должен включать в свои пределы каверы для атакующих, но не давать им забиваться в дальние углы.
def_restr Space restrictor, за пределы которого не могут выйти бойцы, защищающие этот лагерь. Должен включать в свои пределы каверы для обороняющихся, но не давать им забиваться в дальние углы.
sim_avail Через запятую указываются значения, которые, в зависимости от условий, определяют доступность (true) или недоступность (false) лагеря для симуляции.
respawn_sector Значение, разрешающее (true) или запрещающее (false) подспаун новых отрядов группировки в этом лагере (при условии, что игрок находится достаточно далеко). Иначе можно задать имя группировки, например, stalker, bandit, army, monster и т.д.
no_mutant Значение, разрешающее (true) или запрещающее (false) монстрам заходить в данный лагерь. Если не указано, то считается true.
respawn Имя ящика с припасами, например, esc_equipment_box_02_base_5_7
surge_hide_avaliable Можно ли использовать этот смарт как укрытие для выброса.
actor_hides Перечень рестрикторов, используемых как укрытие от выброса применительно к данному смарту.

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

Также каждому лагерю необходимо добавить работы. Для этого нужно расставить соответствующие пути работ. Более подробную информацию можно получить из раздела #Работы универсальных лагерей.

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

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

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

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

Дневные работы Ночные работы Атака Оборона
kamp sleep ranger camper
walker walker assault defender
patrol patrol sneak sniper
guard quard patrol (атака)
sniper sniper
animpoint animpoint

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

[exclusive]
первое_имя_работы = первое_имя_файла_настройки.ltx
второе_имя_работы = второе_имя_файла_настройки.ltx

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

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

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

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

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

[smart_terrain]
targets =

[exclusive]
genatsvale = aul\aul_genatsvale.ltx

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

[logic@genatsvale]
suitable = {=check_npc_name(givi_zurabovich)}

job_online = true
active = walker
prior = 70

[walker]

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

[smart_terrain]
work1 = имя_файла_настройки1.ltx
work2 = имя_файла_настройки2.ltx


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

animpoint — днём и ночью[править]

НПС в анимпоинте.

На локацию добавляется спавн-объект "smart_cover"
Устанавливайте нужную анимацию в поле "description"
Снимаем галочки с полей "is combat cover", "can fire"
Имя смарт-ковера должно быть: [имя смарт-террейна]_animpoint_[номер_работы]


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=имя_рестриктора