Для начала выберите прямоугольную область на карте, которая будет доступна для авиаудара и сделайте скайбокс как можно выше. Теперь ставим на карту прямоугольный браш (у меня 48*48*6), красим NODRAW’ом и превращаем его в func_movelinear. Отметьте флаг Not Solid и установите параметры:
Теперь скопируйте этот func_movelinear и разместите копию чуть выше исходного и поменяйте параметры:
Чуть позже объясню, почему параметры именно такие. Где-нибудь подальше поставьте 2 вращающихся рычага – momentary_rot_button. Дайте им имена button1 и button2 а остальные параметры установите такие:
-
Speed: 30
-
Distance: 90
-
Start Position: 0
-
Not Solid
-
Toggle
-
Use Activates
Кроме того, установите оси вращения рычагов при помощи флагов X/Y Axis, а также направление вращения при помощи параметра Start Direction. Теперь аутпут для button1:
Position ⇒ brush1 ⇒ SetPosition
Position ⇒ brush2 ⇒ SetPosition
Объясняю принцип работы системы. По оси Y двигается brush1 за счёт вращения рычага button1. По оси X – brush2, прикреплённый к brush1. Таким образом, вращая рычаги, можно установить brush2 в нужное положение. Туда и будет лететь ракета.
Следующий шаг – нужно отметить место авиаудара чем-нибудь светящимся. Это может быть env_sprite, env_lightglow, light_dynamic, env_beam, env_laser или что-нибудь подобное. Я поставил point_spotlight с параметрами:
Ну и флаг Start On тоже нужен. Теперь под скайбоксом ставим NODRAW-браш (у меня 16*16*14), нужно его поставить ровно над brush1 и brush2 (совмещаем центры объектов на виде сверху), превращаем в func_tankrocket и ставим параметры:
Поставьте флаг Non-solid и сдвиньте origin (синий шарик) немного вниз, чтобы ракета появлялась подальше от скайбокса (10-16 юнитов хватит). Теперь ставим ambient_generic с параметрами:
Поставьте все флаги. В данном случае звук будет слышен из любой точки карты. Если хотите ограничить слышимость, то уберите флаг Play everywhere и добавьте параметры:
Теперь рядом с рычагами ставим кнопку func_button (надеюсь, это все умеют) и пишем аутпуты:
-
OnPressed ⇒ button* ⇒ Lock
-
OnPressed ⇒ tank ⇒ Activate
-
OnPressed ⇒ spotlight ⇒ LightOff
-
OnPressed ⇒ tank ⇒ SetTargetEntityName ⇒ brush2 ⇒ 2.00
-
OnPressed ⇒ sound ⇒ PlaySound ⇒ 2.50
-
OnPressed ⇒ button* ⇒ Unlock ⇒ 4.00
-
OnPressed ⇒ tank ⇒ ClearTargetEntity ⇒ 4.00
-
OnPressed ⇒ spotlight ⇒ LightOn ⇒ 4.00
Таким образом, упадёт 1 ракета. Если хотите больше, то можете увеличить задержку у 3 последних аутпутов или поменять скорострельность func_tankrocket. Не забудьте сделать скайбокс повыше, чтобы место появления ракеты было плохо видно. Можно добавить туман или юзать ночной скайбокс.
Скачать исходник можно ниже.