Counter-Strike 1.6
Вход
Как сделать вэйпоинты для ботов (PODBot)?
Taraizer — 15 Май, 2009 - 19:08
В этой статье я попытаюсь понятным языком и по возможности кратко объяснить, как создаются вэйпоинты для ботов, а именно для наиболее популярного КС-бота 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 вэйпоинтов на каждой из точек закладки бомбы. Если точек две, то можно установить, например, по 3 вэйпоинта на каждую. На CS-картах Goal вэйпоинты необходимо ставить в тех местах, где находятся заложники.
Вэйпоинты для мест спасения заложников (Rescue Waypoint)
Вэйпоинты для мест спасения заложников (белый)
Данный тип вэйпоинтов устанвливается в местах, куда боты должны отводить спасенных заложников. Обычно хватает одного вэйпоинта на одно место спасения. Например, на cs_italy только одно место спасения заложников - на базе контров, поэтому достаточно разместить один Rescue Waypoint.
НЕКОТОРЫЕ ПОЛЕЗНЫЕ СОВЕТЫ
Теперь хотелось бы дать Вам несколько полезных советов, чтобы Вы меньше делали ошибок при создании вэйпоинтов.
Первый совет касается команды 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 — заставляет ботов использовать вэйпоинт х, как предпочтительный для дальнейшего передвижения