Вертолёт — различия между версиями

Материал из xrWiki
Перейти к: навигация, поиск
(Новая страница: «==Логика вертолёта== Общие сведения: * Вертолёт работает на «логике». * На вертолёт реагиру…»)
 
 
Строка 26: Строка 26:
  
 
===Настройки===
 
===Настройки===
*engine_sound = true/false (по умолчанию true)
+
<syntaxhighlight lang="ini">; обязательные
Вкл/выкл звук двигателя вертолёта.
+
path_move          = <имя_пути>    ; путь, по которому будет летать вертолёт
 +
max_velocity        = km/h          ; максимально допустимая скорость, если возможно, он будет стремиться к ней. Если на пути вертолет промахивается по точкам, то следует уменьшить max_velocity
  
*invulnerable = true/false (по умолчанию false)
+
; необязательные
Неуязвимость. Если true, вертолёт игнорирует все хиты.
+
enemy                  = <nil/actor/StoryID>  ; враг
 +
fire_point              = <имя_пути>            ; путь из одной точки, в которую вертолёт будет вести огонь
 +
min_mgun_attack_dist    = <n>                  ; мин. расстояние (в метрах), при котором можно использовать пулемет
 +
max_mgun_attack_dist    = <n>                  ; макс. расстояние (в метрах), при котором можно использовать пулемет
 +
min_rocket_attack_dist  = <n>                  ; мин. расстояние (в метрах), при котором можно использовать ракеты
 +
max_rocket_attack_dist  = <n>                  ; макс. расстояние (в метрах), при котором можно использовать ракеты
 +
use_rocket              = <true/false>          ; вкл./выкл. стрельбу ракетами. Если не задано, будет считаться true
 +
use_mgun                = <true/false>          ; вкл./выкл. стрельбу с пулемета. Если не задано, будет считаться true
 +
engine_sound            = <true/false>          ; вкл./выкл. звук двигателя вертолёта. Если не задано, будет считаться true
 +
upd_vis                = <n>                  ; время (в секундах), через которое проверяется видимость врага
 +
stop_fire              = <true/false>          ; если увидит игрока, остановиться чтобы смотреть на него с позиции, и обстреляет, если игрок – враг. По умолчанию false
 +
show_health            = <true/false>          ; отображает индикатор жизни вертолёта. По умолчанию false
 +
fire_trail              = <true/false>          ; вкл./выкл. стрельбу линией (не в одну точку). По умолчанию false
 +
invulnerable            = <true/false>          ; неуязвимость. Если true, вертолёт игнорирует все хиты. По умолчанию false
 +
immortal                = <true/false>          ; бессмертие. Если true, вертолёт получает повреждения, но не умирает. По умолчанию false
 +
mute                    = <true/false>          ; отключает универсальные реплики пилотов вертолета. По умолчанию false</syntaxhighlight>
  
*immortal = true/false (по умолчанию false)
 
Бессмертие. Если true, вертолёт получает повреждения, но не умирает.
 
  
*mute = true/false (по умолчанию false)
+
== Универсальная боевая схема==
Отключает универсальные реплики пилотов вертолета.
 
  
*rocket_delay = msec (время в миллисекундах реального времени)
 
Задержака между пусками ракет. По дефолту берется из ltx (сейчас 1250 мсек)
 
 
*default_velocity = m/sec (скорость с которой летает вертолет, если не заданы другие параметры)
 
 
Параметры, задаваемые в именах вершин пути path_move:
 
 
«e» – (сокр. от enemy) задание врага (цели). Стрелять по этой цели вертолёт начнёт уже в предыдущей вершине. Если значение не задано, то будет стрелять в точку из path_look, которая соответствует данной вершине. Если задано «e=actor» (можно сокращённо «e=a»), то огонь будет вестись по актёру. Если задано «e=число», стрелять будет по объекту со story id равным числу.
 
 
«w» – (сокр. от weapon) каким оружием стрелять. Возможные значения: w=1 – стрелять только пулемётом; w=2 – стрелять только ракетами. По умолчанию стреляет из всего.
 
 
«v» - (сокр. от velocity) задание максимальной скорости (в м/с) на участке пути от данной вершины до следующей. Если этот параметр не задан, то умолчание берётся из файла helicopter.ltx.
 
 
«dv» - (сокр. от destination velocity) задание скорости (в м/с), которую вертолёт должен иметь в момент прибытия в данную вершину.
 
 
«die» - убить вертолёт.
 
 
«flame» - начать дымить (как будто подбили).
 
 
 
