Глава XXI. Релиз карты.

Подготовка карты к релизу: нужные файлы, описание, README, RES-файл, вейпоинты для ботов и обзорная картинка.

21.1

Какие файлы должны входить в финальную версию карты?

В этой статье мы расскажем о "начинке" Вашей карты, которую Вы выкладываете в интернет в качестве финальной версии.
Итак, в архиве должны быть:
  • Карта в формате BSP
  • Все необходимые WAD-файлы с текстурами
  • TXT-файл с миссией для каждой из команд (доступен для просмотра в игре)
  • Создание Readme-файла для карты (кол-во игроков, установка и т.п.)
  • RES-файл с описанием всех нестандартных файлов, которые используются на вашей карте (звуки, модели и т.п.)
  • Вэйпоинты для POD-бота (PWF и PXP файлы)
  • BMP-картинка с видом сверху (overview) с описательным TXT-файлом
  • Необходимые картинки неба (если небо нестандартное)
  • Все нестандартные звуки, модели и спрайты
Итак, начнем по порядку. Карта в формате BSP. Ну, тут все ясно, главное не забыть положить в архив последнюю версию карты. Рекомендуем использовать архив ZIP, т.к. он более надежен, чем RAR (RAR не редко бывает битым).
Все необходимые WAD-файлы с текстурами
Если Вы компилируете с параметром -wadinclude, то забот никаких нет, ибо все текстуры уже находятся внутри BSP-файла. В противном случае Вам необходимо посмотреть в редакторе карт какие нестандартные текстуры Вы использовали при создании карты.
В Hammer это можно сделать в меню "Map/Show Information". Затем необходимо будет включить в архив все эти WAD-файлы или создать один WAD-файл, используя программу Wally, в который скопировать все нестандартные текстуры. Естественно, нужно будет переподключить текстуры к редактору и скомпилировать карту еще раз.
TXT-файл с миссией для каждой из команд (доступен для просмотра в игре)
Информация из этого файла показывается при заходе на сервер. Имя у этого файла должно быть как и у Вашей карты, например, если карта называется DE_COOLMAP, тогда файл будет DE_COOLMAP.TXT.
В этом файле записывается информация об авторе карты (можно указать e-mail и адрес сайта), а также краткое задание для обеих команд.
Создание Readme-файла для карты
В данном файле можно написать дополнительную информацию по карте, такую как максимальное количество игроков, список нестандартных звуков, текстур, моделей, время компиляции, средний r_speeds и многое другое.
RES-файл с описанием всех нестандартных файлов
Это очень важный файл, о котором, к сожалению, знают пока не все. Во время загрузки карты, сервер считывает список всех нестандартных файлов, которые используются на Вашей карте, из этого файла. Когда игрок, у которого нет вашей карты, коннектится к серверу, тот автоматически начинает загрузку всех файлов, описанных в RES-файле.
Таким образом, Вы можете быть абсолютно уверены, что игрок увидит Вашу карту именно в том виде, в котором она была создана. Например, Вы использовали нестандартные картинки неба. Если Вы не создадите RES-файл и не пропишете в нем названия этих картинок, то игрок увидит на карте стандартное небо desert, которое может не подходить к дизайну Вашей карты.
Вэйпоинты для POD-бота (PWF и PXP файлы)
Вэйпоинты нужны для игры с ботами. На сегодняшний день большое распространение получили POD-боты, поэтому имеет смысл делать вэйпоинты для него.
В архив с картой можно включить как PWF, так и PXP-файл. Первый это собственно запись о расставленных вэйпоинтах, а второй — так называемый, expierence, т.е. умение, опыт, который боты накопили, играя на Вашей карте.
Не забывайте прописывать пути и названия этих файлов в RES-файле.
BMP-картинка с видом сверху (overview) с описательным TXT-файлом
Начиная с CS 1.4, у игроков появилась возможность в режиме спектатора наблюдать за битвой на виде сверху. Эта функция осуществляется при помощи двух файлов, один из которых это картинка в формате BMP (разрешение 1024x768 и 256 цветов), а второй — это обычный текстовый файл, в котором записаны параметры отображения этой картинки.
Название картинки и файла-описания не забудьте прописать в RES-файле.
Необходимые картинки неба (если небо нестандартное)
Если Вы используете нестандартное небо на своей карте, то все шесть картинок необходимо поместить в архив. Также не забудьте прописать названия картинок (вместе с путями, куда их нужно копировать) в RES-файл.
Все нестандартные звуки, модели и спрайты
Ну, и по аналогии со всеми нестандартными файлами, Вы должны вложить в архив все звуки, модели и спрайты, если таковые используются на вашей карте. Звуки должны идти в папку sound/ambience, модели — models, спрайты — sprites.
Рекомендуем раскладывать все файлы в архиве по папкам, чтобы не было каши. Представьте, Вы распаковываете архив с картой и видите 27 файлов :-[ ] Что куда пихать?!..
Создавайте отдельные папки со стандартными названиями такими, как: cstrike, maps, models, sound, sprites, overviews и пр.
В итоге структура архива должна иметь следующий вид:
| cstrike
|           de_coolmap.wad
|----maps
|           de_coolmap.bsp
|           de_coolmap.txt
|           de_coolmap.res
|           de_coolmap_info.txt
|----gfx/env
|           картинки неба.tga
|----overviews
|           de_coolmap.bmp
|           de_coolmap.txt (txt с параметрами overview)
|----PODBot/WPTDefault
|           de_coolmap.pwf
|           de_coolmap.pxp
|----models
|           все нестандартные модели.mdl
|----sound/ambience
|           все нестандартные звуки.wav
|----sprites
|           все нестандартные спрайты.spr
21.2

