Difference between revisions of "Creating a Wingman Map:ru"

From Valve Developer Community
Jump to: navigation, search
(Добавлен частичный перевод на русский)
 
(Дополнен перевод на русский)
 
Line 3: Line 3:
 
{{otherlang2|title=Создание карты в режиме "Напарники"}}{{Lang|Creating a Wingman Map}}'''Напарники''' это режим для игры Counter-Strike: Global Offensive где две команды по два человека играют соревновательный матч, с меньшим количеством времени в раундах и одной точкой закладки бомбы. В этой статье вы сможете узнать, как сделать такую карту и как это всё работает.
 
{{otherlang2|title=Создание карты в режиме "Напарники"}}{{Lang|Creating a Wingman Map}}'''Напарники''' это режим для игры Counter-Strike: Global Offensive где две команды по два человека играют соревновательный матч, с меньшим количеством времени в раундах и одной точкой закладки бомбы. В этой статье вы сможете узнать, как сделать такую карту и как это всё работает.
  
"Напарники" это не просто CFG файл – это реальный оффициальный режим игры. Это означает, что вы можете создать нормальную карту с этим режимом И поддерживающую этот режим дополнительно, как например Cobblestone, Inferno и Overpass. Because of that, the map itself has to allow for this kind of thing. Вы не можете 'включить' "Напарники" в любую карту, которая не выполнила процесс, который написан в этом туториале.
+
"Напарники" это не просто CFG файл – это реальный оффициальный режим игры. Это означает, что вы можете иметь полностью нормальную карту и поддерживать "Напарники" одновременно, как это происходит с официальными Cobblestone, Inferno и Overpass. Из-за этого сама карта должна допускать подобные вещи. Вы не можете 'включить' "Напарники" в любую карту, которая не выполнила процесс, который написан в этом туториале.
  
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.
+
Это руководство действительно применимо только в том случае, если у вас уже есть (или вы планируете создать) карту для одного из режимов классической игры, но вы также хотите поддерживать режим "Напарники". Если вы разрабатываете карту для работы только с "Напарниками", то вам, вероятно, не нужен этот туториал.
  
 
== Используемые энтити ==
 
== Используемые энтити ==
Line 20: Line 20:
  
 
=== Скриптинг ===
 
