что такое смарт террейны

S.T.A.L.K.E.R|Модостроение

Меню навигации

Пользовательские ссылки

Объявление

Информация о пользователе

Создание смарт торрейна (smart_terrain)

Сообщений 1 страница 1 из 1

Поделиться12011-11-22 03:41:45

Распаковываем all.spawn и открываем любой alife_. ltx
Добавляем секцию:

[131] ;номер по порядку.

; cse_abstract properties
section_name = smart_terrain
name = a10_sv_terrain ;уникальное имя.
position = 69.4, 6.4, 491.4 ;координаты.
direction = 0, 0, 0
id = 65535
version = 128
script_version = 12
spawn_id = 5783

; cse_alife_object properties
game_vertex_id = 151 ;координаты.
distance = 11.9
level_vertex_id = 794119 ;координаты.
object_flags = 0xffffff3e
custom_data = dikobraz = test_logic.ltx
dog = test_logic.ltx

Сама логика (test_logic.ltx) по адресу: gamedata\configs\scripts
Основные моменты для НПС:

[walker]
path_walk = dikobraz_walk ;здесь он стоит.
path_look = dikobraz_look ;в эту сторону смотрит.

[a10_sv_terrain_dikobraz_walk] ;сначала имя смарта, потом название.
points = p0
p0:name = wp00
p0:flags = 0x1 ;флаги для синхронизации.
p0:position = 46.5, 6.5, 475.2
p0:game_vertex_id = 66
p0:level_vertex_id = 740117

[a10_sv_terrain_dikobraz_look] ;сначала имя смарта, потом название.
points = p0
p0:name = wp00
p0:flags = 0x1 ;флаги для синхронизации.
p0:position = 45.1, 6.2, 472.3
p0:game_vertex_id = 66
p0:level_vertex_id = 736705

[logic@ dog ] ;то же имя.
suitable = <=target_squad_name(b2_dog_hunter_squad)>true ;принадлежность одного члена этого сквада к этой логике (для других пишется отдельно аналогично).
prior = 100
active = mob_home@dog ;популярная логика для сквада.
monster_job = true
on_death = death@dog ;эту же схему можно прописать и НПС.
on_hit = hit@dog ;эту же схему можно прописать и НПС.

[hit@all]
on_info = %+b2_dog_hunter_hit% ;инфопоршень при хите.

[death@dog]
on_info = %+b2_dog_hunter_dead% ;инфопоршень при смерти мутанта.

[mob_home@dog] ;то есть ясно, что это значит «дом»: мутанты торчат на одной местности смарта.
path_home = dog_home ;так же прописывается, как и у НПС.

Ссылки на похожие статьи:

что такое смарт террейны. Смотреть фото что такое смарт террейны. Смотреть картинку что такое смарт террейны. Картинка про что такое смарт террейны. Фото что такое смарт террейнычто такое смарт террейны. Смотреть фото что такое смарт террейны. Смотреть картинку что такое смарт террейны. Картинка про что такое смарт террейны. Фото что такое смарт террейнычто такое смарт террейны. Смотреть фото что такое смарт террейны. Смотреть картинку что такое смарт террейны. Картинка про что такое смарт террейны. Фото что такое смарт террейны

О сайте

Шутки из Зоны

Источник

CoP. Симуляция. Параметры смарт-террейнов.

Материал из S.T.A.L.K.E.R. Inside Wiki

Содержание

Смарт-террейны

Типы смарт-террейнов
defaultОбычный тип смарт-террейна.
default_resourceСмарты с наличием аномальных зон, в которых есть работа для НПС по поиску артефактов.
default_baseГлавный смарт. Сюда идут все отряды с наступлением ночи.
default_lairСмарт для монстров. Тем не менее сталкеры сюда тоже могут прийти.
default_squadНе смарт. Класс, выделяющий в симуляции уникальные отряды и персонажей.
Параметры смарт-террейнов

Данная секция представляет собой список ссылок на секции сквадов, которые будут спауниться в этом смарт-террейне.
Пример секции:

[respawn@base_smart]
spawn_bandit@novice
spawn_bandit@advanced
spawn_bandit@master

Каждая секция сквада имеет следующие параметры:

ПараметрОписаниеПример
spawn_squadsСписок имен сквадов из squad_descr_. ltx. Может иметь логические проверки условий.spawn_squads = bandit_sim_squad_veteran, bandit_sim_squad_advanced
spawn_numКоличество отрядов, которые будут респаунится. Может иметь логические проверки условий.spawn_num = <+infoportion>2, 0

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