Создание TXT-файла с описанием карты

В этой статье мы расскажем о создании файла с описанием Вашей карты. Информация из этого файла показывается в начале карты (если у игрока не отключена эта функция), а также она доступна при нажатии на кнопку "I" (по умолчанию).
Требования к файлу-описанию:
  • Если карта называется de_dust, файл должен называться de_dust.txt
  • Файл должен лежать в директории с картой (cstrike/maps)
  • Строки внутри файла не должны быть слишком длинными

Какую информацию писать в описании?

Большинство мапперов соблюдают установившийся стандарт в составлении описания.
Пример файла-описания DE-карты:
  • Dust - Bomb/Defuse
    by DaveJ ([email protected])
    textures by Macman ([email protected])
    Counter-Terrorists: Prevent Terrorists
    from bombing chemical weapon crates.
    Team members must defuse any bombs
    that threaten targeted areas.
    Terrorists: The Terrorist carrying the
    C4 must destroy one of the chemical
    weapon stashes.
    Other Notes: There are 2 chemical
    weapon stashes in the mission.
    (Press FIRE to continue)
Сначала пишется название карты и ее тип (Bomb/Defuse, Hostage Rescue, Escape или Assassination).
Дальше записывается имя автора карты (можно указать в скобках e-mail и адрес сайта).
Затем можно перечислить авторов текстур, моделей, спрайтов, если таковые имеются.
После всего этого идет краткое задание для контров и затем для террористов. На каждой карте свое задание, но разница небольшая. Например, на de_dust террористы взрывают ящики с химическим оружием, а контры пытаются это предотвратить. На Вашей карте может быть другое задание.
В строке "Other Notes" можно указать количество точек установки бомбы или количество заложников.
Ну, и стандартно файл заканчивается строкой (Press FIRE to continue).
Как Вы понимаете, все это очень условно. Никто не мешает Вам использовать другой формат записи, главное не пишите слишком длинных строк, потому как в игре они обрежутся. Используйте строки по 39-40 символов.
Пример файла-описания CS-карты:
  • Canyon Siege - Hostage Rescue
    by N0TH1NG ([email protected])
    Counter-Terrorists: Enter the POW
    stronghold and rescue the hostages.
    Take out the Terrorists without
    jeopardizing the hostages.
    Terrorists: Prevent Counter-Terrorist
    force from rescuing the hostages.
    Other Notes: There are 4 hostages in
    the mission.
    (Press FIRE to continue)
21.3

Создание Readme-файла для карты

В этой статье мы рассмотрим пример файла с техническими данными Вашей карты. Данный файл Вы можете называть как угодно (например, de_map_readme.txt или de_map_info.txt) и размещать где угодно (в любой папке внутри архива), потому как этот файл просто описывает Вашу карту, как она создавалась, какими программами и т.д.
Существует стандартный вид таких файлов, который использует большинство мапперов. Естественно, никто не может помешать Вам написать Readme так, как хочется :)

Английский вариант

=======================================================
Ka_100x100 for Counter-Strike a Half-Life Modification
Russia                              September 15, 2002
=======================================================
------General Information--------------------------------
Title            : Ka_100x100
Filename(s)      : ka_100x100.bsp & other
Version          : Final
Author           : Dmitry "Dmitrich!" Cherkashin
E-mail           : [email protected]
Home page        : www.any-server.ru
ICQ              : 139039487
Description      : A Knife Arena map with plenty HE-grenades, healthkits & kevlars
Other maps       : De_Asche, Dm_Aztec_maso, Dm_Aztec_maso2, Dm_Aztec_maso3, De_Miracle
Notes            : This is my 4th released map after over one year of mapping
------Play Information-----------------------------------
Deathmatch       : No
Single Player    : No
Cooperative      : Yes
Mod              : Counter-Strike
Max # of players : 20
------Map information-------------------------------------
Base             : None
Editor(s) used   : Valve Hammer Editor 3.4
Other Programms  : ZHLT 2.5.3-1.6.1, Wally 1.55b, Photoshop 7.0, GoldWave 4.26, PakExplorer
Prefabs used     : No
Known Bugs       : No
Build Time       : two months
Compile Machine  : PIII-533 / 128 Mb
Compile Time     : 2h:47m
Average R_Speeds : 600 wpoly
------Copyright-Permissions------------------------------
If you enjoy playing this level, please send me an e-mail
Authors MAY NOT use this level as a base to build additional levels.
You MUST NOT distribute this level UNLESS you INCLUDE THIS FILE WITH
NO MODIFICATIONS!!! If you don't co-operate, then DON'T DISTRIBUTE
IT IN ANY FORM!!!
This BSP may be distributed ONLY over the Internet and/or BBS systems.
You are NOT authorized to put this BSP on any CD or distribute it in
any way without my permission.
(c) Copyright 2002 Dmitry "Dmitrich!" Cherkashin








Русский вариант

