Ru/Creating a Portal 2 Coop Map: Difference between revisions
< Ru
Jump to navigation
Jump to search
No edit summary |
m (obsolete language category) |
||
(14 intermediate revisions by 5 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. | ||
* | * Стройте карту между этими двумя комнатами. (Конечно, их можно перемещать.) Возможно вам придётся поместить всю карту в комнату (можно чёрную, или скайбокс), чтобы избежать утечек (дыр в картах). | ||
* Сохраните свою карту с обязательным префиксом mp_coop_. | |||
[[ | Вот и всё! См. статью {{L|Testing Portal 2 Co-Op Maps Alone|как протестировать кооперативную карту в одиночку}}, если у вас нет напарника. (Чтобы протестировать карту с напарником, вы должны дать ему карту в формате .bsp. Войдите с напарником в распределитель и, если вы являетесь сервером, воспользуйтесь командой changelevel для смены карты.) | ||
=Кооперативный уровень без экземпляров сборочных аппаратов= | |||
==Шаг 1== | |||
Для создания кооперативного уровня используются: | |||
* энтити {{L|logic_auto}} | |||
* '''ДВЕ''' {{L|logic_relay}} | |||
* энтити {{L|logic_coop_manager}} | |||
* '''ДВЕ''' {{L|logic_script}} | |||
* '''ДВЕ''' {{L|prop_indicator_panel}} | |||
* {{L|prop_button}} | |||
{{Note| Обязательно '''скройте''' {{L|prop_indicator_panel}} и {{L|prop_button}}, чтобы игрок их не видел.}} | |||
==Шаг 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| {{L|prop_button}} называть не требуется.}} | |||
==Шаг 3: свойства== | |||
1. В свойствах '''script_return_hub''': | |||
::{| class=standard-table | |||
! Имя свойства || Значение | |||
|- | |||
| Name || script_return_hub | |||
|- | |||
| Entity Scripts || debug_scripts/mp_coop_transition_list.nut | |||
|} | |||
2. Далее в свойствах '''@script_mp_coop_lobby''' сделайте следующее: | |||
::{| class=standard-table | |||
! Имя свойства || Значение | |||
|- | |||
| Name || @script_mp_coop_lobby | |||
|- | |||
| Entity Scripts || debug_scripts/mp_coop_lobby.nut | |||
|} | |||
3. Затем в свойствах '''panel_level_return_orange''': | |||
::{| class=standard-table | |||
! Имя свойства || Значение | |||
|- | |||
| Name || panel_level_return_orange | |||
|- | |||
| Time Duration || 3 | |||
|- | |||
| Is a timer? || Yes | |||
|- | |||
| Indicator lights || tex_level_return_orange | |||
|} | |||
{{warning|'''panel_return_blue''' имеет '''те же самые''' свойства, но в "Indicator lights" задано "tex_level_return_blue"}} | |||
4. Свойства '''prop_button''': | |||
::{| class=standard-table | |||
! Имя свойства || Значение | |||
|- | |||
| Delay Before Reset || 3 | |||
|} | |||
==Шаг 4: выходы и входы (Outputs/Inputs)== | |||
Теперь нужно соединить энтити друг с другом. См. инструкции: | |||
*'''Выходы logic_auto''' | |||
::{| class=standard-table | |||
! || 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|Не забывайте про параметры '''"Delay"''' и '''"Only Once"'''}} | |||
*'''Выходы logic_coop_manager''' | |||
::{| class=standard-table | |||
! || 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 | |||
|} | |||
*'''Выходы relay_return_hub''' | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || script_return_hub || RunScriptCode || ReturnToHubFromLevel() || 1.00 || Yes | |||
|} | |||
*'''Выходы @relay_has_new_taunt''' | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || brush_new_taunts || Enable || <none> || 0.00 || Yes | |||
|} | |||
*'''Выходы prop_button''' | |||
::{| class=standard-table | |||
! || 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

Шаг 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

Шаг 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

- Выходы logic_coop_manager
- Выходы relay_return_hub
- Выходы @relay_has_new_taunt
- Выходы prop_button
Всё! Теперь вы можете создавать кооперативные карты с рабочими кооперативными скриптами!