Ru/L4D Level Design/Panic Events

'''
Panic Event’ы – это события, которые сопровождаются атакой Орды Инфицированных на Выживших. Однако вы имеете ограниченный контроль над этими событиями, но, по крайней мере, можете указать места появления Инфицированных.
Примеры Panic Event’ов вы можете пронаблюдать на таких картах, как 2-я глава кампании No-Mercy, где нужно запустить с помощью щитка открывающуюся дверь, или когда вы призываете лифт в 4-ой главе этой же кампании.
func_elevator который мы наблюдали на карте tutorial_standards имеет кнопку, которую вы используете чтобы вызвать лифт, посылает output для вызова Panic Event.
== Размещение info_director ==
Самое первое, что вам потребуется, чтобы создать Panic Event – это info_director.
Перейдите в и выберите "info_director" на панели Objects из выпадающего списка.
Кликнув левой кнопкой мыши, разместите энтити в окне проекции Camera редактора.
Откройте свойства энтити посредством нажатия +.
В поле Name впишите "director" – это будет имя, через которое мы будем обращаться к этой энтити с помощью системы I\O.
Теперь выберите нажав , и дважды кликните на энтити, от которой вы хотели бы послать инпут к info_director, т.е. которая будет вызывать Panic Event. В прошлом уроке мы рассматривали создание лифтов, давайте обратимся к этому уроку. Откройте энтити logic_relay которую мы использовали для спуска лифта, ее имя "elevator_down_relay".
Перейдите на вкладку Outputs этой энтити.
Нажмите Add... чтобы создать новый аутпут.
Измените My output named на "OnTrigger".
Измените Targets entities named на "director".
Измените Via this input на "PanicEvent".
Поставьте галочку напротив пункта Fire once only.
Это укажет нашей энтити, когда она будет активирована, что директор будет выполнять Panic Event только 1 раз. 
Теперь нажимайте чтобы откомпилировать и запустить вашу карту.
== Разметка Nav-файла ==
В игре вам потребуется внести некоторые изменения в nav-файл, чтобы Panic Event работал корректно.
Когда уровень, наконец, загрузится, наберите следующие команды в консоли:
 director_stop
 nb_delete_all
 nav_edit 1
 z_debug 1
Если у вас есть собственный конфиг-файл для редактирования Nav-файла, запустите его с помощью команды exec (например, exec nav.cfg).
Переместитесь туда, где будет происходить Panic Event.
На карте tutorial_standards, идите к кнопке рядом с лифтом.
Выделите область вокруг Panic Event’а и убедитесь что вы выбрали достаточно площади, чтобы Орда могла прибежать сюда.
Итак, мы имеем выделенные области. Теперь откройте консоль и наберите "mark BATTLEFIELD" , после чего нажмите клавишу Enter.
You'll notice that in tutorial standards, it has included areas that the survivors can't get to as BATTLEFIELD.
Атрибут BATTLEFIELD в Nav-сетке указывает, где будет находиться Panic Event, и где могут появиться Инфицированные. Область в1500 юнитов вокруг Выживших считается нормой, при которой Директор сможет нормально создавать инфицированных. Используя атрибуты BATTLEFIELD, которые могут находиться значительно дальше нормы – Это позволяет создавать такие моменты когда Инфицированные набегают на вас издалека.
Теперь найдите посреди области, помеченной атрибутом BATTLEFIELD, позиции, которые вам кажутся стратегически полезными, где выжившие могут обороняться. Чтобы Выжившие знали, что это отличные позиции для боя и обороны, нужно промаркировать их атрибутом"BATTLESTATION".
== Игровой Инструктор ==
Когда вы играете в Left 4 Dead, вы наверняка замечаете различные текстовые сообщения, которые могут содержать как игровые советы так и предупреждения, пояснения и т.д. Мы назвали эту систему Игровым Инструктором.
Panic Event’ы, которые мы создали в Left 4 Dead, сопровождаются сообщением Игрового Инструктора, которое напрямую связано с ними.
Чтобы создать его по своему усмотрению, выберите и выберите "info_game_event_proxy" из выпадающего списка Objects. 
Поместите энтитю там, где вы хотели бы увидеть сообщение.
Откройте его свойства, нажав +.
Присвойте ему уникальное имя Name.
Для поля Name of event to generate установите "explain_elevator_button". 
Измените Range на "75". 
Теперь перейдите на вкладку Flags.
Установите галочку напротив Fire Automatically When First Seen.
Это означает, что данное сообщение Игрового Инструктора будет отображаться на экране всякий раз, когда игрок на него посмотрит. 
Теперь нам необходимо добавить кое-какой аутпут в info_game_event_proxy , чтобы выключить его, когда кнопка будет нажата. 
Дважды кликните по func_button , которую вы использовали для активации elevator_down_relay , чтобы открыть её свойства. 
Переключитесь на вкладку Outputs.
Нажмите на Add... , чтобы добавить новый аутпут. Укажите следующие его параметры:
* My output named : "OnPressed".
* Target entities named: энтити, названная "button_proxy" или то имя, которое вы дали энтити info_game_event_proxy.
* Via this input: "Kill".
Этот аутпут удалит info_game_event_proxy с уровня, как только кнопка будет нажата.