=======================================================
Ka_100x100 для Counter-Strike a Half-Life Modification
Россия                               Сентябрь 15, 2002
=======================================================
------Общая информация-----------------------------
Название           : Ka_100x100
Файл(ы)            : ka_100x100.bsp и другие
Версия             : Окончательная
Автор              : Дмитрий "Dmitrich!" Черкашин
E-mail             : [email protected]
Сайт               : www.any-server.ru
ICQ                : 139039487
Описание           : Карта на ножах с большим количеством гранат, броников и пр.
Другие карты       : De_Asche, Dm_Aztec_maso, Dm_Aztec_maso2, Dm_Aztec_maso3, De_Miracle
ЗЫ                 : Это моя 4-я законченная карта за год маппинга
------Игровая информация---------------------------
Десматч            : Нет
Сингл              : Нет
Командная          : Да
Мод                : Counter-Strike
Макс число игроков : 20
------Информация о создании карты------------------
На чем основана    : сделана с нуля :)
Редактор           : Valve Hammer Editor 3.4
Другой софт        : ZHLT 2.5.3-1.6.1, Wally 1.55b, Photoshop 7.0, GoldWave 4.26, PakExplorer
Префабы            : Нет
Известные баги     : Нет
Время создания     : 2 месяца
Компьютер          : PIII-533 / 128 Mb
Время компиляции   : 2ч:47мин
Средний R_Speeds   : 600 wpoly
------Авторские права------------------------------
Напишите здесь что-нибудь о правах на свою карту, о том какой Вы злой человек и что Вы не дадите декомпилировать карту никому. А если это не дай Бог произойдет, то будете преследовать нарушителя по закону, а когда догоните, то накажите, чтоб больше не хотелось :)
21.4

Создание RES-файла при помощи программы ResGen

В этой статье мы расскажем о создании файла с перечнем всех нестандартных ресурсов Вашей карты.

Для чего нужен RES-файл?

RES-файл нужен для игроков, а именно для тех игроков, которые подключаются к серверу с Вашей картой впервые. Сервер считывает информацию из RES-файла и передает игроку все записанные в нем файлы. Таким образом, у игрока будут все файлы, используемые Вашей картой.
Требования к RES-файлу:
  • Если карта называется de_dust, файл должен называться de_dust.res
  • Файл должен лежать в директории с картой (cstrike/maps)
  • В файле необходимо перечислить все нестандартные файлы Вашей карты
RES-файл это обычная TXT-шка, так что можете править его, например, Блокнотом.
Первоначальный RES-файл можно получить в программе ResGen (www.unitedadmins.com).

Работа с программой ResGen

Программа ResGen составляет список файлов, используемых Вашей картой и записывает его в RES-файл.
Основное отличие версии 2.0 (beta 3) от 1.1 в том, что программа полностью переписана на C++ (вместо C), что должно в лучшую сторону сказаться на скорости работы (хотя и так было грех жаловаться :) Также появился параметр –e [путь к папке с модом], который позволяет проверять наличие всех необходимых карте ресурсов непосредственно в папке с игрой.
Программа работает из командной строки со следующими параметрами:
-f [имя_карты] — создать RES-файл для данной карты (можно использовать несколько раз)
-d [директория] — создать RES-файлы для карт из данной директории
-r [директория] — тоже самое, что и -d, только обрабатываются еще и поддиректории

Например, чтобы создать RES-файл для карты de_train, необходимо скопировать программу в папку с картой (cstrike/maps) и выполнить следующую команду ("Пуск/Выполнить..."):
resgen.exe -f de_train.bsp
t21resgen Остальные параметры не так важны, но все же перечислим их:
-h — помощь
-c — авторы
-w — copyright
-v — не показывать информацию по ходу создания файла
-s — не показывать строку статуса
-i — не показывать текущий каталог, пока ищутся карты
-j — не показывать найденные ресурсы во время составления листа ресурсов
-x [map] — не обрабатывать эту карту (используйте вместе с: -d или -r)
-o — перезаписывать файлы с одинаковыми именами
-l — не конвертировать записи внутри файла в маленькие символы
-e [путь к моду] — проверять НАЛИЧИЕ ресурсов
-p — не проверять наличие ресурсов в PAK-файлах
-a [filename] — добавить в RES-файл информацию из RFA-файла
-k — не требует нажатия кнопки между составлением нескольких RES-файлов





Редактируем созданный RES-файл

ResGen анализирует BSP-файл карты, поэтому некоторые нужные файлы (вэйпоинты для ботов, картинку overview) в список внести не может (т.к. просто не знает о них). Эти файлы мы пропишем самостоятельно.
Вот как выглядит обычный RES-файл:
  • // dm_aztec_maso2.res - created with RESGen v1.10
    // RESGen is made by Jeroen "ShadowLord" Bogers
    // URL: http://www.unitedadmins.com/mapRESGEN.asp
    // E-MAIL: [email protected]
    // Res creation date, GMT timezone (dd-mm-yyyy): 10-05-2002
    // .res entries:
    halflife.wad
    decals.wad
    liquids.wad
    gfx/env/trainyardup.tga
    gfx/env/trainyarddn.tga
    gfx/env/trainyardlf.tga
    gfx/env/trainyardrt.tga
    gfx/env/trainyardft.tga
    gfx/env/trainyardbk.tga
    sound/ambience/crickets.wav
    sound/ambience/flies.wav
    sound/ambience/waterfall1.wav
