Создание карт для CS:S

Пользователь
Статус
Оффлайн
Регистрация
15 Июн 2014
Сообщения
167
Реакции[?]
33
Поинты[?]
0
Введение

Процесс создания карт для сорс аналогичен и для CS 1.6, так что если и для 1.6 хотите создать, то эта статья вам тоже поможет.

В сорс просто некоторые названия объектов изменены, другие триггеры и объекты, взятые из халвы.

Намного проще создавать карту на основе другой. Вы должны определится, будет это карта с бомбой или с заложниками. Игра сама определяет, каков тип карты, а делает это она с помощью объектов, которые вы расставите на карте. А именно если вы поставите точку минирования, то террористам дадут C4, а контрам - щипчики. Иногда требуется несколько объектов. Например, если вы создаёте карту с заложниками, то помимо самих заложников, вам потребуется точка эвакуации. Название карты, а точнее приставка, зависит от типа карты, если это карта с бомбой, то должно быть перед названием de_ ,а если с заложниками, то cs_ , а если у вас немного другой тип, то используйте общепринятые приставки, или если такого типа нет, то придумайте свой.

Настройка Редактора

Если у вас уже есть Hammer World Editor, настроенный для работы с Half-Life 2, то вам надо его перенастроить для Counter-Strike: Source. Для этого зайдите в настройки программы "Tools->Options", на закладке Game Configurations нажмите кнопку Edit. В появившемся окне нажмите Add и впишите название игры, которую вы собираетесь редактировать, а именно CS: Source, затем подтвердите выбор. В окне настроек все параметры автоматически обнуляются, чтобы вы могли настроить редактор для работы с новой игрой. В разделе Game Data Files нажмите кнопку Add и укажите путь к файлу объектов для Counter-Strike: Source. В списках Default PointEntity Class и Default SolidEntity Class укажите, например, классы info_player_counterterrorist и func_buyzone. В строке Game Executable Directory укажите путь к папке с игрой. В строке Mod Directory — путь к папке cstrike, а в строке Game Directory — путь к hl2. В последней строке укажите адрес, где вы собираетесь хранить неоткомпилированные карты. На закладке Build Programs укажите пути файлов для vvis.exe, vbsp.exe и vrad.exe.

Когда всё готово, можно начинать создавать карту.

Основы

Для начала обязательно нужно добавить объекты, без которых карта не пойдёт, а именно места для появления игроков и зоны закупки для обеих команд. Также надо добавить спаун-поинты игроков, желательно чтобы их было по 16 с каждой стороны, ибо это максимум игроков.

При помощи инструмента Entity Tool (Shift+E) разместите на базах по 16 этих самых спаун-поинтов. Для этого используйте классы info_player_counterterrorist и info_player_terrorist. Старайтесь не ставить места появления игроков слишком близко, иначе после респауна они могут просто застрять. Обратите внимание на то, что вы можете указывать угол поворота игрока в настройках точки респауна, а то будет не очень приятно, если игрок появится лицом к стене.

Теперь создадим зону для закупки. Создайте браш, охватывающий все точки респауна одной команды, не обращая внимания на то, что он может пересекать стены и выходить за границу карты. Выделите созданный браш и нажмите кнопку ToEntity, чтобы присвоить ему класс func_buyzone. В настройках обязательно укажите параметр Team, который определяет, игроки какой команды могут покупать снаряжение в этой зоне. Повторите операцию для другой базы.

Теперь игроки смогут появляться у себя на базах и покупать оружие. Мы не указали определенного сценария, но на карте уже можно играть. Сохраните ее под именем mp_ваше_название и откомпилируйте (F9).

Можете запустить карту в игре и протестировать ее на ботах, пути для которых генерируются автоматически при запуске незнакомой карты. Файл навигации сохраняется в папку maps и имеет то же название, что и карта (расширение nav). Но это возможно только на CS 1.6, т.к. в сорс боты не умеют сканировать карты. А если вы хотите чтобы боты бегали по какому-нибудь другому пути или ещё что-нибудь, то почитайте статью про редактирование вэйпоинтов, но это тоже относится только к CS 1.6

Карта с заложниками

