- •Принципы работы
- •Общие сведения
- •Описание interactions
- •Структура файлов interactions
- •Физические параметры
- •События
- •Условия
- •Действия
- •Управление анимациями
- •Управление звуками
- •Управление волюмами
- •Управление компонентами
- •Управление зонами
- •Управление спецэффектами
- •Управление экипажем
- •Управление здоровьем
- •Другие действия
- •Дополнительные возможности
- •Отладка
События
Ключевым понятием в системе interactions является событие. События делятся на встроенные и определяемые пользователем.
В системе interactions встроены следующие события:
spawn – при появлении сущности на карте;
break – происходит при поломке компонента;
repair – после ремонта компонента;
bullet_hit – при попадании в какой-то из волюмов сущности пули;
blast_hit – при достижении волюмов сущности взрывной волны, приходит один раз на сущность;
blast – при достижении волюмов сущности взрывной волны, приходит на каждый волюм;
pierce – при пробивании волюма пулей;
contact – при столкновении волюма с волюмами других сущностей;
overlap begin– при пересечении волюмов, в начале пересечения;
overlap end – при пересечении волюмов, в конце пересечения;
ground_hit – при ударе об землю;
terrain “<имя>” enter – при входе сущности в новый тип территории;
terrain “<имя>” leave – при выходе сущности из текущего типа территории;
animation_end – при окончании анимации;
operatable on – при включении режима функционирования (у техники);
operatable off – при выключении режима функционирования (у техники);
board in – вначале посадки при подходе к нужному месту (у людей);
board out – при высадке из техники (у людей);
seat – при посадке на конкретное место в технике (у людей);
collect in – при взятии экипажа (у техники);
collect out – при высадке экипажа (у техники);
Формат записи обработчиков событий:
{on <событие>
…
}
Например:
{on spawn
…
}
или:
{on terrain “ground” enter
…
}
Кроме того, пользователь может определять свои события, которые затем можно вызвать действием call. Пользовательские события записываются так же, как и встроенные, но в двойных кавычках.
Формат записи определяемых пользователем событий:
{on “<имя события>”
…
}
Вызов события:
{call “<имя события>”}
По умолчанию события для различных свойств вызываются последовательно в порядке, обратном их определению в файле interaction.set (по сути определяется порядком включаемых файлов).
Например, если для объекта заданы свойства {props “steel” “car”}, то событие вызовется как для свойства “steel”, так и для свойства “car”. Но так как свойство “car” определено во включаемом файле “car.inc” после свойства “steel”, определенного в “generic.inc”, то вначале вызовется событие для свойства “car”, а затем для “steel”.
Для того, чтобы вызвалось событие только для последнего свойства, оно определяется со словом overload.
{on <событие> overload
…
}
При этом может понадобиться вызов событий для остальных свойств, который можно осуществить посредством действия {inherited}.
Некоторые события определены как пользовательские, но вызываются из игры. Таким образом для техники (vehicle) вызываются следующие пользовательские события: “move_on”, “move_off” – сигнализирующие о начале и окончании передвижения; “stop_on”, “stop_off” – противоположные “move_on” и “move_off”; “exhaust” – при увеличении нагрузки на двигатель; “engine_on”, “engine_off” – при запуске и остановке двигателя.
Для людей (human) вызываются события перезарядки “reload”, бросания гранаты “grenade”, выстрела “fire”, взятия оружия в руки “take”, выпускания дыма изо рта при курении “smoke”.
Для животных (animal) вызывается событие “idle”, когда они ничего не делают.
Также для сущностей, которые могут падать по физике (столбы, деревья), определенных как pillar, вызывается событие “fallen” в начале падения.