Все, что начинается с // двойного слэша — спам :) Это можно удалить, а можно и оставить.
После строки // .res entries начинается перечисление используемых картой WAD-файлов. ResGen записывает сюда все текстуры, что находит и даже стандартные, которые у всех есть. В этом нет ничего страшного, т.к. сервер сам определяет есть ли у игрока, например, стандартный halflife.wad и закачивать его не будет. Но в принципе эти записи не нужны и их можно удалить. Другое дело Ваши (нестандартные) WAD-файлы — вот их нужно сюда прописать.
Дальше идет перечисление картинок неба (обратите внимание, вместе с путями, куда их будет копировать сервер на клиентскую машину). Если небо стандартное, как на приведенном выше примере (trainyard), то указывать его нет необходимости.
Дальше перечисляются все звуки, модели и спрайты (опять же с путями). Среди них, наверняка, будет много стандартных. Их можно удалить, а можно оставить — ничего страшного.
Измененный RES-файл (новое выделено жирным)
  • // dm_aztec_maso2.res - created with RESGen v1.10
    // RESGen is made by Jeroen "ShadowLord" Bogers
    // URL: http://www.unitedadmins.com/mapRESGEN.asp
    // E-MAIL: [email protected]
    // Res creation date, GMT timezone (dd-mm-yyyy): 10-05-2002
    // .res entries:
    halflife.wad
    decals.wad
    liquids.wad
    gfx/env/trainyardup.tga
    gfx/env/trainyarddn.tga
    gfx/env/trainyardlf.tga
    gfx/env/trainyardrt.tga
    gfx/env/trainyardft.tga
    gfx/env/trainyardbk.tga
    sound/ambience/crickets.wav
    sound/ambience/flies.wav
    sound/ambience/waterfall1.wav
    overviews/dm_aztec_maso2.bmp
    overviews/dm_aztec_maso2.txt
    PODBot/WPTDefault/dm_aztec_maso2.pwf
    PODBot/WPTDefault/dm_aztec_maso2.pxp
    maps/dm_aztec_maso2.res




Cначала мы добавили 2 записи, касающиеся картинки overview, которую нужно закачивать в одноименную папку overviews. Затем мы указали пути к файлам с вэйпоинтами (стандартный путь для POD-ботов).
И наконец, мы указали путь к самому RES-файлу, чтобы и он передался клиенту. На тот случай, если игрок затем сам создаст сервер на Вашей карте, и к нему также будут подключаться игроки, ее не имеющие.
21.5

Как сделать вэйпоинты для ботов (PODBot)?

В этой статье мы попытаемся понятным языком и по возможности кратко объяснить, как создаются вэйпоинты для ботов, а именно для наиболее популярного CS-бота PODBot.

Что такое вэйпоинты?

Для начала определимся, что же такое "вэйпоинты"?
Вэйпоинты (от англ. waypoints) — это некие вертикальные разноцветные палочки, расставленные по карте. Как только их не называют: и ВИНпоинт, и ВЕНТпоинт, но самый прикол, что доводилось слышать — это ВАЙТпоинт :))))))) ...белая точка, мдеее. Теперь Вы точно знаете правильное название.
Так вот этими самыми палочками пользуются боты для навигации (передвижения) по карте. Когда Вы играете дома с ботами эти палочки не видны, однако они существуют :) Не будь вэйпоинтов, боты напарывались бы на стенки, как слепые котята, и ползали бы вдоль них, не зная, что им делать.
Существует несколько типов "палочек", которые различаются цветом и действием на бота. Давайте посмотрим как выглядит обычный вэйпоинт для PODBot:
Изображение обычного вэйпоинта (цвет: ярко-зеленый)
Обычный вэйпоинт (ярко-зеленый)
Обычный вэйпоинт окрашен в ярко-зеленый цвет. Он является простым указателем для бота. Когда бот подбегает к такому вэйпоинту, он начинает искать следующий вэйпоинт, а когда находит — бежит к нему, таким образом бот передвигается по карте.
Из этого следует, что обычные вэйпоинты необходимо размещать практически во всех доступных местах карты (т.е. во всех проходах, комнатах, на улице и т.д.). Вэйпоинты необходимо расставлять довольно близко друг к другу (приблизительно также, как это показано на рисунке выше).
Создаем первый вэйпоинт
Итак, Вы установили PODBot'а и создали свой сервер на какой-нибудь карте, для которой пока что нет вэйпоинтов. Выдвиньте консоль и напишите в ней:
  • waypoint on
    waypoint add
