Pl/Creating a Portal 2 Coop Map: Difference between revisions

From Valve Developer Community
< Pl
Jump to navigation Jump to search
(Created page with "{{otherlang2| title=Creating a Portal 2 Coop Map| ru=Creating_a_Portal_2_Coop_Map:ru| de=Creating_a_Portal_2_Coop_Map:de de=Creating_a_Portal_2_Coop_Map }} ==Basic steps== Her...")
 
m (obsolete language category)
 
(8 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{otherlang2|
{{lang|title=Tworzenie mapy co-op dla Portal 2|Creating a Portal 2 Coop Map}}
title=Creating a Portal 2 Coop Map|
ru=Creating_a_Portal_2_Coop_Map:ru|
de=Creating_a_Portal_2_Coop_Map:de
de=Creating_a_Portal_2_Coop_Map
}}
==Basic steps==
Here are the basic steps needed to create a coop map:


* Create a [[func_instance]].  Set its VMF file to one of the coop spawn rooms, such as instances/coop/coop_spawn_room.vmf.  These VMF files already contain an [[info_player_start]], so don't create another one.
==Podstawowe kroki==
Oto podstawowe kroki potrzebne do stworzenia mapy co-op:


* Create another [[func_instance]], this one set to one of the level end rooms, such as instances/coop/coop_endlevel_room.vmf.
* Stwórz {{L|func_instance}}.  Ustaw plik VMF jako jeden z pokojów startowych co-op, takich jak instances/coop/coop_spawn_room.vmf. Wszystkie pliki zawierają {{L|info_player_start}}, więc nie dodawaj nowych.


* Build your map in between these rooms.  (You can move them, of course.)  The embedded VMF files have an obvious exit which should lead into your mapYou may need to enclose the rooms in order to prevent leaks.
* Stwórz kolejny {{L|func_instance}}, ten ustaw jako jeden z pomieszczeń końcowych, takich jak instances/coop/coop_endlevel_room.vmf.   


* Make sure you save the map with the prefix mp_coop_.
* Stwórz mapę pomiędzy nimi. (Możesz je oczywiście przemieszczać.)


That's it!  See [[Testing Portal 2 Co-Op Maps Alone]] for how to test the map without a partner.  (To test it ''with'' a partner, both must have the bsp file.  Get into the hub normally, then the host should changelevel to the map.)
* Upewnij się, że zapisałeś mapę z *prefixem* mp_coop_.


=Co-op Level without spawn Instances=
To wszystko! Zobacz {{L|Testowanie_Map_Co-Op_Samemu}} aby zobaczyć jak testować mapę samemu.
To create a co-op level, you need to use:
* a [[logic_auto]]
* '''TWO''' [[logic_relay]]s
*a [[logic_coop_manager]]
* '''TWO''' [[logic_script]]s
* '''TWO''' [[prop_indicator_panel]]s
* a [[prop_button]]