[exclusive]
zat_a2_stalker_barmen = zaton\zat_a2_stalker_barmen.ltx

zat_a2_stalker_barmenСharacter ID НПС
zaton\zat_a2_stalker_barmen.ltxпуть к файлу с логикой.

Работа в смарт-террейнах

Имя каждой работы состоит из:

НазваниеПриоритетОписаниеПример
GENERIC POINT3При отсутствии каких-либо работ, сталкер идет в случайное место радиусом от 3 до 8 метров от смарта и садится на корточки.отсутствует
SLEEP10Схема сидящего и спящего NPC. Необходимо поставить путь минимум из двух поинтов.
Спящий будет садиться спать в нулевой точке пути, и разворачиваться при этом в сторону первой точки.
esc_a1_sleep_1_walk
WALKER15Перемещается по пути (path_walk), останавливается в определенных точках и выполняет соответствующие действия. Для корректной работы желательно наличие look-вейпоинта.esc_a1_walker_1_walk
ANIMPOINT15Конечная точка с кастомной анимацией. Доступны следующие анимации: НПС сидит, стоит за стойкой, стоит прислонившись к стене.esc_a1_animpoint_1
PATROL20Вейпоинт, по которому будут ходить сталкер и выполнять функцию патруля. Должен быть зациклен.esc_a1_patrol_1_walk
COLLECTOR25Вейпоинт, по которому пойдет сталкер отыгрывать анимацию собирания артефактов.esc_a1_collector_1_walk
GUARD25Вейпоинт, по которому будут ходить сталкер и выполнять функцию охраны. Должен быть зациклен.esc_a1_guard_1_walk
SNIPER30Разновидность кемпера. Отличаются тем, что стреляют только одиночными выстрелами и не смотрят по точкам патрульного пути, а сканируют пространство между ними.
Скорость сканирования от точки к точке фиксирована и равна 20 сек. Необходимо ставить снайперу только 2 точки look.
esc_a1_sniper_1_walk
CAMPER45Кемпер стоит на точке и смотрит в направлении, куда Вы его поставили в редакторе или передигается по патрульным путям. Переключаются на универсальный комбат,
только если видят врага ближе чем в 30 метрах. Если он выжил, он возращается в состояние кемпера. В любых других случаях действуют по собственной скриптовой схеме.
esc_a1_camper_1_walk
SURGE50Вейпоинт, по которому пойдет сталкер в случае выброса. Должно быть разрешено в файле simulation_objects_props.ltxesc_a1_surge_1_walk
MOB HOME40Вейпоинт, по которому будут двигаться мутанты в смарте. Только для мутантов!esc_a1_home_1_walk

Некоторые walk-вейпоинты, могут не иметь look-вейпоинтов. Для некоторых наличие look-вейпоинта обязательно.

Чтобы сталкеры могли сидеть возле костра необходимо:

Список остальных анимаций см. в файле scripts\state_lib.script.

Симуляция

Некоторые условия работы симуляции

В файле scripts\sim_board.script для каждой группировки заданы прекондишены:

В файле misc\travel_manager.ltx есть два раздела.

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

Источник

Лагерь (smart terrain)

Содержание

Добавление лагеря

ПараметрОписание
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_restrSpace restrictor, за пределы которого не могут выйти бойцы, атакующие этот лагерь. Должен включать в свои пределы каверы для атакующих, но не давать им забиваться в дальние углы.
def_restrSpace 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Перечень рестрикторов, используемых как укрытие от выброса применительно к данному смарту.

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

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

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

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

Дневные работыНочные работыАтакаОборона
kampsleeprangercamper
walkerwalkerassaultdefender
patrolpatrolsneaksniper
guardquardpatrol (атака)
snipersniper

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

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

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

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

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

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

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

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

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

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

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

По умолчанию каждый кемп имеет в себе 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=имя_рестриктора

Источник

SoC. Смартеррейны и гулаги

Материал из S.T.A.L.K.E.R. Inside Wiki

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

— луа программированием
— редактированием all.spawn
— работа с вейпоинтами(патрульными путями)
— утилитами аи

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

Эта наиболее важная часть:

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

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

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

— bandit1: walker (состояние 0) и kamp (состояние 1)
— bandit2: guard (состояние 0) и sleeper (состояние 1)
— bandit3: walker (состояние 0 и 1 function load_job(. )

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

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

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

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

Пример, создаем смарт:

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 нужны заранее расставленые точки путей для него.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *