Лагерь (smart terrain) — различия между версиями
RedPython (обсуждение | вклад) (Добавление лагеря) |
RedPython (обсуждение | вклад) (Работы универсальных лагерей) |
||
Строка 47: | Строка 47: | ||
Также каждому лагерю необходимо добавить работы. Для этого нужно расставить соответствующие пути работ. Более подробную информацию можно получить из раздела | Также каждому лагерю необходимо добавить работы. Для этого нужно расставить соответствующие пути работ. Более подробную информацию можно получить из раздела | ||
[[#Работы универсальных лагерей]]. | [[#Работы универсальных лагерей]]. | ||
+ | |||
+ | =={{Якорь|Работы универсальных лагерей}}Работы универсальных лагерей== | ||
+ | У каждого универсального лагеря есть 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 || || | ||
+ | |} | ||
+ | Если нужно добавить эксклюзивные работы, нужно в кастом дате смарт террейна в секции [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> | ||
+ | |||
+ | |||
− | |||
− | [[Категория:A-Life]][[Категория:LevelEditor]] | + | [[Категория:A-Life]][[Категория:LevelEditor]][[Категория:Чистое небо]] |
Версия 08:41, 5 декабря 2016
Добавление лагеря
Для добавления лагеря необходимо поставить объект Spawn Element -> ai -> smart_terrain. В его Properties -> Custom data нужно прописать следующее:
[smart_terrain]
targets = имя_соседнего_smart_terrain, имя_соседнего_smart_terrain, имя_соседнего_smart_terrain...
sim_type = тип_лагеря
squad_capacity = количество_отрядов
group_id = уникальный_номер
spawn_point = точка_спауна
att_restr = space_restrictor_атакующих
def_restr = space_restrictor_обороняющихся
sim_avail = {условие} false/true, {условие} false/true...
respawn_sector = true/false
Параметр | Описание |
targets | Имена smart terrain’ов, которые можно атаковать из этого лагеря, через запятую. Желательно создавать симметричную связь между лагерями, то есть если у лагеря A в targets есть лагерь B, то у лагеря B в targets должен быть лагерь A. |
sim_type | Тип лагеря. Может быть: territory (важные точки, например, перехода на другой уровень, и ключевые точки, например, базы группировок; захват этих точек приводит к появлению дополнительных отрядов), resource (точки, которые увеличивают ресурсы группировки, что приводит к появлению более крутых бойцов), default (все остальные лагеря). |
squad_capacity | Количество отрядов, которые могут разместиться в этом лагере. Чем больше лагерь – тем больше в нём должно быть отрядов. Количество работ в лагере (см. ниже) должно быть равным или более [количество_человек_в_отряде] * [squad_capacity]. На данный момент в каждом отряде пять человек. |
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) подспаун новых отрядов группировки в этом лагере (при условии, что игрок находится достаточно далеко). |
Необходимо ставить точку графа 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 |
Если нужно добавить эксклюзивные работы, нужно в кастом дате смарт террейна в секции [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
…