Условия для актера human

Ниже перечислены условия выбора анимации в Animation Selector, специфичные для актеров типа human.

Условие
Описание

human_fsm_semaphore "<name>"

Проверяет, активен ли семафор с указанным именем. Подробнее про семафоры

human_fsm_state "<state_name>"

Проверяет, совпадает ли текущее FSM-состояние с заданным. Зарегистрированные имена FSM-состояний можно посмотреть в описании FSM (блоки state)

human_kill_flags "<kill_flag_name>" [..]

Проверяет, активны ли все перечисленные флаги обстоятельств гибели актера human. См. справку по флагам обстоятельств смерти.

human_fsm_counter

Проверяет значение FSM-счётчика для актера human. См. справку по счётчикам FSM.

human_hold_strap

Проверяет, нужно ли юниту придерживать ремень оружия, висящего за спиной.

human_throw_type

Проверяет, какой способ броска гранаты был выбран. Выбор способа броска гранаты.

human_stuff [holding | mounting | picking] "<item_type[ <item_type>...]>"

Проверяет взаимодействие юнита с указанными предметами в данный момент времени:

  • holding - предмет удерживается в руках;

  • mounting - предмет берется в руки;

  • picking - предмет поднимается с земли.

Тип предмета определяется согласно именам props в .def файле предмета. В проверке может участвовать сразу несколько типов предметов. Справка по типам предметов.

Соответствие props типа предметов
Тип предмета
Имена props
Описание

nothing

В руках солдата ничего нет

bazooka

weapon, rocketlauncher

Базука, стреляющая с плеча

mgun

weapon, mgun

Пулемёт

smg

weapon, smg

Автомат

rifle

weapon, rifle

Винтовка

pistol

weapon, pistol

Пистолет

flamer

weapon, flame_thrower

Огнемёт

small

smallitemin1hand

Мелкий предмет, например граната

1hand

itemin1hand

Предмет, который юнит держит в одной руке (например, канистра)

2hands

itemin2hands

Предмет, который юнит держит в двух руках (например, ящик)

body

human

Труп

flag

flag

Флаг

Справка по флагам обстоятельств смерти актера human

front

Убит спереди

back

Убит сзади

blast

Убит взрывом

piercing

Убит пулей

go

Солдат двигался

run

Солдат бежал

cover_in_trench

Солдат находился в окопе в состоянии snipe

Стандартная проверка linked не сработает, так как в момент смерти юнит уже отлинкован.

Условия проверки FSM-счётчиков

Синтаксис

if human_fsm_counter <name> [inc|get|once] <value> of <loop_number>

где

<name> — название счетчика

Варианты проверки:

  • inc — увеличить счётчик на 1 и сравнить значение с value ;

  • get — проверить текущее значение, не изменяя его;

  • once — если значение счётчика > 0, вернуть истину и сбросить значение в 0;

Имена FSM-счётчиков для актера human
  • knife — бросок ножа

  • down — залегание

  • alert — отпрыгивание от гранаты

  • pose — выбор позы

  • forced_smoke — запрос на курение из скрипта

Пример проверки FSM-счетчика
{if human_fsm_counter "down" inc 0 of 2 [...]}
{if human_fsm_counter "down" get 0 of 2 [...]}

Last updated