Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Краткое справочное руковод...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
218.11 Кб
Скачать
  1. Условия

Зачастую при происхождении какого-либо события необходимо проанализировать ситуацию, вызвавшую событие. Для этого в системе interactions были введены условия. Некоторые условия можно проверять только внутри определенных событий (они указаны в скобках). Внутри других событий они не будут выполняться.

В системе interactions можно анализировать следующие условия:

  • bullet “<тэги>” – тэги пули (можно проверять внутри событий bullet_hit, pierce);

  • volume “<тэги>” – тэги волюма (внутри событий bullet_hit, blast, pierce, contact, overlap, ground_hit);

  • component “<тэги>” – тэги компонента (внутри событий break, repair);

  • work “<тэги>” – проверить работоспособность компонент с заданными тэгами;

  • bone “имя кости” – имя кости (внутри событий collect, board, seat);

  • effector “<свойства>” – свойства сущности (props), с которой происходит взаимодействие (внутри события contact);

  • dead – состояние смерти;

  • operatable – состояние работоспособности;

  • min_energy <значение> – энергия взрывной волны больше заданного значения (внутри события blast);

  • min_speed <значение> – скорость сущности больше заданной (внутри событий ground_hit, contact);

  • min_mass <значение> – масса сущности больше заданной (внутри событий hit во взаимодействиях с территориями);

  • rand <значение> – заданное значение больше чем случайная величина в интервале от 0 до 1 (rand 0.1 будет выполняться в 10% проверок);

  • name “<тэги>” – тэги оружия (внутри события take);

  • “<имя флажка>” – проверить, установлен ли флажок с заданным именем;

Формат записи условий:

{if <условие 1>

{<действия>}

else <условие 2>

{<действия>}

else

{if <условие 3>

{

{<действия>}

}

}

Также можно проверять обратные условия, при этом перед условием ставится слово not.

Например:

{on blast

{if volume “wheel”

{if min_energy 0.5

{if rand 0.7

{<действия>}

}

}

else volume “body”

{if bullet “shell fg”

{<действия>}

else not bullet “big”

{<действия>}

}

}

}

  1. Действия

Ответной реакцией объекта на события окружающей среды являются его действия.

Действия делятся на следующие категории:

  • управление анимациями;

  • управление звуками;

  • управление волюмами, компонентами и зонами;

  • управление спецэффектами;

  • управление экипажем;

  • другие действия;

    1. Управление анимациями

Для запуска анимации служит действие ani_play. Формат записи действия:

{ani_play “<имя анимации>” <скорость> <флажки>}

Параметр скорости указывает, во сколько раз будет отличаться скорость в игре по отношению к оригинальной скорости. Значение больше единицы ускоряет анимацию, меньше единицы – замедляет.

При этом могут задаваться дополнительные флажки, которые записываются через пробел.

loop – означает, что анимация зациклена;

resume – возобновить анимацию (после действия ani_stop);

callback – генерировать событие animation_end в момент окончания анимации;

Примеры записи для запуска анимации:

{ani_play “walk”} – запускает анимацию с именем “walk” для проигрывания один раз.

{ani_play “run” 1.5 loop} – зациклено запускает анимацию с именем “run” со скоростью в полтора раза быстрее оригинальной.

Пример записи с генерацией события:

{on spawn

{ani_play “pick” callback}

}

{on animation_end “pick”

<действия>

}

Запускает анимацию, по окончании которой происходит событие animation_end.

Следует отметить, что если анимации с заданным именем не существует, то ничего не запускается, но событие animation_end приходит сразу же.

Для остановки анимации существует действие ani_stop. Формат записи действия:

{ani_stop “<имя анимации>”}