Ru/Creating a Portal 2 Coop Map: Difference between revisions
< Ru
		
		
		
		Jump to navigation
		Jump to search
		| m (obsolete language category) | |||
| (7 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
| {{ | {{lang|title=Создание кооперативной карты|Creating a Portal 2 Coop Map}} | ||
| title=Создание кооперативной карты| | |||
| }} | |||
| =Основные требования= | =Основные требования= | ||
| Пункты, необходимые для создания кооперативной карты: | Пункты, необходимые для создания кооперативной карты: | ||
| * Создайте энтити  | * Создайте энтити {{L|func_instance}}. В поле "VMF filename" нужно прописать путь к комнате респавна, то есть instances/coop/coop_spawn_room.vmf. В этом VMF файле уже есть {{L|info_player_start}}, и значит создавать эту энтити самому не нужно. | ||
| * Создайте другой  | * Создайте другой {{L|func_instance}}, укажите в нём путь к комнате конца уровня, instances/coop/coop_endlevel_room.vmf. | ||
| * Стройте карту между этими двумя комнатами. (Конечно, их можно перемещать.) Возможно вам придётся поместить всю карту в комнату (можно чёрную, или скайбокс), чтобы избежать утечек (дыр в картах). | * Стройте карту между этими двумя комнатами. (Конечно, их можно перемещать.) Возможно вам придётся поместить всю карту в комнату (можно чёрную, или скайбокс), чтобы избежать утечек (дыр в картах). | ||
| Line 15: | Line 12: | ||
| * Сохраните свою карту с обязательным префиксом mp_coop_. | * Сохраните свою карту с обязательным префиксом mp_coop_. | ||
| Вот и всё! См. статью  | Вот и всё! См. статью {{L|Testing Portal 2 Co-Op Maps Alone|как протестировать кооперативную карту в одиночку}}, если у вас нет напарника.  (Чтобы протестировать карту с напарником, вы должны дать ему карту в формате .bsp. Войдите с напарником в распределитель и, если вы являетесь сервером, воспользуйтесь командой changelevel для смены карты.) | ||
| =Кооперативный уровень без экземпляров сборочных аппаратов= | =Кооперативный уровень без экземпляров сборочных аппаратов= | ||
| ==Шаг 1== | ==Шаг 1== | ||
| Для создания кооперативного уровня используются: | Для создания кооперативного уровня используются: | ||
| * энтити  | * энтити {{L|logic_auto}} | ||
| * '''ДВЕ'''  | * '''ДВЕ''' {{L|logic_relay}} | ||
| * энтити  | * энтити {{L|logic_coop_manager}} | ||
| * '''ДВЕ'''  | * '''ДВЕ''' {{L|logic_script}} | ||
| * '''ДВЕ'''  | * '''ДВЕ''' {{L|prop_indicator_panel}} | ||
| *  | * {{L|prop_button}} | ||
| {{Note | {{Note| Обязательно '''скройте''' {{L|prop_indicator_panel}} и {{L|prop_button}}, чтобы игрок их не видел.}} | ||
| ==Шаг 2== | ==Шаг 2== | ||
| * Назовите первую  | * Назовите первую {{L|logic_relay}} '''relay_return_hub''' | ||
| * Назовите вторую  | * Назовите вторую {{L|logic_relay}} '''@relay_has_new_taunt''' | ||
| * Назовите  | * Назовите {{L|logic_coop_manager}} '''coopmanage_return_hub''' | ||
| * Назовите первую  | * Назовите первую {{L|logic_script}} '''script_return_hub''' | ||
| * Назовите вторую  | * Назовите вторую {{L|logic_script}} '''@script_mp_coop_lobby''' | ||
| * Назовите первую  | * Назовите первую {{L|prop_indicator_panel}} '''panel_level_return_orange''' | ||
| * Назовите вторую  | * Назовите вторую {{L|prop_indicator_panel}} '''panel_level_return_blue''' | ||
| {{Note | {{Note| {{L|prop_button}} называть не требуется.}} | ||
| ==Шаг 3: свойства== | ==Шаг 3: свойства== | ||
| Line 69: | Line 66: | ||
| |} | |} | ||
| {{ | {{warning|'''panel_return_blue''' имеет '''те же самые''' свойства, но в "Indicator lights" задано "tex_level_return_blue"}} | ||
| 4. Свойства '''prop_button''': | 4. Свойства '''prop_button''': | ||
| Line 85: | Line 82: | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnMapSpawn  || @script_mp_coop_lobby || RunScriptCode || CheckForNewTaunts() || 2.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnMapSpawn  || script_return_hub || RunScriptCode || MapPostLoaded() || 2.00 || Yes | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnMapSpawn  || script_return_hub || RunScriptCode || SetMapBranchAndLevel() || 0.25 || Yes | ||
| |} | |} | ||
| {{Note | {{Note|Не забывайте про параметры '''"Delay"''' и '''"Only Once"'''}} | ||
| Line 98: | Line 95: | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnChangeToAllTrue  || relay_return_hub || Trigger || <none> || 0.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnChangeToAllTrue  || panel_level_return_orange || Check || <none> || 0.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnChangeToAllTrue  || panel_level_return_blue || Check || <none> || 0.00 || No | ||
| |} | |} | ||
| Line 109: | Line 106: | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnTrigger  || script_return_hub || RunScriptCode || ReturnToHubFromLevel() || 1.00 || Yes | ||
| |} | |} | ||
| Line 117: | Line 114: | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnTrigger  || brush_new_taunts || Enable || <none> || 0.00 || Yes | ||
| |} | |} | ||
| Line 125: | Line 122: | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnButtonReset  || panel_level_return_orange || Stop || <none> || 0.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnButtonReset  || coopmanage_return_hub || SetStateBFalse || <none> || 0.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnPressed  || panel_level_return_orange || Start || <none> || 0.00 || No | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnPressed  || coopmanage_return_hub || SetStateBTrue || <none> || 0.00 || No | ||
| |} | |} | ||
| Всё! Теперь вы можете создавать кооперативные карты с рабочими кооперативными скриптами! | Всё! Теперь вы можете создавать кооперативные карты с рабочими кооперативными скриптами! | ||
| {{ACategory|Portal 2 Level Design}} | |||
Latest revision as of 03:43, 22 August 2024
Основные требования
Пункты, необходимые для создания кооперативной карты:
- Создайте энтити func_instance. В поле "VMF filename" нужно прописать путь к комнате респавна, то есть instances/coop/coop_spawn_room.vmf. В этом VMF файле уже есть info_player_start, и значит создавать эту энтити самому не нужно.
- Создайте другой func_instance, укажите в нём путь к комнате конца уровня, instances/coop/coop_endlevel_room.vmf.
- Стройте карту между этими двумя комнатами. (Конечно, их можно перемещать.) Возможно вам придётся поместить всю карту в комнату (можно чёрную, или скайбокс), чтобы избежать утечек (дыр в картах).
- Сохраните свою карту с обязательным префиксом mp_coop_.
Вот и всё! См. статью как протестировать кооперативную карту в одиночку, если у вас нет напарника. (Чтобы протестировать карту с напарником, вы должны дать ему карту в формате .bsp. Войдите с напарником в распределитель и, если вы являетесь сервером, воспользуйтесь командой changelevel для смены карты.)
Кооперативный уровень без экземпляров сборочных аппаратов
Шаг 1
Для создания кооперативного уровня используются:
- энтити logic_auto
- ДВЕ logic_relay
- энтити logic_coop_manager
- ДВЕ logic_script
- ДВЕ prop_indicator_panel
- prop_button
 Примечание: Обязательно скройте prop_indicator_panel и prop_button, чтобы игрок их не видел.
