Создание Waypoint'ов для PODBot 3.0 Что такое вейпоинт?
Вейпоинт (waypoint) - это специальный файл, объясняющий боту где он может бегать, а где нет, а также заставляет бота в определенном месте карты совершать определенное действие.
Нет общих вейпоинтов для всех карт, для каждой карты необходимо создавать отдельный вейпоинт. Насколько мне известно, пока нет ни одного бота, который может нормально ориентироваться на карте без вейпоинтов вообще.
Вопрос: То есть можно запрограмировать движение ботов, например, заставить ботов ходить только на B?
Фактически можно, но боты могут "заблудиться". Смотрите пункт 7 распространенных ошибок "Вообще нет вейпоинтов".
Что нужно чтобы создать вейпоинт?
Для создания вейпоинта нам не понадобится никаких дополнительных программ кроме подбота и собственно игры counter-strike.
А как он выглядит то?
Во время игры разумеется никак, невидимые они, а во время редактирования выглядят как разноцветные вертикальные линии, похожие на молнии. Каждый тип вейпоинтов имеет свой цвет.
Файл вейпоинта называется точно так же как и файл карты, но имеет расширение .pwf. Например вейпоинт для карты de_dust2 называется de_dust2.pwf. Все вейпоинты по умолчанию находятся в папке ..\cstrike\addons\podbot\wptdefault\ и загружаются автоматически при загрузке карты, если вейпоинт для карты отсутствует боты не появятся. Вот в чем причина того, что боты не играют на новой карте, а не в глюке подбота.
Процесс создания.
Можно создавать с помощью консольных команд, но мы будем пользоваться меню. Так удобнее и практичнее. Чтобы попасть в меню создания/редактирования вейпоинтов (консольная команда pb wpmenu), нужна авторизация админа, как и для меню добавления/кика ботов (консольная команда pb menu) - то есть ввести тот пароль, что прописан в конфиге cstrike\addons\podbot\podbot.cfg.
Смотрим строчки:
pb_passwordkey "_adminpb" - тэг
pb_password "mjbot" - пароль
Значит авторизация в консоли:
setinfo _adminpb "mjbot"
В общем авторизуемся и входим в меню (лучше прописать авторизацию в вашем конфиге):
pb wpmenu
.
Выглядит оно как на рисунке слева. Видим команды добавления/удаления вейпоинтов, но тупо создавать по-одному, и займет много времени. Поэтому заходим в Options (Настройки) и включаем AutoWP ON (Автоматическое создание по мере движения), меню опций показано на рисунке справа.
Кстати, чтобы перейти в любой пункт меню, можно использовать команду menuselect X, где X - выбранный пункт. Удобно для биндов, например bind F1 "pb wpmenu;menuselect 1;menuselect 1;" - добавление простого вейпоинта на клавишу F1.
Начинай бегать по карте НЕ используя лестницы и НЕ используя прыжок. Только бег по тем местам на карте, где можно пробежать без использования вышеупомянутого. (Если будете запрыгивать на различные ящики, придется потом соеденять вейпоинты через меню). Как только вся карта покроется обычными вейпоинтами, можно начинать расставлять специальные вейпоинты. Отключим автоматическую установку вейпоинтов и после этого установим вейпоинты на цели миссии.
Goal Waypoint.
На DE_ картах.
Бежим к каждому месту закладки бомбы и на месте закладки, заходим в меню добавления (Add), в котором выбираем пункт "Goal Waypoint".
На CS_ картах.
"Goal Waypoint" ставится на месте спасения заложников. Плюс к этому необходимо на месте спасения, на каждом если их много, также поставить вейпоинт под названием "Rescue Waypoint", чтобы боты знали куда выводить заложников.
На AS_ картах.
"Goal Waypoint" ставится в месте спасения ViP'а.
Important Waypoint.
Important Waypoint (важный вейпоинт) бывает двух типов.
Counter-Terrorist Important Waypoint и Terrorist Important Waypoint
Counter-Terrorist Important Waypoint - это вейпоинт важный более для контертеррористов чем для террористов, т.е. такие места на карте к которым боты конты должны бежать прежде всего, а Terrorist Important Waypoint - это соответственно вейпоинт важный более для террористов чем для контертеррористов. Но это не означает что бот использует вейпоинт важный только для его команды, нет он использует все вейпоинты, но в зависимости от типа карты какие то вейпоинты он использует больше чем другие. На CS_ картах важные вейпоинты - это конечно заложники, на DE_ картах это подступы к закладке и закладка. И на всех картах это места к которым боты обязательно должны подбежать, стратегически важные точки. Не нужно утыкивать всю карту важными вейпоинтами достаточно 2 - 3 вейпоинтов в самых важных точках карты, по одному вейпоинту на каждую точку. Я уже говорил что предпочтение ботов к важным вейпоинтам зависит от типа карты. На DE_ карте боты-контры в основном бегут к важным для них вейпоинтам (Counter-Terrorist Important Waypoint) и иногда к вейпоинтам важным для терроров (Terrorist Important Waypoint ), террористы же бегают по всем важным вейпоинтам с одинаковым интересом, на CS_ же картах все с точностью наоборот, террористы бегают в основном к важным для них вейпоинтам, а контрам по барабану куда бежать прежде всего.
Ladder Waypoint.
Ladder Waypoint - это спец вейпоинт которым обозначаются начало и конец лестницы. Помните я говорил что с автовейпоинтом нельзя прыгать и лазить по лестницам, так вот это потому что для лестниц существует свой собственный тип вейпоинтов. Ставим один Ladder Waypoint в самом низу лестницы, в тот момент когда вы уже зацепились за лестницу, но еще не начали по ней подниматься и один наверху, на таком уровне, когда вы еще совсем немного видите то пространство которое открывается наверху лестницы (например крыша). Мы поставили лестничные вейпоинты, но работа с лестницами на этом пока не завершена. Идем далее.
Jump Waypoint (Вэйпоинт для прыжка)
На невысокие препятсвия (небольшие бортики) боты способны забираться самостоятельно. Для более высоких преград необходимо создавать специальный «прыжковый» вэйпоинт. Давайте посмотрим как это делается.
Предположим нам хотелось бы, что бы боты сразу спрыгивали в воду в следующем месте (см. рис):
Направление прыжка показано стрелкой
Для этого необходимо создать «прыжковый» вэйпоинт. Встаем на верхнюю площадку (там, где начинается желтая стрелка) и выбираем в добавлении Jump Waypoint.
Выбираем прыжковый вэйпоинт
На экране появится надпись: Observation on! (см. рис. выше). Это означает, что в данный момент действия игрока отслеживаются. Разбегаемся и прыгаем вниз в воду. В том месте откуда мы оттолкнулись и туда, куда прилетели, будет создано по одному вэйпоинту. При этом от верхнего к нижнему будет тянуться тонкая красная полоска, означающая, что в данном месте находится прыжковый вэйпоинт. Заметьте, что красная полоска соединяет вэйпоинты лишь в одном направлении (в данном случае сверху-вниз).
Красная полоса указывает на прыжковый тип вэйпоинта
Таким образом создаются вэйпоинты для запрыгивания на ящики, перепрыгивания бортиков и т.п. Если необходимо, чтобы бот во время прыжка присел (т.е. выполнил более длинный прыжок) — присядьте во время прыжка.
Прокладываем пути к вейпоинтам.
Когда мы пользуемся Autowaypoint, то как ты уже заметил вейпоинты соединяются между собой горизонтальными линиями - это и есть пути, по ним боты бегают от вейпоинта к вейпоинту, но когда мы ставим лестничные вейпоинты автоматически они не соединяются. Соединить их придется вручную. Итак мы поставили 2 Ladder Waypoint'а но от них не отходят горизонтальные линии как от других вейпоинтов, они не соединены между собой, в чем дело? Между ними не прокладываются пути по умолчанию или прокладываются только односторонние пути.
Что нам нужно? Нужно чтобы между двумя в нашем случае лестничными вейпоинтами были двусторонние пути и оба вейпоинта были связаны с обычными вейпоинтами так же двусторонними путями.
В чем отличае между путями? Односторонний путь говорит боту что через эти два вейпоинта можно пройти только в одном направлении. Отображается это как видно из скриншота белой линией. т.е. если вы видите белую линию то двигаться можно только от ближайшего вейпоинта до того к которому эта белая линия идет, но никогда наоборот. От того вейпоинта к которому эта белая линия идет вы не увидите никаких линий идущих в обратном направлении. Применяются эти односторонние пути например для определения мест на карте с которых можно спрыгнуть, но нельзя запрыгнуть обратно. Двусторонние же пути - это самые обычные пути двигаемся куда угодно, в обоих направлениях. Обозначается как видно из скриншота желтыми линиями. Для лестницы нам нужны двусторонние пути так как по лестнице мы можем и подниматься и спускаться.
Для этого подходим к ближайшему от лестницы вейпоинту, наводим курсором на него, если он увеличился, это значит что работаем с ним. Выбираем в меню Add path (Добавить путь), Bidirect (Двухсторонний). Между начальным и конечным вейпоинтами лестницы должен быть тоже двухсторонний путь. Между верхним (конечным) лестничным вейпоинтом и (например) крышей на крыше вейпоинт так же должен располагаться строго перпендикулярно верхнему лестничному вейпоинту, иначе боты будут падать с крыши или с лестницы при попытке выбраться на крышу.
Camper Waypoint
Теперь можно расставить камперские точки. Конечно ты уже оббегал всю карту вдоль и поперек и знаешь где лучше всего снайперить. Так вот, в каждой этой точке нужно поставить камп. вейпоинты. Подбегаем направляем прицел в то место откуда вероятнее всего побежит противник и в меню добавления выбираем "Campstart Waypoint", затем перемещаем прицел в место где оканчивается зона видимости вероятного противника и пользуясь предыдущей консольной командой, выбираем "Campend Waypoint". Если нужно чтобы боты стреляли с данной точки в присяде, то просто при установке этих вейпоинтов ты сам должен присесть и не вставать пока не выберешь тип вейпоинта из меню.
Завершение, сохранение и тестирование
Основные вейпоинты расставили, теперь можно проверить корректность вейпоитов (Check). Если все пути правильные, и спец. вейпоинты присутсвуют, то ошибок не будет. Если есть не связные вейпоинты, появится ошибка с пояснением и номером вейпоинта.
Если все нормально - сохраняем (Save). На некоторых картах, где нет целей миссии (допустим, тренировочные aim_ карты) ошибку на то что не создан Goal waypoint можно игнорировать, и сохранить так. Ну или создайте в любом месте. Если после ввода команды появилась надпись Waypoint saved, значит все впорядке, ошибок нет, если же другая, ищем несодиненные вейпоинты командой waypoint find x, где x - это номер несоединенного вейпоинта и исправляем. Предположим что все в порядке и вейпоинт сохранился. Можно начинать его тестировать.
Отключаем режим редактирования вейпоинтов WP on/off, перезапускаем карту, загружаем ботов (добавляем - pb add 50 ну или заполняем - Fill server) и смотрим в режиме спектатора за их игрой. В каких местах они не могут пройти, в каких падают вниз, в каких не могут преодолеть препятствие.
Вот мы и подошли к наиболее распространенным ошибкам которые могут возникнуть в процессе создания вейпоинта.
Распространенные ошибки создания вейпоинтов
1. Ненужный вейпоинт.
Как видно на картинке, создатель поставил вейпоинт в окне, для того чтобы помоч боту через него пробраться - это ошибка. Боту не нужна допольнительная помощь, если он видит вейпоинт находящийся за препятствием, он найдет способ, как до него добраться. Вейпоинт в окне нужно удалить командой waypoint delete, предварительно встав на него (вейпоинт) и соединить вейпоинт перед окном напрямую с вейпоинтом за окном.
2. Неправильный радиус вейпоинта
Смотрите какой здоровый радиус действия, на таком узеньком мостике. Если бот попытается пройти по мосту он 100% упадет вниз и переломает ноги, т.к. будет думать что в пространстве по бокам от моста можно спокойно ходить. Исправляется ошибка изменением радиуса действия вейпоинта на 0 (ноль), командой waypoint setradius 0 и изменением положения вейпоинтов таким образом, чтобы бот заходил на мостик строго прямо, а не под углом к краю пропасти. Очень часто эта ошибка втречается также в местах где боту нужно пройти сквозь дверь. Он застревает и прыгает уткнувшись в косяк.
3. Не соединенные между собой и плохие лестничные вейпоинты.
Про создание лестничного вейпоинта я уже рассказывал выше. Вот пример отвратительно сделанного лестничного вейпоинта. Нормальный вейпоинт расположен к лестничному не под прямым углом, но еще хуже то, что лестничный вейпоинт не соединен с верхним обычным. Посмотрим на эту картину со стороны верхнего обычного вейпоинта.
Так и есть, даже еще хуже, у нас здесь снова соединение с лестничным вейпоинтом под углом явно не в 90 градусов и одностороннее соединение, да еще и с двумя вейпоинтами, лестничный и нижним. Ужас, бот полюбому сломает ноги или разобъется при попытке пройти этим вейпоинтом сверху, или залезет на лестницу и начнет крутиться на месте при попытке пройти этим вейпоинтом снизу.
Удаляем верхний и нижний вейпоинты и делаем нормальный лестничный вейпоинт. Способ описывается выше в параграфе Ladder Waypoint.
4. Неправильно расставленные важные вейпоинты.
Смотрите как мирно сосуществуют важный для терроров, важный для контров и обычный вейпоинты в одном месте. Нет не мирно! На данной карте, cs_galleon, карта - спасение заложников, терроры появляются на корабле, а контры появляются гдето в другом месте за пределами корабля. Установка выжных вейпоинтов в одном месте превращает весь геймплей на карте в десматч, если это можно вообще назвать геймплеем. Необходимо удалить выжный для контров вейпоинт и пересоздать его в месте появления контертеррористов или рядом с ним, в месте спасения заложников. К тому же важный для контров вейпоинт находится слишком близко к обычному вейпоинту. Подробнее об этом ниже.
5. Неправильные пути к лестничному вейпоинту
Норамальный вейпоинт присоединен к лестничному на картинке под таким углом что боты скорее всего будут пытаться поднятся по лестнице с обратной стороны или упрутся в лестницу с боку и застрянут. Кроме того обычный вейпоинт справа тоже соединен с лестничным (на картинке этого не видно). 100% боты застрянут на этой лестнице, т.к. они не знают с какой стороны на нее нужно правильно взбираться. Чтобы исправить, необходимо удалить путь до лестничного вейпоинта командой pathwaypoint delete x, где x - это номер лестничного вейпоинта, от всех вейпоинтов которые расположены не с той стороны и чей угол больше или меньше чем 90 градусом относительно лестницы. На картинке необходимо поставить обычный вейпоинт слева от лестницы и соединить его двусторонним путем с лестничным.
6. Вейпоинты расположены слишком близко друг к другу
На картинке вейпоинты расположены слишком близко друг к другу, так делать не нужно, так как во-первых большое количество вейпоинтов на карте замедлит бота, а во-вторых может привести к ошибке в навигации бота. Попытаюсь объяснить:
внутри DLL'ки бота все вейпоинты имеют жесткие радиусы, находясь внутри которогых бот считает что он достиг данного вейпоинта. На данной картинке изображены два обычных вейпоинта их радиус "посещения" ровняется 50 юнитам. Для наглядного примера встаньте на один из нормальных вейпоинтов и измените его радиус на 50 командой waypoint setradius 50, теперь можно наглядно видеть, что бот будет думать что он добрался до этого вейпоинта, если окажется в таком радиусе. На нашей же картинке расстояние между вейпоинтами составляет примерно 16 юнитов и бот добежав только до одного вейпоинта будет думать, что он одновременно уже добежал и до второго. И что из этого? А то что два бота, бегущих друг за другом, застрянут в этом месте, сцепятся и будут прыгать на одном месте. Вы наверное видели такие моменты на некоторых картах. Так что избегайте подобного расположения вейпоинтов любой ценой. Не ставьте вейпоинты слишком близко друг к другу!
7. Вообще нет вейпоинтов (в опр. месте карты)
Глядя на картинку можно предположить, что вейтпоинтер думал: "Боты всеравно сюда не бегают, так что я не буду ставить здесь вейпоинты". Неверное рассуждение. Это правда боты не будут сюда бегать, так как они бегут к цели миссии обычно самым коротким путем, НО это только тогда, когда нет опасности для их жизни. Во время же боя, боты не используют вейпоинты для передвижения. Они используют специальное передаижение для боя (combat move). Так что бот легко может забежать на территорию не покрытую вейпоинтами во время боя и убив противника будут стоять не зная куда идти или прыгать судорожно ища выход из этой ловушки. Отсюда правило, покрывай простыми вейпоинтами всю поаерхность карты, а бот сам разберется будет он сюда бегать или нет.
Консольные команды для создания вэйпоинтов
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 — заставляет ботов использовать вэйпоинт х, как предпочтительный для дальнейшего передвижения
|
Сервера
Последний пост
el.MEJOR Team
Про сервачок
Нужно знать
Наши опросы
Партнеры
|