На экране появится вот такое меню:
Выбор типа вэйпоинта
Выбор типа вэйпоинта
Нажмите цифру 1, чтобы создать простой вэйпоинт ярко-зеленого цвета. В момент создания Вы услышите характерный звук. Первый вэйпоинт создан, и создался он именно в том месте, где Вы находились в момент ввода команды.
Однако просто отдельные вэйпоинты работать не будут. Их необходимо соединить друг с другом, чтобы бот знал точное направление до следующего вэйпоинта. Пока что не обращайте внимания на синие полоски, об этом поговорим чуть ниже.
Типы соединений между вэйпоинтами
Типы соединений между вэйпоинтами
Соединие между вэйпоинтами может быть одинарным и двойным. Одинарное соединение обозначается белой полоской, которая тянется от одного вэйпоинта до другого. Одинарное соединение означает, что бот сможет пройти от вэйпоинта-А до вэйпоинта-Б, но не сможет пройти в обратном направлении (т.к. нет обратной связи).
Двойное (двустороннее) соединение обозначается желтой полоской. При таком соединении бот может свободно путешествовать от одного вэйпоинта к другому и обратно. Обычно последовательно идущие вэйпоинты соединяют двусторонней связью (желтой полоской), а белая применяется лишь в исключительных случаях.
Информация о вэйпоинте
Если Вы подойдете достаточно близко к вэйпоинту, то в верхнем левом углу экрана увидите бегущие цифры. Вот такие:
Информация о текущем вэйпоинте
Информация о текущем вэйпоинте
Здесь главным параметром является порядковый номер вэйпоинта. На рисунке это номер 250, т.е. вэйпоинт, рядом с которым Вы сейчас стоите, имеет порядковый номер 250.
Радиус вэйпоинта пишется в конце строки, после слова Radius. На картинке ниже изображен обычный зеленый вэйпоинт с радиусом 96 юнитов (радиус измеряется в юнитах — виртуальной величине, характерезующей размер объекта в игре).
Вэйпоинты имеют радиус действия
Вэйпоинты имеют радиус действия
Как видите, радиус вэйпоинта наглядно изображается в виде ярко-синих палочек, идущих из центра вэйпоинта и расположенных по кругу.
Чем длиннее эти палочки, тем больше радиус (радиус действия) вэйпоинта. Рекомендуется увеличивать радиус вэйпоинта на открытых пространствах и существенно уменьшать в дверных проемах, узких корридорах и на углах. Если всем вэйпоинтам придать радиус равный 0, то движения ботов будут довольно "угловатыми", т.е. боты будут четко бежать от палочки к палочке, натыкаться друг на друга.
*** Итак, подведем небольшой итог. Мы знаем, что:
  • вэйпоинты вставляются на карту командой waypoint add
    обычные вэйпоинты необходимо размещать во всех проходах, комнатах и т.п.
    расположенные рядом вэйпоинты необходимо соединять желтой полоской
    после простановки вэйпоинтов необходимо правильно подобрать радиусы
Несколько полезных консольных команд
autowaypoint on | off — включает/выключает автоматическое расставление вэйпоинтов, когда Вы просто бегаете по карте. Это очень полезная функция, которую однако необходимо использовать довольно аккуратно (об этом чуть ниже).
pathwaypoint on | off — включает/выключает отображение соединительных полосок (белых и желтых), радиусов, флагов. Данную команду рекомендуется всегда ставить в on.
Другие типы вэйпоинтов
К сожалению, только простыми вэйпоинтами обойтись не удастся. Боты настолько глупые, что не могут сами определить в каком месте необходимо закладывать бомбу, куда нужно отводить заложников, в каких местах следует покемперить, где можно воспользоваться вертикальной лестницей и т.д.
Для всех этих случаев предусмотрены специальные вэйпоинты, которые мы сейчас и рассмотрим.
Вэйпоинты для вертикальных лестниц (Ladder Waypoint)
Вэйпоинты для вертикальных лестниц, таких как на рисунке ниже, всегда необходимо создавать вручную и при этом ставить команду autowaypoint off.
Изображение лестничного вэйпоинта (цвет: фиолетовый)
Вэйпоинт для вертикальных лестниц (фиолетовый)
"Лестничный" вэйпоинт фиолетового цвета. Один из вэйпоинтов необходимо размещать у самого начала лестницы, второй на ее окончании. Если лестница довольно длинная (например, как на cs_assault), то могут понадобиться дополнительные (промежуточные) "лестничные" вэйпоинты.
"Лестничные" вэйпоинты вставляются через команду waypoint add. Из уже знакомого нам меню необходимо выбрать пункт 4: Ladder Waypoint.
Так как команда autowaypoint установлена в значение off (а это необходимо сделать при создании таких вэйпоинтов), то связи между вэйпоинтами не будет. Ее необходимо создать вручную. Для этого:
  • подойдите к одному из вэйпоинтов и запомните его порядковый номер, например, 30
    перейдите к другому лестничному вэйпоинту и также запомните его номер, например, 31
    теперь, стоя на 31 вэйпоинте, введите команду pathwaypoint add 30
    перейдите обратно к 30 вэйпоинту и введите pathwaypoint add 31