Параметры, задаваемые в именах вершин пути path_look:
 
 
«e» - работает так же как и в path_move. Разница в том, что стрелять по указанной цели вертолёт начнёт лишь тогда, когда прибудет в вершину пути path_move, которая соответствует данной вершине path_look.
 
 
«w» – см. такой же параметр для пути path_move.
 
 
«t» - (сокр. от time) длительность времени (в мс реального времени), на протяжении которого вертолёт будет смотреть в данную точку. Если этот параметр не задан, то вертолёт пронесётся без остановки, но постарается на ходу развернуться к этой вершине.
 
 
 
==Универсальная боевая схема==
 
 
В универсальной боевой схеме вертолёт не привязан к путям.
 
В универсальной боевой схеме вертолёт не привязан к путям.
  
Строка 106: Строка 89:
 
combat_use_rocket = - true/false использовать ли ракеты в этой секции
 
combat_use_rocket = - true/false использовать ли ракеты в этой секции
 
combat_use_mgun = - true/false использовать ли пулемет в этой секции
 
combat_use_mgun = - true/false использовать ли пулемет в этой секции
 +
  
  
 
[[Категория:A-Life]]
 
[[Категория:A-Life]]

Текущая версия на 02:07, 17 ноября 2017

Логика вертолёта[править]

Общие сведения:

  • Вертолёт работает на «логике».
  • На вертолёт реагируют аномалии.
  • Вертолёт не обрабатывает столкновения с геометрией и физикой пока он не сбит.
  • Попадания в область кабины, где сидит первый пилот, в десятки раз более болезненны для вертолёта.
  • У вертолёта есть универсальная боевая схема на манер сталкеров.
  • Пилоты вертолета реагируют репликами на события: хит, видит врага, поврежден (задымился), падает.

Схема heli_move[править]

Позволяет летать вертолёту по патрульному пути, регулировать скорость, зависать, стрелять по различным целям.

Для схемы должен быть задан path_move – путь, по которому будет летать вертолёт. Он может содержать одну вершину, если нужно, чтоб вертолёт висел на месте.

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

Вершины этих путей могут быть поставлены где угодно в пределах ограничивающего бокса уровня. Они не зависят от ai-nodes.

По пути вертолёт летает без учёта связей между вершинами. Он летает от вершины к вершине в порядке возрастания их номера (т.е. в порядке, в котором их поставили на уровень).

Вертолёт старается летать точно по вершинам пути. При желании можно сделать ювелирный пролёт под мостом.

Вертолёт старается летать как можно быстрее. Пояснение: если ему задать, что в следующей вершине пути он должен иметь скорость 10 м/с, а его максимальная скорость установлена в 30 м/с, то он не станет сразу лететь 10 м/с. Он сначала будет разгоняться вплоть до 30 м/с и только на подлёте к целевой вершине начнёт тормозить с расчётом прибыть в неё имея 10 м/с.

Если в вершине пути path_move задан набор флажков, то вертолёт будет смотреть в любую из вершин path_look, в которых задан такой же набор флажков. Поворачиваться к этой точке вертолёт начнёт с предыдущей вершины пути. На данном этапе вертолет не может, зависнув в одном месте, смотреть поочередно в несколько точек path_look

Настройки[править]