{{Note| You must '''HIDE''' the [[prop_indicator_panel]] and the [[prop_button]] so the player's won't see it in the level}}
{{ACategory|Portal 2 Level Design}}
== Step 2==
* Name your first [[logic_relay]] '''relay_return_hub'''
* Name your second [[logic_relay]] '''@relay_has_new_taunt'''
* Name your [[logic_coop_manager]] '''coopmanage_return_hub'''
* Name your first [[logic_script]] '''script_return_hub'''
* Name your second [[logic_script]] '''@script_mp_coop_lobby'''
* Name your first [[prop_indicator_panel]] '''panel_level_return_orange'''
* Name your first [[prop_indicator_panel]] '''panel_level_return_blue'''
{{Note| The [[prop_button]] doesn't need a name}}
 
==Step 3: Properties==
1. Go to '''script_return_hub''' properties and do the following:
 
::{| class=standard-table
!  Property Name || Value
|-
| Name || script_return_hub
|-
| Entity Scripts || debug_scripts/mp_coop_transition_list.nut
|}
 
 
2. Now go to the '''@script_mp_coop_lobby''' properties and do this:
 
::{| class=standard-table
!  Property Name || Value
|-
| Name || @script_mp_coop_lobby
|-
| Entity Scripts || debug_scripts/mp_coop_lobby.nut
|}
 
3. Continue to the '''panel_level_return_orange''' properties:
::{| class=standard-table
!  Property Name || Value
|-
| Name || panel_level_return_orange
|-
| Time Duration || 3
|-
| Is a timer? || Yes
|-
| Indicator lights || tex_level_return_orange
|}
 
 
{{Warning|The '''panel_return_blue''' has the '''SAME''' properties except of the "Indicator lights" which is "tex_level_return_blue"}}
 
4. '''prop_button''' properties:
 
::{| class=standard-table
!  Property Name || Value
|-
| Delay Before Reset || 3
|}
 
==Step 4: Outputs/Inputs==
Now we need to connect all these entities together. Follow these instructions:
 
*'''logic_auto Outputs'''
 
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[Image:Io11.png]] || OnMapSpawn  || @script_mp_coop_lobby || RunScriptCode || CheckForNewTaunts() || 2.00 || No
|-
| [[Image:Io11.png]] || OnMapSpawn  || script_return_hub || RunScriptCode || MapPostLoaded() || 2.00 || Yes
|-
| [[Image:Io11.png]] || OnMapSpawn  || script_return_hub || RunScriptCode || SetMapBranchAndLevel() || 0.25 || Yes
|}
{{Note| Don't forget the '''"Delays"''' and the '''"Only Once"'''}}
 
 
*'''logic_coop_manager Outputs'''
 
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[Image:Io11.png]] || OnChangeToAllTrue  || relay_return_hub || Trigger || <none> || 0.00 || No
|-
| [[Image:Io11.png]] || OnChangeToAllTrue  || panel_level_return_orange || Check || <none> || 0.00 || No
|-
| [[Image:Io11.png]] || OnChangeToAllTrue  || panel_level_return_blue || Check || <none> || 0.00 || No
|}
 
*'''relay_return_hub Outputs'''
 
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[Image:Io11.png]] || OnTrigger  || script_return_hub || RunScriptCode || ReturnToHubFromLevel() || 1.00 || Yes
|}
 
 
*'''@relay_has_new_taunt Outputs'''
 
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[Image:Io11.png]] || OnTrigger  || brush_new_taunts || Enable || <none> || 0.00 || Yes
|}
 
 
*'''prop_button Outputs'''
 
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[Image:Io11.png]] || OnButtonReset  || panel_level_return_orange || Stop || <none> || 0.00 || No
|-
| [[Image:Io11.png]] || OnButtonReset  || coopmanage_return_hub || SetStateBFalse || <none> || 0.00 || No
|-
| [[Image:Io11.png]] || OnPressed  || panel_level_return_orange || Start || <none> || 0.00 || No
|-
| [[Image:Io11.png]] || OnPressed  || coopmanage_return_hub || SetStateBTrue || <none> || 0.00 || No
|}
 
 
 
That's it! You now can create co-op maps with working co-op scripting!
[[Category:Portal 2 Level Design]]

Latest revision as of 03:38, 22 August 2024

English (en)Deutsch (de)Polski (pl)Русский (ru)中文 (zh)Translate (Translate)

Podstawowe kroki

Oto podstawowe kroki potrzebne do stworzenia mapy co-op:

  • Stwórz func_instance(en). Ustaw plik VMF jako jeden z pokojów startowych co-op, takich jak instances/coop/coop_spawn_room.vmf. Wszystkie pliki zawierają info_player_start(en), więc nie dodawaj nowych.
  • Stwórz kolejny func_instance(en), ten ustaw jako jeden z pomieszczeń końcowych, takich jak instances/coop/coop_endlevel_room.vmf.
  • Stwórz mapę pomiędzy nimi. (Możesz je oczywiście przemieszczać.)
  • Upewnij się, że zapisałeś mapę z *prefixem* mp_coop_.

To wszystko! Zobacz Testowanie_Map_Co-Op_Samemu(en) aby zobaczyć jak testować mapę samemu.