Таким образом, между двумя лестничными вэйпоинтами возникнет двойная связь (желтая полоска, см. рис. ниже), а это означает, что боты смогут ползать по лестнице в обоих направлениях. Естественно не забудьте соединить лестничные вэйпоинты с расположенными рядом обычными вэйпоинтами, чтобы боты могли добраться до лестницы.
Связь между лестничными вэйпоинтами создается вручную
Связь между лестничными вэйпоинтами создается вручную
Кемперский вэйпоинт (Camper Waypoint)
Кемперский вэйпоинт также вставляется на карту командой waypoint add, в меню выбирается пункт 6: Camp Waypoint Start
Изображение кемперского вэйпоинта (цвет: светло-голубой)
Кемперский вэйпоинт (светло-голубой)
Думаем понятно для чего нужен этот тип вэйпоинтов — для указания ботам мест, в которых необходимо задержаться на некоторое время и покемперить.
Здесь есть некоторая тонкость. В меню существует два пункта, а именно 6: Camp Waypoint Start и 7: Camp Waypoint End. Так вот, как надо правильно размещать кемперский вэйпоинт? Вы становитесь на кемперскую позицию и поворачиваетесь в начальное положение, куда должен смотреть кемперящий бот в начале. Выбираете пункт 6. Затем поворачиваетесь и останавливаете прицел в конечном кемперском положении и на этот раз выбираете пункт 7.
Таким образом, вблизи кемперский вэйпоинт будет выглядеть, как палочка с двумя разведенными под некоторым углом красными полосками. Эти полоски и обозначают направление взгляда бота при кемперстве в этом месте.
Направление кемперского вэйпоинта
Направление кемперского вэйпоинта (красные полоски)
Следует заметить, что есть возможность указать какая из команд может использовать каждый конкретный кемперский вэйпоинт. Например, можно сделать чтобы одним кемперским вэйпоинтом пользовались только контры, а другим только террористы. Это выставляется флагами (об этом чуть позже). Различить террорский и контровский кемперские вэйпоинты можно по цвету. Обычный кемперский вэйпоинт (которым могут пользоваться боты обеих команд) окрашен светло-голубым цветом.
Если Вы хотите, чтобы бот во время своего кемперства сидел на корточках, просто присядьте во время создания вэйпоинта. В итоге вэйпоинт будет иметь половину своей обычной высоты. Это же правило можно применить при создании и других типов вэйпоинтов.
Вэйпоинт для прыжка (Jump Waypoint)
На невысокие препятсвия (небольшие бортики) боты способны забираться самостоятельно. Для более высоких преград необходимо создавать специальный "прыжковый" вэйпоинт. Давайте посмотрим как это делается.
Предположим нам хотелось бы, что бы боты сразу спрыгивали в воду в следующем месте (см. рис):
Направление прыжка
Направление прыжка показано стрелкой
Для этого необходимо создать "прыжковый" вэйпоинт. Встаем на верхнюю площадку (там, где начинается желтая стрелка) и вводим команду waypoint add, выбираем пункт 9: More Types..., затем пункт 1: Jump Waypoint.
Становимся на верхнюю площадку и выбираем прыжковый вэйпоинт
Выбираем прыжковый вэйпоинт
На экране появится надпись: Observation on! (см. рис. выше). Это означает, что в данный момент действия игрока отслеживаются. Разбегаемся и прыгаем вниз в воду. В том месте откуда мы оттолкнулись и туда, куда прилетели, будет создано по одному вэйпоинту. При этом от верхнего к нижнему будет тянуться тонкая красная полоска, означающая, что в данном месте находится прыжковый вэйпоинт. Заметьте, что красная полоска соединяет вэйпоинты лишь в одном направлении (в данном случае сверху-вниз).
На прыжковый тип вэйпоинта указывает красная соединительная полоска
Красная полоса указывает на прыжковый тип вэйпоинта
Таким образом создаются вэйпоинты для запрыгивания на ящики, перепрыгивания бортиков и т.п. Если необходимо, чтобы бот во время прыжка присел (т.е. выполнил более длинный прыжок) — присядьте во время прыжка.
Ключевые (стратегические) вэйпоинты
На рисунке ниже изображены ключевые вэйпоинты для террористов (красные) и для контров (синие). Называются эти вэйпоинты Terrorist Important Waypoint и Counter Terrorist Important Waypoint.
Ключевые (стратегические) вэйпоинты для обеих команд
Ключевые (стратегические) вэйпоинты
Вставляются они точно также, как и все остальные вэйпоинты — через команду waypoint add.
Данные вэйпоинты необходимо размещать около стратегических мест карты (т.е. около мест закладки бомбы и мест нахождения заложников). Причем на DE-картах, на точках закладки бомбы, рекомендуется устанавливать больше контровских (синих) вэйпоинтов, а на CS-картах возле мест нахождения заложников — больше стратегических вэйпоинтов для террористов. Например, на DE-карте, в точке закладки бомбы можно расположить 4-5 контровских и 2 террорских вэйпоинта.
Goal вэйпоинты
Goal переводится как "цель, задание". Без данного типа вэйпоинтов боты не смогут поставить бомбу или отвести заложников, поэтому на каждой карте необходимо создать от одного до нескольких Goal вэйпоинтов.
Goal вэйпоинт
Goal вэйпоинт (фиолетовый)
Установите по несколько Goal вэйпоинтов на каждой из точек закладки бомбы. Если точек две, то можно установить, например, по 3 вэйпоинта на каждую. На CS-картах Goal вэйпоинты необходимо ставить в тех местах, где находятся заложники.
Вэйпоинты для мест спасения заложников (Rescue Waypoint)
Вэйпоинты для мест спасения заложников
Вэйпоинты для мест спасения заложников (белый)
Данный тип вэйпоинтов устанвливается в местах, куда боты должны отводить спасенных заложников. Обычно хватает одного вэйпоинта на одно место спасения. Например, на cs_italy только одно место спасения заложников — на базе контров, поэтому достаточно разместить один Rescue Waypoint.

Полезные советы