; обязательные
path_move           = <имя_пути>    ; путь, по которому будет летать вертолёт
max_velocity        = km/h          ; максимально допустимая скорость, если возможно, он будет стремиться к ней. Если на пути вертолет промахивается по точкам, то следует уменьшить max_velocity

; необязательные
enemy                   = <nil/actor/StoryID>   ; враг
fire_point              = <имя_пути>            ; путь из одной точки, в которую вертолёт будет вести огонь
min_mgun_attack_dist    = <n>                   ; мин. расстояние (в метрах), при котором можно использовать пулемет
max_mgun_attack_dist    = <n>                   ; макс. расстояние (в метрах), при котором можно использовать пулемет
min_rocket_attack_dist  = <n>                   ; мин. расстояние (в метрах), при котором можно использовать ракеты
max_rocket_attack_dist  = <n>                   ; макс. расстояние (в метрах), при котором можно использовать ракеты
use_rocket              = <true/false>          ; вкл./выкл. стрельбу ракетами. Если не задано, будет считаться true
use_mgun                = <true/false>          ; вкл./выкл. стрельбу с пулемета. Если не задано, будет считаться true
engine_sound            = <true/false>          ; вкл./выкл. звук двигателя вертолёта. Если не задано, будет считаться true
upd_vis                 = <n>                   ; время (в секундах), через которое проверяется видимость врага
stop_fire               = <true/false>          ; если увидит игрока, остановиться чтобы смотреть на него с позиции, и обстреляет, если игрок – враг. По умолчанию false
show_health             = <true/false>          ; отображает индикатор жизни вертолёта. По умолчанию false
fire_trail              = <true/false>          ; вкл./выкл. стрельбу линией (не в одну точку). По умолчанию false
invulnerable            = <true/false>          ; неуязвимость. Если true, вертолёт игнорирует все хиты. По умолчанию false
immortal                = <true/false>          ; бессмертие. Если true, вертолёт получает повреждения, но не умирает. По умолчанию false
mute                    = <true/false>          ; отключает универсальные реплики пилотов вертолета. По умолчанию false


Универсальная боевая схема[править]

В универсальной боевой схеме вертолёт не привязан к путям.

Вертолёт не видит никого. Узнать о враге вертолёт может только при получении хита или из параметра в custom data.

Вертолёт стреляет по врагу, если видит его. Если не видит – ищет, облетая вокруг точки, где последний раз видел. Если долго не видит врага – забывает его. Если врага задали принудительно из текущей секции схемы поведения, то он не забудет его, пока находится в этой секции.

Настройки[править]

Отдельной секции для этой схемы поведения нет. Поэтому настройки производятся в секции текущей схемы поведения:

combat_ignore = true/false true означает игнорирование получения хита. Т.е. вертолёт не будет пытаться «отомстить» тому, от кого он получил хит.

combat_enemy = nil/actor/StoryID С помощью этого параметра можно задать вертолёту конкретного врага. nil – нету врага; actor – игрок; SID – числовое story id врага.

combat_use_rocket = true/false Можно ли вертолёту пользоваться рокетами.

combat_use_mgun = true/false Можно ли вертолёту пользоваться пулемётом.

combat_velocity = <число> Скорсть, с которой вертолет будет делать боевые заходы

combat_safe_altitude = <число> Высота, относительно самой высокой точки геометрии на уровне ниже которой вертолет не будет опускаться в боевой схеме (может быть отрицательным)

К вертолёту подключена схема xr_hit. Работает как у сталкеров. В xr_effects есть группа функций для работы с вертолётом из его custom data:

heli_set_enemy_actor - сделать актёра врагом вертолёту heli_start_flame - поджечь вертолёт heli_die - убить вертолёт

combat_velocity = - боевая скорость в этой секции указывается в м/с combat_safe_altitude = - высота боевая в метрах, может принимать отрицательные значения combat_use_rocket = - true/false использовать ли ракеты в этой секции combat_use_mgun = - true/false использовать ли пулемет в этой секции