Ru/Creating a Portal 2 Coop Map

From Valve Developer Community
< Ru
Revision as of 02:14, 21 December 2013 by Shnurok (talk | contribs)
Jump to navigation Jump to search

Template:Otherlang2 Это основные этапы, необходимые для создания кооперативной карты:

  • Создайте энтити 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 для смены карты.)

Кооперативный уровень без экземпляров спавнеров

Для создания кооперативного уровня нужно использовать:

Note.pngПримечание: You must HIDE the prop_indicator_panel and the prop_button so the player's won't see it in the level

Step 2

Note.pngПримечание: The prop_button doesn't need a name

Step 3: Properties

1. Go to script_return_hub properties and do the following:

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:

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:

Property Name Value
Name panel_level_return_orange
Time Duration 3
Is a timer? Yes
Indicator lights tex_level_return_orange


Warning.pngПредупреждение:The panel_return_blue has the SAME properties except of the "Indicator lights" which is "tex_level_return_blue"

4. prop_button properties:

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
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn @script_mp_coop_lobby RunScriptCode CheckForNewTaunts() 2.00 No
Io11.png OnMapSpawn script_return_hub RunScriptCode MapPostLoaded() 2.00 Yes
Io11.png OnMapSpawn script_return_hub RunScriptCode SetMapBranchAndLevel() 0.25 Yes
Note.pngПримечание: Don't forget the "Delays" and the "Only Once"


  • logic_coop_manager Outputs
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnChangeToAllTrue relay_return_hub Trigger <none> 0.00 No
Io11.png OnChangeToAllTrue panel_level_return_orange Check <none> 0.00 No
Io11.png OnChangeToAllTrue panel_level_return_blue Check <none> 0.00 No
  • relay_return_hub Outputs
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger script_return_hub RunScriptCode ReturnToHubFromLevel() 1.00 Yes


  • @relay_has_new_taunt Outputs
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger brush_new_taunts Enable <none> 0.00 Yes


  • prop_button Outputs
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnButtonReset panel_level_return_orange Stop <none> 0.00 No
Io11.png OnButtonReset coopmanage_return_hub SetStateBFalse <none> 0.00 No
Io11.png OnPressed panel_level_return_orange Start <none> 0.00 No
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!