Создание карты в режиме "Напарники"

From Valve Developer Community
Revision as of 10:02, 30 July 2020 by SnaulX (talk | contribs) (Добавлен частичный перевод на русский)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Counter-Strike:_Global_Offensive_Level_Creation:ru
English
Напарники это режим для игры Counter-Strike: Global Offensive где две команды по два человека играют соревновательный матч, с меньшим количеством времени в раундах и одной точкой закладки бомбы. В этой статье вы сможете узнать, как сделать такую карту и как это всё работает.

"Напарники" это не просто CFG файл – это реальный оффициальный режим игры. Это означает, что вы можете создать нормальную карту с этим режимом И поддерживающую этот режим дополнительно, как например Cobblestone, Inferno и Overpass. Because of that, the map itself has to allow for this kind of thing. Вы не можете 'включить' "Напарники" в любую карту, которая не выполнила процесс, который написан в этом туториале.

This tutorial is only really applicable if you already have (or are planning to create) a map for one of the Classic game modes, but also want to also support the Wingman mode. If you are designing your map to only work with Wingman, then you probably don't need this tutorial.

Используемые энтити

  • logic_auto
  • logic_script который называется script.2v2
  • Точки возрождения для любой команды в обычном режиме называются spawnpoints.standard
  • Точки возрождения для любой команды в напарниках называются spawnpoints.2v2
  • func_buyzoneы называются buyzone.2v2
  • func_brushы называются brush.blocker
  • func_nav_blockerы называются navblocker.2v2

Создание карты

Скриптинг

Our map must detect if the current game mode of the match is Wingman; to do that, we must use VScripting. However, Valve has already make a script that does that and made it available to any map, so you don't have to worry about that. To run that script, create a logic_script entity in your map, and call it script.2v2. Set the "Entity Scripts" property to "2v2/2v2_enable.nut". Then make a logic_auto, and in the Outputs tab, set the output to "OnMapSpawn", the target entity to "script.2v2", via the output "RunScriptCode", with the parameter of "EnableWingman()".

This will change the entities in our level depending on the game mode we are on. Because of that, all of the following entity names are required to be exactly as listed here, otherwise it will not work.

Точки возрождения и места закладки бомбы

Here, we set the custom spawn points. But before that, select all the normal spawn points (both CT and T) that are going to be used in the normal Classic mode. Change their names to spawnpoints.standard. The script will deactivate these when needed.

Now, create at least two spawn points for each team – those are going to be used in Wingman. In the official Valve maps, they use 4 for each team, so it's probably better to use that. Select them all and name them spawnpoints.2v2, and set "Enable by default?" to No.

If these spawns are not already inside of a buyzone, just create a brush, convert it into an entity (Ctrl+T), and choose func_buyzone. Select the team, name it buyzone.2v2. Do the same things for the other team. You don't have to do anything to the standard buyzone, since it will already be outside the play area anyway.

Выделяем место для игры

The game can work as it is now, but you will probably want so that you can only go to one bombsite. The way to do this is by adding physical blocks in every hallway that leads to the other bombsite to block people from going there. To do that, create some brushes in the places that you don't want the player to go with the tools/toolsclip texture. Convert then to a func_brush and name them brush.blocker. Set "Start disabled" to Yes and the script will do the work for you.

You can even use the cool tools/wrongway texture on that to signalize to players that they can't go through that invisible wall. It even fades out with distance!

В любом случае, если вы делаете всё правильно, то всё должно работать.

Blocking Navigation meshes

Вы можете использовать func_nav_blocker чтобы боты не шли в другую, неправильную сторону. Чтобы сделать это, создайте браш с текстурой tools/toolstrigger. Потом сконвертируете его в энтити func_nav_blocker и назовите его navblocker.2v2. Используя logic_auto создайте новый output и назовите его "OnMapSpawn", а целевой энтити "navblocker.2v2", через input "BlockNav".

Тестируем карту

Чтобы поиграть в режиме напарники, введите в консоль:

game_type 0; game_mode 2;

И введите map команду, чтобы поиграть на вашей карте.

Когда будете загружать карту в мастерскую, укажите "Напарники" в списке режимов, чтобы люди смогли выбрать этот режим, когда начинали играть на вашей карте. Готово!