29 марта 2006
Обновлено 17.05.2023

Карта для Counter-Strike

Карта для Counter-Strike - изображение обложка

В данной статье мы расскажем вам о создании карт для последней версии одной из самых популярных сетевых игр — Counter-Strike: Source. Несмотря на то, что игра сделана на новом движке, принципы разработки карт во многом схожи с более ранними версиями. Так что даже если вы продолжаете играть в старую версию Counter-Strike, то с успехом сможете применить полученные из данной статьи знания на практике. Материал будет полезен всем: как тем, кто уже создает свои собственные карты для Counter-Strike: Source, так и тем, кто только собирается заняться картостроительством (специально для них на нашем диске припасена заготовка, на основе которой можно сделать свою собственную карту).

Отличия Counter-Strike: Source от предыдущих версий игры сводятся к смене названий различных объектов, новой системе ввода вывода (для создания триггеров) и наличии объектов, не оказывающими непосредственное влияние на игровой сценарий (взяты из Half-Life 2 ).

В рамках статьи мы рассмотрим, как на базе уже готового уровня создать свою карту. Для начала необходимо определиться со сценарием — их всего два: спасение заложников и установка бомбы. В зависимости от того, какие объекты расположены на карте, игра определяет сценарий. Если вы разместите точку для бомбы, то террористы получат в свое распоряжение C4, а спецназ сможет купить в магазине набор для разминирования. Иногда для корректной работы сценария необходимо несколько объектов. Например, если вы поставили на карте заложников, то нужно также предусмотреть локацию для их эвакуации. По правилам, установленным разработчиками игры, карты с бомбой и заложниками должны иметь префикс de_ и cs_ соответственно.

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

Если у вас уже установлен редактор Hammer World Editor, настроенный для работы с Half-Life 2, перенастройте его на Counter-Strike: Source. Для этого зайдите в настройки программы ( Tools/Options ). На закладке Game Configurations нажмите кнопку Edit справа от списка профилей. В появившемся окне нажмите Add и впишите название игры, которую вы собираетесь редактировать (в нашем случае это Counter-Strike: 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.

Все основные настройки сделаны, теперь можно переходить непосредственно к редактированию. Для удобства мы сделали небольшую карту, на которой вам предстоит размещать все необходимые объекты для каждого конкретного сценария. Возьмите файлы с нашего диска (раздел По журналу/Игрострой ), скопируйте файл underground.vmf на ваш компьютер. Запустите редактор и откройте карту.

Основные элементы

Добавим на карту только те объекты, без которых игра не может работать: места для появления игроков и зоны закупки для обеих команд. Наша карта будет рассчитана максимум на 32 человека, значит, по правилам на ней должно быть по 16 мест респауна на каждую команду. Чтобы вам было проще разобраться в написанном, внимательно изучите карту с нашего диска, тогда вам не составит труда соотнести увиденное с рис. 1. Буквой T на нем отмечена база террористов, а буквами CT база спецназа.

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

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

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

Можете запустить карту в игре и протестировать ее на ботах, пути для которых генерируются автоматически при запуске незнакомой карты; файл навигации сохраняется в папку maps и имеет то же название, что и карта (расширение — nav ). На рис. 3 показан игровой процесс на только что созданной карте. Чтобы оценить то, что должно получиться у вас по итогам работы, изучите файл mp_underground.vmf на нашем диске.

Сценарий с заложниками

Рассмотрим, как сделать хороший сценарий с заложниками. Если вы создаете карту, ориентированную на данный сценарий, то нужно заранее продумать несколько путей для отступления спецназа; в нашем же случае это не имеет принципиального значения. По правилам на карте должно находится четыре заложника, расположенных недалеко друг от друга, и зона эвакуации на базе спецназа (зон может быть и несколько — по одной на каждый путь отхода). Наличие данных объектов необходимо для корректной работы сценария. Взгляните еще раз на рис. 1. На базе террористов зелеными буквами отмечены четыре точки расположения заложников — две с одной стороны и две с другой. На базе спецназа словом EVAC отмечена зона эвакуации.

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

На данном этапе сценарий готов. Сохраните карту под названием cs_underground и откомпилируйте ее. Будучи в игре, вы можете сами убедиться, как заложники исчезнут, достигнув зоны эвакуации, и победа будет засчитана спецназу. Обратите внимание, что заложники используют те же пути для навигации, что и боты, то есть без сгенерированного nav-файла пленники вообще не будут двигаться. Результаты вашей работы представлены в файле cs_underground.vmf на нашем диске.

Сценарий с бомбой

Последнее, что мы сегодня изучим, — создание сценария с бомбой. По правилам на карте, использующей данный сценарий, должно быть две точки, которые требуется уничтожить, но для обучения нам хватит и одной. Для корректной работы сценария достаточно создать только зону минирования, но мы также воспользуемся некоторыми дополнительными возможностями. Вернемся к нашему плану ( рис. 1 ). В центре карты находится помещение с ящиками, словом BOMB отмечена зона установки бомбы.

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

Выделите один из трех больших ящиков в центре карты и превратите его в класс func_breakable. В настройках укажите имя bomb01_trg01. Параметр prop_data поставьте в значение Wooden.Huge , а Material Type в Wood. Повторите эту операцию для всех ящиков, меняя имя на bomb01_trg02 и bomb01_trg03. Далее зайдите в настройки зоны минирования и перейдите на закладку Outputs. Нажмите кнопку Add и определите параметры следующим образом: My output namedBombExplode , Targets entities namedbomb01_trg01 , Via this inputBreak , After a delay in seconds of0.2. Повторите это действие два раза, подставляя имя следующего ящика и увеличивая временной интервал на 0,2 сек.

Результат будет следующим: как только бомба срабатывает, происходит взрыв, который убивает всех игроков в пределах центрального помещения, затем с небольшим интервалом последовательно разрушаются все три больших ящика. Для достижения большего эффекта вы можете сделать, чтобы маленькие ящики тоже взрывались. Также можно разбросать груду предметов, которые будут самостоятельно разлетаться в стороны от взрывной волны. Сохраните карту под названием de_underground и откомпилируйте ее. Результаты работы представлены в файле de_underground.vmf на нашем диске.

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

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

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

* * *

Наш небольшой, но крайне продуктивный экскурс в мир картостроения для Counter-Strike: Source закончен. Мы рассмотрели все сценарии и все объекты, которые могут пригодиться вам при разработке карты любой сложности. Если вы хотите разобраться, как создавать всевозможные фишки на картах для «Контры», как сделать уровень максимально разнообразным, — пишите на почтовый ящик gamedev@igromania.ru. Если наберется достаточное количество просьб, мы обязательно опубликуем такой материал.

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь