Синий | Дата: Четверг, 30.01.2014, 05:43 | Сообщение # 11 |
Статус:
|
| Смарт-террейны в ЗП: создание и настройка лагерей сталкеровПонятие смарт-террейнов.
Смарт-террейн - это определенный скриптовый класс в игре, с помощью которого можно организовать заселение новых локаций в С.Т.А.Л.К.Е.Р., создавать постоянные и временные лагеря для НПС и монстров. Кроме этого, в смартах (назовем их так для краткости) организуются работы для НПС, реализуется логика для отдельных эксклюзивных персонажей, происходит респавн НПС и монстров, организуются укрытия от выброса для НПС.
С точки зрения игрока и НПС это определенная область на локации, вот как это выглядит в редакторе уровней:
Создание смарт-террейна в СДК ЗП.
Почему именно в редакторе уровней, спросите вы? Допустим вы планируете большую, глобальную модификацию для игры, создаете свой новый или подключаете старый уровень к Зову Припяти и вам нужно заселить локацию. С помощью СДК это сделать гораздо быстрее и удобней, так как это инструмент, изначально предназначенный для разработки СТАЛКЕРа. Разбирая и собирая all.spawn, прописывая бесконечные текстовые секции в нем и постоянно загружая игру для съема нужных координат вы потратите в десятки раз больше времени. В СДК вы царь, бог и хозяин зоны, надеюсь убедил:) Поэтому в этой и других статьях будет рассматриваться работа только в редакторе уровней.
Разбор смарт-террейнов мы будем рассматривать на примере разобранной для СДК локации Escape (Кордон) от игры С.Т.А.Л.К.Е.Р. Чистое Небо, которую мы и будем заселять и запускать на движке ЗП.
Итак, запускаем наш СДК 0.7, загружаем локацию, далее во вкладке Edit Mode выбираем Spawn Elements, раскрываем свиток ai и выбираем smart_terrain. Далее как всегда, когда мы хотим разместить что-то на локации, выбираем вверху кнопку "чайника" или нажимаем клавишу A (Add), после чего курсор принимает форму стрелки и мы щелкаем в нужном месте, располагая наш смарт-террейн. В данном случае мы создаем его в деревне новичков, около бункера Сидоровича.
Целесообразно добавить граф-поинт для конкретного смарта. Как вы помните, граф-поинты на локации служат для передвижения НПС и монстров по уровню в онлайне и оффлайне. Именно по ним, выбирая оптимальный путь движутся сталкеры от лагеря к лагерю и если вы хотите, чтобы они могли приходить в новый смарт-террейн, рядом с ним (или в центре) должен быть граф-поинт. Создаем его: Edit Mode > Spawn Elements > ai >graph point В ЗП граф-поинты еще и функционально привязаны к смартам, но это пока не важно.
Далее пропишем нужные параметры нашему смарту: ПКМ на нем > Properties:
Разберем подробней:
Name: имя смарта, состоящее из префикса уровня и собственно имени. Префикс у наc esc, а нужное имя пусть будет esc_a1.
ВАЖНО! Не используйте пробелы и кириллицу в любых названиях объектов в СДК и конфигах СТАЛКЕРА.
СОВЕТ: Вы можете в принципе написать любое имя, например esc_a1_smart_terrain или esc_novice_lager_smart или любое другое, которое как вам кажется определит местоположение смарта на локации. НО! Когда вам нужно будет заселять локацию, расположить на ней два-три десятка смарт-террейнов, создать для них пути работ и анимпоинты, имена которых заметьте должны обязательно начинаться с имени смарта, то тогда вы натерев мозоли на клавишах поймете, что лучше имя для смарт-террейна - самое короткое! А местоположение смарта можно описать в комменте в конфигурационном файле к нему.
Еще один параметр, на который обращаю ваше внимание - restrictor type. По умолчанию стоит NONE default restrictor и в принципе с ним все работает, но на разобранном уровне Затон от ЗП я увидел что в свойствах смарт-террейнов стоит тип рестриктора NOT A restrictor. Честно говоря, не знаю в чем разница, в игре никак не заметно. Если кто знает, отпишитесь в комментах плз.
Ну и далее поле Custom Data, в котором прописываем следующую конструкцию:
[smart_terrain] cfg = scripts\escape\smart\esc_a1.ltx
- т.е прописываем путь до конфигурационного файла для данного смарта.
Собственно все, больше в свойствах ничего трогать не нужно, пока на этом работу в СДК по созданию смарт-террейна можно считать законченной. Делаем Make Game, компилируем спавн, далее пойдет работа с конфигами.
Настройка конфигурационного файла смарт-террейна.
Давайте создадим в папке gamedata/configs/scripts папку escape - тут мы будем хранить наши конфиги и скрипты для данной локации. В ней создаем папку smart, в которой и создадим конфигурационный текстовый файл для нашего смарта, назовем его esc_a1.ltx. В нем пропишем следующее:
[smart_terrain];esc_a1 - деревня новичков squad_id = 1 max_population = 2
Это обязательная конструкция, которая должна быть в каждом конфиге смарта. Остальные параметры рассмотрим позже. Разберем подробней:
; - все что за точкой с запятой - комментарий, пишите что вам удобно.
squad_id = 1 - ID сквадов для этого смарта, должен быть уникальным для каждого смарт-террейна, иначе вылет. НО, для другой локации может опять начинаться с единицы и так далее.
max_population = 2 - максимальное количество сквадов (не НПС!), которые смарт-террейн может принимать в симуляции, т.е. сколько могут "заселиться" отрядов сталкеров в данный лагерь. Нужно понимать, что этот параметр работает для симуляционных отрядов, которые свободно перемещаются по локации, в самом смарте можно поселить гораздо больше постоянных и эксклюзивных сквадов, чем это число. Просто если в смарте число сквадов больше или равно max_population, то симуляционный сквад пойдет искать другой смарт-террейн. Про сквады читаем в этой статье.
Остальные доступные параметры разберем чуть позже, а пока нужно еще зарегистрировать наш смарт-террейн в симуляции.
Регистрация смарт-террейна в симуляции.
Откроем файл gamedata/configs/misc/simulation_objects_props.ltx. В нем хранятся параметры смарт-террейнов и сквадов для симуляции их в игре. Для каждой локации прописываются секции объектов с параметрами. Давайте добавим туда свою:
[esc_a1]:default territory = 1 sim_avail = true
Разберем подробней.
[esc_a1]:default - название и наследование класса смарт-террейна. Может принимать следующие значения: default_base - база сталкеров default_resource - ресурсы, смарты рядом с аномальными полями и работами для сбора артефактов. default_lair - логово монстров.
sim_avail = true - очень важный параметр, определяющий доступность лагеря для симуляции. Если true - то смарт доступен для посещения симуляционными сквадами в т.ч и монстрами. Если false - лагерь не доступен для симуляции и респавн сквадов происходить в нем не будет! Учитывайте это. В данной строчке можно использовать стандартные условия для проверки, например:
sim_avail = {+start_simulation} true, false - лагерь будет доступен для симуляции только после получения инфопоршня start_simulation. Это очень удобно для старта симуляции на локации только после прохождения определенных квестов, чтобы ваш лагерь с нужными персонажами не вынесли раньше времени монстры или противоборствующие группировки.
Кроме этого в секции смарта можно указать строчку:
surge = 1
- которая определяет, что лагерь доступен для укрытия от выброса для НПС. Конечно еще нужно будет сделать точки путей укрытия и рестриктор укрытия (см. соответствующую статью).
Респавн НПС в смарт-террейнах.
Респавн НПС и монстров в ЗП (кроме скриптовых функций) происходит исключительно в смарт-террейнах. Для этого в конфиг-файле смарта создаем такую конструкцию:
respawn_params = respawn@esc_a1
[respawn@esc_a1] sim_stalker
[sim_stalker] spawn_squads = stalker_sim_squad_novice spawn_num = 2
Разберем теперь подробно.
respawn_params = respawn@esc_a1 - ссылка на секцию респавна для данного смарта.
[respawn@esc_a1] sim_stalker
- секция респавна со списком ссылок на секции сквадов, которые будут спавниться в этом смарт-террейне.
[sim_stalker] - собственно секция описания спавна конкретного отряда, в которой:
spawn_squads = stalker_sim_squad_novice - указываем какие сквады спавним (можно разные через запятую).
spawn_num = 2 - указываем общий максимум отрядов (не НПС!), который отреспавнится в данной секции. Тут можно использовать стандартные условия из xr_condition.script, например:
spawn_num = {+info1}2, 0 - при получении инфопоршня info1 будут респавнится 2 сквада, иначе 0, т.е. вообще респавна не будет. Это дает широкие возможности по организации заселения и респавна НПС и монстров, например можно спавнить симуляционных НПС и монстров в определенных местах только после прохождения нужных квестов.
Контроль смарт-террейна.
В ЗП у смартов предусмотрены следующие скриптовые состояния, которые можно отслеживать. Вот их описание из smart_terrain_control.script:
-- Состояние смарттеррейна -- Может быть трех видов: normal, danger, alarm -- normal - все как обычно, без ограничений -- danger - в зоне контроля находится игрок с оружием. Нужно запереть двери и предложить ему убираться -- alarm - игрок атаковал смарт. Нужно запереть двери и подождать время.
Думаю, тут объяснять ничего не нужно, все и так понятно. Всвязи с этим, в настройках смарт-террейна можно указывать следующую секцию:
smart_control = smart_control - ссылка на секцию контроля. И дальше собственно секция:
[smart_control] noweap_zone = pri_a16_sr_noweap ignore_zone = pri_surge_hide_a16; pri_a16_sr_light alarm_start_sound = {-pri_b305_fifth_cam_end} pri_a16_base_alarm, nil alarm_stop_sound = {-pri_b305_fifth_cam_end} pri_a16_base_relax, nil
Разберем подробней:
noweap_zone = - зона принудительного убора оружия, space restrictor с прописанным скриптом убора оружия у актора.
ignore_zone = зоны, в которых у неписей устанавливаются флаги combat_ignore_cond и combat_ignore_keep_when_attacked = true. Это нужно для организации баз сталкеров, в закрытых помещениях, чтобы при близком денжере (опасности) они не срывались в комбат и не тыкались носом в стены в поисках врага.
alarm_start_sound = - озвучка на начало атаки актора, звук, прописанный в script_sound_...ltx. Можно использовать стандартные логические проверки и условия.
alarm_stop_sound = - аналогично, только на конец атаки актора.
Все параметры в секции smart_control должны быть указаны, иначе вылет. Заметим, что эту секцию нужно делать для крупных баз и лагрей сталкеров, для обычных и симуляционных смарт-террейнов она необязательна.
Остальные параметры.
Вот еще несколько параметров, которые можно прописывать в конфигурационном файле смарта (взято со сталкервики):
respawn_only_smart = true - если true, из смарта не удаляются отряды в симуляции.
def_restr = pri_a16_sr_noweap - некая замена out_restr из ТЧ. Зона, где лагерь. За пределами - лагеря нет.
safe_restr = pri_surge_hide_a16; pri_a16_sr_light - зоны, в которых неписи бессмертны.
spawn_point = zat_sim_16_spawn_point - точка (way point) спавна НПС в данном смарте.
arrive_dist = 100 - на каком расстоянии от смарта отряд считается прибывшим в смарт и регистрируется в нем.
Радиус и время респавна.
В чистой (немодифицированной игре) С.Т.А.Л.К.Е.Р. Зов Припяти НПС в смарт-террейнах респавнятся через определенный промежуток времени, который изменить в конфиге нельзя. НО, есть один полезный скрипт (измененный smart_terrain.script), который добавляет следующие рабочие параметры в конфиг:
respawn_time = - промежуток времени, через который спавнить, указывать в секундах.
respawn_radius = - расстояние в метрах, на котором спавнить. Если игрок ближе, то не спавнится.
Таким образом можно гибко настраивать каждый смарт. Скачать этот полезнейший скрипт можно у нас в архиве полезностей.
Логика эксклюзивных персонажей.
Для того чтобы взять под логику определенных, эксклюзивных персонажей из смарт-террейна, нужно в конце конфиг-файла смарта добавить такую секцию:
[exclusive]pri_b35_envoy_after = pripyat\pri_b35_envoy_logic.ltx
Т.е. мы указываем имя работы (секции логики, в данном случае pri_b35_envoy_after) и ссылку на файл, в котором эта секция будет прописана.
Подробней о работах и анимпоинтах для смарт-террейна читайте в следующей статье.
Статью я взял со Сталкер2 , автор увы не указан ,Но главное если кого интересует больше Тени Чернобыля , статья может быть только познавательной , как бы элементы те же ,все тоже но принцип спавна в Зове Припяти и Тенях чернобыля используется абсолютно разный , ТЧ работают с CDK04 . а ЗП c CDK07
|
|
| |
Синий | Дата: Суббота, 01.02.2014, 10:45 | Сообщение # 12 |
Статус:
|
| Лектор777@, представь себе такую вещь после спавна CDK нужно несколько часов чтобы комплировать карту и чем больше локаций тем больше гемороя , и вроде как если работал с картами в СDK то с ними уже работать в ACDC нельзя могут не работать
|
|
| |
Синий | Дата: Воскресенье, 02.02.2014, 07:50 | Сообщение # 13 |
Статус:
|
| Лектор777@, Поэтому в основном команда состоит из мапера который делает карты или сшивает их ,а вот спавнер выбирает два пути либо он работает со скриптами и ACDC , либо мапер дает карту сделанную на драфте и за тем спавнер спавнит всех НПС Аномалии , арты графпоинты , смарты и многое другое в плоть до прописания диалогов в спавн файла all и только потом делают окончательную компиляцию локаций , так сделанные карты предпотчтительно уже так и делать, нол всеравно дальше начинают работать скриптеры , но есть еще путь по которому работают команды , этол просто берут готовый пак локаций , или к примеру оригинальную карту и команда скриптеров делает все сама ,только иногда залазия в all.spawn . Тебе наверно объяснять не надо если ты стал хорошим скриптером , ты делаешь моды адоны которые можно просто дополнять в игру по ходу , без переигровок . Работая в ACDC или CDK этот мод в случае изменений нужно переигрывать с начала и даже фиксами тяжело исправить недочеты. Так что сам решай как тебе быть , но вроде как ты начал путь первый как в прочем и большинство , ACDC + скрипты.
|
|
| |
Синий | Дата: Воскресенье, 02.02.2014, 12:38 | Сообщение # 14 |
Статус:
|
| Лектор777@, но скрипты всегда нужны , даже в первую очередь ,хотя этот этап наиболее сложный
|
|
| |