Ru/Creating a Portal 2 Coop Map

=Основные требования=
Пункты, необходимые для создания кооперативной карты:
* Создайте энтити . В поле "VMF filename" нужно прописать путь к комнате респавна, то есть instances/coop/coop_spawn_room.vmf. В этом VMF файле уже есть , и значит создавать эту энтити самому не нужно.
* Создайте другой , укажите в нём путь к комнате конца уровня, instances/coop/coop_endlevel_room.vmf.
* Стройте карту между этими двумя комнатами. (Конечно, их можно перемещать.) Возможно вам придётся поместить всю карту в комнату (можно чёрную, или скайбокс), чтобы избежать утечек (дыр в картах).
* Сохраните свою карту с обязательным префиксом mp_coop_.
Вот и всё! См. статью , если у вас нет напарника. (Чтобы протестировать карту с напарником, вы должны дать ему карту в формате .bsp. Войдите с напарником в распределитель и, если вы являетесь сервером, воспользуйтесь командой changelevel для смены карты.)
=Кооперативный уровень без экземпляров сборочных аппаратов=
==Шаг 1==
Для создания кооперативного уровня используются:
* энтити 
* ДВЕ 
* энтити 
* ДВЕ 
* ДВЕ 
* 
==Шаг 2==
* Назовите первую relay_return_hub
* Назовите вторую @relay_has_new_taunt
* Назовите coopmanage_return_hub
* Назовите первую script_return_hub
* Назовите вторую @script_mp_coop_lobby
* Назовите первую panel_level_return_orange
* Назовите вторую panel_level_return_blue
==Шаг 3: свойства==
1. В свойствах script_return_hub:
::
Имя свойства 	Значение
Name 	script_return_hub
Entity Scripts	debug_scripts/mp_coop_transition_list.nut
2. Далее в свойствах @script_mp_coop_lobby сделайте следующее:
::
Имя свойства 	Значение
Name 	@script_mp_coop_lobby
Entity Scripts	debug_scripts/mp_coop_lobby.nut
3. Затем в свойствах panel_level_return_orange:
::
Имя свойства 	Значение
Name 	panel_level_return_orange
Time Duration 	3
Is a timer? 	Yes
Indicator lights	tex_level_return_orange
4. Свойства prop_button:
::
Имя свойства 	Значение
Delay Before Reset	3
==Шаг 4: выходы и входы (Outputs/Inputs)==
Теперь нужно соединить энтити друг с другом. См. инструкции:
*Выходы logic_auto
::
	My Output 	Target Entity 	Target Input 	Parameter 	Delay	Only Once
	OnMapSpawn	@script_mp_coop_lobby	RunScriptCode	CheckForNewTaunts() 	2.00 	No
	OnMapSpawn	script_return_hub 	RunScriptCode	MapPostLoaded() 	2.00 	Yes
	OnMapSpawn	script_return_hub 	RunScriptCode	SetMapBranchAndLevel()	0.25 	Yes
*Выходы logic_coop_manager
::
	My Output 	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnChangeToAllTrue	relay_return_hub 	Trigger 	<none> 	0.00 	No
	OnChangeToAllTrue	panel_level_return_orange	Check 	<none> 	0.00 	No
	OnChangeToAllTrue	panel_level_return_blue 	Check 	<none> 	0.00 	No
*Выходы relay_return_hub
::
	My Output	Target Entity 	Target Input 	Parameter 	Delay	Only Once
	OnTrigger	script_return_hub	RunScriptCode	ReturnToHubFromLevel()	1.00 	Yes
*Выходы @relay_has_new_taunt
::
	My Output	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnTrigger	brush_new_taunts	Enable 	<none> 	0.00 	Yes
*Выходы prop_button
::
	My Output 	Target Entity 	Target Input 	Parameter	Delay	Only Once
	OnButtonReset	panel_level_return_orange	Stop 	<none> 	0.00 	No
	OnButtonReset	coopmanage_return_hub 	SetStateBFalse	<none> 	0.00 	No
	OnPressed 	panel_level_return_orange	Start 	<none> 	0.00 	No
	OnPressed 	coopmanage_return_hub 	SetStateBTrue 	<none> 	0.00 	No
Всё! Теперь вы можете создавать кооперативные карты с рабочими кооперативными скриптами!