Примечание: Обязательно скройте prop_indicator_panel и prop_button, чтобы игрок их не видел.Шаг 2
- Назовите первую logic_relay relay_return_hub
- Назовите вторую logic_relay @relay_has_new_taunt
- Назовите logic_coop_manager coopmanage_return_hub
- Назовите первую logic_script script_return_hub
- Назовите вторую logic_script @script_mp_coop_lobby
- Назовите первую prop_indicator_panel panel_level_return_orange
- Назовите вторую prop_indicator_panel panel_level_return_blue
 Примечание: prop_button называть не требуется.
Примечание: prop_button называть не требуется.Шаг 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 
 
 Предупреждение:panel_return_blue имеет те же самые свойства, но в "Indicator lights" задано "tex_level_return_blue"
Предупреждение:panel_return_blue имеет те же самые свойства, но в "Indicator lights" задано "tex_level_return_blue"4. Свойства prop_button:
- Имя свойства - Значение - Delay Before Reset - 3 
 
Шаг 4: выходы и входы (Outputs/Inputs)
Теперь нужно соединить энтити друг с другом. См. инструкции:
- Выходы logic_auto
 Примечание:Не забывайте про параметры "Delay" и "Only Once"
Примечание:Не забывайте про параметры "Delay" и "Only Once"
- Выходы logic_coop_manager
- Выходы relay_return_hub
- Выходы @relay_has_new_taunt
- Выходы prop_button
Всё! Теперь вы можете создавать кооперативные карты с рабочими кооперативными скриптами!


























