Теперь - о некоторых веселых триггерах.
Весьма популярной конструкцией является различного рода
телепортация юнитов. Она может осуществляться несколькими способами.
Наиболее топорный: по достижению юнитом локации, убрать его с карты, а в
другом месте создать ему идентичный. Или изменив свойства юнита, благо
триггеры это позволяют. Есть и более простой путь, как-то непосредственная
телепортация (в actions выставить "Move units"). А уж потом можно вволю
менять свойства. Можно даже выставить в actions "Preserve trigger", чтобы
телепорт работал все время.
Очень же интересной задачей в данном случае является создание
двустороннего телепорта, чтобы он все время и туда, и сюда юниты таскал с
одинаковым успехом. Вся проблема в том, что простым пересечением в
пространстве двух телепортов ("туда" и "обратно") цели не добьешься, ибо
юнит, попавший в телепорт, так и будет мотаться между локациями с частотой
в пол-Герца (если я правильно понял, то частота срабатывания триггера при
наличии "Preserve trigger", - раз в две секунды). Таким образом, на
повторное срабатывание телепорт можно взводить лишь при отсутствии на нем
юнитов. Тут, кстати, очень помогли ключи, и, в целом, получилось красиво.
Алгоритм примерно такой: проверяется наличие юнитов на одной площадке.
Если есть, - и если ключ "Moving" is cleared, - то set "Moving" и Move all
units... с локации.. на локацию. То же - для второй площадки. Третьим
триггером идет проверка отсутствия юнитов на обеих площадках и
взведенности "Moving" ("Moving is set"), и если все сходится, то clear
"Moving". Естественно, все это снабжается Preserv'ами.
Еще один прикол на эту тему - телепорт в воду (Jungle или
Badlands) или в bottomless pit (в Installation), или подобная пакость.
Срабатывает лишь для наземных юнитов, само собой... Хотя, если поиграть
уровнями локации, наверное, можно добиться подобного эффекта и для
воздушных юнитов. Суть же в том, что с конкретного места на карте все (или
не все) наземные юниты телепортируются в воду. Эффект забавен, особенно,
если применять на игрока-человека, на игроке-компе это не так наглядно.
Поскольку наземные юниты в воду не телепортируются, а триггер срабатывает,
то юниты "забывают" все команды... Идущие - встают, убегающие - встают, не
говоря уже о тех, кто послан атаковать или кастовать заклинание 8¤) - в
общем, потеха еще та.
Как уже упоминалось, недалеко от телепортов расположен еще
один раздел. Это - создание юнитов. Здесь также можно отыскать массу
интересного. Сначала просто о создании: оно может осуществляться одним
простым триггером, он так и называется - Create units. Кстати, в ранних
версиях StarEditor'a юнитов можно создавать только по одному (геморрой, от
которого я избавился, лишь достав BroodWar), а это чревато, например, тем,
что, при написании соответствующего триггера, поленившись, и вставив
вместо 200 повторений "create units..." "preserve trigger", при удачном
стечении обстоятельств можно наблюдать, как в игре экран будет зарастать
сообщениями о невозможности создать 201-й юнит.
А вообще же сей триггер, а также его вариант ("Create units
with properties...") дают широкое поле деятельности. Например, на месте
вероятной битвы в нужный момент можно создать толпу глюков. Они потешно
путаются под ногами, и вообще создают массовку и суматоху (свойство
глючности можно выставить при создании триггера).
Также, весьма потешен тот факт, что создавать можно ...
криттеров. Для конкретных игроков. И этими криттерами можно будет
управлять. Правда, справа на консоли, при выделении их, кнопки не
появляются, и выделить криттеров толпой нельзя - лишь по одному, да и,
честно говоря, стоять на месте они не умеют также, как и атаковать... Но
если ткнуть правой кнопкой мыши - криттер пойдет, и будет там топтаться
кругами. В этом смысле весьма полезны Зерги - с ними неплохо смотрятся
Ринадоны, а также птеродактили из BW, да и пользу приносят - разведка,
например, а если вспомнить, что зерговские загрязнители/дефилеры охотно
жрут своих, ману пополняя... К слову криттерах. Должен признаться, я -
Зерг, самый что ни на есть. И, как Зерг, хочу сказать - cerebrates,
природа за нас! Не пробовали никогда сажать паразитов в мирно топчущихся
тварей? Ну и как? Правда, и тут влезли Протоссы со своим юношеским
самоутверждением. Шаманы ихние, темные архонты, и вовсе тварей в свою веру
обращают. Но вернусь к Stareditor'у.
Иногда встречается проблема открывания/закрывания дверей. Сам
над ней бился - зуб сломал... Спасибо, Aragorn подсказал. Загвоздка
оказалась в том, что, неважно, кто указывается в пункте Players, но в
Actions, в триггере Set doodad state.., нужно указать for all players.
Конечно, нужно еще соблюсти соответствие, и не назвать "левую" дверь
"правой". Поясню - левая дверь, - это та, что направлена от (слева, внизу)
к (справа, наверху). А прочие doodads для Installation (турели, ракетные
установки, огнеметы) можно создавать для конкретного игрока, чем они очень
полезны, например, при огневой поддержке изначальной базы. А можно сделать
такой уровень: цель - захватить контроль над системой управления огневыми
комплексами, после чего - продержаться (пи) минут. В общем, простор для
воспаленной фантазии.
Есть также триггеры, специально посвященные управлению
юнитами. Это триггеры AI (Artificial Intelligence), с помощью которых, в
зависимости от ситуации, можно менять отношения между игроками, и триггер
Issue order (в поздних версиях), позволяющий отправлять в поход отдельных
юнитов. Ради смеха можно проработать такой сценарий: проводка конвоя с
транспортами, даже не проводка скорее, а охрана. В начале игры - триггер:
послать транспорта с.. на.. Они идут, а цель игрока - их охранять, причем
лучше, если он не сможет ими управлять.
Со всем вышеперечисленным также неплохо стыкуется триггер
Move location. Как легко было заметить, многие триггеры опираются на
использование locations. А, привязяв эти самые локации к конкретным
юнитам, можно добиваться забавного эффекта. Например, сделать юнит (хотя
бы зверушку), и повесить на него локацию, характерной чертой которой будет
смерть любого вражеского юнита, на нее попадающего... morituri zealoti
8¤).
|