Ru/Counter-Strike: Global Offensive/Game Modes/Wingman

Напарники это режим для игры 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 команду, чтобы поиграть на вашей карте.
Когда будете загружать карту в мастерскую, укажите "Напарники" в списке режимов, чтобы люди смогли выбрать этот режим, когда начинали играть на вашей карте. Готово!