minecraft:behavior.delayed_attack за тебя одним переключателем.Get GodCraftОбзор
minecraft:behavior.delayed_attack - компонент сущности: он пишется в объект components своего моба или в одну из его групп компонентов. Задача ИИ ближнего боя, где урон наносится посреди анимации атаки, а не сразу, как укус разорителя.
Поля
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
attack_duration | number | 0.75 | Длительность анимации атаки в секундах. Она же задаёт паузу между атаками.Диапазон: от 0 до … |
hit_delay_pct | number | 0.5 | В какой момент анимации наносится урон. 0.5 означает середину.Диапазон: от 0 до 1 |
sound_event | LevelSoundEvent | "attack.strong" | Звуковое событие, которое играет в начале атаки. |
reach_multiplier | number | 1.5 | Умножается на размер моба, чтобы получить расстояние, с которого он может ударить.Диапазон: от 0 до … |
on_kill | ActorDefinitionTrigger | {"event":"","filters":{"AND":null,"NOT":null,"OR":null,"all":null,"all_of":null,"any":null,"any_of":null,"none_of":null},"target":"self"} | Событие, которое срабатывает, когда этот моб убивает свою цель. |
melee_fov | number | 90 | Угол обзора в градусах, в котором моб замечает цель для удара.Диапазон: от 0 до … |
x_max_rotation | number | 30 | Максимальный наклон головы вверх или вниз в градусах, пока моб смотрит на цель.Диапазон: от 0 до … |
y_max_head_rotation | number | 30 | Максимальный поворот головы в стороны в градусах, пока моб смотрит на цель.Диапазон: от 0 до … |
random_stop_interval | integer | 0 | Даёт шанс 1 к N прекратить атаку, где N это значение.Диапазон: от 0 до … |
attack_once | boolean | false | Если true, моб выполняет эту атаку только один раз. |
can_spread_on_fire | boolean | false | Если true, горящий моб с пустыми руками поджигает цель при ударе. |
min_path_time | number | 0.2 | Минимальное ожидание в секундах перед повторным расчётом пути к цели.Диапазон: от 0 до … |
max_path_time | number | 0.55 | Максимальное ожидание в секундах перед повторным расчётом пути к цели.Диапазон: от 0 до … |
path_fail_time_increase | number | 0.75 | Сколько секунд добавляется к ожиданию пути, когда моб застрял.Диапазон: от 0 до … |
inner_boundary_time_increase | number | 0.25 | Сколько секунд добавляется к ожиданию пути, когда цель дальше path_inner_boundary.Диапазон: от 0 до … |
outer_boundary_time_increase | number | 0.5 | Сколько секунд добавляется к ожиданию пути, когда цель дальше path_outer_boundary.Диапазон: от 0 до … |
path_inner_boundary | number | 16 | Расстояние, после которого применяется inner_boundary_time_increase.Диапазон: от 0 до … |
path_outer_boundary | number | 32 | Расстояние, после которого применяется outer_boundary_time_increase.Диапазон: от 0 до … |
speed_multiplier | number | 1 | Множитель скорости при движении к цели.Диапазон: от 0 до … |
require_complete_path | boolean | false | Если true, моб преследует цель, только если до неё есть полный путь. |
track_target | boolean | true | Если true, моб продолжает следовать за целью даже без компонента восприятия. |
attack_types | string | "" | Какие типы сущностей атакует этот моб. |
on_attack | ActorDefinitionTrigger | {"event":"","filters":{"AND":null,"NOT":null,"OR":null,"all":null,"all_of":null,"any":null,"any_of":null,"none_of":null},"target":"self"} | Событие, которое срабатывает при каждом попадании атаки. |
priority | integer | 0 | Чем меньше число, тем раньше выполняется задача: из двух конкурирующих задач побеждает та, у которой priority меньше.Диапазон: от 0 до … |
control_flags | Goal's control flags[] | нет | Какие части тела занимает эта задача (движение, взгляд, прыжок), чтобы задачи с теми же частями не выполнялись одновременно. |
Пример
Внутри объекта components в BP/entities/<name>.json (значения - по умолчанию или примерные):
BP/entities/<name>.json
{
"minecraft:behavior.delayed_attack": {
"attack_duration": 0.75,
"hit_delay_pct": 0.5,
"sound_event": "attack.strong",
"reach_multiplier": 1.5,
"on_kill": {
"event": "",
"filters": {
"AND": null,
"NOT": null,
"OR": null,
"all": null,
"all_of": null,
"any": null,
"any_of": null,
"none_of": null
},
"target": "self"
},
"melee_fov": 90,
"x_max_rotation": 30,
"y_max_head_rotation": 30
}
}