Лагерь (smart terrain) — различия между версиями
RedPython (обсуждение | вклад) (Добавление лагеря) |
Graff46 (обсуждение | вклад) м (Добавил описание логики анимпоинтов) |
||
(не показано 19 промежуточных версий 1 участника) | |||
Строка 2: | Строка 2: | ||
Для добавления лагеря необходимо поставить объект Spawn Element -> ai -> smart_terrain. В его Properties -> Custom data нужно прописать следующее: | Для добавления лагеря необходимо поставить объект Spawn Element -> ai -> smart_terrain. В его Properties -> Custom data нужно прописать следующее: | ||
<syntaxhighlight lang="ini">[smart_terrain] | <syntaxhighlight lang="ini">[smart_terrain] | ||
− | targets = имя_соседнего_smart_terrain, имя_соседнего_smart_terrain, имя_соседнего_smart_terrain... | + | targets = имя_соседнего_smart_terrain, имя_соседнего_smart_terrain, имя_соседнего_smart_terrain... |
− | sim_type = тип_лагеря | + | sim_type = тип_лагеря |
− | squad_capacity = количество_отрядов | + | sim_value = устаревший параметр, не используется |
− | group_id = уникальный_номер | + | important_point = true/false |
− | spawn_point = точка_спауна | + | squad_capacity = количество_отрядов |
− | att_restr = space_restrictor_атакующих | + | mutant_lair = true/false |
− | def_restr = space_restrictor_обороняющихся | + | group_id = уникальный_номер |
− | sim_avail = {условие} false | + | 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</syntaxhighlight> | ||
+ | |||
{| class="wikitable" style="color: #black; background-color: #efffef; width: 100%;" | {| class="wikitable" style="color: #black; background-color: #efffef; width: 100%;" | ||
|- | |- | ||
Строка 20: | Строка 28: | ||
|- | |- | ||
|sim_type | |sim_type | ||
− | |Тип лагеря. Может быть: '''territory''' (важные точки, например, [[ | + | |Тип лагеря. Может быть: '''territory''' (важные точки, например, [[Переход между уровнями (level changer)|перехода на другой уровень]], и ключевые точки, например, базы группировок; захват этих точек приводит к появлению дополнительных отрядов), '''resource''' (точки, которые увеличивают ресурсы группировки, что приводит к появлению более крутых бойцов), '''base''' (база группировки???), '''default''' (все остальные лагеря). |
+ | |- | ||
+ | |sim_value | ||
+ | |Устаревший параметр, в 10 патче не используется. Можно удалять из настроек. | ||
+ | |- | ||
+ | |important_point | ||
+ | | ??? Ставится для смартов типа base. | ||
|- | |- | ||
|squad_capacity | |squad_capacity | ||
|Количество отрядов, которые могут разместиться в этом лагере. Чем больше лагерь – тем больше в нём должно быть отрядов. Количество работ в лагере (см. ниже) должно быть равным или более ''[количество_человек_в_отряде] * [squad_capacity]''. На данный момент в каждом отряде пять человек. | |Количество отрядов, которые могут разместиться в этом лагере. Чем больше лагерь – тем больше в нём должно быть отрядов. Количество работ в лагере (см. ниже) должно быть равным или более ''[количество_человек_в_отряде] * [squad_capacity]''. На данный момент в каждом отряде пять человек. | ||
+ | |- | ||
+ | |mutant_lair | ||
+ | | ??? | ||
|- | |- | ||
|group_id | |group_id | ||
Строка 41: | Строка 58: | ||
|- | |- | ||
|respawn_sector | |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. Это делается для того, чтобы в оффлайне передвижение отрядов хорошо смотрелось на карте. | + | Необходимо ставить [[Точки графа (graph point)|точку графа]] '''Spawn Element -> ai -> graph point''' в центре каждого smart_terrain’а и на середине пути от него к лагерями, которые указаны в его targets. Это делается для того, чтобы в оффлайне передвижение отрядов хорошо смотрелось на карте. |
Также каждому лагерю необходимо добавить работы. Для этого нужно расставить соответствующие пути работ. Более подробную информацию можно получить из раздела | Также каждому лагерю необходимо добавить работы. Для этого нужно расставить соответствующие пути работ. Более подробную информацию можно получить из раздела | ||
[[#Работы универсальных лагерей]]. | [[#Работы универсальных лагерей]]. | ||
+ | =={{Якорь|Работы универсальных лагерей}}Работы универсальных лагерей== | ||
+ | У каждого универсального лагеря есть 4 состояния: | ||
+ | #День (6:00 – 21:00) | ||
+ | #Ночь (21:00 – 6:00) | ||
+ | #Атака (контролируется менеджером симуляции) | ||
+ | #Оборона (контролируется менеджером симуляции) | ||
+ | Атака и защита являются более приоритетными состояниями, т.е. если нет атаки или защиты, то действует правило день/ночь. | ||
+ | {| class="wikitable" style="color: #black; background-color: #efffef; width: 80%;" | ||
+ | |- | ||
+ | !style="background-color: #efffef"|Дневные работы||style="background-color: #efffef"|Ночные работы||style="background-color: #efffef"|Атака||style="background-color: #efffef"|Оборона | ||
+ | |- | ||
+ | |kamp ||sleep ||ranger ||camper | ||
+ | |- | ||
+ | |walker ||walker ||assault ||defender | ||
+ | |- | ||
+ | |patrol ||patrol ||sneak ||sniper | ||
+ | |- | ||
+ | |guard ||quard ||patrol (атака) || | ||
+ | |- | ||
+ | |sniper ||sniper || || | ||
+ | |- | ||
+ | |animpoint ||animpoint || || | ||
+ | |} | ||
+ | Если нужно добавить эксклюзивные работы, нужно в кастом дате смарт террейна в секции [exclusive] вписать строчки: | ||
+ | <syntaxhighlight lang="ini">[exclusive] | ||
+ | первое_имя_работы = первое_имя_файла_настройки.ltx | ||
+ | второе_имя_работы = второе_имя_файла_настройки.ltx | ||
+ | …</syntaxhighlight> | ||
+ | Путь к файлу настроек пишется относительно папки '''\gamedata\configs\scripts\''' | ||
+ | |||
+ | В файле настроек писать стандартную логику как в кастом дате сталкера, со следующими дополнительными параметрами: | ||
+ | #Имя секции [logic] должно выглядеть как [logic@соответствующее_имя_работы] | ||
+ | #В секции [logic@имя_работы] можно прописать ключ suitable. Его значение — кондлист, который определяет, может ли занять эту эксклюзивную работу определённый npc. Если этот ключ не указан — работу может занять любой npc. | ||
+ | #Есть возможность сделать так, чтобы npc на уникальной работе, всегда находился в online. Для этого, нужно прописать ключ: job_online = true | ||
+ | #Можно задать приоритет экслюзивной работы prior = 70. Чем больше число тем выше приоритет работы. Обычно, не эксклюзивные работы имеют приоритет ниже 70. | ||
+ | |||
+ | Эксклюзивные работы не зависят от состояния смарт террейна. | ||
+ | |||
+ | Пример кастом даты смарт террейна: | ||
+ | <syntaxhighlight lang="ini">[smart_terrain] | ||
+ | targets = | ||
+ | |||
+ | [exclusive] | ||
+ | genatsvale = aul\aul_genatsvale.ltx</syntaxhighlight> | ||
+ | Пример файла настройки: | ||
+ | <syntaxhighlight lang="ini">[logic@genatsvale] | ||
+ | suitable = {=check_npc_name(givi_zurabovich)} | ||
+ | |||
+ | job_online = true | ||
+ | active = walker | ||
+ | prior = 70 | ||
+ | |||
+ | [walker] | ||
+ | …</syntaxhighlight> | ||
+ | Также работает старая система: | ||
+ | <syntaxhighlight lang="ini">[smart_terrain] | ||
+ | work1 = имя_файла_настройки1.ltx | ||
+ | work2 = имя_файла_настройки2.ltx | ||
+ | …</syntaxhighlight> | ||
+ | |||
+ | |||
+ | ===kamp — только днём=== | ||
+ | Работает как для монстров, так и для сталкеров. Сталкеры сидят в центре лагеря возле костра, монстры живут вокруг точки в определённом радиусе. | ||
+ | |||
+ | Ставится точка патрульного пути с именем: | ||
+ | <code>[имя_смарттеррейна]_kamp_[номер_кемпа]</code> | ||
+ | |||
+ | Нумерация кемпов должна начинаться с '''1''', то есть если нужно поставить 3 кемпа в гулаге с именем '''test_gulag''', мы в [[LevelEditor]] ставим [[Точки пути (way point)|way point‘ы]]: | ||
+ | *test_gulag_kamp_1 | ||
+ | *test_gulag_kamp_2 | ||
+ | *test_gulag_kamp_3 | ||
+ | |||
+ | По умолчанию каждый кемп имеет в себе 5 мест, это количество можно менять, задавая флаг в нулевой точке этого пути.<br /> | ||
+ | Для сталкеров: <code>name00|count = количество_мест</code><br /> | ||
+ | Для монстров: <code>name00|mcount = количество_мест</code> | ||
+ | |||
+ | Монстрам можно задавать минимальный радиус (по входу противника в который они будут нападать):<br /> | ||
+ | <code>name00|max = радиус_в_метрах</code><br /> | ||
+ | И максимальный радиус (до границ которого они будут преследовать противника):<br /> | ||
+ | <code>name00|min = радиус_в_метрах</code> | ||
+ | |||
+ | |||
+ | ===sleep — только ночью=== | ||
+ | Сталкеры спят в укромном месте, недалеко от центра лагеря. | ||
+ | |||
+ | Ставится точка патрульного пути с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_sleep_[номер_работы]</code> | ||
+ | |||
+ | |||
+ | ===walker — днём и ночью=== | ||
+ | Сталкер тыняется по лагерю без особой цели. | ||
+ | |||
+ | Ставится патрульный путь с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_walker_[номер_работы]_walk</code> | ||
+ | |||
+ | Можно поставить патрульный путь с точками '''look''' (опционально), в том случае, если путь '''walk''' содержит в себе только одну вершину:<br /> | ||
+ | <code>[имя_смарттеррейна]_walker_[номер_работы]_look</code> | ||
+ | |||
+ | |||
+ | ===patrol — днём и ночью=== | ||
+ | Сталкеры патрулируют периметр лагеря. | ||
+ | |||
+ | Ставится патрульный путь с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_patrol_[номер_работы]_walk</code> | ||
+ | |||
+ | Можно поставить патрульный путь с точками look(опционально), в том случае, если путь walk содержит в себе только одну вершину:<br /> | ||
+ | <code>[имя_смарттеррейна]_patrol_[номер_работы]_look</code> | ||
+ | |||
+ | Каждый патрульный путь по умолчанию содержит в себе 5 работ, т.е. в патруль могут выйти 5 сталкеров. Это количество можно менять, задавая флаг в нулевой точке этого пути:<br /> | ||
+ | <code>name00|count = количество_человек_в_патруле</code> | ||
+ | |||
+ | |||
+ | ===guard — днём и ночью=== | ||
+ | Сталкеры стоят в точках по краям лагеря, охраняют. | ||
+ | |||
+ | Ставится патрульный путь с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_guard_[номер_работы]_walk</code> | ||
+ | |||
+ | В этой работе обязательно нужно указывать патрульный путь с точками look:<br /> | ||
+ | <code>[имя_смарттеррейна]_guard_[номер_работы]_look</code> | ||
+ | |||
+ | ===animpoint — днём и ночью=== | ||
+ | НПС в анимпоинте. | ||
+ | |||
+ | На локацию добавляется спавн-объект "smart_cover"<br /> | ||
+ | Устанавливайте нужную анимацию в поле "description"<br /> | ||
+ | Снимаем галочки с полей "is combat cover", "can fire"<br /> | ||
+ | Имя смарт-ковера должно быть: <code>[имя смарт-террейна]_animpoint_[номер_работы]</code> | ||
+ | |||
+ | |||
+ | ===sniper — днём, ночью и в состоянии обороны=== | ||
+ | Работа только для чувака, у которого оружие с оптикой. Кемперит рядом с лагерем и стреляет по всему что движется. | ||
+ | |||
+ | Ставится точка патрульного пути с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_sniper_[номер_работы]_walk</code> | ||
+ | |||
+ | В этой работе обязательно нужно указывать патрульный путь с точками look:<br /> | ||
+ | <code>[имя_смарттеррейна]_sniper_[номер_работы]_look</code> | ||
+ | |||
+ | ===ranger — только в состоянии атаки=== | ||
+ | Обстрел с большого расстояния, при приближении противника переход в универсальный комбат. | ||
+ | |||
+ | Ставится патрульный путь с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_ranger_[номер_работы]_walk</code> | ||
+ | |||
+ | Можно поставить патрульный путь с точками look (опционально), в том случае если путь walk содержит в себе только одну вершину: | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_ranger_[номер_работы]_look</code> | ||
+ | |||
+ | Также нужно указать точку, в которой боец перейдёт в состояние ожидания. Для этого нужно в имени одной из точек пути walk указать:<br /> | ||
+ | <code>_точки|sig=arrive_to_wait</code> | ||
+ | |||
+ | В состоянии ожидания боец некоторое время будет отыгрывать анимацию подготовки к бою. Можно указать точку, в которой он это будет делать. Для этого нужно поставить патрульный путь (из одной точки) с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_ranger_[номер_работы]_wait_walk</code> | ||
+ | |||
+ | Можно поставить патрульный путь с точкой look (опционально):<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_ranger_[номер_работы]_wait_look</code> | ||
+ | |||
+ | Если точка перехода в состояние ожидания ближе к целевому смарту, чем 30 метров, то боец перейдёт в состояние ожидания за 30 метров до этого смарта. Если путь ожидания не поставлен — боец будет отыгрывать анимацию подготовки к бою в той точке, в которой он перешёл в состояние ожидания. | ||
+ | |||
+ | |||
+ | ===assault — только в состоянии атаки=== | ||
+ | Сталкеры ломятся толпой в атаку в универсальном комбате. | ||
+ | |||
+ | Ставится патрульный путь с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_assault_[номер_работы]_walk</code> | ||
+ | |||
+ | Можно поставить патрульный путь с точками look(опционально), в том случае если путь walk содержит в себе только одну вершину:<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_assault_[номер_работы]_look</code> | ||
+ | |||
+ | Также нужно указать точку, в которой боец перейдёт в состояние ожидания. Для этого нужно в имени одной из точек пути walk указать:<br /> | ||
+ | <code>имя_точки|sig=arrive_to_wait</code> | ||
+ | |||
+ | В состоянии ожидания боец некоторое время будет отыгрывать анимацию подготовки к бою. Можно указать точку, в которой он это будет делать. Для этого нужно поставить патрульный путь (из одной точки) с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_assault_[номер_работы]_wait_walk</code> | ||
+ | |||
+ | Можно поставить патрульный путь с точкой look (опционально):<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_assault_[номер_работы]_wait_look</code> | ||
+ | |||
+ | Если точка перехода в состояние ожидания ближе к целевому смарту, чем 30 метров, то боец перейдёт в состояние ожидания за 30 метров до этого смарта. Если путь ожидания не поставлен – боец будет отыгрывать анимацию подготовки к бою в той точке, в которой он перешёл в состояние ожидания. | ||
+ | |||
+ | |||
+ | ===sneak — только в состоянии атаки=== | ||
+ | Чуваки подкрадываются на максимально близкое расстояние к вражескому лагерю и синхронно переходят в универсальный комбат. | ||
+ | |||
+ | Ставится патрульный путь с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_sneak_[номер_работы]_walk</code> | ||
+ | |||
+ | Можно поставить патрульный путь с точками look(опционально), в том случае если путь walk содержит в себе только одну вершину:<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_sneak_[номер_работы]_look</code> | ||
+ | |||
+ | Также нужно указать точку, в которой боец перейдёт в состояние ожидания. Для этого нужно в имени одной из точек пути walk указать:<br /> | ||
+ | <code>имя_точки|sig=arrive_to_wait</code> | ||
+ | |||
+ | В состоянии ожидания боец некоторое время будет отыгрывать анимацию подготовки к бою. Можно указать точку, в которой он это будет делать. Для этого нужно поставить патрульный путь (из одной точки) с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_sneak_[номер_работы]_wait_walk</code> | ||
+ | |||
+ | Можно поставить патрульный путь с точкой look (опционально):<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_sneak_[номер_работы]_wait_look</code> | ||
+ | |||
+ | Если точка перехода в состояние ожидания ближе к целевому смарту, чем 30 метров, то боец перейдёт в состояние ожидания за 30 метров до этого смарта. Если путь ожидания не поставлен – боец будет отыгрывать анимацию подготовки к бою в той точке, в которой он перешёл в состояние ожидания. | ||
+ | |||
+ | |||
+ | ===patrol (атака) — только в состоянии атаки=== | ||
+ | Идут к лагерю в патруле, если там пусто, или нападают в рейде, если там враги. | ||
+ | |||
+ | Ставится патрульный путь с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_patrol_[номер_работы]_walk</code> | ||
+ | |||
+ | Можно поставить патрульный путь с точками look(опционально), в том случае если путь walk содержит в себе только одну вершину:<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_patrol_[номер_работы]_look</code> | ||
+ | |||
+ | Каждый патрульный путь по умолчанию содержит в себе 5 работ, т.е. в патруль могут выйти 5 сталкеров. Это количество можно менять, задавая флаг в нулевой точке этого пути:<br /> | ||
+ | <code>name00|count = количество_человек_в_патруле</code> | ||
− | == | + | В каждой точке walk можно задавать анимацию, в которой сталкеры будут идти до следующей точки, иначе они будут идти в состоянии по умолчанию (патруль/рейд). |
+ | |||
+ | Также нужно указать точку, в которой бойцы перейдут в состояние ожидания. Для этого нужно в имени одной из точек пути walk указать:<br /> | ||
+ | <code>имя_точки|sig=arrive_to_wait</code> | ||
+ | |||
+ | В состоянии ожидания бойцы некоторое время будут готовиться к бою. Для каждого бойца можно указать смарт-кавер, в котором он это будет делать. Для этого нужно поставить смарт-кавер с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_to_[имя_смарттеррейна_на_который будем_нападать]_patrol_[номер_работы]_wait_[номер_бойца]_smartcover</code> | ||
+ | |||
+ | Если точка перехода в состояние ожидания ближе к целевому смарту, чем 30 метров, то бойцы перейдут в состояние ожидания за 30 метров до этого смарта. Если смарт-кавер ожидания не поставлен – бойцы будут отыгрывать remark подготовки к бою в той точке, в которой они перешли в состояние ожидания. | ||
+ | |||
+ | По окончанию ожидания бойцы снова встанут на путь патруля, по которому дойдут до вражеского лагеря. Желательно, чтобы последняя точка патрульного пути находилась в центре вражеского смарта. | ||
+ | |||
+ | |||
+ | ===camper — только в состоянии обороны=== | ||
+ | По поднятию тревоги занимают позицию для обороны, кемперят, переходят в универсальный комбат при сильном приближении противника | ||
+ | |||
+ | Ставится точка патрульного пути с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_camper_[номер_работы]_walk</code> | ||
+ | |||
+ | В этой работе обязательно нужно указывать патрульный путь с точками look:<br /> | ||
+ | <code>[имя_смарттеррейна]_camper_[номер_работы]_look</code> | ||
+ | |||
+ | По умолчанию кемпер на точке пути находится в сидячем состоянии, т.е. если перед ним кавер, то он присядет и будет тупить, чтобы указать ему стоячее состояние ведения боя, нужно в нулевой вершине патрульного пути указать флажок:<br /> | ||
+ | <code>name00|state=stand</code> | ||
+ | |||
+ | ===defender — только в состоянии обороны=== | ||
+ | По поднятию тревоги занимают позицию для обороны, переходят в универсальный комбат, сидят в out-рестрикторе, в лагере. | ||
+ | |||
+ | Ставится точка патрульного пути с именем:<br /> | ||
+ | <code>[имя_смарттеррейна]_defender_[номер_работы]_walk</code> | ||
+ | |||
+ | Можно поставить патрульный путь с точками look(опционально), в том случае, если путь walk содержит в себе только одну вершину:<br /> | ||
+ | <code>[имя_смарттеррейна]_defender_[номер_работы]_look</code> | ||
+ | В этой схеме можно указать сталкеру '''out_restrictor''', чтобы он держался в нем во время универсального комбата. Для этого в нулевой точке пути задаем флаг: | ||
+ | <code>name00|out_restr=имя_рестриктора</code> | ||
− | [[Категория:A-Life | + | [[Категория:A-Life]] |
Текущая версия на 00:49, 26 декабря 2021
Содержание
- 1 Добавление лагеря
- 2 Работы универсальных лагерей
- 2.1 kamp — только днём
- 2.2 sleep — только ночью
- 2.3 walker — днём и ночью
- 2.4 patrol — днём и ночью
- 2.5 guard — днём и ночью
- 2.6 animpoint — днём и ночью
- 2.7 sniper — днём, ночью и в состоянии обороны
- 2.8 ranger — только в состоянии атаки
- 2.9 assault — только в состоянии атаки
- 2.10 sneak — только в состоянии атаки
- 2.11 patrol (атака) — только в состоянии атаки
- 2.12 camper — только в состоянии обороны
- 2.13 defender — только в состоянии обороны
Добавление лагеря[править]
Для добавления лагеря необходимо поставить объект 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 состояния:
- День (6:00 – 21:00)
- Ночь (21:00 – 6:00)
- Атака (контролируется менеджером симуляции)
- Оборона (контролируется менеджером симуляции)
Атака и защита являются более приоритетными состояниями, т.е. если нет атаки или защиты, то действует правило день/ночь.
Дневные работы | Ночные работы | Атака | Оборона |
---|---|---|---|
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\
В файле настроек писать стандартную логику как в кастом дате сталкера, со следующими дополнительными параметрами:
- Имя секции [logic] должно выглядеть как [logic@соответствующее_имя_работы]
- В секции [logic@имя_работы] можно прописать ключ suitable. Его значение — кондлист, который определяет, может ли занять эту эксклюзивную работу определённый npc. Если этот ключ не указан — работу может занять любой npc.
- Есть возможность сделать так, чтобы npc на уникальной работе, всегда находился в online. Для этого, нужно прописать ключ: job_online = true
- Можно задать приоритет экслюзивной работы 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=имя_рестриктора