Теперь рассмотрим создание карт с заложниками по подробней. Для начала хорошенько продумайте несколько путей для выведения заложников, а также путей штурма контров. По правилам на карте должно находится четыре заложника, расположенных недалеко друг от друга, и зона эвакуации на базе контров (зон может быть несколько — по одной на каждый путь отхода). Наличие данных объектов необходимо для корректной работы сценария.

Откройте ранее созданную вами карту и разместите четырех заложников на базе террористов. Для этого используйте класс hostage_entity. Не забудьте развернуть заложников лицом к центру помещения. Далее создайте браш на базе спецназа, который будет указывать зону эвакуации, и обратите его в func_hostage_rescue — данный объект не требует никаких настроек. Если при размещении зоны эвакуации вам мешает зона закупки, вы можете спрятать ее при помощи кнопки Hide Selected Objects.

Теперь карта во вполне готовом состоянии, в дальнейшем вы сможете наводить баланс или ещё что-нибудь. Сохраните карту под названием cs_ваше_название и откомпилируйте ее. При тестировании карты, вы можете сами убедиться, как заложники исчезнут, достигнув зоны эвакуации, и победа будет засчитана контрам. Обратите внимание, что заложники используют те же пути для навигации, что и боты, то есть без сгенерированного nav-файла пленники вообще не будут двигаться.

Карта с бомбой

Теперь разберем, как нужно сделать карту с бомбой. По правилам должно быть две точки, которые требуется уничтожить, но для обучения нам хватит и одной. Для корректной работы сценария достаточно создать только зону минирования, но мы также воспользуемся некоторыми дополнительными возможностями.

Откройте карту созданную вами в самом начале и создайте небольшой браш, обозначив зону, в которой террористы смогут использовать взрывчатку. Приведите браш к классу func_bomb_target. В принципе, этого уже достаточно для правильной работы карты, но мы пойдем немного дальше. Создайте точечный объект info_map_parameters. В его настройках существует только один параметр, который позволяет задать радиус поражения бомбы относительно центра зоны минирования. Для нашей карты оптимальное значение — 256 юнитов.

Создайте несколько объектов в зоне минирования, которые будут взрываться вместе с бомбой, и превратите их в класс func_breakable. В настройках укажите имя bomb01_trg01. В параметрах prop_data поставьте значение, соответствующее типу объекта, а в Material Type тип материала. Повторите эту операцию для всех объектов, меняя имя на bomb01_trg02 и bomb01_trg03. Далее зайдите в настройки зоны минирования и перейдите на закладку Outputs. Нажмите кнопку Add и определите параметры следующим образом: My output named — BombExplode, Targets entities named — bomb01_trg01, Via this input — Break, After a delay in seconds of — 0.2. Повторите это действие столько раз, сколько объектов, подставляя имя следующего объекта и увеличивая временной интервал на 0,2 сек.

Результат будет следующим: как только бомба срабатывает, происходит взрыв, который убивает всех игроков в пределах центрального помещения, затем с небольшим интервалом последовательно разрушаются все объекты. Также можно разбросать груду предметов, которые будут самостоятельно разлетаться в стороны от взрывной волны. Сохраните карту под названием de_ваше_название и откомпилируйте ее.

Обзор карты при выборе команды

Когда вы только подключаетесь к игре, в меню выбора команды показывается карта с различных ракурсов, которые определены создателями карты при помощи камер. Если на карте не указана ни одна камера, то ракурс будет выбран относительно самого первого места появления игрока. Далее мы разберем, как это делается.

Ракурс задается при помощи двух точечных объектов. Первая точка указывает, где будет находиться камера, а вторая — куда она будет направлена. На практике это работает следующим образом: в качестве первой точки создайте объект point_viewcontrol в том месте, где будут расположены глаза наблюдателя. Создайте вторую точку, воспользовавшись классом info_target. Теперь зайдите в настройки второй точки и укажите имя camera01_trg. В настройках же первой точки укажите имя camera01 и задайте параметру Entity to Look At значение camera01_trg. Можно запускать игру и тестировать результат работы.

Обратите внимание, что вы можете создать несколько камер, вид между которыми будет переключаться автоматически через определенный промежуток времени.
 
Сверху Снизу