Более подробное описание путей

Настройки логики

3.1. Система флагов path_walk, path_look

3.1.1. Более подробное описание путей.

3.2. Схемы поведения сталкеров

3.2.1. Walker

3.2.2. Remark

3.2.3. Sleeper

3.2.4. Kamp

3.2.5. Camper

3.2.5.1. Sniper

3.2.6. Follower (Отключен)

3.2.7. Zoneguard

3.2.8. Wounded

3.2.9. Rest

Схема heli_hunter

3.2.11. Patrol

3.3. Секции

3.3.1. Combat

3.3.2. Death

3.3.3. Hit

3.3.4. Actors_dialog

3.3.5. Use

3.3.6. Combat_ignore

3.3.7. Секция dont_spawn_character_supplies

3.3.8. Секция no_smart

3.3.9. Treshhold

3.3.10. Danger

3.3.11. Истории у костров

3.4. Оверрайды

3.5. Схемы поведения для монстров

3.5.1. Mob_walker

3.5.2. Mob_eluder

3.5.3. Mob_remark

3.5.4. Mob_combat

3.5.5. Mob_death

3.5.6. Mob_jump

3.5.7. Mob_camp

3.5.8. Mob_home

3.5.9. Mob_fake_death

3.6. Оверрайды для монстров

3.7. Секция спавнер

3.7.1. Спавн дневных и ночных монстров

3.8. Скрипт Logic

3.8.1. Синтаксис logic-а

3.8.2. Примеры достаточно сложной логики

3.9. Схемы space_restictor

3.9.1. Sr_idle

3.9.2. Sr_no_weapon

3.9.3. Sr_sound

3.9.4. Sr_tip

3.9.5. Sr_light

3.9.6. Sr_territory

3.9.7. Sr_mapspot

3.9.8. Sr_particle

3.9.9. Sr_sound_act

3.9.10. Sr_timer

3.9.11. Sr_psy_antenna

3.9.12. Sr_teleport

3.9.13. Sr_sleep и настройка снов

3.9.14. Sr_cutscene

3.10. Дополнительные настройки логики у разных объектов

3.10.1. Ph_door

3.10.2. Ph_button

3.10.3. Работа прожектора

3.10.4. Ph_code

3.10.5. Ph_gate

3.10.6. Ph_sound

3.10.7. Ph_force

3.10.8. Ph_on_death

3.10.9. Ph_car

3.10.10. Ph_heavy

3.10.11. Ph_oscillate

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

3.11.1. Смарттеррейны

3.11.1.1 Стандартный набор смарттеррейнов

3.11.2. Гулаги.

3.11.3. Новые особенности смарттерейнов.

3.11.3.1. Более доступное описание новых смарттеррейнов

3.12. Логика вертолета

3.12.1. Схема heli_move

3.12.2. Универсальная боевая схема (Отключен)

3.13. Meet_manager

3.14. Отметки на минимапе

3.15. Передача параметров в функции.

3.16. Настройка звуковых групп.

Система флагов (path_walk, path_look)

В точках путей можно задавать флаги, изменяющие поведение персонажа. Флаги задаются прямо в имени waypoint-а, например, для точки с именем "wp00":

wp00|flag1|flag2

Флаги точек пути path_walk:

a=state

Выбирает состояние тела при перемещении (Только из раздела –Ходячие состояния)

Список состояний можно взять в gamedata\scripts\state_lib.script

p=percent

Вероятность остановиться в точке в процентах (0 – 100). По умолчанию 100, т.е. сталкер никогда не проходит мимо точек остановки.

sig=name

Установить сигнал с именем name сразу по прибытию в точку (до поворота) для последующей его проверки с помощью поля on_signal логической схемы. Если нужно установить сигнал после поворота – используйте соответствующий флажок пути path_look.

Флаги точек пути path_look:

a =state

Выбирает состояние тела при стоянии (или сидении) на месте. (Из разделов Стоячие и Сидячие состояния)

Список состояний можно взять в gamedata\scripts\state_lib.script

t=msec

- время в миллисекундах, которое персонаж должен смотреть в заданную точку.

‘*’ – бесконечное время. Допустимы значения в диапазоне [1000, 30000], по умолчанию – 5000.

Для конечных (терминальных) вершин пути path_walk, у которых не более 1-й соответствующей точки path_look, значение t всегда считается бесконечным и его явно задавать не нужно.

sig=name

После поворота в точку path_look, установить сигнал с именем name.

syn

Наличие флажка задержит установку сигнала до тех пор, пока в точку с флажком syn не прибудут все персонажи с данным team-ом (team задается в виде текстовой строки в customdata). До тех пор, пока остальные персонажи не прибудут, ожидающей персонаж будет отыгрывать свою idle анимацию.

sigtm=signal

Устанавливает сигнал при вызове time_callback-а state manager-ом. Соответственно, если t=0, то сигнал будет установлен после отыгрывания init анимации. Это используется, например, с анимацией press, которая состоит из двух частей: 1 - нажимаем на кнопку, 2 - опускаем руку.

В пути path_look можно сделать: wp00|a=press|t=0|sigtm=pressed

А затем переключить схему: on_signal = pressed | другая_схема

Более подробное описание путей.

Walker.

Настройка:

Более подробное описание путей - student2.ru

На карту для каждого walker-а нужно поставить:

