Перейти к содержанию
Авторизация  

Рекомендуемые сообщения

 

 

Спойлер

База сталкеров - место куда НПС приходят ночью, сидят там всю ночь, а утром уходят, остаются лишь те, кому не хватило работы на локации.
Скорее всего многие неопытные модостроители задавались вопросом «А как сделать эту самую базу?» Сейчас расскажу.
P.S. - Этот урок для пользователей работающих в SDK.

Спойлер

Для начала нужно сделать смарт-террейн с типом "base".
Создаём новый граф-поинт для точки спавна сталкеров в gamedata\configs\game_graphs.ltx
1.png.8a1f3a856cce721199edcd0601be94cb.png
Далее открываем Level Editor и загружаем свою локацию, создавать базу я буду на локации "Предбанник", но
вы можете взять другую любую локацию.
Ставим граф-поинт и заходим в Object Inspector
2(1).png.d669584d4bb2bb51fddba6f5fca75483.png
В вкладке 4 листаем в самый низ и выбираем наш "predbannik_a1_stalker_base".

Дальше ставим смарт-террейн, желательно что-бы граф поинт был в самом смарт-террейне.
Ставим нашему смарт-террейну такие параметры (имя можете выбрать сами):
3(1).png.df34b7df857ed5d8963eab41c659f3ff.png
Дальше создаём файл логики и прокладываем к нему путь. Пример кастом-даты:
[smart_terrain]
cfg = scripts\location\smart\name_logic.ltx

[story_object]
story_id = имя-смарт_террейна_которое_мы_указали_ранее.

Работа в sdk ещё не закончена, но пока-что его можно отложить.

Спойлер

Заходим в наш файл логики смарта, который мы создали ранее и копипастим в него такую логику:
[smart_terrain];имя_смарта (необязательно)
squad_id = 1 (номер смарта, никогда не должен повторяться. На каждой локации начинается с 1)
def_restr = (рестриктор где находится база)
safe_restr = (рестриктор где нпс бессмертны)
smart_control = smart_control
respawn_params = respawn@stalker_base (респавн сталкеров в смарте)
max_population = 20 (сколько смарт-террейн может принять сквадов максимум)
arrive_dist = 65 (дистанция с расстояния которого сквад регистрируется в смарте)

[respawn@stalker_base]
spawn_stalker@advanced

[spawn_stalker@advanced]
spawn_squads = stalker_sim_squad_advanced, stalker_sim_squad_novice (сквады которые могут заспавниться)
spawn_num = 0 (число сквадов которые будут спавниться. Работает условие: {+fffffffff} 3)

[smart_control]
noweap_zone = (зона убора оружия)
ignore_zone = (зона где нпс не реагируют на опасность)
alarm_start_sound = звук при начале тревоги (гг убил сталкера)
alarm_stop_sound = звук при конце тревоги

[exclusive] (работа для нпс)

Теперь нужно прописать тип смарт-террейна, заходим в configs\misc\simulation_objects_props.ltx, листаем в самый низ
и пишем вот такие 2 строчки:
[название_смарта]:default_base
sim_avail = true

Смарт готов, теперь пора сделать работу для нпс, в этой теме будет только работа связанная с анимпоинтами.

Спойлер

Возвращаемся к SDK и ставим пару анимпоинтов с такими типами имён "краткоее_имя_смарта_animpoint_номер_анимпоинта"
4(1).thumb.png.8d794dfd9f4f04bb6201bf20b672eb0e.png
Пример: pred_a1_animpoint_1.

5(1).png.b481f2d62204058db2b15bc96dca90df.png

(На фотке pred_a1_animpoint_2, вместо pred_a1_animpoint_1, не обращайте внимания)
Компилируем спавн и закрываем СДК.

Теперь прописываем работу в exclusive:
pred_a1_animpoint_1 = predbannik\pred_a1_logic.ltx (создаём новый файл логики)
pred_a1_animpoint_2 = predbannik\pred_a1_logic.ltx (создаём новый файл логики)

И пишем в него

[logic@pred_a1_animpoint_1]
active = animpoint@pred_a1_animpoint_1
suitable = {=check_npc_name(sim_default_stalker) =npc_in_zone(рестриктор_зоны_лагеря) !surge_started} true
prior = 100

[animpoint@pred_a1_animpoint_1]
cover_name = pred_a1_animpoint_1 (имя смарт_ковра)
on_info = {=npc_in_zone(рестриктор_зоны_лагеря)} animpoint@pred_a1_animpoint_1

[animpoint@pred_a1_animpoint_1_reached]:pred_a1_animpoint_1
cover_name = esc_a1_animpoint_1 (имя смарт_ковра)

[logic@pred_a1_animpoint_2]
active = animpoint@pred_a1_animpoint_2
suitable = {=check_npc_name(sim_default_stalker) =npc_in_zone(рестриктор_зоны_лагеря) !surge_started} true
prior = 100

[animpoint@pred_a1_animpoint_2]
cover_name = pred_a1_animpoint_2 (имя смарт_ковра)
on_info = {=npc_in_zone(рестриктор_зоны_лагеря)} animpoint@pred_a1_animpoint_2

[animpoint@pred_a1_animpoint_2_reached]:pred_a1_animpoint_2
cover_name = esc_a1_animpoint_2 (имя смарт_ковра)

Спойлер

Чтобы сделать стоянку сталкеров (сталкеры уходят днём с базы на это место, или по другому "работа на локации для НПС")
Нужно заменить класс смарт-террейна в misc\simulation_objects_props.ltx

Вместо
[имя_смарта]:default_base
sim_avail = true
Пишем
[имя_смарта]:default_territory
sim_avail = true
Всё остальное как и с base.

Спойлер

Допустим название смарт-террейна "esc_a1"
Если назвать анимпоинт таким именем: esc_a1_animpoint_1
То с логикой копошиться будет необязательно, нпс сам займёт этот анимпоинт.

 

Изменено пользователем FalkineIsaku
  • Лайк 4
  • Мастер! 1
  • Хабар 1
  • Спасибо 1

А колбасу и батоны нынче хреновые делать стали...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Можно не прописывать эксклюзивные работы нпс, можно называть анимпоинты так: название_смарта_animpoint_номер. Тогда НПС сами будут их занимать.

  • Лайк 1

За Гранью Реальности

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу