Перейти к содержимому

Редактирование графов

В отличие от людей, боты не могут видеть карту и анализировать то, что они видят. Если вы видите здание с дверью, вы можете подойти прямо к двери, открыть её и войти в здание. Боты не могут сделать это без посторонней помощи! Они могут видеть врагов и сражаться с ними или реагировать, если на них нападают. Эти способы поведения работают без какой-либо внешней помощи. Но для того, чтобы ориентироваться на карте и безопасно перемещаться по всем путям и переходам, им действительно нужна помощь. Им нужно что-то, что говорило бы им, куда они могут пойти, а куда нет. Им нужно что-то, что показывает им, где находится лестница или где цель миссии (зона побега/заложники/место закладки бомбы). Это делается с помощью узлов. Вы можете представить себе узлы, похожие на флаги на лыжной трассе. Каждый узел отмечает точку, куда могут идти боты. Если два из них связаны друг с другом, бот может переходить из одной точки в другую и обратно. Итак, когда вы расставляете узлы по карте, вы в основном размещаете целую сеть точек на карте и соединяете их таким образом, чтобы боты могли перемещаться из одной точки в другую. Все точки должны быть размещены в областях, доступных для игроков, и если вы хотите, чтобы ваши боты перемещались плавно и безопасно, вы также должны следить за соединениями. Если соединения проходят сквозь стены или над глубоким оврагом, ваши боты натыкаются на стены или падают насмерть.

Есть несколько типов узлов, которые можно использовать для обозначения целей на карте, зон спасения, хороших мест для кемпинга, лестниц и т.д. Существуют также различные типы соединений: односторонние или двусторонние, а также прыжковые соединения, которые заставляют бота прыгнуть с точки А до точки Б вместо того, чтобы идти или бежать туда. Мы вернёмся к этому позже.

Кроме того, вам не нужно беспокоиться о каждой мелочи. Редактор, поставляемый с этой версией бота, сделает за вас большую часть работы. Кроме того, он графический и простой в использовании (без навыков программирования или чего-либо ещё). Вы можете обнаружить, что создание узлов может быть очень увлекательным занятием, особенно когда увидите, как боты без проблем перемещаются по всей карте — и вы сделали это возможным!

Когда вы играете на карте с узлами, узлы, конечно, будут невидимы, чтобы они никоим образом не отвлекали вас.

Когда редактор графов активирован, вы увидите узлы в виде вертикальных полос примерно на высоте стоящего игрока. Цвет обычных узлов зелёный, но вы также можете видеть белые, фиолетовые, красные, синие и голубые узлы. Эти цвета указывают на особые узлы. Если вы видите узлы, которые намного меньше других, это узлы для приседания. Они заставят ботов приседать при приближении к ним. Такие узлы необходимы, чтобы вести ботов через вентиляцию или любые другие низкие и узкие проходы.

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

Редактор графов — это не отдельная программа, он включён в DLL бота (или .so, если вы используете Linux). Чтобы открыть его, создайте игру на локальном сервере, выберите карту, для которой вы хотите создать граф, и запустите игру как обычно. Как только вы окажетесь на карте, вы можете активировать режим редактирования из консоли, набрав yb graphmenu, или, если вы связали для него клавишу, просто нажмите эту клавишу.

Доступны следующие команды Graph:

Команда Описание
yb g on Включает отображение узлов
yb g off Выключает отображение узлов
yb g on auto Включает автоматическую расстановку узлов
yb g off auto Выключает автоматическую расстановку узлов
yb g on models Включает отображение моделей игроков на точках спавна
yb g off models Выключает отображение моделей игроков на точках спавна
yb g on noclip Включает редактирование узлов с noclip
yb g off noclip Выключает редактирование узлов с noclip
yb g add Добавляет узел в текущем местоположении игрока
yb g addbasic Добавляет основные узлы на карте
yb g cache Запоминает ближайший узел к игроку
yb g clean Очищает бесполезные путевые соединения
yb g delete Удаляет ближайший узел к игроку
yb g erase Удаляет файлы графов и опыта ботов
yb g flags Позволяет вручную добавлять/удалять флаги на узел
yb g setradius x Вручную настраивает радиус путевой зоны
yb g teleport x Телепортирует игрока к узлу с индексом x
yb g stats Показывает количество различных узлов
yb g fileinfo Показывает базовую информацию о файле графа
yb g adjust_height Изменяет высоту всех узлов графа
yb g check Проверяет правильность всех соединений узлов
yb g load Загружает узлы из файла графа
yb g save Сохраняет текущие узлы в файл
yb g save nocheck Сохраняет текущие узлы в файл без проверки
yb g upload Загружает созданный файл графа в базу данных
yb g menu Показывает меню редактора графов
yb g path_set_autopath Открывает меню для настройки автопути
yb g path_create Открывает меню создания путей
yb g path_delete Удаляет путь от указанного до ближайшего узла
yb g path_create_in Создаёт входящий путь от указанного до ближайшего узла
yb g path_create_out Создаёт исходящий путь от ближайшего до указанного узла
yb g path_create_both Создаёт двусторонний путь между узлами
yb g path_create_jump Создаёт прыжковый путь
yb g path_clean Очищает соединения всех типов с узла
yb g iterate_camp Позволяет переходить по всем точкам кемпинга
yb g acquire_editor Получает права на редактирование графа
yb g release_editor Снимает права на редактирование графа

Чтобы использовать команды graph, вам нужно использовать консоль. Нажмите клавишу ~, чтобы открыть консоль. Введите консольные команды, которые вы хотите, затем снова нажмите ~, чтобы вернуться в игру.