Теперь хотелось бы дать Вам несколько полезных советов, чтобы Вы меньше делали ошибок при создании вэйпоинтов.
Первый совет касается команды autowaypoint on. Данная команда, напомню, задействует функцию автоматической расстановки вэйпоинтов, когда Вы просто бегаете по карте. Так вот, советую отключать данную функцию при создании вэйпоинтов на вертикальных лестницах (об этом уже говорилось выше), на крутых спусках и подъемах (см. рис. ниже).
Создание вэйпоинтов на крутых лестницах
Создание вэйпоинтов на крутых лестницах
Предположим у нас на карте есть довольно крутая лестница, по которой проходит один из путей ботов. После того как Вы пройдете по такой лестнице с включенной командой autowaypoint on, не поленитесь и проверьте все ли связывающие линии — желтые (т.е. везде ли имеется двусторонняя связь). Если в каких-то местах связь отсутствует (а это вполне возможно) — добавьте ее.
Ниже на картинке представлен весьма распространенный случай, когда часть вэйпоинтов соединена двойной связью, часть одинарной (белой), а часть вообще не соединена! Все это — последствия использования autowaypoint on на крутых, слишком крутых :) лестницах. Выход один — необходимо вручную добавить недостающие связи.
Отсутствие связи между вэйпоинтами - последствия использования autowaypoint on
Отсутствие связи между вэйпоинтами
Также не рекомендуется во время автоматического проставления вэйпоинтов подпрыгивать, т.е. необходимо передвигаться по карте, не отрываясь от земли (вообще возьмите себе за привычку не жать на пробел при включенной команде autowaypoint on). Если требуется создать прыжковый вэйпоинт — наберите предварительно autowaypoint off.
Вернемся к радиусам вэйпоинтов. При проложении пути через узкие дверные проемы, оконные рамы, ворота, корридоры и т.п. необходимо вручную откорректировать радиусы вэйпоинтов.
Радиус для каждого конкретного вэйпоинта устанвливается командой waypoint setradius x, где х — численное значение радиуса в юнитах. На рисунке ниже изображен довольно узкий проход между створками ворот, поэтому радиус близлежащих вэйпоинтов установлен равным 0.
Установка нулевого радиуса для вэйпоинтов в узких проходах
Установка нулевого радиуса для вэйпоинтов в узких проходах
Поменьше следует делать радиус и у угловых вэйпоинтов, для того, чтобы боты не застревали.
Ну, и в заключении кратко расскажу о флагах и сохранении вэйпоинтов.
Флаги устанавливаются для кемперских вэйпоинтов. Выбор флага осуществляется из меню по команде waypoint addflag. При помощи других команд (см. список ниже) Вы можете просмотреть установленные на каждом вэйпоинте флаги или удалить их.
Сохранение вэйпоинтов осуществляется командой waypoint save. При этом все расставленные вэйпоинты будут проверены на ошибки. В случае отсутствия таковых — вэйпоинты будут сохранены в каталог CSTRIKE/PODBot/WPTDefault под именем вашей карты, например, de_dust.pwf. Если же ошибки есть (например, вэйпоинт несоединенный ни с одним другим вызывает ошибку), то вэйпоинты сохранены не будут, до тех пор, пока все ошибки не будут устранены.
Если Вам ну никак не удается исправить все ошибки, чтобы не пропадать за зря потраченным усилиям, введите команду сохранения вэйпоинтов без проверки на ошибки waypoint save nocheck.

Консольные команды для создания вэйпоинтов

waypoint on | off — включает/выключает отображение вэйпоинтов на карте
waypoint on noclip — при создании вэйпоинтов можно бегать сквозь стенки
waypoint add — добавить вэйпоинт в то место, где стоит игрок (появится меню)
waypoint delete — удалить вэйпоинт, на котором стоит игрок
waypoint find x | -1 — показывает/выключает путь к определенному вэйпоинту (х — номер вэйпоинта)
waypoint addflag — добавить флаг к вэйпоинту
waypoint showflags — показывает установленные на данном вэйпоинте флаги
waypoint delflag — удаляет флаг с вэйпоинта
waypoint setradius x — вручную установить радиус действия вэйпоинта (х — значение)
waypoint stats — показывает общее число установленных на карте вэйпоинтов
waypoint check — проверка на ошибки (автоматически делается при сохранении)
wayzone calcall — устанавливает радиусы действия для всех вэйпоинтов (не используется, т.к. все это делается автоматически уже при создании вэйпоинта)
waypoint save — сохраняет вэйпоинты в PWF-файл (если нет ошибок)
waypoint save nocheck — сохраняет вэйпоинты в любом случае (даже с ошибками)
waypoint load — загружает PWF-файл с вэйпоинтами
autowaypoint on | off — включить/выключить автоматическое расставление вэйпоинтов, когда игрок бегает по карте по нужным местам
pathwaypoint on | off — включить/выключить показ соединительных линий между вэйпоинтами
pathwaypoint add x — соединяет линией вэйпоинт, на котором стоит игрок, с вэйпоинтом х (где х — номер другого вэйпоинта)
pathwaypoint delete x — удаляет линию, связывающую вэйпоинты (обратное предыдущему)
debuggoal x — заставляет ботов использовать вэйпоинт х, как предпочтительный для дальнейшего передвижения
21.6

Как сделать overview (вид сверху) для карты?

В этой статье мы расскажем, как создаются картинки с видом на карту сверху (overview).

Что такое Overview?

Начиная с CS 1.4, у игроков появилась возможность в режиме спектатора наблюдать за битвой на виде сверху. Эта функция осуществляется при помощи двух файлов, один из которых это картинка в формате BMP (разрешение 1024x768 и 256 цветов), а второй — это обычный текстовый файл, в котором записаны параметры отображения этой картинки.
И картинка и текстовый файл хранятся в директории cstrike/overviews, и они имеют имя карты, т.е. например, de_coolmap.bmp и de_coolmap.txt. Если для карты нет overview, то игроки видят лишь черное пространство с зелеными полосками.
Все что нам необходимо сделать, это сфотографировать карту сверху и составить небольшой файл с описанием. Для этого существуют специальные консольные команды.