1) Путь path_walk, по которому walker ходит.

2) Путь path_look, состоящий из точек, в которые walker смотрит.

Walker-ов может быть 1 или больше. Они могут действовать независимо, или взаимодействовать друг с другом.

[walker]

team = …

имя команды, произвольная текстовая строка. Все walker-ы в одной команде должны иметь один и тот же team. Желательно в team задавать имя уровня и имя места, где стоят walker-ы, например: escape_bridge, escape_factory, это уменьшит шанс ошибиться и дать разным командам общее имя.

path_walk = …

имя пути, описанного в п. 1

path_look = …

(не обязательно) имя пути, описанного в п. 2. Если персонаж должен только ходить по маршруту, path_look можно не задавать.

Если персонаж должен стоять на месте, то ему задается одна точка пути path_walk и как минимум одна точка пути path_look

Правила расстановки флажков в путях рассмотрим на нескольких примерах:

Пример 1:

Персонаж патрулирует территорию вокруг двух домиков. Маршрут строится следующим образом:

Более подробное описание путей - student2.ru

Как сделать, чтобы персонаж между определенными точками бежал или крался? Для этого в пути path_walk существуют флажки.

У каждого вейпоинта есть имя: wp00, wp01 и т.д.

Флажки задаются в имени. Их нужно отделять от самого имени с помощью символа ‘|’. Пишеться a=anim, где anim – название анимации из пункта 2.4.4. настоящей документации. Если мы напишем a=threat то персонаж пойдет в состоянии данжер, если a=raid то побежит с оружием наизготовку и т.д.

NB: В точках пути path_walk используются анимации ТОЛЬКО из раздела «Ходячие состояния»!

Пример 2:

Более подробное описание путей - student2.ru Более подробное описание путей - student2.ru Более подробное описание путей - student2.ru Более подробное описание путей - student2.ru Более подробное описание путей - student2.ru Более подробное описание путей - student2.ru

Разговор персонажа.

Чтобы персонаж говорил, перемещаясь по маршруту, нужно определить в каждой точке список тем, на которые он может говорить. Для этого существуют следующие поля:

s = имя_звуковой_схемы (по умолчанию звук отключен). Несколько тем можно перечислять через запятую.

Пример 3:

Более подробное описание путей - student2.ru

В примере 3 используется только поле s, чтобы задать тему разговора, и флажок sc, чтобы показать, что звук проигрывается не разово, а периодически.

Остальные параметры (sp, sf, st) задавать НЕ РЕКОМЕНДУЕТСЯ, значения по умолчанию приемлимы для большинства скриптов.

Параметр sa также использовать НЕ РЕКОМЕНДУЕТСЯ. Если нужно стартовать звук одновременно с анимацией, лучше воспользоваться полями пути path_look, о котором будет написано ниже в этом документе.

Если персонаж не только ходит по маршруту, но должен также останавливаться и играть анимации, нужно задать ему путь path_look.

Пример 4: усовершенствуем пример 1, чтобы персонаж, проходя мимо проема между домами, останавливался и заглядывал в него:

 
  Более подробное описание путей - student2.ru

Что добавилось в этом примере? Путь path_look с двумя точками. Связь между точками этого пути рекомендуется сразу же удалить в редакторе, поскольку она все равно не используется.

Далее, в точках путей path_walk и path_look, которые обведены на рисунке пунктирной линией, в редакторе ставим общие флажки. Например, в верхней паре точек ставим флажок 0, а в нижней паре точек – флажок 1.

Теперь персонаж будет останавливаться в точках path_walk, помеченных флажком, и смотреть в точку path_look, помеченную тем же самым флажком.

Если точка path_walk не помечена флажком, персонаж проходит ее не останавливаясь.

Одной точке path_walk может соответствовать несколько точек path_look. Тогда персонаж выберем случайно одну из подходящих точек.

По аналогии с path_walk, в точках пути path_look можно использовать различные флажки, меняющие поведение:

p = 100 – вероятность, с которой персонаж посмотрит именно в эту точку. Значения p всех подходящих точек суммируются, т.е. если у одной точки p = 100, а у другой 300, то персонаж посмотрит в первую с вероятностью 25%! (т.е. 100 из 400).

Во избежание путаницы, рекомендуется задавать p так, чтобы их сумма составляла 100.

По умолчанию у всех точек p = 100.

t = время, на которое персонаж задержится в этой точке (по умолчанию 5000 мсек)

Пример 5:

 
  Более подробное описание путей - student2.ru

В этом примере проходя через точку wp00, персонаж с вероятностью 30% посмотрит в точку wp00в течение 5 секунд, но с вероятностью 70% посмотрит в точку wp01 в течении 10 секунд.

По умолчанию при остановках персонаж играет анимацию idle, если он не в состоянии crouch, либо анимацию hide, если он в состоянии crouch.

Если требуется другая анимация, можно ее указать с помощью флажка:

a = имя_анимации (по умолчанию idle).

Пишеться a=anim, где anim – название анимации из пункта 2.4.4. настоящей документации. Если мы напишем a=hide, то персонаж сядет в состоянии данжер, если a=guard, то встанет с оружием наизготовку и т.д.

NB: В точках пути path_look используются анимации ТОЛЬКО из раздела «Стоячие и сидячие состояния»!

Наши рекомендации