Из данного материала вы узнаете о принципе действия довольно полезного точечного энтити-объекта
multi_manager,
который используется для последовательной активации нескольких объектов
через заданные промежутки времени. От вас понадобится знание 3-х
энтити-объектов:
Multi_manager — как мы уже сказали, точечный энтити-объект,
поэтому его месторасположение в уровне на его работу не влияет. Данный
объект прозрачен в игре и не мешает игрокам перемещаться. В простых
свойствах данной энтити есть лишь 1 параметр —
Name, то есть название
multi_manager'a. Название обязательно необходимо указывать для того, чтобы объект можно было активировать.
Главные же параметры выставляются при отжатой кнопке «SmartEdit» (смотрите картинку ниже).
Нажмем кнопку «Add», чтобы добавить новую запись. Появится маленькое
окно. В строку «Key» вписывается название объекта, который нужно
активировать, а в строку «Value» — время в секундах до активации. Время
можно задавать не только целыми секундами: 0,1,2,3.., но и секундами с
десятыми или сотыми долями (0.2, 0.65, 0.7, 1.4, 3.5, 31.4). Дробная
часть отделяется точкой.
Multi_manager может активировать до 16 всякого рода объектов. А если учесть, что в качестве активируемого объекта может быть сам
multi_manager, то общее число контролируемых объектов может быть значительным.
Давайте рассмотрим небольшой пример. У нас есть небольшая комната, в центре которой расположен источник света
light. По углам комнаты расположены еще четыре объекта
light,
которые в начале раунда будут выключены (установлен флажок «Initially
dark»). Имена у лампочек следующие: light1, light2, light3, light4.
Смысл опыта заключается в последовательном включении и выключении
каждого источника света (эдакая дискотека :-) Последовательность
включения и выключения объектов
light, а также время активации запишем в свойства
multi_manager
при отжатой кнопке «SmartEdit». Также создадим на стене кнопку
(брашевый энтити-объект func_button), которая будет активировать
multi_manager, а тот в свою очередь цепочку из 4-х лампочек (смотрите картинку ниже).
Итак, последовательность действий следующая:
(1) игрок нажал на кнопку (func_button)
(2) кнопка активирует multi_manager
(3) multi_manager включает/выключает лампочки с заданными интервалами:
лампочка-1
через 0.0 с — ВКЛ.
лампочка-1
через 0.5 с — ВЫКЛ.
лампочка-2
через 0.5 с — ВКЛ.
лампочка-2
через 1.0 с — ВЫКЛ.
лампочка-3
через 1.0 с — ВКЛ.
лампочка-3
через 1.5 с — ВЫКЛ.
лампочка-4
через 1.5 с — ВКЛ.
лампочка-4
через 2.0 с — ВЫКЛ.
В свойства
multi_manager для удобства будем вписывать включение
и выключение лампочек, расстанавливая их по времени активации, хотя
последовательность записи значения не имеет. Если в свойства
multi_manager
вписать объект, который уже есть в списке, то к названию этого объекта
будут добавлены символы #1, #2, #3 и т.п. (смотрите картинку ниже).
Объекту
multi_manager присвоим название
lgt_multi и
впишем это название в свойства кнопки (func_button) в параметр
«Targetted object». Вот собственно и всё! Когда кто-нибудь нажмёт на
кнопку, по очереди загорятся и погаснут четыре лампочки по углам
комнаты.
У объекта multi_manager есть один флаг «multithreaded». Если этот флаг отмечен, то
multi_manager запустится ещё раз независимо от того, выполняет он уже какую-то последовательность действий или нет. Если флаг не отмечен, то
multi_manager нельзя запустить повторно, пока он не закончит активацию последнего объекта из списка.
В современных уровнях объект
multi_manager применяется часто. К примеру, при помощи
multi_manager'a можно запускать несколько звуков или активировать череду взрывов, как на карте Ka_100x100.