Запускаем выделенный сервер и HLTV

  1. Запускаем CS и создаем сервер на необходимой карте. Только сервер необходимо сделать выделенным. Для этого в окне создания сервера, внизу нужно отметить флажок "dedicated". Запустится выделенный сервер.
  2. Запускаем HLTV (hltv.exe находится в папке Half-Life). Он должен самостоятельно присоединится к только что созданному выделенному серверу. Если этого не произошло, напишите в окошке HLTV: connect localhost, можно также указать порт, т.е. connect localhost:27015.
  3. После того, как HLTV присоединится к выделенному серверу, запускаем еще раз Counter-Strike с разрешением 1024x768 (проверьте в свойствах ярлыка, что у вас включена консоль, т.е. строка запуска выглядит так: hl.exe -game cstrike -console) и идем в "Play On LAN". В списке серверов находим HLTV и присоединяемся к нему, т.е. нажимаем "View Game".
  4. Присоединившись к игре, выдвигаем консоль (кнопка ~, ну вы знаете :) и пишем developer 1, hud_draw 0 и dev_overview 1. После ввода этих команд на вашем экране должна появится картинка с видом сверху на карту, а также в верху экрана должны бежать цифры.
developer 1 — включает режим разработчика, т.е. показывает доп. надписи на экране
hud_draw 0 — убирает с экрана все значки, чтобы ничего не мешало делать скриншот
dev_overview 1 — включает вид сверху

Делаем снимок карты

Делаем скриншот карты (по умолчанию F5). Но прежде чем Вы сделаете скриншот, желательно приблизить карту, как можно ближе и расположить ее по центру экрана. Передвигать карту можно, как обычно на клавиатуре, а приближать и удалять мышкой.
Установив наилучшее положение, запишите все параметры из бегущих строк на листочек (или сделайте скриншот). У Вас должно быть что вроде этого (см. рис. ниже).
t21overview0 Здесь следует остановится и рассказать немного подробнее. Дело в том, что некоторые части Вашей карты могут быть закрыты и не видны на виде сверху. Например, на такой "многоэтажной" карте, как de_aztec, одним скриншотом невозможно показать и верхний этаж, и воду. Приходится делать несколько скриншотов и затем совмещать их в 1 картинку.
Мы будем постепенно передвигать камеру вглубь карты, т.е. делать снимки карты как бы в разрезе. Для перемещения камеры вдоль карты по высоте есть специальные кнопки / и '. Понажимайте на эти кнопки и одновременно обратите внимание на параметр Zmin в бегущих цифрах вверху экрана — он будет меняться. Если подержать какую-нибудь кнопку подольше, то некоторые части карты, начиная с крыш домов, скал, заборов и т.п. будут постепенно скрываться, т.е. карта будет показываться в разрезе.
Прежде чем Вы сделаете скриншот напишите в консоли developer 0, чтобы убрать бегущие цифры с экрана. Изменяя параметр Zmin, сделайте необходимое количество скриншотов (обычно хватает 2-4) так, чтобы большинство закрытых помещений были показаны.

Редактирование скриншотов

Когда все необходимые скриншоты отсняты, можно выходить из CS и закрывать выделенный сервер вместе с HLTV. Скриншоты находятся в корневой директорий Half-Life'a. Теперь необходимо открыть их в графическом редакторе (Photoshop, PaintShop) и подправить палитру. Чтобы зеленые части на картинке были прозрачными при просмотре в игре, они должны быть зеленого цвета в формате R=0 G=255 B=0. Т.е. Вам необходимо прокрасить все невидимые части зеленым цветом, особенно это важно на границах карты. Рекомендуем использовать для закрашивания карандаш вместо кисточки, т.к. он рисует строго определенным цветом и не оставляет оттенков.
С "многоуровневыми" картами несколько сложнее. Вам потребуется умение вырезать части изображения и вставлять их в другое изображение. Выберите какую-нибудь картинку в качестве основной (подложки) и вставляйте в нее части других картинок, на которых изображены "внутренности" комнат, пещер, туннелей и т.д.
Когда картинка будет готова, ее необходимо перевести в 256 цветов. Меню "Image/Mode/Indexed color/Local (Selective)" укажите 256 цветов. Затем сохраните картинку как de_coolmap.bmp (естетсвенно с именем Вашей карты). Поместите эту картинку в папку cstrike/overviews. С картинкой закончили, теперь необходимо сделать файл с описанием ее отображения.

Создание текстового файла с описанием

Откройте любой файл из директории cstrike/overviews в Блокноте. В этот файл необходимо вписать параметры, которые Вы записали на листочек или сделали скриншот. На рисунке ниже видно какие параметры куда вписывать.
t21overview1 ORIGIN — это координаты оси вращения картинки. Обратите внимание, что третья цифра (обведена желтым) должна быть на единицу больше, чем параметр Zmax. Эту же цифру необходимо записать в строку HEIGHT. При таком значении кружочки, изображающие игроков, будут правильно отображаться. Иначе, желтая ножка, показывающая высоту, на которой находится игрок, может оказаться слишком короткой, и в этом случае кружок сольется с картинкой, что само по себе плохо.
Также не забудьте поменять название картинки на свое. Сохраните файл с именем вашей карты, например, de_coolmap.txt в директории cstrike/overviews.
На этом все. Запускайте CS и наслаждайтесь картинкой сверху.