=== Скриптинг ===
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()".
+
Наша карта должна определить, является ли текущий игровой режим матча "Напарники"; чтобы сделать это, мы должны использовать VScripting. Однако Valve уже сделала скрипт, который делает это, и сделал его доступным для любой карты, так что вам не нужно об этом беспокоиться. Чтобы запустить этот скрипт, создайте на карте объект ''logic_script'' и назовите его '''script.2v2''' . Установите для свойства «Entity Scripts» значение «2v2/2v2_enable.nut». Затем создайте ''logic_auto'' и на вкладке Outputs установите выход «OnMapSpawn», целевой объект - «script.2v2», через выход «RunScriptCode» с параметром «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.
+
Здесь мы устанавливаем пользовательские точки возрождения. Но перед этим выберите все нормальные точки возрождения (как CT, так и T), которые будут использоваться в обычном классическом режиме. Измените их имена на '''spawnpoints.standard'''. Скрипт деактивирует их при необходимости.
  
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.
+
Теперь создайте как минимум две точки появления для каждой команды - они будут использоваться в Wingman. На официальных картах Valve они используют 4 для каждой команды, так что, вероятно, лучше использовать это. Выберите их все и назовите их '''spawnpoints.2v2''', и установите «Enabled by default?» на '''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.
+
Если эти порождения не находятся внутри зоны покупки, просто создайте браш, преобразуйте ее в сущность (Ctrl + T) и выберите ''func_buyzone''. Выберите команду, назовите ее '''buyzone.2v2'''. Сделайте то же самое для другой команды. Вам не нужно ничего делать со стандартной зоной покупки, так как она все равно будет уже вне игровой площадки.
  
 
=== Выделяем место для игры ===
 
=== Выделяем место для игры ===
  
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.  
+
Игра может работать, как сейчас, но вы, вероятно, захотите, чтобы вы могли перейти только на одно место закладки бомбы. Способ сделать это - добавьте физические блоки в каждый коридор, ведущий на другой сайт, чтобы запретить людям ходить туда. Чтобы сделать это, создайте несколько брашей в местах, где вы не хотите, чтобы игрок ходил, используйте текстуру tools/toolsclip . Затем преобразуйте в ''func_brush'' и назовите их '''brush.blocker'''. Установите «Start Disabled» на Yes, и скрипт сделает всю работу за вас.
  
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!
+
Также вы можете использовать крутую текстуру ''tools/wrongway'', которая сигнализирует игрокам, что тут невидимая стена и пройти нельзя. Она исчезает с дистанцией!
  
 
В любом случае, если вы делаете всё правильно, то всё должно работать.  
 
В любом случае, если вы делаете всё правильно, то всё должно работать.  
  
=== Blocking Navigation meshes ===
+
=== Блокируем навигационные сетки ===
  
 
Вы можете использовать ''func_nav_blocker'' чтобы боты не шли в другую, неправильную сторону. Чтобы сделать это, создайте браш с текстурой ''tools/toolstrigger''. Потом сконвертируете его в энтити ''func_nav_blocker'' и назовите его '''navblocker.2v2'''. Используя ''logic_auto'' создайте новый output и назовите его "OnMapSpawn", а целевой энтити "navblocker.2v2", через input "BlockNav".
 
Вы можете использовать ''func_nav_blocker'' чтобы боты не шли в другую, неправильную сторону. Чтобы сделать это, создайте браш с текстурой ''tools/toolstrigger''. Потом сконвертируете его в энтити ''func_nav_blocker'' и назовите его '''navblocker.2v2'''. Используя ''logic_auto'' создайте новый output и назовите его "OnMapSpawn", а целевой энтити "navblocker.2v2", через input "BlockNav".

Latest revision as of 10:25, 30 July 2020

Counter-Strike:_Global_Offensive_Level_Creation:ru
English
Напарники это режим для игры Counter-Strike: Global Offensive где две команды по два человека играют соревновательный матч, с меньшим количеством времени в раундах и одной точкой закладки бомбы. В этой статье вы сможете узнать, как сделать такую карту и как это всё работает.

"Напарники" это не просто CFG файл – это реальный оффициальный режим игры. Это означает, что вы можете иметь полностью нормальную карту и поддерживать "Напарники" одновременно, как это происходит с официальными Cobblestone, Inferno и Overpass. Из-за этого сама карта должна допускать подобные вещи. Вы не можете 'включить' "Напарники" в любую карту, которая не выполнила процесс, который написан в этом туториале.

Это руководство действительно применимо только в том случае, если у вас уже есть (или вы планируете создать) карту для одного из режимов классической игры, но вы также хотите поддерживать режим "Напарники". Если вы разрабатываете карту для работы только с "Напарниками", то вам, вероятно, не нужен этот туториал.

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

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

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

Скриптинг

Наша карта должна определить, является ли текущий игровой режим матча "Напарники"; чтобы сделать это, мы должны использовать VScripting. Однако Valve уже сделала скрипт, который делает это, и сделал его доступным для любой карты, так что вам не нужно об этом беспокоиться. Чтобы запустить этот скрипт, создайте на карте объект logic_script и назовите его script.2v2 . Установите для свойства «Entity Scripts» значение «2v2/2v2_enable.nut». Затем создайте logic_auto и на вкладке Outputs установите выход «OnMapSpawn», целевой объект - «script.2v2», через выход «RunScriptCode» с параметром «EnableWingman()».

Это изменит сущности на нашем уровне в зависимости от того, в каком режиме игры мы находимся. Из-за этого все следующие имена сущностей должны быть точно такими, как перечислены здесь, иначе это не будет работать.

Точки возрождения и зоны закупки

Здесь мы устанавливаем пользовательские точки возрождения. Но перед этим выберите все нормальные точки возрождения (как CT, так и T), которые будут использоваться в обычном классическом режиме. Измените их имена на spawnpoints.standard. Скрипт деактивирует их при необходимости.

Теперь создайте как минимум две точки появления для каждой команды - они будут использоваться в Wingman. На официальных картах Valve они используют 4 для каждой команды, так что, вероятно, лучше использовать это. Выберите их все и назовите их spawnpoints.2v2, и установите «Enabled by default?» на No

Если эти порождения не находятся внутри зоны покупки, просто создайте браш, преобразуйте ее в сущность (Ctrl + T) и выберите func_buyzone. Выберите команду, назовите ее buyzone.2v2. Сделайте то же самое для другой команды. Вам не нужно ничего делать со стандартной зоной покупки, так как она все равно будет уже вне игровой площадки.

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

Игра может работать, как сейчас, но вы, вероятно, захотите, чтобы вы могли перейти только на одно место закладки бомбы. Способ сделать это - добавьте физические блоки в каждый коридор, ведущий на другой сайт, чтобы запретить людям ходить туда. Чтобы сделать это, создайте несколько брашей в местах, где вы не хотите, чтобы игрок ходил, используйте текстуру tools/toolsclip . Затем преобразуйте в func_brush и назовите их brush.blocker. Установите «Start Disabled» на Yes, и скрипт сделает всю работу за вас.

Также вы можете использовать крутую текстуру tools/wrongway, которая сигнализирует игрокам, что тут невидимая стена и пройти нельзя. Она исчезает с дистанцией!

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

Блокируем навигационные сетки

Вы можете использовать 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 команду, чтобы поиграть на вашей карте.

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