yb g delete удалит узел, ближайший к игроку. Узел ДОЛЖЕН быть в пределах 50 юнитов от игрока, чтобы его можно было удалить. Вам нужно будет встать достаточно близко к узлу, чтобы его можно было удалить. Это предотвратит случайное удаление узла на другой стороне комнаты. При удалении узла вы услышите звук, указывающий на то, что узел был удалён.

yb g save сохранит данные узлов в файл графа. Файл графа будет иметь то же имя, что и текущая карта, с расширением .graph. Файл будет сохранён в папку cstrike/addons/yapb/data/graph. Ваше текущее имя игрока будет сохранено как имя автора файла графа.

Вы также можете сохранить узлы в формате .pwf для старых версий YaPB или PODBot, введя в консоли yb g save old. Обратите внимание, что вы можете сохранять узлы в этом формате только тогда, когда количество узлов не превышает 1024.

yb g load удалит все узлы на текущей карте и загрузит их из файла графа. Это хороший способ “отменить” несколько узлов, которые вы создали, но не хотите сохранять. Невозможно “отменить” один узел. Вам нужно будет использовать команду yb g delete для удаления узлов по одному.

yb g on auto позволяет автоматически добавлять узлы, когда вы бегаете по карте. Узлы будут автоматически расставляться каждые 200 юнитов. Узел не будет поставлен, если уже есть другой узел в пределах 200 юнитов от вашей текущей позиции. Поэтому, если вы хотите разместить много узлов достаточно близко друг к другу, возможно, вам придётся вручную разместить некоторые узлы, используя команду yb g add.

При использовании автоматической расстановки узлов старайтесь оставаться в центре узких коридоров и всегда размещайте узлы с ОБЕИХ сторон двери. Вам может потребоваться разместить некоторые из этих узлов вручную, так как такие места, как перекрёстки коридоров и дверные проходы, обычно не попадают точно в то место, где автоматическая расстановка хотела бы разместить узел.

Когда вы приближаетесь к узлу, жёлтые, белые или зелёные линии будут нарисованы ко всем другим узлам, которые бот будет считать “достижимыми”. Если соединение двустороннее, линия отображается жёлтым цветом, а односторонние соединения отображаются белым. Эти “достижимые” узлы будут узлами, которые чётко видны из текущего местоположения. Определённые узлы не будут считаться достижимыми по той или иной причине. Например, узлы, висящие в воздухе над ботом, не будут считаться достижимыми, поскольку бот не может прыгнуть достаточно высоко, чтобы добраться до них. Также не будут считаться достижимыми узлы, расположенные слишком далеко от текущего местоположения.

Боты будут переходить от одного узла к другому ТОЛЬКО, если между ними есть путь. Заведите привычку проверять, существуют ли ДВУХСТОРОННИЕ ПУТИ между узлами.

yb g path_create позволяет вручную назначить путь между двумя узлами. Это необходимо в некоторых случаях, когда узлы заблокированы, и вы хотите создать путь между этими узлами.

Номер узла, на котором вы стоите, будет показан в верхнем углу вашего HUD. Например, чтобы вручную назначить путь между узлами #250 и 251, вы сначала должны встать рядом с узлом #250, затем использовать yb g cache для кэширования узла #250, затем перейти к узлу #251 и ввести yb g path_create, чтобы открыть меню и создать необходимое путевое соединение.

yb g path_delete похож на команду “create”, за исключением того, что он удаляет путь от начальной точки до конечной. Это необходимо в некоторых случаях, когда у вас может быть дверь, которая открывается с одной стороны.

yb g acquire_editor позволяет редактировать граф на выделенном сервере. Прежде чем вы сможете использовать это, на сервере должны быть настроены квары yb_password и yb_password_key.

По умолчанию, если YaPB находит граф в официальной базе для вашей карты, он автоматически скачает его в папку addons/yapb/data/graph.

Если вы хотите установить граф вручную, положите его в папку *gamedir*/addons/yapb/data/graph.

Или если вы хотите установить вэйпоинт старого формата (PWF) вручную, положите его в папку *gamedir*/addons/yapb/data/pwf.

Также вы можете установить E-BOT (EWP) вэйпоинты в папку *gamedir*/addons/yapb/data/ewp.

Где *gamedir* — это путь до папки с игрой, например:

  • D:\Steam\steamapps\common\Half-Life\cstrike — это папка Counter-Strike 1.6
  • D:\Steam\steamapps\common\Half-Life\czero — это папка Counter-Strike Condition Zero

Редактор графов показывает полезную информацию о данных графов и практики, такую как свойства текущего/направленного/кэшированного узла, данные практики узла, название карты и ваше текущее время.

Данные графов хранятся в файле .graph в папке addons/yapb/data/graph или в файле .pwf в папке addons/yapb/data/pwf, если вы используете/сохраняете их в старом формате вэйпоинтов PODBot. Данные практики хранятся в файле .prc в папке addons/yapb/data/train.

Информация об текущем/направленном/кэшированном узле показывает номер этого узла, общее количество узлов, радиус, уровень освещённости, флаги и координаты. Если вы не кэшировали никакой узел или не смотрите ни на какой узел, будут отображаться только данные о ближайшем узле.

Данные практики узла показывают номер узла и значение урона, полученного от него как для Т (Террористов), так и для CT (Контр-Террористов). Вы также можете видеть стрелочки, указывающие на эти узлы (красные для Террористов, синие для Контр-Террористов).

Белые стрелочки указывают на ваш направленный узел (на который указывает ваш прицел). Жёлтые стрелочки указывают на ваш кэшированный узел.

Обзор редактора графов