Ru/Creating a Portal 2 Coop Map: Difference between revisions
< Ru
Jump to navigation
Jump to search
mNo edit summary |
m (obsolete language category) |
||
(8 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. | ||
* Стройте карту между этими двумя комнатами. (Конечно, их можно перемещать.) Возможно вам придётся поместить всю карту в комнату (можно чёрную, или скайбокс), чтобы избежать утечек (дыр в картах). | * Стройте карту между этими двумя комнатами. (Конечно, их можно перемещать.) Возможно вам придётся поместить всю карту в комнату (можно чёрную, или скайбокс), чтобы избежать утечек (дыр в картах). | ||
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

Шаг 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
Всё! Теперь вы можете создавать кооперативные карты с рабочими кооперативными скриптами!