Ru/Creating a Portal 2 Coop Map: Difference between revisions
< Ru
Jump to navigation
Jump to search
No edit summary |
|||
Line 4: | Line 4: | ||
de=Creating_a_Portal_2_Coop_Map:de | de=Creating_a_Portal_2_Coop_Map:de | ||
}} | }} | ||
Это основные | =Основные шаги= | ||
Это основные шаги, необходимые для создания кооперативной карты: | |||
* Создайте энтити [[func_instance]]. В поле "VMF filename" нужно прописать путь к комнате респавна, то есть instances/coop/coop_spawn_room.vmf. В этом VMF файле уже есть [[info_player_start]], и значит | * Создайте энтити [[func_instance]]. В поле "VMF filename" нужно прописать путь к комнате респавна, то есть instances/coop/coop_spawn_room.vmf. В этом VMF файле уже есть [[info_player_start]], и значит создавать эту энтити самому не нужно. | ||
* Создайте другой [[func_instance]], укажите в нём путь к комнате конца, instances/coop/coop_endlevel_room.vmf. | * Создайте другой [[func_instance]], укажите в нём путь к комнате конца уровня, instances/coop/coop_endlevel_room.vmf. | ||
* Стройте | * Стройте карту между этими двумя комнатами. (Конечно, их можно перемещать.) Возможно вам придётся поместить всю карту в комнату (можно чёрную, или скайбокс), чтобы избежать утечек (дыр в картах). | ||
* Сохраните свою карту с обязательным префиксом mp_coop_. | * Сохраните свою карту с обязательным префиксом mp_coop_. | ||
Вот и всё! | Вот и всё! См. статью [[Testing Portal 2 Co-Op Maps Alone:ru|как протестировать кооперативную карту в одиночку]], если у вас нет напарника. (Чтобы протестировать карту с напарником, вы должны дать ему карту в формате .bsp. Войдите с напарником в распределитель и, если вы являетесь сервером, воспользуйтесь командой changelevel для смены карты.) | ||
=Кооперативный уровень без экземпляров спавнеров= | =Кооперативный уровень без экземпляров спавнеров= | ||
Для создания кооперативного уровня | ==Шаг 1== | ||
* [[logic_auto]] | Для создания кооперативного уровня используются: | ||
* ''' | * энтити [[logic_auto]] | ||
* [[logic_coop_manager]] | * '''ДВЕ''' [[logic_relay]] | ||
* ''' | * энтити [[logic_coop_manager]] | ||
* '''ДВЕ''' [[logic_script]] | |||
* '''ДВЕ''' [[prop_indicator_panel]] | * '''ДВЕ''' [[prop_indicator_panel]] | ||
* [[prop_button]] | * [[prop_button]] | ||
{{Note:ru| Обязательно '''скройте''' [[prop_indicator_panel]] и [[prop_button]], чтобы игрок их не видел.}} | {{Note:ru| Обязательно '''скройте''' [[prop_indicator_panel]] и [[prop_button]], чтобы игрок их не видел.}} | ||
== Шаг 2== | ==Шаг 2== | ||
* Назовите | * Назовите первую [[logic_relay]] '''relay_return_hub''' | ||
* Назовите | * Назовите вторую [[logic_relay]] '''@relay_has_new_taunt''' | ||
* Назовите [[logic_coop_manager]] '''coopmanage_return_hub''' | * Назовите [[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_orange''' | ||
* Назовите вторую [[prop_indicator_panel]] '''panel_level_return_blue''' | * Назовите вторую [[prop_indicator_panel]] '''panel_level_return_blue''' | ||
{{Note:ru| [[prop_button]] называть не требуется.}} | {{Note:ru| [[prop_button]] называть не требуется.}} | ||
==Шаг 3: | ==Шаг 3: свойства== | ||
1. В свойствах '''script_return_hub''' | 1. В свойствах '''script_return_hub''': | ||
::{| class=standard-table | ::{| class=standard-table | ||
! Имя свойства || Значение | ! Имя свойства || Значение | ||
Line 45: | Line 46: | ||
| Entity Scripts || debug_scripts/mp_coop_transition_list.nut | | Entity Scripts || debug_scripts/mp_coop_transition_list.nut | ||
|} | |} | ||
2. Далее в свойствах '''@script_mp_coop_lobby''' сделайте следующее: | 2. Далее в свойствах '''@script_mp_coop_lobby''' сделайте следующее: | ||
::{| class=standard-table | ::{| class=standard-table | ||
! Имя свойства || Значение | ! Имя свойства || Значение | ||
Line 70: | Line 69: | ||
|} | |} | ||
{{Warning:ru|'''panel_return_blue''' имеет '''те же самые''' свойства, но в "Indicator lights" задано "tex_level_return_blue"}} | |||
{{Warning:ru|'''panel_return_blue''' имеет '''те же самые''' свойства, но в "Indicator lights" | |||
4. Свойства '''prop_button''': | 4. Свойства '''prop_button''': | ||
::{| class=standard-table | ::{| class=standard-table | ||
! Имя свойства || Значение | ! Имя свойства || Значение | ||
Line 81: | Line 78: | ||
|} | |} | ||
==Шаг 4: | ==Шаг 4: выходы и входы (Outputs/Inputs)== | ||
Теперь нужно соединить энтити друг с другом. См. инструкции: | Теперь нужно соединить энтити друг с другом. См. инструкции: | ||
*'''Выходы logic_auto''' | *'''Выходы logic_auto''' | ||
::{| class=standard-table | ::{| class=standard-table | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
Line 95: | Line 91: | ||
| [[Image:Io11.png]] || OnMapSpawn || script_return_hub || RunScriptCode || SetMapBranchAndLevel() || 0.25 || Yes | | [[Image:Io11.png]] || OnMapSpawn || script_return_hub || RunScriptCode || SetMapBranchAndLevel() || 0.25 || Yes | ||
|} | |} | ||
{{Note:ru| Не забывайте про параметры '''"Delay"''' и '''"Only Once"'''}} | {{Note:ru|Не забывайте про параметры '''"Delay"''' и '''"Only Once"'''}} | ||
*'''Выходы logic_coop_manager''' | *'''Выходы logic_coop_manager''' | ||
::{| class=standard-table | ::{| class=standard-table | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
Line 111: | Line 106: | ||
*'''Выходы relay_return_hub''' | *'''Выходы relay_return_hub''' | ||
::{| class=standard-table | ::{| class=standard-table | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
Line 120: | Line 114: | ||
*'''Выходы @relay_has_new_taunt''' | *'''Выходы @relay_has_new_taunt''' | ||
::{| class=standard-table | ::{| class=standard-table | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
Line 129: | Line 122: | ||
*'''Выходы prop_button''' | *'''Выходы prop_button''' | ||
::{| class=standard-table | ::{| class=standard-table | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
Line 141: | Line 133: | ||
| [[Image:Io11.png]] || OnPressed || coopmanage_return_hub || SetStateBTrue || <none> || 0.00 || No | | [[Image:Io11.png]] || OnPressed || coopmanage_return_hub || SetStateBTrue || <none> || 0.00 || No | ||
|} | |} | ||
Всё! Теперь вы можете создавать кооперативные карты с рабочими кооперативными скриптами! | Всё! Теперь вы можете создавать кооперативные карты с рабочими кооперативными скриптами! | ||
[[Category:Portal 2 Level Design:ru]] | [[Category:Portal 2 Level Design:ru]] |
Revision as of 02:03, 11 January 2014
Основные шаги
Это основные шаги, необходимые для создания кооперативной карты:
- Создайте энтити 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
Всё! Теперь вы можете создавать кооперативные карты с рабочими кооперативными скриптами!