Ru/Disc Room: Difference between revisions
m (obsolete language category)  | 
				|||
| (11 intermediate revisions by 6 users not shown) | |||
| Line 1: | Line 1: | ||
{{  | {{lang|title=Комната с диском (Portal 2)|Disc Room}}  | ||
|title=Комната с диском (Portal 2)  | |||
|  | [[File:Insert disk.jpg|thumb|right|350px|"Иногда испытания должны проходить за пределами лаборатории."<br>- '''ГЛэДОС''']]  | ||
}}  | |||
[[  | |||
{{portal2}} '''Комната с диском''' - последнее испытание в конце каждой серии тестов в кооперативном режиме. Она находится в части комплекса, которой ГЛэДОС управлять не может, и которая служила людям последним защитным рубежом от разрастающейся власти ГЛэДОС над комплексом.  | {{portal2}} '''Комната с диском''' - последнее испытание в конце каждой серии тестов в кооперативном режиме. Она находится в части комплекса, которой ГЛэДОС управлять не может, и которая служила людям последним защитным рубежом от разрастающейся власти ГЛэДОС над комплексом.  | ||
== Источник дисков ==  | == Источник дисков ==  | ||
'''Источник дисков''' - устройство, создающее диски. Оно восстанавливает копию диска, если он был утерян или растворён. Обычно оно находится рядом с '''получателем диска''' в конце последней камеры серии кооперативного режима. Однако, помещать его там совершенно не обязательно; если поместить источник в начале камеры, могут получиться интересные головоломки, главной задачей которых станет не потерять диск.    | '''Источник дисков''' - устройство, создающее диски. Оно восстанавливает копию диска, если он был утерян или растворён. Обычно оно находится рядом с '''получателем диска''' в конце последней камеры серии кооперативного режима. Однако, помещать его там совершенно не обязательно; если поместить источник в начале камеры, могут получиться интересные головоломки, главной задачей которых станет не потерять диск.    | ||
=== Шаг 1 - настройка ===  | === Шаг 1 - настройка ===  | ||
[[  | [[File:Disk emitter1.jpg|350px|thumb|right|Привязка к [[Basic Construction#Сетка|сетке]]: 2]]  | ||
Создайте   | Создайте {{L|prop_static}} и выберите для неё модель <code>models/props_gameplay/laser_disc_player.mdl</code> и поместите её где-нибудь в комнате. Отсюда игроки будут брать диск.  | ||
Теперь создайте диск, это энтити   | Теперь создайте диск, это энтити {{L|prop_dynamic_override}}. Настройте её {{L|Hammer Object Properties Dialog|свойства}} так:  | ||
::{| class=standard-table  | ::{| class=standard-table  | ||
!  Свойство || Значение  | !  Свойство || Значение  | ||
| Line 25: | Line 23: | ||
Поместите диск внутри модели устройства, как показано на иллюстрации справа.  | Поместите диск внутри модели устройства, как показано на иллюстрации справа.  | ||
Теперь создайте браш размером 8x20x1 с текстурой <code>tools/toolsinvisible</code>. Поместите его сверху модели диска, снова, как на иллюстрации справа. Преобразуйте браш в энтити (нажатием {{key|Ctrl|T}}) и сделайте её   | Теперь создайте браш размером 8x20x1 с текстурой <code>tools/toolsinvisible</code>. Поместите его сверху модели диска, снова, как на иллюстрации справа. Преобразуйте браш в энтити (нажатием {{key|Ctrl|T}}) и сделайте её {{L|func_door}}. И задайте её свойства следующим образом:  | ||
::{| class=standard-table  | ::{| class=standard-table  | ||
!  Свойство || Значение  | !  Свойство || Значение  | ||
| Line 41: | Line 39: | ||
| Move Direction || 0 0 0  | | Move Direction || 0 0 0  | ||
|}  | |}  | ||
{{Note  | {{Note|Свойство Move Direction нужно задать на {{L|QAngle|Pitch Yaw Roll}}, указанные в <code>laser_disc_player.mdl</code>.}}    | ||
Создайте ещё одну энтити,   | Создайте ещё одну энтити, {{L|prop_physics_override}}, она будет диском, переносимым игроками. Нажмите {{Key|Shift}} и перетащите ''start_disc'' так, чтобы диск находился вне устройства, и чтобы только его 'край' касался щели устройства. Измените "Class" на prop_physics_override и назовите "disc".  | ||
=== Шаг 2 - воссоздание диска ===  | === Шаг 2 - воссоздание диска ===  | ||
Создадим шаблон, по которому диск будет восстановлен в случае его утери игроками.  | Создадим шаблон, по которому диск будет восстановлен в случае его утери игроками.  | ||
{{Note  | {{Note|Этот шаг не является обязательным условием работы источника дисков, перейдите к шагу 3, если в вашей карте диск нигде не потеряется.}}  | ||
Создайте   | Создайте {{L|point_template}} со следующими свойствами:    | ||
::{| class=standard-table  | ::{| class=standard-table  | ||
!  Свойство || Значение  | !  Свойство || Значение  | ||
| Line 69: | Line 67: | ||
=== Шаг 3 - система выходов ===  | === Шаг 3 - система выходов ===  | ||
[[  | [[File:Disk emitter2.jpg|350px|thumb|right|Теперь включено всё.<br>Привязка к [[Basic Construction#Сетка|сетке]]: 8]]  | ||
После создания всех энтитей нужно заставить источник работать, осталось подключить действия энтитей для создания диска; свяжем несколько   | После создания всех энтитей нужно заставить источник работать, осталось подключить действия энтитей для создания диска; свяжем несколько {{L|Inputs_and_Outputs|входов и выходов}}!  | ||
<br>Сначала создайте   | <br>Сначала создайте {{L|logic_auto}} со следующим выходом:  | ||
:{| border=1 cellpadding="2" cellspacing="1"  | :{| border=1 cellpadding="2" cellspacing="1"  | ||
|- align=left style="background:#DCDCDC; color:black"  | |- align=left style="background:#DCDCDC; color:black"  | ||
| Line 77: | Line 75: | ||
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnMapSpawn || template_disk_spawn || ForceSpawn ||   || 0.00 || No  | ||
|}  | |}  | ||
{{  | {{tip|Эта энтити будет использоваться в дальнейшем, не забудьте про неё.}}  | ||
В свойствах '''spawner_door''' откройте вкладку '[[Inputs and Outputs  | В свойствах '''spawner_door''' откройте вкладку '[[Inputs and Outputs#Output'ы|Output]]' и добавьте следующие свойства:  | ||
:{| border=1 cellpadding="2" cellspacing="1"  | :{| border=1 cellpadding="2" cellspacing="1"  | ||
|- align=left style="background:#DCDCDC; color:black"  | |- align=left style="background:#DCDCDC; color:black"  | ||
| Line 87: | Line 85: | ||
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnFullyOpen || start_disc || ClearParent ||   || 0.00 || No  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnFullyOpen || start_disc || TurnOff ||   || 0.00 || No  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnFullyOpen || template_disc || ForceSpawn ||   || 0.00 || No  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnFullyOpen || start_disc || Kill ||   || 0.10 || No  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnFullyOpen || spawner_door || Kill ||   || 0.10 || No  | ||
|}  | |}  | ||
| Line 105: | Line 103: | ||
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnEntitySpawned || spawner_door || Open ||   || 0.00 || No  | ||
|}  | |}  | ||
| Line 114: | Line 112: | ||
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnTrigger || template_disk_spawn || ForceSpawn ||   || 0.00 || No  | ||
|}  | |}  | ||
{{  | {{tip|Как правило, рекомендуется, чтобы уничтожаемая энтити сообщала диску, чтобы он вызвал выход. Например, когда диск растворяется {{L|Emancipation Grid|полем антиэкспроприации}}, он вызывает выход OnDissolve. Поэтому проверьте, чтобы не было других физических объектов, которые можно растворить полем.}}  | ||
Теперь источник должен работать и поставлять новые диски при утере имеющегося. Однако, это лишь треть процесса создания работающей комнаты с диском.  | Теперь источник должен работать и поставлять новые диски при утере имеющегося. Однако, это лишь треть процесса создания работающей комнаты с диском.  | ||
| Line 125: | Line 123: | ||
=== Шаг 1 - установка ===  | === Шаг 1 - установка ===  | ||
[[  | [[File:Disk loader1.jpg|350px|thumb|right|Привязка к [[Basic Construction#Сетка|сетке]]: 2]]  | ||
Поместите prop_static в комнату и выберите модель <code>models/props_gameplay/laser_disc_player.mdl</code>. Здесь, в конце уровня, игроки вставят диск.    | Поместите prop_static в комнату и выберите модель <code>models/props_gameplay/laser_disc_player.mdl</code>. Здесь, в конце уровня, игроки вставят диск.    | ||
| Line 158: | Line 156: | ||
| Move Direction || 0 180 0  | | Move Direction || 0 180 0  | ||
|}  | |}  | ||
{{Note  | {{Note|Свойство Move Direction нужно задать на Pitch Yaw Roll, противоположные тем, что были заданы для laser_disc_player.mdl.}}  | ||
{{Note  | {{Note|Длина браша func_door зависит от того, насколько вы хотите, чтобы диск ушёл внутрь; радиус диска - 25 единиц, исходите из этого. На иллюстрации выше браш имеет длину 26 единиц, что позволяет всему диску уйти внутрь.}}  | ||
=== Шаг 2 - загрузка ===  | === Шаг 2 - загрузка ===  | ||
На первом шаге создавались видимые энтити получателя, в этом шаге - невидимые энтити.  | На первом шаге создавались видимые энтити получателя, в этом шаге - невидимые энтити.  | ||
<br>Первая - браш   | <br>Первая - браш {{L|trigger_once}}, а вторая - {{L|filter_activator_name}}. И добавьте следующие свойства:  | ||
1. В '''trigger_once''':    | 1. В '''trigger_once''':    | ||
| Line 192: | Line 190: | ||
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnMapSpawn || hidden_disc || TurnOff ||   || 0.00 || No  | ||
|}  | |}  | ||
| Line 201: | Line 199: | ||
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnStartTouch || hidden_disc || TurnOn ||   || 0.00 || No  | ||
|-  | |-  | ||
| [[  | | [[File:Io13.png]] || OnStartTouch || !activator || Kill ||   || 0.00 || No  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnStartTouch || loader_door || Open ||   || 0.00 || No  | ||
|}  | |}  | ||
{{Note  | {{Note|{{L|Hammer}} может выделить команду !activator как ошибочную. Игнорируйте ошибку, в игре всё работает нормально.}}  | ||
Добавьте один выход в энтити loader_door:  | Добавьте один выход в энтити loader_door:  | ||
| Line 215: | Line 213: | ||
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ||
|-  | |-  | ||
| [[  | | [[File:Io12.png]] || OnFullyOpen || disc_loaded_relay || Trigger ||   || 0.00 || No  | ||
|}  | |}  | ||
{{Note  | {{Note|Мы пока ещё не создали энтити disc_loaded_relay, поэтому в данный момент этот выход будет показываться как ошибочный.}}  | ||
Теперь получатель должен работать и принимать вставляемый диск. До завершения создания комнаты с диском ещё далеко.  | Теперь получатель должен работать и принимать вставляемый диск. До завершения создания комнаты с диском ещё далеко.  | ||
== Проецирование видеоролика ==  | == Проецирование видеоролика ==  | ||
[[  | [[File:Coop bts blueprints.jpg|thumb|right|300px|В этой части начинается магия.]]  | ||
'''Проецируемый ролик''' - это показ фильма, включающий взрыв роботов в конце.  | '''Проецируемый ролик''' - это показ фильма, включающий взрыв роботов в конце.  | ||
=== Шаг 1 - настройка видеоролика ===  | === Шаг 1 - настройка видеоролика ===  | ||
Создайте prop_static с моделью <code>projector_screen.mdl</code>  (Легче найти, введя "projector" в поле фильтрации моделей). В её нижнем левом углу поместите   | Создайте prop_static с моделью <code>projector_screen.mdl</code>  (Легче найти, введя "projector" в поле фильтрации моделей). В её нижнем левом углу поместите {{L|vgui_movie_display}} со следующими свойствами:  | ||
::{| class=standard-table  | ::{| class=standard-table  | ||
!  Свойство || Значение  | !  Свойство || Значение  | ||
| Line 251: | Line 249: | ||
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnMapSpawn || insert_disc_movie || Enable ||   || 0.00 || No  | ||
|}  | |}  | ||
| Line 274: | Line 272: | ||
=== Шаг 2 - поднимаем железный занавес ===  | === Шаг 2 - поднимаем железный занавес ===  | ||
[[  | [[File:Projector Screen.jpg|thumb|right|300px|Примерно так всё это должно выглядеть.]]  | ||
Помните ту энтити '''disc_loaded_relay''', которую мы использовали, ещё не создав? Теперь пришла и её очередь. Сперва создайте   | Помните ту энтити '''disc_loaded_relay''', которую мы использовали, ещё не создав? Теперь пришла и её очередь. Сперва создайте {{L|logic_relay}} и назовите её disc_loaded_relay. Откройте вкладку "Outputs" и добавьте следующие свойства:  | ||
:{| border=1 cellpadding="2" cellspacing="1"  | :{| border=1 cellpadding="2" cellspacing="1"  | ||
|- align=left style="background:#DCDCDC; color:black"  | |- align=left style="background:#DCDCDC; color:black"  | ||
| Line 281: | Line 279: | ||
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnTrigger || insert_disc_movie || Disable ||   || 2.00 || No  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnTrigger || aperture_movie || Enable ||   || 2.00 || No  | ||
|}  | |}  | ||
Создайте   | Создайте {{L|ambient_generic}} с этими свойствами:  | ||
::{| class=standard-table  | ::{| class=standard-table  | ||
| Line 302: | Line 300: | ||
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnTrigger || disc_windup_sound || PlaySound ||   || 0.00 || No  | ||
|}  | |}  | ||
| Line 308: | Line 306: | ||
== Завершение ==  | == Завершение ==  | ||
* Добавьте экземпляр и в качестве VMF Filename укажите <code>coop_lighting_ents.vmf</code>. Отсюда вы можете выбрать варианты тумана в вашей карте (его плотность, цвет и т.д.). Однако, в этом экземпляре более важны четыре   | * Добавьте экземпляр и в качестве VMF Filename укажите <code>coop_lighting_ents.vmf</code>. Отсюда вы можете выбрать варианты тумана в вашей карте (его плотность, цвет и т.д.). Однако, в этом экземпляре более важны четыре {{L|env_global}}, каждая может разрешать или запрещать использование сигнального и указывающего устройства роботов. При загрузке диска должна активироваться '''logic_relay''' с четыремя выходами:  | ||
:{| border=1 cellpadding="2" cellspacing="1"  | :{| border=1 cellpadding="2" cellspacing="1"  | ||
|- align=left style="background:#DCDCDC; color:black"  | |- align=left style="background:#DCDCDC; color:black"  | ||
| Line 314: | Line 312: | ||
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnTrigger || @global_no_taunting_blue || TurnOn ||   || 0.00 || No  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnTrigger || @global_no_pinging_blue || TurnOn ||   || 0.00 || No  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnTrigger || @global_no_taunting_orange || TurnOn ||   || 0.00 || No  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnTrigger || @global_no_pinging_orange || TurnOn ||   || 0.00 || No  | ||
|}  | |}  | ||
* Создайте   | * Создайте {{L|trigger_hurt}} со значением Damage равным 10000. Эта энтити должна охватывать всю комнату, но не забудьте выключить её. В подходящий момент, например, когда ГЛэДОС говорит последнюю фразу, активируйте браш trigger_hurt, чтобы роботы взорвались.  | ||
* Поместите в комнату   | * Поместите в комнату {{L|point_clientcommand}} со следующими настройками:  | ||
::{| class=standard-table  | ::{| class=standard-table  | ||
!  Свойство || Значение  | !  Свойство || Значение  | ||
| Line 338: | Line 336: | ||
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once  | ||
|-  | |-  | ||
| [[  | | [[File:Io11.png]] || OnHurt || levelchange || command || changelevel {распределитель или следующая камера} || 0.00 || No  | ||
|}  | |}  | ||
* Поместите статическую модель лицом к экрану с моделью <code>models/props_underground/projector.mdl</code>. В проекторе создайте три   | * Поместите статическую модель лицом к экрану с моделью <code>models/props_underground/projector.mdl</code>. В проекторе создайте три {{L|point_spotlight}} в соответствующих местах.  | ||
* Обычно в комнатах с диском имеется доска (<code>models/props_office/whiteboard_coop.mdl</code>) с требованием не вставлять диск. Для соответствия картам Valve рекомендуется создать и её. Есть 6 различных вариантов.  | * Обычно в комнатах с диском имеется доска (<code>models/props_office/whiteboard_coop.mdl</code>) с требованием не вставлять диск. Для соответствия картам Valve рекомендуется создать и её. Есть 6 различных вариантов.  | ||
{{ACategory|Portal 2 Level Design}}  | |||
{{ACategory|Portal 2 Tutorials}}  | |||
Latest revision as of 02:44, 22 August 2024
 Комната с диском - последнее испытание в конце каждой серии тестов в кооперативном режиме. Она находится в части комплекса, которой ГЛэДОС управлять не может, и которая служила людям последним защитным рубежом от разрастающейся власти ГЛэДОС над комплексом.
Источник дисков
Источник дисков - устройство, создающее диски. Оно восстанавливает копию диска, если он был утерян или растворён. Обычно оно находится рядом с получателем диска в конце последней камеры серии кооперативного режима. Однако, помещать его там совершенно не обязательно; если поместить источник в начале камеры, могут получиться интересные головоломки, главной задачей которых станет не потерять диск.
Шаг 1 - настройка
Создайте prop_static и выберите для неё модель models/props_gameplay/laser_disc_player.mdl и поместите её где-нибудь в комнате. Отсюда игроки будут брать диск.
Теперь создайте диск, это энтити prop_dynamic_override. Настройте её свойства так:
Свойство Значение Name start_disc Parent spawner_door World Model laser_disc.mdl Disable Shadows Yes 
Поместите диск внутри модели устройства, как показано на иллюстрации справа.
Теперь создайте браш размером 8x20x1 с текстурой tools/toolsinvisible. Поместите его сверху модели диска, снова, как на иллюстрации справа. Преобразуйте браш в энтити (нажатием Ctrl+T) и сделайте её func_door. И задайте её свойства следующим образом:
Свойство Значение Name spawner_door Speed 26 Start Sound World.LaserDiskLoad Delay Before Reset (-1 stay) -1 Loop Moving Sound Yes Move Direction 0 0 0 
laser_disc_player.mdl.Создайте ещё одну энтити, prop_physics_override, она будет диском, переносимым игроками. Нажмите ⇧ Shift и перетащите start_disc так, чтобы диск находился вне устройства, и чтобы только его 'край' касался щели устройства. Измените "Class" на prop_physics_override и назовите "disc".
Шаг 2 - воссоздание диска
Создадим шаблон, по которому диск будет восстановлен в случае его утери игроками.
Создайте point_template со следующими свойствами:
Свойство Значение Name template_disc_spawn Template 1 start_disc Template 2 spawner_door 
Создайте ещё одну point_template с этими свойствами:
Свойство Значение Name template_disc Template 1 disc 
Шаг 3 - система выходов
После создания всех энтитей нужно заставить источник работать, осталось подключить действия энтитей для создания диска; свяжем несколько входов и выходов!
Сначала создайте logic_auto со следующим выходом:
My Output > Target Entity Target Input Parameter Delay Only Once 
OnMapSpawn template_disk_spawn ForceSpawn 0.00 No 
В свойствах spawner_door откройте вкладку 'Output' и добавьте следующие свойства:
Теперь добавьте выход в template_disc_spawn:
My Output > Target Entity Target Input Parameter Delay Only Once 
OnEntitySpawned spawner_door Open 0.00 No 
Энтити, определяющая, когда диск теряется или уничтожается, должна иметь следующий выход:
My Output > Target Entity Target Input Parameter Delay Only Once 
OnTrigger template_disk_spawn ForceSpawn 0.00 No 
Теперь источник должен работать и поставлять новые диски при утере имеющегося. Однако, это лишь треть процесса создания работающей комнаты с диском.
Получатель диска
Получатель диска (или проигрыватель диска) - устройство, для которого предназначается диск; при вставке диска в получатель проигрывается видео с информацией, которую искала ГЛэДОС.
Шаг 1 - установка
Поместите prop_static в комнату и выберите модель models/props_gameplay/laser_disc_player.mdl. Здесь, в конце уровня, игроки вставят диск. 
Когда игрок помещает диск возле приёмника, диск, который игрок носил ранее, будет удалён, и загрузится другой, невидимый диск. Мы сделаем именно так, чтобы лучше контролировать, как диск войдет в приёмник, и чтобы просто избежать многих проблем. Потребуется ещё одна prop_dynamic_override, она будет загружена в устройство, будучи прикреплённой к func_door.
Свойство Значение Parent loader_door Disable Shadows Yes World Model laser_disc.mdl Name hidden_disc 
Диск нужно разместить так, как показано на иллюстрации справа.
Теперь создайте браш func_door с текстурой tools/toolsinvisible. Поместите его сверху на модель диска как на иллюстрации справа. Добавьте следующие свойства:
Свойство Значение Name loader_door Speed 8 Start Sound World.LaserDiskLoad Delay Before Reset (-1 stay) -1 Loop Moving Sound Yes Move Direction 0 180 0 
Шаг 2 - загрузка
На первом шаге создавались видимые энтити получателя, в этом шаге - невидимые энтити.
Первая - браш trigger_once, а вторая - filter_activator_name. И добавьте следующие свойства:
1. В trigger_once:
Свойство Значение Name Filter Name disc_filter 
Установите флаг Physics Objects.
2. В filter_activator_name:
Свойство Значение Name disc_filter Filter Name disc 
Шаг 3 - система выходов
Чтобы всё взаимодействовало, используем систему входов/выходов. Помните ту logic_auto, что мы использовали ранее? В её свойствах откройте вкладку "Outputs" и добавьте следующие свойства:
My Output > Target Entity Target Input Parameter Delay Only Once 
OnMapSpawn hidden_disc TurnOff 0.00 No 
Добавьте следующий вход в trigger_once:
My Output > Target Entity Target Input Parameter Delay Only Once 
OnStartTouch hidden_disc TurnOn 0.00 No 
OnStartTouch !activator Kill 0.00 No 
OnStartTouch loader_door Open 0.00 No 
Добавьте один выход в энтити loader_door:
My Output > Target Entity Target Input Parameter Delay Only Once 
OnFullyOpen disc_loaded_relay Trigger 0.00 No 
Теперь получатель должен работать и принимать вставляемый диск. До завершения создания комнаты с диском ещё далеко.
Проецирование видеоролика
Проецируемый ролик - это показ фильма, включающий взрыв роботов в конце.
Шаг 1 - настройка видеоролика
Создайте prop_static с моделью projector_screen.mdl  (Легче найти, введя "projector" в поле фильтрации моделей). В её нижнем левом углу поместите vgui_movie_display со следующими свойствами:
Свойство Значение Name insert_disc_movie Movie Filename media/insert_disk.bik Loop Movie Yes Stretch to Fill Yes Force precache Yes Panel width 156 Panel height 112 
Снова откройте свойства logic_auto и добавьте следующие выходы:
My Output > Target Entity Target Input Parameter Delay Only Once 
OnMapSpawn insert_disc_movie Enable 0.00 No 
Создайте ещё одну энтити vgui_movie_display в том же самом месте, что и предыдущая (Просто протащите уже созданную с нажатой ⇧ Shift в сторону, а затем верните на место). Единственным отличием будет имя и видео, отображаемое ей:
Свойство Значение Name aperture_movie Movie Filename media/coop_bts_blueprints.bik Loop Movie Yes Stretch to Fill Yes Force precache Yes Panel width 156 Panel height 112 
Шаг 2 - поднимаем железный занавес
Помните ту энтити disc_loaded_relay, которую мы использовали, ещё не создав? Теперь пришла и её очередь. Сперва создайте logic_relay и назовите её disc_loaded_relay. Откройте вкладку "Outputs" и добавьте следующие свойства:
My Output > Target Entity Target Input Parameter Delay Only Once 
OnTrigger insert_disc_movie Disable 2.00 No 
OnTrigger aperture_movie Enable 2.00 No 
Создайте ambient_generic с этими свойствами:
Свойство Значение Name disc_windup_sound Sound Name World.LaserDiskPowerUp 
И добавьте в disc_loaded_relay ещё один выход:
My Output > Target Entity Target Input Parameter Delay Only Once 
OnTrigger disc_windup_sound PlaySound 0.00 No 
И наконец-таки всё должно работать!
Завершение
- Добавьте экземпляр и в качестве VMF Filename укажите 
coop_lighting_ents.vmf. Отсюда вы можете выбрать варианты тумана в вашей карте (его плотность, цвет и т.д.). Однако, в этом экземпляре более важны четыре env_global, каждая может разрешать или запрещать использование сигнального и указывающего устройства роботов. При загрузке диска должна активироваться logic_relay с четыремя выходами: 
- Создайте trigger_hurt со значением Damage равным 10000. Эта энтити должна охватывать всю комнату, но не забудьте выключить её. В подходящий момент, например, когда ГЛэДОС говорит последнюю фразу, активируйте браш trigger_hurt, чтобы роботы взорвались.
 - Поместите в комнату point_clientcommand со следующими настройками:
 
Свойство Значение Name levelchange 
Добавьте в trigger_hurt этот выход:
My Output > Target Entity Target Input Parameter Delay Only Once 
OnHurt levelchange command changelevel {распределитель или следующая камера} 0.00 No 
- Поместите статическую модель лицом к экрану с моделью 
models/props_underground/projector.mdl. В проекторе создайте три point_spotlight в соответствующих местах. - Обычно в комнатах с диском имеется доска (
models/props_office/whiteboard_coop.mdl) с требованием не вставлять диск. Для соответствия картам Valve рекомендуется создать и её. Есть 6 различных вариантов.