Справка Yet Another POD-Bot

YaPB это оппонент с ИИ для Counter-Strike который позволяет вам играть в старый добрый Counter-Strike без подключения к любому серверу, заполняя ваш сервер игроками управляемыми с помощью ИИ.

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

Вступление

Что такое YaPB?

YaPB расшифровывается как Yet another Ping of Death Bot. Это модификация известного бота Counter-Strike. - PODBot, основанный на исходном коде, выпущенном Count Floyd в 2003 году. Он добавляет игроков с компьютерным управлением (ИИ) в игры Counter-Strike основанные на движке GoldSource.

Почему он называется YaPB?

Он называется «Yet another PODBot» (с английского «Ещё один PODBot») потому что когда был начат форк, было много других клонов PODBot крутящихся вокруг, такие как PODBot MM, e[POD]bot, IvPBot, POXBot и т.д. По этой причине, мы сохранили оригинальное имя и уточнили, что бот является модификацией оригинального PODBot.

А POD это аббревиатура Ping of Death (с английского «Пинг смерти»). Его назвали так, потому что в его основе лежал High Ping Bastard Bot (с английского «Ублюдочный бот с высоким пингом») который сделал Botman. И если вы видели пинг ботов, у них он всегда был равен 5 во времена Counter-Strike 1.5, и первое поколение ботов всё время делало выстрелы в голову.

На что способны боты?

Боты автоматически знают цели карты. Контр-террористы пойдут за заложниками или обезвредят бомбу, террористы заложат бомбу. VIP-боты будут пытаться добраться до спасательных точек. Выбор цели осуществляется динамически и зависит от нескольких факторов, таких как личность, здоровье, ближайшие тиммейты и предметы, которые несет бот. Боты также попытаются поддержать тиммейтов и укрыться, когда они сочтут это необходимым. Также, они могут использовать некоторые лифты.

Какие моды поддерживаются?

YaPB в настоящее время поддерживает только Counter-Strike (начиная с Beta 6.5 до 1.6) и Condition Zero моды для Half-Life.

  • Поддерживаемые движки:

    • Официальный движок GoldSrc от Valve для Windows, Linux и Mac OS X.

    • Движок Xash3D от Flying with Gauss для Windows, Linux, Mac OS X и Android.

    • ReHLDS и ReGameDLL для Windows и Linux.

    • WON версия GoldSrc движка от Valve для Windows и Linux. Минимальная версия движка 1.1.0.4.

YaPB поддерживает запуск на локальном сервере (когда игрок сам создаёт сервер), также как на HLDS (выделенном сервере).

Почему YaPB нужны вэйпоинты?

Есть ли бот, который отлично работает без какой-либо навигационной помощи, таких как вэйпоинты, путевые зоны или навигационная сетка? Почти наверняка вы не найдете ни одного. На самом деле, во время первоначальной разработки, навигация с вэйпоинтами была наиболее широко используемой и простой методикой. Боты на данный момент безупречны в навигации, поэтому не нужно менять их на навигационную сетку или любой другой тип навигации. YaPB ведёт большой список вэйпоинтов в репозитории github который постоянно пополняется, поэтому вероятно, у нас уже есть вэйпоинт для вашей карты…

Если вы хотите чтобы вам сделали вэйпоинт для вашей карты, вы можете создать issue-запрос на репозитории github. Но лучше делать вэйпоинты самому, чем ждать чтобы кто-то сделал вэйпоинты за вас.

Какие типы карт поддерживаются?

  • Поддерживаемые сценарии игры:

    • Тренировка меткости (карты aim_*).

    • Побег террористов (карты es_*).

    • Арена с ножами (карты ka_*).

    • Бой насмерть (карты dm_*).

    • Поле битвы (карты fy_*).

    • Гонка вооружений (карты gg_*).

    • Война с гранатами (карты he_*).

    • Подготовленное нападение (карты pa_*).

    • Эвакуация VIP (карты as_*).

    • Война со снайперами (карты awp_*).

    • Спасение заложников (карты cs_*).

    • Закладка бомбы/Разминирование (карты de_*).

    • Спасение заложников/Закладка бомбы/Разминирование (карты csde_*).

    • Битва на скорость (карты sp_*).

Какие моды для Counter-Strike поддерживаются?

YaPB официально поддерживает CSDM и CSDM FFA для Counter-Strike. Другие моды должны добавить собственную поддержку ботов.

Установка

Краткая информация

Прежде чем вы начнёте

В отличие от многих других разновидностей PODBot, YaPB может работать как плагин metamod так и как и отдельный dll для всех поддерживаемых платформ (кроме Android) без изменений so/dll/dylib.

Важно

Если у вас установлены некоторые моды, такие как AMX Mod X, вам следует рассмотреть возможность установки ботов как плагин metamod, а не как отдельную dll. В других ситуациях нет требования к установке metamod перед установкой YaPB.

Документация по установке охватывает только установку бота на подлинную Steam-версию Counter-Strike. Предположим, что если вы запускаете что-то особенное, то вы знаете, как установить бота как отдельную dll библиотеку или как плагин metamod.

Примечание

Доступен только 32-битный бинарный файл, так как Valve прекратила поддержку 64-битного HLDS.

Установка бота на Windows

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

Установка с помощью программы установки

  • Скачайте последнюю версию установщика YaPB из https://yapb.jeefo.net/latest (например: yapb-4.2.671-windows.exe)

  • Запустите программу. Заметьте, что она не подписана сертификатом. Так что примите предупреждение.

  • Нажмите Обзор и укажите где находится hl.exe/hlds.exe.

  • Нажмите Установить чтобы установить бота.

  • Готово!

Важно

Программа установки автоматически определит, используете ли вы metamod, и автоматически исправит файл plugins.ini добавив запись указывающую на yapb.dll. Если metamod отсутствует, установщик исправит файл liblist.gam чтобы он указывал на yapb.dll

Осторожно

Установщик имеет функцию обнаружения папок игры Counter-Strike. Он просматривает все каталоги, где находится выбранный hl.exe/hlds.exe и проверяет библиотеку на наличие символов экспорта weapon_ak47 и weapon_m4a1, и, если это так, при условии, что эта папка содержит какую-то версию Counter-Strike, он автоматически устанавливает бота в эту папку.

Установка без metamod

Предположим, что ваш Counter-Strike находится в: C:\Steam\steamapps\common\Half-Life\cstrike.

Примечание

Если вы устанавливаете для Condition Zero, тогда установите его в папку czero

  • Скачайте последнюю версию ZIP архива YaPB из https://yapb.jeefo.net/latest (например: yapb-4.2.671-windows.zip)

  • Распакуйте скачанный архив в папку C:\Steam\steamapps\common\Half-Life\cstrike.

  • Откройте файл названный liblist.gam в блокноте или любом другом текстовом редакторе. (находящийся в C:\Steam\steamapps\common\Half-Life\cstrike.)

  • Найдите запись gamedll. Она должна указывать на dlls\mp.dll.

  • Измените запись с gamedll "dlls\mp.dll" на gamedll "addons\yapb\bin\yapb.dll".

  • Сохраните изменения.

  • Готово!

Установка в качестве metamod плагина

Предположим, что ваш Counter-Strike находится в: C:\Steam\steamapps\common\Half-Life\cstrike.

Примечание

Если вы устанавливаете для Condition Zero, тогда установите его в папку czero

  • Скачайте последнюю версию ZIP архива YaPB из https://yapb.jeefo.net/latest (например: yapb-4.2.671-windows.zip)

  • Распакуйте скачанный архив в папку C:\Steam\steamapps\common\Half-Life\cstrike.

  • Откройте файл названный plugins.ini в блокноте или любом другом текстовом редакторе. (находящийся в C:\Steam\steamapps\common\Half-Life\cstrike\addons\metamod.)

  • Добавьте следующую запись: win32 addons/yapb/bin/yapb.dll.

  • Сохраните изменения.

  • Готово!

Установка бота на Linux

YaPB поддерживает установку на локальном и выделенном сервере под Linux. Установщик не предоставляется для Linux.

Установка без metamod

Предположим, что ваш Counter-Strike находится в: /usr/Steam/steamapps/common/Half-Life/cstrike.

Примечание

Если вы устанавливаете для Condition Zero, тогда установите его в папку czero

  • Скачайте последнюю версию TAR.GZ архива YaPB из https://yapb.jeefo.net/latest (например: yapb-4.2.671-linux.tar.gz)

  • Распакуйте скачанный архив в папку /usr/Steam/steamapps/common/Half-Life/cstrike.

  • Откройте файл названный liblist.gam в любом текстовом редакторе. (находящийся в /usr/Steam/steamapps/common/Half-Life/cstrike)

  • Найдите запись gamedll_linux. Она должна указывать на dlls/cs.so.

  • Измените запись с gamedll_linux "dlls/cs.so" на gamedll_linux "addons/yapb/bin/yapb.so".

  • Сохраните изменения.

  • Готово!

Установка в качестве metamod плагина

Предположим, что ваш Counter-Strike находится в: /usr/Steam/steamapps/common/Half-Life/cstrike.

Примечание

Если вы устанавливаете для Condition Zero, тогда установите его в папку czero

  • Скачайте последнюю версию TAR.GZ архива YaPB из https://yapb.jeefo.net/latest (например: yapb-4.2.671-linux.tar.gz)

  • Распакуйте скачанный архив в папку /usr/Steam/steamapps/common/Half-Life/cstrike.

  • Откройте файл названный plugins.ini в любом текстовом редакторе. (находящийся в /usr/Steam/steamapps/common/Half-Life/cstrike/addons/metamod.)

  • Добавьте следующую запись: linux addons/yapb/bin/yapb.so.

  • Сохраните изменения.

  • Готово!

Установка бота на Mac OS X

YaPB может быть установлен только на локальном сервере, если вы используете Mac OS X.

Примечание

Существует неофициальный бинарный файл hlds_osx предоставленный AlliedModders LLC, позволяющий вам запускать HLDS под OSX. Вы можете попробовать скачать его отсюда.

Примечание

Valve не обновляла игры GoldSrc для поддержки OS X Catalina, а Apple отказалась от поддержки 32-битных программ, поэтому в Counter-Strike невозможно играть на последних выпусках OSX. YaPB по прежнему предоставляет бинарные файлы для пользователей старых версий идущих перед Catalina. Как только Valve (если вообще когда-либо) выпустит Counter-Strike для OS X Catalina, будут доступны 64-битные бинарные файлы YaPB.

Установка без metamod

Предположим, что ваш Counter-Strike находится в: /Users/user/Library/Application Support/Steam/steamapps/common/Half-Life/cstrike.

Примечание

Если вы устанавливаете для Condition Zero, тогда установите его в папку czero

  • Скачайте последнюю версию ZIP архива YaPB из https://yapb.jeefo.net/latest (например: yapb-4.2.671-macos.zip)

  • Распакуйте скачанный архив в папку /Users/user/Library/Application Support/Steam/steamapps/common/Half-Life/cstrike.

  • Откройте файл названный liblist.gam в любом текстовом редакторе. (находящийся в /Users/user/Library/Application Support/Steam/steamapps/common/Half-Life/cstrike.)

  • Найдите запись gamedll_osx. Она должна указывать на dlls/cs.dylib.

  • Измените запись с gamedll_osx "dlls/cs.dylib" на gamedll_osx "addons/yapb/bin/yapb.dylib".

  • Сохраните изменения.

  • Готово!

Установка в качестве metamod плагина

Предположим, что ваш Counter-Strike находится в: /Users/user/Library/Application Support/Steam/steamapps/common/Half-Life/cstrike.

Примечание

Если вы устанавливаете для Condition Zero, тогда установите его в папку czero

  • Скачайте последнюю версию ZIP архива YaPB из https://yapb.jeefo.net/latest (например: yapb-4.2.671-macos.zip)

  • Распакуйте скачанный архив в папку /Users/user/Library/Application Support/Steam/steamapps/common/Half-Life/cstrike.

  • Откройте файл названный plugins.ini в любом текстовом редакторе. (находящийся в /Users/user/Library/Application Support/Steam/steamapps/common/Half-Life/cstrike/addons/metamod)

  • Добавьте следующую запись: osx addons/yapb/bin/yapb.dylib.

  • Сохраните изменения.

  • Готово!

Настройка бота

Квары ботов находятся внутри yapb.cfg и проверяются при каждом изменении уровня. Таким образом, новый конфиг будет применён при смене карты или при введении exec addons/yapb/conf/yapb.cfg в консоль сервера.

Квары можно изменить на лету, набрав их в консоли.

Квары ботов

yb_attack_monsters

Позволяет или запрещает ботам атаковать монстров.

Полезно для модов таких как Halloween Mod.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_autokill_delay

Задаёт время в секундах, в течение которого боты будут убиты, если в живых не останется ни одного человека.

Минимальное значение 0, Максимальное значение 90, Стандартное значение 0.

yb_autovacate

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

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_autovacate_keep_slots

Сколько слотов функция autovacate должна сохранять для игроков-людей

Минимальное значение 1, Максимальное значение 8, Стандартное значение 1.

yb_avoid_grenades

Позволяет ботам частично избегать гранаты.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_bind_menu_key

Привязывает команду открытия меню ботов на указанную клавишу.

Стандартное значение =.

yb_botbuy

Если не на нуле, боты могут покупать оружие и снаряжение.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_botskin_t

Задаёт желаемый скин ботов для команды Террористов.

Доступные значения:

  • 0 - Любой класс

  • 1 - Подразделение Феникс

  • 2 - Элитное подразделение

  • 3 - Арктические мстители

  • 4 - Партизаны

  • 5 - Ополченцы среднего запада (Только для Condition Zero!)

Минимальное значение 0, Максимальное значение 5, Стандартное значение 0.

yb_botskin_ct

Задаёт желаемый скин ботов для команды Контр-Террористов.

Доступные значения:

  • 0 - Любой класс

  • 1 - Seal Team 6

  • 2 - GSG-9

  • 3 - SAS

  • 4 - GIGN

  • 5 - Спецназ (Только для Condition Zero!)

Минимальное значение 0, Максимальное значение 5, Стандартное значение 0.

yb_breakable_health_limit

Задаёт максимальное здоровье разрушаемого объекта, который бот желает уничтожить.

Минимальное значение 1, Максимальное значение 3000, Стандартное значение 500.

yb_camping_allowed

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

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_camping_time_min

Нижняя граница времени от которого расчитывается время для кемпинга.

Минимальное значение 5.0, Максимальное значение 90.0, Стандартное значение 15.0.

yb_camping_time_max

Верхняя граница времени до которого расчитывается время для кемпинга.

Минимальное значение 15.0, Максимальное значение 120.0, Стандартное значение 45.0.

yb_chat

Если не на нуле, боты смогут общаться друг с другом и с игроками, пока они мертвы.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_chat_percent

Шансы бота отправлять случайные сообщения в чат когда убит.

Минимальное значение 0, Максимальное значение 100, Стандартное значение 30.

yb_check_darkness

Разрешает или запрещает боту проверять окружение на условия темноты, что разрешает или запрещает использовать фонарики или ПНВ.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_check_enemy_invincibility

Включает или выключает проверку неуязвимости игрока. Полезно для некоторых модов.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_check_enemy_rendering

Позволяет проверить рендеринг врага перед взятием в жертву. Это полезно для CSDM мода с включённой защитой на спавне. Боты не будут пытаться выбирать только-что заспавненых игроков, так как они неуязвимы.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_csdm_mode

Включает или выключает CSDM / FFA режим для ботов.

  • Если настроено на 0, CSDM / FFA mode будет обнаружен автоматически.

  • Если настроено на 1, CSDM режим будет включён, но FFA выключен.

  • Если настроено на 2, CSDM и FFA режимы будут включены.

  • Если настроено на 3, CSDM и FFA режим будет выключен.

Минимальное значение 0, Максимальное значение 3, Стандартное значение 0.

yb_chatter_path

Указывает местоположение где находятся файлы голосового чата (от официального csbot к примеру).

Минимальное значение -, Максимальное значение -, Стандартное значение sound/radio/bot.

yb_debug

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

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_debug_goal

Заставляет всех живых ботов идти до указанной здесь точки.

Минимальное значение -1, Максимальное значение 2048, Стандартное значение -1.

yb_destroy_breakables_around

Позволяет ботам уничтожать объекты вокруг них, даже без прикосновения с ними.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_difficulty

Определяет сложность всех ботов. Изменение во время игры повлияет на уже созданных ботов.

Список сложностей ботов:

  • 0 - Новичок,

  • 1 - Обычный,

  • 2 - Средний,

  • 3 - Профессионал,

  • 4 - Бог.

Минимальное значение 0, Максимальное значение 4, Стандартное значение 4.

yb_difficulty_auto_balance_interval

Интервал, в котором боты будут балансировать свою сложность.

Минимальное значение 30, Максимальное значение 240, Стандартное значение 30.

yb_difficulty_min

Нижняя граница случайной сложности при создании бота. Действует только на вновь созданных ботов. -1 означает, что используется только yb_difficulty.

Минимальное значение -1, Максимальное значение 4, Стандартное значение -1.

yb_difficulty_max

Верхняя граница случайной сложности при создании бота. Действует только на вновь созданных ботов. -1 означает, что используется только yb_difficulty.

Минимальное значение -1, Максимальное значение 4, Стандартное значение -1.

yb_difficulty_auto

Позволяет каждому боту уравновесить собственную сложность на основе коэффициента убийств/смертей команды.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_display_welcome_text

Указывает, будет ли DLL-бота отображать текст приветствия при добавлении ботов.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_display_menu_text

Включает или отключает отображение текстового меню, когда игрок запрашивает меню. Полезно только для Android.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_economics_disrespect_percent

Позволяет ботам игнорировать экономику и покупать оружие, пренебрегая ей.

Минимальное значение 0, Максимальное значение 100, Стандартное значение 25.

yb_economics_rounds

Если не на нуле, боты будут использовать «командную» экономику, если у более чем 70% игроков нет денег на покупку предпочитаемого оружия, никто ничего не покупает, чтобы сэкономить деньги на следующий раунд. Поэтому, обычно в первом раунде боты бегают со стандартными пистолетами.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_enable_query_hook

Включает ложные ответы на запросы сервера, чтобы показывать ботов как реальных игроков в списке серверов.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_freeze_bots

Если не на нуле, мыслительная функция ботов будет приостановлена и боты останутся на том месте, на котором они были перед активацией этого квара.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_graph_analyze_auto_save

Автоматически сохраняет результаты анализа в graph файл. И снова добавляет ботов.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_graph_analyze_auto_start

Запускает автоанализатор карт, если graph отсутствует в локальном хранилище или базе данных.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_graph_analyze_clean_paths_on_finish

Указывает, должен ли анализатор очищать ненужные пути после завершения работы.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_graph_analyze_distance

Задаёт минимальное расстояние, на котором точки должны находиться друг от друга.

Минимальное значение 42, Максимальное значение 128, Стандартное значение 64.

yb_graph_analyze_fps

Задаёт количество FPS, при котором работает процесс анализатора. Это предотвращает зависание игры во время анализа.

Минимальное значение 25, Максимальное значение 99, Стандартное значение 30.

yb_graph_analyze_mark_goals_on_finish

Указывает, должен ли анализатор автоматически отмечать точки как цели карты после завершения работы.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_graph_analyze_max_jump_height

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

Минимальное значение 44, Максимальное значение 64, Стандартное значение 44.

yb_graph_analyze_optimize_nodes_on_finish

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

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_graph_auto_save_count

Через каждую N точку размещённую на карте, graph будет сохраняться автоматически (без проверок).

Если вы хотите отключить автосохранение, настройте значение квара на 0.

Минимальное значение 0, Максимальное значение 2048, Стандартное значение 15.

yb_graph_draw_distance

Максимальное расстояние отображения точек от области просмотра редактора.

Минимальное значение 64, Максимальное значение 3072, Стандартное значение 400.

yb_graph_fixcamp

Указывает, должен ли бот „исправлять“ направления кемперских вэйпоинтов при загрузке старого формата PWF.

Примечание

Эта опция сделана для исправления направлений кемперских точек, когда используются вэйпоинты от PODBot 2.5, старых версий YaPB, или других PODBot клонов которые не позволяют установить горизонтальное направление кемперских точек. Если вы используете pwf вэйпоинты из PODBot 3.0 этот квар должен быть отключен, так как он может сломать направления кемперских точек.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_graph_url

Указывает хост, на котором расположена база данных графов. Они должны находиться в пути /graph на сервере. Установите пустое значение, если вы не хотите скачивать graph файлы.

Допустимые значения: Действительное имя хоста DNS с HTTP-сервером, прослушивающим порт 80. Стандартное значение yapb.jeefo.net.

yb_graph_url_upload

Указывает URL-адрес, по которому боты будут пытаться загружать graph файл в базу данных.

Стандартное значение yapb.jeefo.net/upload.

yb_ignore_cvars_on_changelevel

Список кваров ботов разделённых запятой которые игнорируются при смене уровня.

Боты читают yapb.cfg при каждой смене уровня, поэтому значения кваров ботов перезаписываются значениями, указанными в конфиге. Этот квар позволяет админу сервера игнорировать значения указанных здесь кваров из yapb.cfg если они были изменены вручную с консоли сервера.

Например: Сервер запущенный с yb_quota настроеным на 10 в yapb.cfg и yb_quota указанный в yb_ignore_cvars_on_changelevel. Прошло время, админ сервера решил что yb_quota должен быть настроен на 12 и настраивает его через консоль сервера. В следующий раз, когда сервер сменит карту, значение yb_quota не будет изменено при чтении yapb.cfg и останется равным 12.

Если вы хотите отключить игнорирование чтения кваров из yapb.cfg, то оставьте значение пустым yb_ignore_cvars_on_changelevel "" в yapb.cfg

Минимальное значение -, Максимальное значение -, Стандартное значение yb_quota,yb_autovacate.

yb_ignore_enemies

Если не на нуле, боты будут бегать по всей карте и выполнять цели, но не будут искать противников.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_ignore_map_prefix_game_mode

Если включено, то боты не будут применять режимы игры, основанные на префиксе названия карты (в частности, fy_ и ka_).

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_ignore_objectives

Разрешает или запрещает ботам выполнять задания на карте, т.е. закладывать/обезвреживать бомбы и спасать заложников.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_jasonmode

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

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_join_after_player

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

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_join_team

Заставляет всех ботов присоединятся к команде указанной в этом кваре.

Допустимые значения: ct, t, any, Стандартное значение any.

yb_join_delay

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

Минимальное значение 0.0, Максимальное значение 30.0, Стандартное значение 5.0.

yb_kick_after_player_connect

Немедленно убирать бота когда игрок присоединяется к серверу (yb_autovacate должен быть включён).

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_language

Настраивает язык бота для меню, имён, чата и сообщений.

Допустимые значения: ru, en, de, Стандартное значение en.

yb_logger_disable_logfile

Запрещает логгеру записывать что-либо в лог-файл. Только выводить содержимое в консоль.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_max_nodes_for_predict

Максимальное число длины пути, для предугадывания противника.

Минимальное значение 15, Максимальное значение 256, Стандартное значение 25.

yb_name_prefix

Этот квар содержит строку, которая будет добавляться к имени к каждому добавленному боту. Что-то вроде клантэга.

По умолчанию это значение не настроено.

yb_object_destroy_radius

Радиус, в котором бот уничтожает объекты вокруг него, не прикасаясь к ним.

Минимальное значение 64, Максимальное значение 1024, Стандартное значение 400.

yb_object_pickup_radius

Радиус, в котором бот ищет на карте новые объекты, предметы и оружие.

Минимальное значение 64.0, Максимальное значение 1024.0, Стандартное значение 450.0.

yb_password_key

Указывает ключ хранящий пароль для setinfo команды, чтобы получить удалённый доступ к yb командам и меню бота.

Стандартное значение: _ybpw.

yb_password

Задаёт действительный пароль для setinfo команды, чтобы получить удалённый доступ к yb командам и меню бота.

Чтобы получить доступ к командам бота удалённо, пользователь должен открыть консоль и ввести setinfo key password, где key это значение из yb_password_key, а password это значение из yb_password.

По умолчанию это значение не настроено.

yb_path_astar_post_smooth

Включает пост-сглаживание для A*. Уменьшает зигзаги на путях ценой некоторых циклов процессора.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_path_danger_factor_min

Нижняя граница фактора опасности, который используется для добавления дополнительной опасности к пути основанной на практике.

Квары yb_path_danger_factor_min и yb_path_danger_factor_max используются для того чтобы сделать опасные пути ещё более опасными основываясь на случайном значении между этими кварами.

Это значит, что боты будут реже строить путь через эти точки.

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

Минимальное значение 100, Максимальное значение 2400, Стандартное значение 200.

yb_path_danger_factor_max

Верхняя граница фактора опасности, который используется для добавления дополнительной опасности к пути основанной на практике.

Минимальное значение 200, Максимальное значение 4800, Стандартное значение 400.

yb_path_dijkstra_simple_distance

Использовать простой расчёт пути расстояния вместо выполнения полного цикла пути Дейкстры. Используется только в том случае, если матрицы Флойда недоступны из-за ограничения памяти.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_path_floyd_memory_limit

Ограничение максимальной памяти алгоритма Флойда-Уоршелла (в мегабайтах). При превышении памяти использовать алгоритм Дейкстры.

Минимальное значение 0, Максимальное значение 32, Стандартное значение 6.

yb_path_heuristic_type

Выбирает режим эвристической функции. Только для отладки.

Минимальное значение 0, Максимальное значение 4, Стандартное значение 0.

yb_pickup_ammo_and_kits

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

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_pickup_best

Позволяет или запрещает ботам подбирать лучшее оружие. (Отключение может быть полезно для некоторых модов с неподбираемым оружием).

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_pickup_custom_items

Позволяет или запрещает ботам подбирать пользовательские предметы.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_ping_base_min

Нижняя граница базового пинга ботов отображаемого в таблице очков. Влияет только на вновь созданных ботов.

Минимальное значение 0, Максимальное значение 100, Стандартное значение 7.

yb_ping_base_max

Верхняя граница базового пинга ботов отображаемого в таблице очков. Влияет только на вновь созданных ботов.

Минимальное значение 0, Максимальное значение 100, Стандартное значение 34.

yb_quota

Определяет общее количество ботов в игре.

Минимальное значение 0, Максимальное значение 32, Стандартное значение 9.

yb_quota_adding_interval

Интервал, через который боты добавляются в игру.

Минимальное значение 0.10, Максимальное значение 1, Стандартное значение 0.10.

yb_quota_maintain_interval

Интервал, с которым проверяется общая квота ботов.

Минимальное значение 0.40, Максимальное значение 2, Стандартное значение 0.40.

yb_quota_mode

Определяет тип работы yb_quota.

  • Если настроено на fill, сервер настроит ботов так, чтобы в игре оставалось N игроков, где N - yb_quota.

  • Если настроено на match, сервер будет поддерживать соотношение людей к ботам 1:N, где N - yb_quota.

  • Если настроено на normal, это значение не влияет на yb_quota.

Допустимые значения: normal, fill и match, Стандартное значение normal.

yb_quota_match

Определяет общее количество ботов в игре, когда yb_quota_mode настроен на match, т.е. на каждого человека присоединяется N ботов.

Минимальное значение 0, Максимальное значение 32, Стандартное значение 0.

yb_radio_mode

Определяет способ коммуникации ботов друг с другом и с игроком.

  • Если настроено на 0 боты вообще не будут общаться.

  • Если настроено на 1 боты будут использовать только радио.

  • Если настроено на 2 боты будут использовать голосовой чат.

Примечание

Голосовой чат будет использоваться только в том случае, если бот найдет допустимые звуковые файлы в каталоге, указанном в yb_chatter_path.

Минимальное значение 0, Максимальное значение 2, Стандартное значение 2.

yb_random_knife_attacks

Разрешает или запрещает возможность случайных атак ножом, когда бот спешит и поблизости нет врагов.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_restricted_weapons

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

Список оружия для Counter-Strike 1.6:

usp - HK USP .45 Tactical
glock - Glock18 Select Fire
deagle - Desert Eagle .50AE
p228 - SIG P228
elite - Dual Beretta 96G Elite
fn57 - FN Five-Seven
m3 - Benelli M3 Super90
xm1014 - Benelli XM1014
mp5 - HK MP5-Navy
tmp - Тактический пистолет-пулемёт Steyr
p90 - FN P90
mac10 - Ingram MAC-10
ump45 - HK UMP45
ak47 - Автомат Калашникова AK-47
galil - IMI Galil
famas - GIAT FAMAS
sg552 - Sig SG-552 Commando
m4a1 - Colt M4A1 Carbine
aug - Steyr Aug
scout - Steyr Scout
awp - AI Arctic Warfare/Magnum
g3sg1 - Снайперская винтовка HK G3/SG-1
sg550 - Снайперский Sig SG-550
m249 - FN M249 Para
flash - Ослепляющая граната
hegren - Взрывающаяся граната
sgren - Дымовая граната
vest - Бронежилет
vesthelm - Бронежилет со шлемом
defuser - Набор сапёра
shield - Тактический щит

По умолчанию это значение не настроено.

yb_rotate_bots

Произвольно отключать и подключать ботов, имитируя присоединение/выход игроков из игры.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_rotate_stay_max

Задаёт максимальное количество секунд, в течение которых бот остаётся подключённым, если чередование активно.

Минимальное значение 1800, Максимальное значение 14400, Стандартное значение 3600.

yb_rotate_stay_min

Задаёт минимальное количество секунд, в течение которых бот остаётся подключённым, если чередование активно.

Минимальное значение 120, Максимальное значение 7200, Стандартное значение 360.

yb_save_bots_names

Позволяет сохранять имена ботов при смене уровня, поэтому их имена будут такими же после смены карты

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_shoots_thru_walls

Определяет метод, с помощью которого боты проверяют, можно ли пробить стену/препятствие.

Если настроено на 1 боты будут пытаться стрелять сквозь стены более активно, даже нереалистично. Если настроено на 2 боты будут использовать алгоритм из оригинального PODBot, и меньше стрелять через стены.

2-ой метод потребляет немного больше мощности процессора, чем 1-ый метод.

Минимальное значение 1, Максимальное значение 3, Стандартное значение 2.

yb_show_avatars

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

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_show_latency

Определяет тип отображаемого пинга ботов.

  • Если настроено на 0 пинг ботов не будет отображаться в таблице очков.

  • Если настроено на 1 у каждого бота будет отображаться надпись «BOT» в таблице очков.

  • Если настроено на 2 у каждого бота будет отображаться «фейковый» пинг в таблице очков.

Минимальное значение 0, Максимальное значение 2, Стандартное значение 2.

yb_spraypaints

Если не на нуле, боты будут рисовать логотипы по всей карте.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_stab_close_enemies

Если не на нуле, боты будут наносить удары ножом по врагу, если бот в хорошем состоянии.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_think_fps

Определяет, сколько раз в секунду выполняется остальная часть ИИ бота. Более высокие значения обеспечат более плавное движение, но приведут к потере ресурсов ЦП и могут вызвать проблемы с выделенными серверами которые имеют более 500 кадров в секунду.

Минимальное значение 24.0, Максимальное значение 90.0, Стандартное значение 26.0.

yb_think_fps_disable

Позволяет полностью отключить think fps на Xash3D.

Это позволяет избежать лагов в движении ботов при наблюдении за ними в режиме наблюдателя.

Примечание

Этот квар вступает в силу при добавлении новых ботов.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 0.

yb_threadpool_workers

Максимальное количество потоков, которые бот будет использовать для обработки некоторых задач. -1 означает половину используемых ядер процессора.

Минимальное значение -1, Максимальное значение количество потоков вашего процессора, Стандартное значение -1.

yb_tkpunish

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

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

yb_user_follow_percent

Определяет процент ботов которые будут пытаться автоматически следовать за лидером. Боты относятся к носителям бомбы, VIP-игрокам и людям как к лидерам.

Минимальное значение 0, Максимальное значение 100, Стандартное значение 20.

yb_user_max_followers

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

Минимальное значение 0, Максимальное значение 16, Стандартное значение 1.

yb_walking_allowed

Если не на нуле, боты будут использовать «shift» или ходить когда слышат врага поблизости.

Минимальное значение 0, Максимальное значение 1, Стандартное значение 1.

Настройки для конкретных карт

Конфиги для карт, где хранятся настроенные пользователем квары. Имя файла mapname.cfg где «mapname» это имя карты для которой этот конфиг создан, например: de_dust.cfg для карты de_dust. Этот файл находится в директории addons/yapb/conf/maps.

Вы можете использовать квары показанные выше для записи в этот конфиг. Они будут выполнены автоматически когда вы запустите карту указанную в названии этого конфига.

По умолчанию YaPB не имеет никаких конфигов для карт.

Пользовательский файл конфигурации

Пользовательский файл конфигурации который позволяет вам изменить некоторые захардкоденные вещи в коде бота.

Он находится в addons/yapb/conf/custom.cfg

C4ModelName - Этот параметр содержит название модели C4, для серверов которые заменяют её на свою собственную. По умолчанию это c4.mdl (путь модели опущен), поэтому если вам надо использовать models/mybomb/mybomb.mdl, вы должны указать mybomb/mybomb.mdl.

AMXParachuteCvar - Этот параметр содержит квар для управления парашутом, есть различные плагины которые управляют парашутом (AMX Parachute, AMX Parachute Lite, и т.д.), вы можете указать нужный квар здесь.

Настройка сложности ботов

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

Каждое из этих значений связано с каждым уровнем сложности.

Файл конфигурации сложности ботов находится по пути addons/yapb/conf/difficulty.cfg

Правильный формат:

Уровень = минВремяРеакции(с),максВремяРеакции(с),вероятностьХэдшотов,шансВидимостиСквозьСтену,шансСлышимостиСквозьСтену,максОтдачаОружия,ошибкаПрицеливания

Где:

минВремяРеакции - Минимальное время в секундах от которого бот сначала видит врага и время через которое он среагирует на него.
максВремяРеакции - То же, что и выше, но верхняя граница лимита.
вероятностьХэдшотов - Вероятность того, что бот будет целиться в голову, а не в тело, если видны и тело, и голова.
шансВидимостиСквозьСтену - Шанс что бот будет атаковать врага если он верит что он был здесь и только что его видел.
шансСлышимостиСквозьСтену - Шанс что бот будет атаковать врага если он верит что он был здесь и только что его слышал.
максОтдачаОружия - Максимальная отдача оружия, которую можно компенсировать, путём приостановки огня.
ошибкаПрицеливания - Значения осей (x, y, z) для смещения прицела чтобы вызвать ошибки в прицеливании бота

Например:

Expert = 0.1, 0.2, 100, 90, 90, 21, 0.0, 0.0, 0.0

Настройки логотипов

Список с текстурами спреев ботов хранится в addons/yapb/conf/logos.cfg. Он использует текстуры с decals.wad, поэтому если вы хотите добавить новую текстуру спрея, она должна быть в этом файле. Чтобы увидеть доступные текстуры в decals.wad вы можете использовать специальные инструменты, такие как Wally, Half-Life Texture Tools, и т.д.

Стандартный список текстур спреев:

{biohaz
{graf003
{graf004
{graf005
{lambda06
{target
{hand1
{spit2
{bloodhand6
{foot_l
{foot_r

Настройки оружия

Главный конфиг, в котором определено большинство вещей, касающихся обращения с оружием. Имя файла weapon.cfg и находится он в директории addons/yapb/conf.

Чтобы отредактировать этот файл, вам необходимо знать нумерацию оружия.

Поле MapStandard

Это поле по умолчанию используется на всех картах, кроме сценария VIP.

Ниже приведена таблица в которой указано, какой команде разрешено покупать оружие на карте. Вы также можете это использовать чтобы разрешить/запретить оружия для команды или карты/режима игры (помните, что некоторые виды оружия доступны только для одной команды и не могут быть куплены другой командой).

Флаги покупок оружия:

-1 = Запретить покупку для всех команд
0 = Только для террористов
1 = Только для контр-террористов
2 = Может быть куплено обеими командами

Пример:

MapStandard = -1,0,-1,2,-1,0,1,2,2,2,-1,2,-1,-1,0,0,1,0,1,1,2,2,0,1,2,1

Поле MapAS

Это поле по умолчанию используется только на картах сценария VIP.

Ниже приведена таблица в которой указано, какой команде разрешено покупать оружие на карте. Вы также можете это использовать чтобы разрешить/запретить оружия для команды или карты/режима игры (помните, что некоторые виды оружия доступны только для одной команды и не могут быть куплены другой командой).

Флаги покупок оружия:

-1 = Запретить покупку для всех команд
0 = Только для террористов
1 = Только для контр-террористов
2 = Может быть куплено обеими командами

Пример:

MapAS = -1,-1,-1,2,-1,0,1,1,1,1,1,1,0,2,0,-1,1,0,1,1,0,0,-1,1,1,1

Проценты покупки гранат

Задаёт процент покупки гранат.

Слева направо:

1 - Взрывающаяся граната.
2 - Ослепляющая граната.
3 - Дымовая граната.

Пример:

GrenadePercent = 98,75,60

Экономика ботов

Определяет значения экономики для покупки оружия.

Слева направо:

1 - Если денег у бота больше чем указано здесь, он может купить основное оружие.
2 - Если денег у бота больше чем указано здесь, он не будет покупать пистолеты-пулемёты (MP5, MAC10, TMP, P90, UMP45, SCOUT) (только для Контр-Террористов) (+ 8/9/10)
3 - Если денег у бота больше чем указано здесь, он не будет покупать пистолеты-пулемёты (MP5, MAC10, TMP, P90, UMP45, SCOUT) (только для Террористов) (+ 8/9/10))
4 - Если денег у бота больше чем указано здесь, он может купить дробовики (M3, XM1014).
5 - Если денег у бота меньше чем указано здесь, он не сможет купить дробовики (M3, XM1014).
6 - Если денег у бота больше чем указано здесь, он может купить AWP, SG550, G3SG1, M249.
7 - Если денег у бота меньше чем указано здесь, он не сможет купить AWP, SG550, G3SG1, M249.
8 - Сколько денег у бота остаётся в запасе, при покупке основного оружия (только для типа поведения - Обычный)
9 - Сколько денег у бота остаётся в запасе, при покупке основного оружия (только для типа поведения - Агрессивный).
10 - Сколько денег у бота остаётся в запасе, при покупке основного оружия (только для типа поведения - Осторожный).
11 - Если денег у бота больше чем указано здесь, он может купить щит.

Пример:

Economics = 1550,2100,2100,4000,6000,7000,16000,1200,800,1100,3000

Приоритеты оружия

В этой таблице хранятся приоритеты оружия ботов в зависимости от личности (это влияет на покупку и подбор лучшего оружия с земли).

Нумерация оружий:

0 - НОЖ
1 - USP
2 - GLOCK18
3 - DEAGLE
4 - P228
5 - ELITE
6 - FIVESEVEN
7 - M3
8 - XM1014
9 - MP5NAVY
10 - TMP
11 - P90
12 - MAC10
13 - UMP45
14 - AK47
15 - SG552
16 - M4A1
17 - GALIL
18 - FAMAS
19 - AUG
20 - SCOUT
21 - AWP
22 - G3SG1
23 - SG550
24 - M249
25 - ЩИТ

Слева направо. Крайнее правое значение это самое востребованное для ботов оружие. Крайнее левое значение это самое худшее оружие.

Примечание

Нож должен быть самым «худшим» оружием в этой таблице, иначе дела пойдут наперекосяк.

Примеры:

PersonalityNormal = 00,02,01,04,05,06,03,12,10,24,25,13,11,08,07,22,23,20,21,09,19,15,17,18,14,16
PersonalityRusher = 00,02,04,05,01,06,03,24,25,22,23,20,10,12,13,07,08,21,11,09,15,19,17,18,16,14
PersonalityCareful = 00,02,01,04,05,06,03,07,08,12,10,13,11,09,18,17,15,19,16,14,20,22,25,23,24,21

Персонализация

Персонализация чата

Вы можете создать базу чата для вашего языка, или изменить существующую. Она находится в папке: addons/yapb/conf/lang Чтобы сделать это, создайте файл **_chat.cfg или откройте существующий.

Боты могут писать сообщения в чате в зависимости от ситуации: закладка бомбы, убийство противника, атака тиммейтов, и т.д.

Заполнители

  • %v - вставляет ник последнего убитого игрока

  • %f - вставляет ник лидера команды

  • %t - вставляет ник живого тиммейта

  • %e - вставляет ник живого противника

  • %s - вставляет ник случайного игрока

  • %m - вставляет название текущей карты

  • %d - вставляет название мода из файла liblist.gam (Counter-Strike или Condition Zero)

Разделы чата

[BOMBPLANT] - Задаёт список сообщений которые будут писать боты после закладки бомбы.

[KILLED] - Задаёт список сообщений которые будут писать боты после убийства врага. Используйте заполнитель %v чтобы написать ник убитого врага. Пример:

[KILLED]
Ты мертв %v!

Когда бот убивает врага с ником «Иван Петров», он напишет «Ты мёртв Иван Петров!» используя строку указанную в примере.

[WELCOME] - Задаёт список сообщений которые будут писать боты после подключения к серверу.

[TEAMATTACK] - Задаёт список сообщений которые будут писать боты когда их атакуют товарищи по команде.

[TEAMKILL] - Задаёт список сообщений которые будут писать боты когда они убили товарища по команде.

[DEADCHAT] - Задаёт список сообщений которые будут писать боты когда они мертвы или находятся в режиме наблюдателя.

Примечание

Минимальное количество сообщений - 9! Если вы напишете менее 9-ти сообщений для этого триггера, у yapb будет сбой!

[REPLIES] - Задаёт список сообщений которые будут писать боты в ответ другому боту если у него есть ответ на указанное слово. Чтобы задать слово на которое будет ответ, вам нужно задать ключ к указанным словам разделенными запятыми. Пример:

[REPLIES]
@KEY "СЛОВО", "ДРУГОЕ СЛОВО"
Это ответ на указанные слова.
Это другой ответ к указанным словам.

@KEY "КЛЮЧЕВОЕ СЛОВО"
Это ответ на новое ключевое слово.

Вот как это будет выглядеть в игре:

Иван Петров: Бла бла бла слово
Рикардо Милос: Это ответ на указанные слова.

Киану Ривз: Бла бла бла другое слово бла бла...
Томми Версетти: Это другой ответ к указанным словам.

Райан Гослинг: Скажи мне ответ на новое ключевое слово.
Соуп Мактавиш: Это ответ на новое ключевое слово.

Боты могут использовать эти ответы в случайном порядке.

Предупреждение

Обратите внимание, что ключевые слова в триггере [REPLIES] должны быть написаны заглавными буквами! В сообщениях они могут быть написаны в любом формате.

[UNKNOWN] - Задаёт список сообщений которые будут писать боты в ответ другому боту, если его сообщение не содержит ключевых слов из триггера [REPLIES]

Персонализация голосового чата

YaPB поддерживает голосовой чат также как и zBot. Все пути к звуковым файлам голосового чата yapb находятся в файле: chatter.cfg который находится в папке addons/yapb/conf.

RewritePath задаёт путь к папке где находятся звуковые файлы для голосового чата. По умолчанию это sound/radio/bot

События радио

Event Radio_*** задаёт имена звуковых файлов которые будет произносить бот вместо использования определённых радиокоманд.

Которые из них:

  • Event Radio_CoverMe - радиокоманда «Прикройте меня!».

  • Event Radio_YouTakePoint - радиокоманда «Возьмите эту точку на себя.».

  • Event Radio_HoldPosition - радиокоманда «Удерживайте эту позицию.».

  • Event Radio_RegroupTeam - радиокоманда «Перегруппируйтесь.».

  • Event Radio_FollowMe - радиокоманда «Следуйте за мной.».

  • Event Radio_TakingFire - радиокоманда «Я под огнём…нужна поддержка!».

  • Event Radio_GoGoGo - радиокоманда «Пошли, пошли, пошли!».

  • Event Radio_Fallback - радиокоманда «Команда, отступаем!».

  • Event Radio_StickTogether - радиокоманда «Команда, держимся вместе.».

  • Event Radio_GetInPosition - радиокоманда «Займите позицию и ждите моего сигнала.».

  • Event Radio_StormTheFront - радиокоманда «Штурмуйте фронт!».

  • Event Radio_ReportTeam - радиокоманда «Доложите обстановку.».

  • Event Radio_Affirmative - радиокоманда «Понял./Так точно.».

  • Event Radio_EnemySpotted - радиокоманда «Вижу противника.».

  • Event Radio_NeedBackup - радиокоманда «Нужно подкрепление.».

  • Event Radio_SectorClear - радиокоманда «Сектор чист.».

  • Event Radio_InPosition - радиокоманда «Я на позиции.».

  • Event Radio_ReportingIn - радиокоманда «Докладываю.».

  • Event Radio_ShesGonnaBlow - радиокоманда «Уходим отсюда, она сейчас взорвётся!».

  • Event Radio_Negative - радиокоманда «Никак нет.».

  • Event Radio_EnemyDown - радиокоманда «Противник убит.».

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

События переговоров

Event Chatter_*** задаёт имена звуковых файлов которые будет произносить бот во время переговоров.

Список событий переговоров:

  • Event Chatter_DiePain - звуки смерти бота.

  • Event Chatter_GoingToPlantBomb - бот говорит, что он собирается ставить бомбу.

  • Event Chatter_GoingToGuardVIPSafety - бот говорит, что он собирается охранять зону побега VIP.

  • Event Chatter_RescuingHostages - бот говорит, что он спасает заложников.

  • Event Chatter_TeamKill - реакция бота на убийство товарища по команде.

  • Event Chatter_GuardingVipSafety - бот говорит, что он охраняет зону побега VIP.

  • Event Chatter_PlantingC4 - бот говорит, что он ставит бомбу.

  • Event Chatter_InCombat - бот говорит, что он прямо сейчас сражается с противником.

  • Event Chatter_SeeksEnemy- бот говорит, что он ждёт врага.

  • Event Chatter_Nothing - бот говорит, что в этом секторе никого нет.

  • Event Chatter_EnemyDown - бот говорит, что он убил противника.

  • Event Chatter_UseHostage - бот говорит, что он взял заложника.

  • Event Chatter_WonTheRound - реакция бота на победу.

  • Event Chatter_QuicklyWonTheRound - реакция бота на быструю победу.

  • Event Chatter_NoEnemiesLeft - бот говорит, что больше нет оставшихся противников.

  • Event Chatter_FoundBombPlace - бот говорит, что он нашёл место с заложенной бомбой.

  • Event Chatter_WhereIsTheBomb - бот спрашивает, где находится бомба.

  • Event Chatter_DefendingBombSite - бот говорит, что он защищает место закладки бомбы.

  • Event Chatter_BarelyDefused - реакция бота на едва обезвреженную бомбу.

  • Event Chatter_NiceshotCommander - реакция бота на хороший выстрел игрока.

  • Event Chatter_ReportingIn - бот говорит, что он докладывает.

  • Event Chatter_SpotTheBomber - бот говорит, что он нашёл террориста несущего бомбу.

  • Event Chatter_VIPSpotted - бот говорит, что он заметил VIP.

  • Event Chatter_FriendlyFire - реакция бота, когда он атакован товарищем по команде.

  • Event Chatter_GotBlinded - реакция бота на светошумовую гранату.

  • Event Chatter_GuardDroppedC4 - бот говорит, что он охраняет брошенную C4.

  • Event Chatter_DefusingC4 - бот говорит, что он обезвреживает C4.

  • Event Chatter_FoundC4 - бот говорит, что он нашёл C4.

  • Event Chatter_ScaredEmotion - реакция бота, когда он встретил несколько противников и поблизости нет союзников.

  • Event Chatter_HeardEnemy - бот говорит, что он слышал противника.

  • Event Chatter_SniperWarning - бот предупреждает о снайпере.

  • Event Chatter_SniperKilled - бот сообщает, что он убил снайпера.

  • Event Chatter_OneEnemyLeft - бот говорит, что остался только один противник.

  • Event Chatter_TwoEnemiesLeft - бот говорит, что осталось два противника.

  • Event Chatter_ThreeEnemiesLeft - бот говорит, что осталось три противника.

  • Event Chatter_NiceshotPall - реакция бота на хороший выстрел другого бота.

  • Event Chatter_GoingToGuardHostages - бот говорит, что он собирается охранять заложников.

  • Event Chatter_GoingToGuardDroppedBomb - бот говорит, что он собирается охранять брошенную бомбу.

  • Event Chatter_OnMyWay - бот говорит, что он скоро придёт.

  • Event Chatter_LeadOnSir - бот говорит игроку, что он будет следовать за ним.

  • Event Chatter_Pinned_Down - бот просит помощи у союзников когда они находятся поблизости.

  • Event Chatter_GottaFindTheBomb - бот говорит, что он нашёл бомбу.

  • Event Chatter_You_Heard_The_Man - бот говорит о начале раунда (в данный момент не используется).

  • Event Chatter_Lost_The_Commander - бот говорит, что командира (игрока) убили, относится к режиму карьеры в Counter-Strike Condition Zero.

  • Event Chatter_NewRound - то же, что и Chatter_You_Heard_The_Man (в данный момент не используется).

  • Event Chatter_CoverMe - бот просит чтобы его прикрыли.

  • Event Chatter_BehindSmoke - бот говорит, что он находится за дымом (в данный момент не используется).

  • Event Chatter_BombSiteSecured - бот говорит, что он обезвредил бомбу.

  • Event Chatter_GoingToCamp - бот говорит, что он собирается кемперить (охранять территорию).

  • Event Chatter_Camp - бот говорит что он кемперит.

Вот примерно так должен выглядеть этот файл:

RewritePath sound/radio/bot

Event Radio_CoverMe = ("cover_me", "cover_me2");
// Event Radio_YouTakePoint = ("");
// Event Radio_HoldPosition = ("");
// Event Radio_RegroupTeam = ("");
Event Radio_FollowMe = ("lead_on_sir", "lead_the_way_sir", "lead_the_way", "ok_sir_lets_go", "lead_on_commander", "lead_the_way_commander", "ok_cmdr_lets_go");
Event Radio_TakingFire = ("taking_fire_need_assistance2", "i_could_use_some_help", "i_could_use_some_help_over_here", "help", "need_help", "need_help2", "im_in_trouble");

// Event Radio_GoGoGo = ("");
// Event Radio_Fallback = ("");
// Event Radio_StickTogether = ("");
// Event Radio_GetInPosition = ("");
// Event Radio_StormTheFront = ("");
Event Radio_ReportTeam = ("report_in_team", "anyone_see_them", "anyone_see_anything", "where_are_they", "where_could_they_be");

Event Radio_Affirmative = ("affirmative", "no2", "roger_that", "me_too", "ill_come_with_you", "ill_go_with_you", "ill_go_too", "i_got_your_back", "i_got_your_back2", "im_with_you", "im_with_you", "sounds_like_a_plan", "good_idea");
Event Radio_EnemySpotted = ("one_guy", "two_of_them", "theyre_all_over_the_place2", "the_actions_hot_here", "its_a_party");
Event Radio_NeedBackup = ("taking_fire_need_assistance2", "i_could_use_some_help", "i_could_use_some_help_over_here", "help", "need_help", "need_help2", "im_in_trouble");
Event Radio_SectorClear = ("clear", "clear2", "clear3", "clear4", "area_clear", "all_clear_here", "nothing_happening_over_here", "nothing_here", "theres_nobody_home");
Event Radio_InPosition = ("lets_wait_here", "lets_hold_up_here_for_a_minute", "im_gonna_hang_back", "im_going_to_wait_here", "im_waiting_here");
Event Radio_ReportingIn = ("reporting_in");
// Event Radio_ShesGonnaBlow = ("");
Event Radio_Negative = ("ahh_negative", "negative", "no2", "negative2", "i_dont_think_so", "naa", "no_thanks", "no", "nnno_sir", "no_sir");
Event Radio_EnemyDown = ("enemy_down", "enemy_down2");

// end of radio, begin some voices (NOT SORTED)
Event Chatter_SpotTheBomber = ("i_see_the_bomber", "theres_the_bomber", "hes_got_the_bomb", "hes_got_the_bomb2", "hes_got_the_package", "spotted_the_delivery_boy");
Event Chatter_FriendlyFire = ("cut_it_out", "what_are_you_doing", "stop_it", "ow_its_me", "ow", "ouch", "im_on_your_side", "hold_your_fire", "hey", "hey2", "ouch", "ouch", "ouch");
Event Chatter_DiePain = ("pain2", "pain4", "pain5", "pain8", "pain9", "pain10");
Event Chatter_GotBlinded = ("ive_been_blinded", "my_eyes", "i_cant_see", "im_blind");
Event Chatter_GoingToPlantBomb = ("im_gonna_go_plant", "im_gonna_go_plant_the_bomb");
Event Chatter_RescuingHostages = ("the_hostages_are_with_me", "taking_the_hostages_to_safety", "ive_got_the_hostages", "i_have_the_hostages");
Event Chatter_GoingToCamp = ("im_going_to_camp");
Event Chatter_HearSomething = ("hang_on_i_heard_something", "i_hear_something", "i_heard_them", "i_heard_something_over_there");
Event Chatter_TeamKill = ("what_happened", "noo", "oh_my_god", "oh_man", "oh_no_sad", "what_have_you_done");
Event Chatter_ReportingIn = ("reporting_in");
Event Chatter_GuardDroppedC4 = ("bombsite", "bombsite2", "i_got_a_covered", "im_camping_c");
Event Chatter_Camp = ("im_waiting_here");
Event Chatter_PlantingC4 = ("planting_the_bomb", "planting");
Event Chatter_DefusingC4 = ("defusing", "defusing_bomb", "defusing_bomb");
Event Chatter_InCombat = ("attacking", "attacking_enemies", "engaging_enemies", "in_combat", "in_combat2", "returning_fire");
Event Chatter_SeeksEnemy = ("lets_wait_here", "lets_hold_up_here_for_a_minute", "im_gonna_hang_back", "im_going_to_wait_here", "im_waiting_here");
Event Chatter_Nothing = ("nothing_here", "nothing");
Event Chatter_EnemyDown = ("hes_dead", "hes_down", "got_him", "dropped_him", "killed_him", "ruined_his_day", "wasted_him", "made_him_cry", "took_him_down", "took_him_out2", "took_him_out", "hes_broken", "hes_done");
Event Chatter_UseHostage = ("talking_to_hostages", "rescuing_hostages");
Event Chatter_FoundC4 = ("bombs_on_the_ground", "bombs_on_the_ground_here", "the_bomb_is_down", "the_bomb_is_on_the_ground", "they_dropped_the_bomb");
Event Chatter_WonTheRound = ("good_job_team", "nice_work_team", "way_to_be_team", "well_done");
Event Chatter_QuicklyWonTheRound = ("i_am_dangerous", "do_not_mess_with_me", "we_owned_them", "they_never_knew_what_hit_them", "thats_the_way_this_is_done", "and_thats_how_its_done", "owned", "yesss", "yesss2", "yea_baby", "whoo", "whoo2", "oh_yea");
Event Chatter_ScaredEmotion = ("whoa", "uh_oh", "oh_no", "yikes", "oh", "oh_boy", "oh_boy2", "aah");
Event Chatter_HeardEnemy = ("i_hear_them", "hang_on_i_heard_something", "i_hear_something", "i_heard_them", "i_heard_something_over_there");
Event Chatter_SniperWarning = ("sniper", "sniper2", "watch_it_theres_a_sniper");
Event Chatter_SniperKilled = ("got_the_sniper", "got_the_sniper2", "sniper_down", "took_out_the_sniper", "the_sniper_is_dead");
Event Chatter_VIPSpotted = ("i_see_our_target", "target_spotted", "target_acquired");
Event Chatter_GuardingVipSafety = ("watching_the_escape_route", "im_at_the_escape_zone", "watching_the_escape_zone", "guarding_the_escape_zone", "guarding_the_escape_zone2");
Event Chatter_GoingToGuardVIPSafety = ("im_going_to_cover_the_escape_zone", "im_going_to_watch_the_escape_zone", "im_going_to_keep_an_eye_on_the_escape", "heading_to_the_escape_zone");
Event Chatter_OneEnemyLeft = ("one_guy_left", "theres_one_left");
Event Chatter_TwoEnemiesLeft = ("two_enemies_left", "two_to_go");
Event Chatter_ThreeEnemiesLeft = ("three_left", "three_to_go", "three_to_go2");
Event Chatter_NoEnemiesLeft = ("that_was_the_last_one", "that_was_it", "that_was_the_last_guy");
Event Chatter_FoundBombPlace = ("theres_the_bomb", "theres_the_bomb2");
Event Chatter_WhereIsTheBomb = ("wheres_the_bomb", "wheres_the_bomb2", "wheres_the_bomb3", "where_is_it");
Event Chatter_DefendingBombSite = ("bombsite", "bombsite2", "im_camping_b", "heading_to_c");
Event Chatter_BarelyDefused = ("i_wasnt_worried_for_a_minute", "that_was_a_close_one", "well_done", "whew_that_was_close");
Event Chatter_NiceshotCommander = ("good_one_sir", "good_one_sir2", "nice_shot_sir", "nice_one_sir");
Event Chatter_NiceshotPall = ("good_one", "good_one2", "nice_shot", "nice_shot2", "good_shot", "good_shot2", "nice", "nice2", "very_nice");
Event Chatter_GoingToGuardHostages = ("camping_hostages", "im_going_to_camp_the_hostages", "im_going_to_guard_the_hostages", "im_going_to_guard_the_hostages2");
Event Chatter_GoingToGuardDoppedBomb = ("im_going_to_guard_the_bomb", "im_going_to_guard_the_bomb2", "im_going_to_keep_an_eye_on_the_bomb", "im_going_to_watch_the_bomb");
Event Chatter_OnMyWay = ("on_my_way", "on_my_way2", "im_coming", "hang_on_im_coming", "be_right_there");
Event Chatter_LeadOnSir = ("lead_on_sir", "lead_the_way_sir", "lead_the_way", "ok_sir_lets_go", "lead_on_commander", "lead_the_way_commander", "ok_cmdr_lets_go");
Event Chatter_Pinned_Down = ("they_got_me_pinned_down_here", "im_pinned_down");
Event Chatter_GottaFindTheBomb = ("theres_the_bomb", "theres_the_bomb2");
Event Chatter_Lost_The_Commander = ("weve_lost_the_commander", "the_commander_is_down", "the_commander_is_down_repeat");
Event Chatter_CoverMe = ("cover_me", "cover_me2");
Event Chatter_BombSiteSecured = ("i_wasnt_worried_for_a_minute", "that_was_a_close_one", "well_done", "whew_that_was_close");

Использование ботов

Меню пользователя YaPB (yb menu)

Главное меню

При нажатии на клавишу «=» в игре, на экране появится меню со следующими опциями.

_images/main_menu.png

Это главное меню YaPB

  1. Управление ботами - Меню которое добавляет или убирает ботов из игры.

  2. Функции - Меню, которое содержит настройки типов оружия используемого ботами, редактор вэйпоинтов, переключатель режима отладки и управления командами ботов.

  3. Заполнить сервер - Меню которое задаёт параметры ботов для заполнения сервера.

  4. Закончить раунд - Убивает всех ботов чтобы закончить раунд.

Меню управления ботами

_images/bots_control_menu.png

Меню управления ботами

  1. Быстро добавить бота - Это делает то что говорит. Оно быстро добавляет бота давая ему случайное имя, команду, сложность и модель. Сложность будет выбираться случайно между вашими значениями yb_difficulty_min/yb_difficulty_max указанные в yapb.cfg.

  2. Добавить особого бота - Позволяет вам указать все вещи (исключая имя) для добавления одного бота.

_images/bots_difficulty_level.png

Это позволяет вам выбрать сложность для бота.

_images/bots_personality_menu.png

Это позволяет вам выбрать личность для бота.

_images/select_team_menu.png

Это позволяет вам выбрать команду для бота.

_images/ct_class_select.png

Это позволяет вам выбрать класс для бота. (для команды Контр-Террористов)

_images/t_class_select.png

Это позволяет вам выбрать класс для бота. (для команды Террористов)

  1. Убрать случайного бота - убирает случайного бота.

  2. Убрать всех ботов - убирает всех ботов с сервера.

  3. Меню убирания ботов - Меню которое позволяет вам убрать бота с сервера указанного в списке.

Меню функций ботов

_images/bots_features_menu.png

Меню функций ботов

  1. Меню выбора режима оружия - Меню которое настраивает тип используемого ботами оружия.

_images/bots_weapon_mode.png

Меню режима оружия ботов

  1. Меню вэйпоинтов - Открывает меню редактора вэйпоинтов.

  2. Выбрать личность бота - Добавляет бота с текущей заданной сложностью с настройкой личности.

  3. Переключить режим отладки - Включает или выключает режим отладки.

  4. Меню команд бота - Открывает меню команд бота.

_images/bot_commandmenu.png

Меню команд бота

  1. Сделать двойной прыжок - Заставляет ближайшего бота тиммейта присесть рядом с вами чтобы сделать двойной прыжок.

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

  3. Скинуть бомбу C4 - Заставляет бота несущего бомбу, бросить её вам.

  4. Скинуть пушку - Заставляет бота тиммейта бросить вам оружие.

Примечание

Бот будет бросать вам оружие только когда у него есть первичное оружие и 2000 или более долларов на счету.

Меню вэйпоинтов

_images/waypoint_menu_page1.png

Меню редактирования вэйпоинтов (Страница 1)

  1. Показать/Скрыть вэйпоинты - Показать или скрыть отображение вэйпоинтов.

  2. Запомнить вэйпоинт - Кэширует вэйпоинт для будущего использования.

  3. Создать путь - Открывает меню создания путевых соединений.

  4. Удалить путь - Удаляет путь с выбранного вэйпоинта.

  5. Добавить вэйпоинт - Открывает меню выбора типа добавляемого вэйпоинта.

  6. Удалить вэйпоинт - Удаляет вэйпоинт на котором вы стоите.

  7. Установить дистанцию автопути - Открывает меню настройки дистанции автопути.

  8. Установить радиус - Открывает меню настройки радиуса вэйпоинта.

  9. Далее… - Переходит на вторую страницу меню редактора вэйпоинтов.

_images/waypoint_menu_page2.png

Меню редактирования вэйпоинтов (Страница 2)

  1. Отладка цели - Открывает меню для отладки проходимости ботов до указанной точки.

  2. Вкл/Выкл автовэйпоинт - Включает или выключает автоматическую расстановку вэйпоинтов.

  3. Установить флаг - Открывает меню выбора флагов для вэйпоинта.

  4. Сохранить вэйпоинты - Сохраняет вэйпоинты с проверкой целостности путей.

  5. Сохранить без проверки - Сохраняет вэйпоинты без проверки (из-за этого, могут быть проблемы с поведением ботов).

  6. Загрузить вэйпоинты - Загружает вэйпоинты с файла.

  7. Проверить вэйпоинты - Проверяет вэйпоинты на наличие ошибок.

  8. Вкл/Выкл режим полёта - Включает или выключает чит noclip.

  9. Назад… - Возвращает на первую страницу меню редактора вэйпоинтов.

Сводка консольных команд YaPB

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

yb add

Добавляет заданного бота в игру. (смотрите ниже)

yb kick

Убирает случайного или указанного бота из игры. (смотрите ниже)

yb removebots

Убирает всех ботов из игры. Также доступно через алиас yb kickall. (смотрите ниже)

yb kill

Убивает указанную команду или всех ботов. (смотрите ниже)

yb fill

Заполняет сервер (добавляет ботов) с заданными параметрами. (смотрите ниже)

yb vote

Заставляет всех ботов голосовать за указанную карту.

yb weapons

Задаёт режим используемого ботами оружия. (смотрите ниже)

yb menu

Открывает главное меню бота.

yb version

Показывает информацию о версии сборки бота.

yb list

Показывает список текущих ботов играющих на сервере.

yb cvars

Показывает все квары с их описаниями. (смотрите ниже)

yb graph

Управляет операциями графов.

yb show_custom

Показывает текущие значения с custom.cfg

Чтобы получить помощь по всем командам, такую как аргументы, алиасы, и т.д., напишите в консоли yb help.

Если вы хотите получить помощь по указанной команде, например yb add, напишите в консоли yb help add.

yb add

Чтобы добавить заданного бота в игру, с никнеймом: John Smith, Сложность: Обычная, Личность: Осторожная, Команда: Контр-Террористы, Класс команды: SAS, вы должны написать в консоли yb add 1 2 2 3 "John Smith"

Информация об аргументах yb add:

Сложности

  • 0 - Новичок

  • 1 - Обычный

  • 2 - Средний

  • 3 - Профессионал

  • 4 - Бог

Личности

  • 0 - Нормальная

  • 1 - Агрессивная

  • 2 - Осторожная

Команды

  • 0 - Случайная команда

  • 1 - Террористы

  • 2 - Контр-Террористы

Классы команд

Террористы:

  • 0 - Случайный класс

  • 1 - Подразделение Феникс

  • 2 - Элитное подразделение

  • 3 - Арктические мстители

  • 4 - Партизаны

  • 5 - Ополченцы среднего запада (Только для Condition Zero!)

Контр-Террористы:

  • 0 - Случайный класс

  • 1 - Seal Team 6

  • 2 - GSG-9

  • 3 - SAS

  • 4 - GIGN

  • 5 - Спецназ (Только для Condition Zero!)

Корректный формат для yb add команды это yb add [сложность] [личность] [команда] [модель] [имя]. Все значения ботов выбираются цифрами (кроме имени).

yb kick

Напишите в консоли команду yb kick чтобы убрать случайного бота.

Если вы хотите убрать бота из конкретной команды, вы должны написать yb kick t чтобы убрать бота с команды Террористов, и yb kick ct чтобы убрать бота с команды Контр-Террористов.

yb removebots

Вы также можете использовать алиас yb kickall чтобы убрать всех ботов.

Если вы хотите убрать ботов мгновенно, добавьте аргумент instant к этой команде.

Например: yb kickall instant

yb kill

Команда yb kill убивает всех ботов. Чтобы убить конкретную команду, такую как террористы, вы должны написать в консоль yb kill t. Для Контр-Террористов это команда yb kill ct

yb fill

Чтобы заполнить сервер случайными ботами напишите в консоль yb fill 0.

Если вы хотите заполнить сервер определёнными ботами, например: Команда: Террористы, Количество: 5, Сложность: Средняя, Личность: Агрессивная, вы должны написать в консоли следующую команду yb fill 1 5 2 1.

Информация об аргументах yb fill:

Команды

  • 0 - Обе команды

  • 1 - Только террористы

  • 2 - Только контр-террористы

Сложности

  • 0 - Новичок

  • 1 - Обычный

  • 2 - Средний

  • 3 - Профессионал

  • 4 - Бог

Личности

  • 0 - Нормальная

  • 1 - Агрессивная

  • 2 - Осторожная

Не вводите значение личности бота, если вы хотите ботов со случайными личностями.

Корректный формат для команды yb fill это yb fill [команда] [количество] [сложность] [личность].

yb weapons

Чтобы заставить бота использовать определённый вид оружия, например, дробовики, вы должны написать в консоль команду yb weapons shotgun.

Допустимые значения: knife|pistol|shotgun|smg|rifle|sniper|standard.

Standard означает что боты будут использовать все виды оружия.

yb cvars

Эта команда выводит список всех кваров с их описаниями.

Если вы хотите сохранить все настроенные вами квары в конфиг, добавьте аргумент save к этой команде.

Вы также можете сохранить конфиг для конкретной карты, используя аргумент save_map для сохранения текущих значений всех кваров в файл addons/yapb/conf/maps/map_name.cfg.

Например: yb cvars save

Также вы можете сузить свой поиск путём ввода слова как аргумент, вместо просмотра списка со всеми кварами.

Добавление ботов в игру

Выберите 1. Быстро добавить бота в меню управления ботами чтобы добавить бота со случайной статистикой (имя, сложность, личность и т.д.) Выберите 2. Добавить особого бота в меню управления ботами чтобы добавить бота с вручную заданной статистикой.

Или напишите в консоли yb_quota x где X это количество добавляемых ботов.

Выбор языка бота

Вы должны открыть файл yapb.cfg в папке addons/yapb/conf и изменить значение квара yb_language на следующее доступное.

  1. en - Английский язык

  2. ru - Русский язык

  3. de - Немецкий язык

Например, напишите в конфиге yb_language ru для русского языка.

Управление ботами на выделенном сервере

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

Чтобы указать пароль, вы должны ввести в консоли следующий квар yb_password botpassword где botpassword указанный вами пароль. Чтобы указать ключ, вы должны ввести в консоли следующий квар yb_password_key _ybpw, где _ybpw указанный вами ключ.

Затем, в консоли клиента вы должны ввести следующую команду в консоль setinfo _ybpw botpassword чтобы иметь доступ к командам и меню бота. Чтобы иметь доступ к graph командам, вам нужно ввести в консоль следующую команду yb g acquire_editor. Убедитесь, что никто не вводил эту команду ранее, у которого есть пароль от бота. Иначе, вы не сможете иметь доступ к graph командам пока игрок не снимет с себя права на редактирование графов.

Чтобы снять права на редактирование графов, вы должны ввести в консоль следующую команду: yb g release_editor.

Инструкция по созданию вэйпоинтов

Краткая информация

Вэйпоинты, что это такое?

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

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

Примечание

Начиная с версии YaPB 2.10, был добавлен новый формат вэйпоинтов названный Graph. Благодаря этому, ограничение точек было повышено до 2048, направления кемперских точек теперь могут настраиватся по вертикали, а не только по горизонтали и понижен размер вэйпоинт файлов. YaPB также продолжает поддерживать старый PWF формат. Вы можете сохранять вэйпоинты в pwf формат, но они будут автоматически сконвертированы в graph формат когда загружены. Вэйпоинты (разноцветные полосы) теперь называются Точки начиная с версии YaPB 4.x. Редактор вэйпоинтов также был переименован в редактор графов.

Как выглядят вэйпоинты в игре?

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

Как я могу получить доступ к редактору вэйпоинтов?

Редактор вэйпоинтов это не отдельная программа, он включён в dll бота (или .so, если вы используете linux). Чтобы открыть его, создайте игру в LAN/Listen Server, выберите карту для которой вы хотите создать вэйпоинты и запустите игру как обычно. Как только вы окажетесь на карте, вы можете активировать режим редактирования с консоли, набрав yb graphmenu, или, если вы связали для него клавишу, просто нажмите на эту клавишу.

Сводка консольных graph команд

Доступны следующие 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

Вручную настраивает радиус путевой зоны для этой точки на значение x.

yb g teleport x

Телепортирует игрока к указанной в значении x точке.

yb g stats

Показывает количество различных точек которые вы уже поставили.

yb g fileinfo

Показывает базовую информацию о graph файле.

yb g adjust_height

Изменяет высоту (z-компонент) всех точек с указанным смещением.

yb g check

Проверяет правильность всех путевых соединений.

yb g load

Загружает точки из graph файла (см. ниже).

yb g save

Сохраняет текущие точки в файл (см. ниже).

yb g save nocheck

Сохраняет текущие точки в файл без проверки.

yb g upload

Загружает созданный graph файл в базу данных графов.

yb g menu

Показывает меню редактора графов. Также доступно через алиас yb graphmenu

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 команды, вы должны использовать консоль. Нажмите клавишу ~ чтобы открыть консоль. Вводите консольные команды которые пожелаете, затем снова нажмите клавишу ~ чтобы вернуться в игру.

Использование graph команд

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

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

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

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

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

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

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

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

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

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

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

Использование команды yb g path_clean удалит все соединения любого типа с ближайшей точки, если в качестве аргумента не указан номер индекса точки.

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

Установка вэйпоинтов

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

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

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

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

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

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

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

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

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

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

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

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

_images/graph_editor_overview.png

Окно просмотра редактора графов.

Добавление вэйпоинтов

Добавить вэйпоинт очень просто. Просто подойдите к месту, куда вы хотите поставить вэйпоинт, затем откройте меню редактирования вэйпоинтов:

_images/waypoint_menu_page1.png

Меню редактирования вэйпоинтов (Страница 1).

Чтобы добавить вэйпоинт, просто выберите 5. Добавить вэйпоинт. Должно появиться новое меню, под названием «Тип вэйпоинта«. Все типы вэйпоинтов описаны ниже которые могут быть добавлены через это меню.

_images/waypoint_type_menu.png

Меню типа вэйпоинта.

После того, как вы выбрали тип вэйпоинта в меню «Типы вэйпоинта», вы услышите звук, и выбранный вэйпоинт появится на карте в том месте, где вы стояли, когда нажали кнопку.

Примечание

Если вы стоите при выборе вэйпоинта, будет поставлен стоячий вэйпоинт. Все боты будут бежать или идти к этому вэйпоинту как обычно. Если вы хотите, чтобы боты приседали при приближении к определенной позиции, присядьте во время установки вэйпоинта. Вы заметите, что только что добавленный вэйпоинт примерно вдвое ниже, чем обычно. Когда вы поставите его, сидевши на корточках, на нём автоматически отобразится флаг «Crouch« (см. Типы вэйпоинтов). Боты теперь будут автоматически приседать при попытке достичь этого вэйпоинта.

Теперь, когда вы знаете основной способ, используемый для добавления вэйпоинта, давайте более подробно рассмотрим существующие типы вэйпоинтов.

Типы вэйпоинтов

Обычные вэйпоинты

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

_images/normal_point.png

Обычный вэйпоинт.

Важные для террористов вэйпоинты

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

_images/terrorist_important_point.png

Вэйпоинт важный для террористов.

Важно

Использование точек важных для террористов зависит от типа карты! Везде, где команда террористов является «обороняющейся» (например, на картах типа As_ Cs_), важные для террористов точки должны быть размещены на ключевых позициях вокруг зоны заложников или зоны побега VIP. Например, если заложники находятся внутри здания, за каждым входом в здание следует добавлять важные для террористов точки. Это заставит террористов часто проверять все входы и охранять их. Не размещайте важные для террористов точки далеко на другой стороне карты. В конце концов, вы же не хотите, чтобы террористы бросили заложников и бесцельно мчались по карте, не так ли? С зоной побега VIP применяется та же стратегия: заставить террористов охранять ключевые маршруты к зоне побега, используя важные для террористов точки. Вам НЕ нужно ставить важные для террористов точки прямо на заложников. В любом случае террористы будут проверять заложников. На картах, где команда террористов является «наступательной» (например, карты типа De_ и Es_), не следует злоупотреблять важными для террористов вэйпоинтами. «Наступательная» команда в любом случае попытается достичь целевого вэйпоинта на карте. Единственная полезная функция, для которой вы можете использовать важные вэйпоинты, это сделать определённые маршруты более привлекательными для ботов. Например, если существует более длинный и более сложный, но более безопасный и более неожиданный маршрут к цели на карте, боты могут его немного недооценивать. В таких случаях может помочь размещение одного или двух важных для террористов вэйпоинтов на этом маршруте.

Важные для контр-террористов вэйпоинты

Функция этого типа вэйпоинта точно такая же, как и у важного для террористов вэйпоинта, описанного выше. Единственное отличие состоит в том, что важный для контр-террористов вэйпоинт отмечает стратегически важные места для команды Контр-Террористов (CT). Вы можете добавить этот тип вэйпоинта, выбрав 3. Важный для Контр-Террористов в меню «Тип вэйпоинта«. Важные для контр-террористов вэйпоинты имеют зелёный цвет с синей головкой, как вы можете видеть на картинке ниже.

_images/counter_terrorist_important_point.png

Вэйпоинт важный для контр-террористов.

Важно

Как и в случае с другими вэйпоинтами для конкретной команды, важные для контр-террористов вэйпоинты также должны быть размещены в соответствии с типом карты. На картах, где команда контр-террористов вынуждена пойти и достичь определённой цели - либо заложников которых нужно спасти, либо зоны побега VIP чтобы добраться до неё безопасно. Важные для контр-террористов точки могут быть полезны для того, чтобы сделать конкретный маршрут более привлекательным. Вам НЕ нужно размещать важные для контр-террористов точки возле цели на карте (заложники на картах CS_, VIP-зона (зоны) побега на картах As_), туда всё равно пойдут боты контр-террористы. Для них это самые важные точки, и добавление нескольких других важных вэйпоинтов рядом с ними не принесёт никакой пользы. На картах где команда контр-террористов играет оборонительную роль (например на картах De_ и Es_), поместите важные для контр-террористов точки на ключевых позициях вокруг места закладки бомбы/зоны побега чтобы заставить ботов контр-террористов защищать все возможные пути к цели для террористов.

Лестничные вэйпоинты

Лестничные вэйпоинты используются только для лестниц, как вы возможно догадались. Чтобы позволить вашим ботам использовать лестницу, просто подойдите к лестнице, пока вы не зацепитесь за неё (вы увидите как ваш прицел становится шире когда вы поднимаетесь по лестнице). Теперь поместите один лестничный вэйпоинт внизу лестницы. Затем поднимайтесь по лестнице, пока почти полностью не дойдёте до края. Разместите здесь второй вэйпоинт и убедитесь, что два лестничных вэйпоинта соединены (это должно было произойти автоматически, если лестничные вэйпоинты не слишком далеко друг от друга, в противном случае вы можете создать соединение вручную), Вот и всё! Вы можете добавить этот тип вэйпоинта, выбрав 1. Обычный в меню «Тип вэйпоинта«, он автоматически превратится в лестничный вэйпоинт, если вы стоите на лестнице. Или выберите 4. Лестница / Блокировать с заложником в меню «Тип вэйпоинта«, если это карта сценария спасения заложников (CS_), чтобы боты не потеряли заложников, поднимаясь по лестнице. Цвет лестничных вэйпоинтов коричневый, как вы можете видеть на картинке ниже.

_images/ladder_point.png

Лестничный вэйпоинт

Несколько общих советов и примечаний относительно лестничных вэйпоинтов:
  1. Ставьте вэйпоинты на лестницы только ПОСЛЕ того, как вы поставили вэйпоинты над и под ними! Если вы сначала ставите вэйпоинты на лестницы, все вэйпоинты в пределах досягаемости лестничного вэйпоинта будут соединены с ним, а их радиус автоматически уменьшится до нуля! Неважно, разместите ли вы сначала верхний или нижний лестничный вэйпоинт.

  2. Если лестница очень длинная, вы можете разместить дополнительные лестничные вэйпоинты между нижним и верхним концом.

  3. Нижний вэйпоинт будет автоматически соединён с ближайшим вэйпоинтом, независимо от текущих настроек максимального расстояния автопути.

  4. Верхний вэйпоинт обычно соединяется с нижним автоматически, но вам придётся добавить соединение, ведущее от него вручную.

  5. У лестничных вэйпоинтов всегда будет нулевой радиус, и его не следует менять!

Вэйпоинты точек спасения

Спасательные вэйпоинты необходимы только на картах типа Cs_ (сценарий спасения заложников). Они помечают зону куда команда контр-террористов должна вести заложников, называемую зоной спасения. Поставьте один из этих вэйпоинтов внутри каждой зоны спасения. Если есть только одна, вам понадобится только один спасательный вэйпоинт. Расстановка большего количества точек в одной зоне спасения - ненужная масса и скорее вызовет проблемы, чем улучшит что-либо. Бот контр-террорист которому удалось взять заложников, определит положение ближайшей точки спасения и приведет заложников туда. Когда бот достиг точки спасения, он проверяет действительно ли заложники спасены, и по прошествии максимального времени около 5 секунд поворачивается назад, чтобы вернуться в бой. Неправильно расположенные точки спасения могут привести к тому, что боты развернутся раньше чем заложники действительно достигнут зоны спасения. Как следствие, заложники останутся в нескольких сантиметрах от зоны спасения, в то время как бот считает свою миссию выполненной и возвращается в бой, игнорируя брошенных заложников. Вот почему рекомендуется размещать точки спасения внутри зоны спасения, а не по её краям! В редакторе, точки спасения будут отображаться ярко-белым цветом (см. ниже). Их радиус по умолчанию равен нулю и не должен изменяться. Все боты также могут использовать этот тип вэйпоинта для обычной навигации. Вы можете добавить этот тип вэйпоинта, выбрав 5. Зона спасения в меню «Тип вэйпоинта«. Цвет спасательных вэйпоинтов белый, как вы можете видеть на картинке ниже.

_images/hostage_rescue_point.png

Вэйпоинт зоны спасения заложников

Кемперские вэйпоинты

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

_images/camp_points.png

Слева направо. Снайперский, Важный для Контр-Террористов, Обычный и Важный для Террористов кемперские вэйпоинты.

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

_images/camp_directions.png

Обычный кемперский вэйпоинт с приседанием и с маркерами начала и конца просматриваемой зоны (направления)

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

  1. Подойдите к тому месту, где вы хотите чтобы боты кемперили (конечно, тёмный угол или подобные места лучше всего подходят для кемпинга, хотя кому я говорю?)

  2. Если вы хотите, чтобы боты стояли во время кемпинга, продолжайте стоять прямо. Если вы хотите, чтобы они приседали во время кемпинга (более точное прицеливание!), Присядьте, добавляя точку.

  3. Наведите прицел в том направлении и на той высоте, куда вы хотите чтобы ваши боты начали смотреть.

  4. Вызовите меню «Тип вэйпоинта« и выберите 6. Кемперский. Кемперский вэйпоинт теперь будет размещён в вашем текущем положении, и вы увидите две выходящие линии из него. Начальный кемперский маркер уже будет направлен в указанном вами направлении, а конечный кемперский маркер будет нуждаться в некоторой корректировке.

  5. Теперь наведите прицел в том направлении и на той высоте, где вы хотите чтобы ваши боты заканчивали наблюдение.

  6. Ещё раз откройте меню «Тип вэйпоинта«, но теперь выберите 7. Конец кемперского. Вы увидите, что конечный кемперский маркер теперь будет направлен в указанном вами направлении.

Это всё! Если вы не хотите сделать ваш кемперский вэйпоинт важным для определённой команды или добавить ещё один флаг (см. раздел: Флаги вэйпоинтов), всё готово! На самом деле это звучит намного сложнее, чем есть на самом деле.

Небольшие заметки и подсказки о кемперских вэйпоинтах:
  1. Вы можете изменять начальные и конечные кемперские маркеры ровно столько, сколько вы захотите. Как только вы приблизитесь к существующему кемперскому вэйпоинту (т.е. как только отобразится статистика этого вэйпоинта в верхнем левом углу вашего HUD), откройте меню «Тип вэйпоинта« и выбрав 6. Кемперский или 7. Конец кемперского НЕ добавит новый вэйпоинт. Вместо этого он изменит положение начального и/или конечного кемперского маркера на ближайшем кемперском вэйпоинте в указанном вами новом направлении.

  2. Таким образом, если вы хотите разместить два кемперских вэйпоинта близко друг к другу, убедитесь, что статистика первого вэйпоинта исчезла из вашего HUD, прежде чем устанавливать второй. Если статистика первого вэйпоинта все ещё видна, вы можете случайно изменить начальный или конечный кемперский маркер этого вэйпоинта вместо того, чтобы поставить новую точку.

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

  4. Обеспечьте «оборонительную» команду несколькими хорошими снайперскими точками рядом с целью на карте! В общем, если вы создаете командные кемперские вэйпоинты, вы добиваетесь больше для оборонительной команды, чем для атакующей команды.

Целевые вэйпоинты

Очевидно, что этот тип вэйпоинта указывает на цель карты.

На As_ картах, целевой вэйпоинт сообщает ботам, где находится зона побега VIP. Убедитесь что в вашем HUD отображается символ зоны побега когда вы ставите туда целевой вэйпоинт. Иначе, VIP может закончить тем, что достигнет точки и снова убежит, как вы бы сделали со спасательными вэйпоинтами. На Cs_ картах, целевой вэйпоинт отмечает местоположение заложников. Вам НЕ следует размещать по одному целевому вэйпоинту на каждого заложника. Если заложники не стоят очень далеко друг от друга, одна точка на группу заложников вполне подойдет. На De_ картах, целевой вэйпоинт отмечает места закладки бомб. Он должен быть размещён где-то внутри зоны закладки бомбы, то есть значок бомбы должен мигать на вашем HUD, когда вы размещаете такой вэйпоинт. В отличие от карт Cs_, на картах De_ имеет смысл устанавливать несколько целевых вэйпоинтов в одной зоне закладки бомбы. Это позволит ботам выбирать из нескольких мест для установки бомбы и сделает их менее предсказуемыми.

Примечание

На Es_ картах, целевые вэйпоинты отмечают зону побега для Террористов. Вы можете следовать тем же правилам что и для As_ карт. Теперь вы можете задаться вопросом, как определить точную функцию целевого вэйпоинта? Не волнуйтесь, это полностью зависит от карты, вам не нужно ничего с этим делать. Все боты обеих участвующих команд автоматически знают, какая цель карты на данный момент, им нужна только точка которая направляет их туда. Вы можете добавить этот тип вэйпоинта, выбрав 8. Целевой в меню «Тип вэйпоинта«. Цвет целевых вэйпоинтов фиолетовый, как вы можете видеть на картинках ниже.

Примеры целевых вэйпоинтов
_images/hostage_goal_point.png

Целевой вэйпоинт заложников (карта cs_assault)

_images/vip_goal_point.png

Целевой вэйпоинт побега VIP (карта as_oilrig)

_images/bombplace_goal_point.png

Целевой вэйпоинт места закладки бомбы (карта de_dust2)

_images/terrorists_escape_goal_point.png

Целевой вэйпоинт побега террористов (карта es_trinity)

Прыговые соединения

Прыговые вэйпоинты на самом деле не вэйпоинты, а соединения между ними. (см .: Соединения вэйпоинтов)

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

Радиус

Радиус вэйпоинта обозначается синим многоугольником, который расходится во всех направлениях от положения вэйпоинта. Фото ниже было сделано сверху, где мы смотрим на вэйпоинт, и вы можете увидеть что цвет радиуса синий, как вы можете видеть на картинке ниже.

_images/wayzone_radius.png

Радиус вэйпоинта

Индикатор радиуса отличное средство для того чтобы увидеть, насколько велик радиус вэйпоинта на самом деле, он заканчивается там, где заканчиваются углы. Что на самом деле делает радиус? Он сообщает ботам, как именно они должны перемещаться вокруг по рассматриваемому вэйпоинту. Если бот проходит мимо ряда вэйпоинтов с большими радиусами, он будет знать, что сверхточная навигация не требуется. Если радиусы маленькие, бот будет строго придерживаться вэйпоинтов. Таким образом, на открытых участках большой радиус помогает сделать навигацию бота естественной - вы же не хотели бы видеть, как бот бежит по широкому двору, как если бы он следовал невероятно тонкой прямой линии, нарисованной на земле, не так ли? Это выглядит намного естественнее, если бот использует пространство вокруг себя. Однако в узких коридорах и дверных проемах или на мостах ситуация иная: слишком большой радиус сделает ботов слишком неаккуратными, они будут врезаться в стены или даже падать с моста, потому что они думают, что могут ходить где угодно в пределах этого большого радиуса! Вот почему так важен выбор подходящего радиуса вэйпоинта. Как правило, на открытых участках радиус должен быть большим, а в узких проходах - маленьким. Прочтите следующий раздел, чтобы узнать подробнее:

Настройка или изменение радиуса:

Сначала хорошие новости: Вам не нужно настраивать каждый радиус вручную, редактор сделает большую часть работы за вас! Он автоматически вычислит радиус вэйпоинта в зависимости от области вокруг него. Если редактор обнаруживает более высокие (~больше чем высота колена) препятствия, такие как стены поблизости, он автоматически отрегулирует радиус чтобы он не выходил за стену. Однако, максимальный радиус ограничен 128 юнитами. Это означает что даже на полностью открытой местности, где ближайшее препятствие находится на расстоянии сотен юнитов, радиус не превышает 128.

Теперь вы можете спросить «Ну, если редактор делает всё это за меня, зачем мне менять радиусы вручную?» Ответ прост, редактор помогает, но он не идеален, он не может обнаруживать всевозможные препятствия (я не могу здесь вдаваться в подробности, потому что всё это в значительной степени связано с картой). В любом случае вы увидите места, где радиус врезается в препятствие - это может быть очень тонкий столб, забор или даже солидный автомобиль припаркованный на улице… как я уже сказал, это зависит от того, как маппер построил эти элементы. Другая проблема связана не со стенами, а с отверстиями и скалами. Если нет высоких препятствий, редактор будет считать область чистой и установит большой радиус, ему всё равно есть ли рядом с вэйпоинтом огромная пропасть где боты могут упасть насмерть! Поэтому, в этих областях вам нужно будет внимательно следить за своими радиусами и при необходимости, изменять их вручную. В узких коридорах и особенно вокруг узких дверных проёмов, вы увидите что даже небольшой радиус рассчитанный редактором не позволяет ботам перемещаться достаточно точно. В таких местах настоятельно рекомендую снизить радиус до нуля. Чтобы изменить радиус вэйпоинта, откройте меню вэйпоинтов и выберите «8. Установить радиус«. Появится следующее меню:

_images/setradius_menu.png

Меню радиуса вэйпоинта

Просто выберите параметр, нажав соответствующую кнопку и радиус текущего вэйпоинта будет изменён на выбранное значение. Вы быстро почувствуете эти числа, если немного поиграете с ними.

Вэйпоинты с фиксированным радиусом

Примечание

Некоторые типы вэйпоинтов всегда имеют и требуют нулевой радиус. Радиусы этих типов вэйпоинтов НЕ следует изменять! Типы вэйпоинтов с фиксированными радиусами: Лестничные, Спасательные, Кемперские (независимо от того, являются ли они важными для конкретной команды или нет) и Целевые.

Соединения вэйпоинтов

Одних вэйпоинтов недостаточно чтобы заставить ботов двигаться так, как вы хотите. Они должны быть соединены с другими вэйпоинтами чтобы позволить ботам достичь своей цели. По умолчанию соединения на определенном расстоянии будут создаваться автоматически. Вы можете выбрать расстояние автоматических соединений (максимальное расстояние автопути, APMD), открыв меню вэйпоинтов и выбрав 7. Установить дистанцию автопути. Появится следующее подменю:

_images/autopath_distance_menu.png

Меню дистанции автопути

Выберите желаемое расстояние из этого меню. После выбора расстояния, соединения на этом расстоянии будут отображаться автоматически, конечно, вы также можете добавлять и удалять соединения вручную. Однако, для этого нужно немного больше объяснений, и лучше объяснить знаете ли вы различные типы соединений. Итак, давайте сначала посмотрим на них - потом вы можете прочитать, как добавлять и удалять такие соединения вручную.

Двухсторонние (двунаправленные) соединения

Подавляющее большинство всех соединений в наборе вэйпоинтов будет двунаправленным. Очевидно, что эти соединения позволяют ботам перемещаться как из точки A в точку B, так и обратно из точки B в точку A. Цвет двунаправленных путей желтый, как вы можете видеть на картинке ниже.

_images/bidirectional_path.png

Двухстороннее соединение между двумя изображёнными вэйпоинтами.

Односторонние соединения

Односторонние соединения позволяют ботам перемещаться из точки A в точку B, но не наоборот. Они могут быть полезны чтобы заставить ботов упасть со стены или высокого ящика, но не дать им попытаться подняться. Конечно, может быть больше мест в которых может иметь смысл одностороннее соединение, но это зависит от карты. В игре односторонние соединения будут видны с 2-ух вэйпоинтов, начальным и конечным. Чтобы показать вам направление одностороннего соединения, оно будет отображаться разными цветами в зависимости от того, с какой точки вы его просматриваете. Допустим, у вас есть одностороннее соединение из точки 1 в точку 2. В этом случае, когда вы стоите в точке 1, вы увидите исходящее одностороннее соединение отображённое белым цветом, как вы можете видеть на картинке ниже.

_images/outgoing_path.png

Исходящее одностороннее соединение от правого к левому вэйпоинту.

На рисунке ниже показаны те же два вэйпоинта с входящим соединением (от левого к правому вэйпоинту), Входящее одностороннее соединение отображается бирюзовым, как вы можете видеть на картинке ниже.

_images/incoming_path.png

Входящее одностороннее соединение от левого к правому вэйпоинту.

Примечание

Если вы создали исходящее путевое соединение от вэйпоинта A к вэйпоинту B, оно будет отображаться белым. А когда вы подойдёте к вэйпоинту B, путевое соединение станет бирюзовым как входящее путевое соединение.

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

Прыговые соединения

Прыговые соединения немного особенные, поскольку их нельзя создать как любое другое соединение. Но это ещё не всё, кроме этого, прыговые соединения также могут быть односторонними или двухсторонними. Чтобы ещё больше усложнить ситуацию, их двусторонняя версия может быть двух видов: «чистое» двухстороннее прыговое соединение, т. е. прыговое соединение от A до B и ещё одно прыговое соединение назад от B к A или «смешанное» двустороннее соединение, с прыговым соединением ведущим от A к B, и обычным односторонним соединением от B к A. Последняя версия будет очень редкой, хотя… Опять же, это звучит более сложно, чем есть на самом деле. Прыговое соединение отображено красной горизонтальной линией(Исходящее прыговое соединение), просматривается на вэйпоинтах где боты начнут прыжок, это может быть видно на картинке ниже.

_images/jump_connection.png

Исходящее прыговое соединение

Добавление/Удаление соединений вручную

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

Вот как это работает (посмотрите на скриншот ниже), давайте представим, что мы хотим удалить соединение с вэйпоинта на котором мы стоим до левого вэйпоинта у стены, нацелимся на вэйпоинт своим прицелом. Как только вэйпоинт будет выбран, он станет больше и перед ним появятся маленькие стрелки.

Примечание

Это работает только если вы стоите возле одного вэйпоинта и целитесь на другой! Если вы стоите в зоне без вэйпоинтов, вы не сможете использовать эту функцию, потому что для этого нужны два выбранных вэйпоинта (тот, на котором вы стоите и тот, в который вы целитесь).

_images/selected_point.png

Левый выбранный вэйпоинт

Удаление путевых соединений

Чтобы удалить путевое соединение, вы должны открыть меню вэйпоинтов и выбрать 4. Удалить путь.

После удаления путевого соединения, вы можете заметить что исходящее путевое соединение было удалено (от вэйпоинта на котором вы стоите до выбранного вами вэйпоинта) как вы можете видеть на картинке ниже:

_images/deleted_outgoing_path.png

Удалено исходящее путевое соединение, осталось только входящее путевое соединение (от выбранного вэйпоинта до вэйпоинта на котором вы стоите)

Снова выберите 4. Удалить путь чтобы удалить входящее путевое соединение.

_images/fully_deleted_path.png

Полностью удалённое путевое соединение

Как вы уже заметили, все путевые соединения были удалены с вэйпоинта на котором вы стоите до выбранного вэйпоинта.

Добавление путевых соединений

Чтобы добавить путевое соединение, вы должны открыть меню вэйпоинтов и выбрать 3. Создать путь. Затем появится меню как показано на картинке ниже.

_images/path_directions_menu.png

Меню путевых соединений

  1. Выберите 1. Исходящий путь чтобы создать исходящее путевое соединение от ближайшей до указанной (или кэшированной) точки.

  2. Выберите 2. Входящий путь чтобы создать входящее путевое соединение от указанной (или кэшированной) до ближайшей точки.

  3. Выберите 3. Двунаправленный (Оба пути) чтобы создать двунаправленное (двухстороннее) путевое соединение между ближайшей и указанной (или кэшированной) точкой.

  4. Выберите 4. Прыговой путь чтобы создать исходящее прыговое путевое соединение от ближайшей до указанной (или кэшированной) точки.

Флаги вэйпоинтов

YaPB имеет 9 флагов для вэйпоинтов, которые из них:

  1. Блокировка с заложником - флаг, который запрещает Контр-Террористам ведущих заложников идти через определённые вэйпоинты помеченные этими флагами. Важно: вы обязательно должны ставить эти флаги на путях где контр-террористы могут потерять заложников!

  2. Только для Террористов - делает вэйпоинт важным для Террористов

  3. Только для Контр-Террористов - делает вэйпоинт важным для Контр-Террористов

  4. Использовать лифт - флаг для вэйпоинта который заставляет ботов ждать пока они поднимутся на лифте (вы должны поставить этот флаг в начале и конце пути лифта)

  5. Снайперский - флаг, который делает кемперскую точку как снайперскую.

  6. Цель карты - флаг, который превращает обычный вэйпоинт в целевой.

  7. Зона спасения - флаг, который указывает вэйпоинт как точку спасения заложников.

  8. Присесть - флаг, который заставляет ботов приседать при достижении этого вэйпоинта.

  9. Кемперская точка - флаг, который делает вэйпоинт как кемперскую точку. При добавлении этого флага, открывается меню выбора начального и конечного направления обзора бота, когда он кемперит.

_images/waypoint_flags_menu.png

Меню флагов вэйпоинтов

Меню «Отладка цели»

Чтобы проверить проходимость ботов до указанной точки, вам нужно открыть вторую страницу меню «Операции с вэйпоинтами», и выбрать 1. Отладка цели. Затем, должно появиться меню, как показано на картинке ниже.

_images/debug_goal_menu.png

Меню «Отладка цели»

  1. Выберите 1. Отладить ближайшую точку чтобы указать ближайшую точку как цель, которую боту нужно достичь.

  2. Выберите 2. Отладить указанную точку чтобы указать точку, на которую наведён ваш прицел, как цель, которую боту нужно достичь.

  3. Выберите 3. Прекратить отладку чтобы отключить функционирование «Отладки цели».

Локализация

Файлы локализации YaPB находятся внутри папки addons/yapb/conf/lang. Основная локализация находится внутри **_lang.cfg где ** это двухбуквенный код языка. Например: ru для Русского языка, de для Немецкого языка, и т.д. На данный момент, YaPB имеет три языка: Английский, Русский и Немецкий.

Также, помимо локализации основных вещей бота, таких как меню, всплывающие сообщения, текст в консоли, и т.д. Вы можете создать базу чата и список никнеймов на вашем языке. **_chat.cfg для чата, и **_names.cfg для никнеймов соответственно.

Основная локализация

Чтобы перевести бота на ваш язык, вам нужно создать файл **_lang.cfg Затем открыть этот файл, и вставить оригинальные строки бота после строчки [ORIGINAL]. Затем вставить переведённые строки после строчки [TRANSLATED].

Это должно выглядеть так:

[ORIGINAL]
Здесь оригинальные строки бота.

[TRANSLATED]
Здесь переведённые строки бота.

Вы можете использовать к примеру ru_lang.cfg как шаблон для перевода.

Локализация чата

Вам просто нужно создать файл **_chat.cfg для чата ботов на вашем языке. Вы можете использовать en_chat.cfg как пример.

См.также

Дополнительные сведения смотрите в разделе Персонализация.

Локализация никнеймов

Вам просто нужно создать файл **_names.cfg для ников ботов на вашем языке. Вы можете использовать en_names.cfg как пример.

Сборка бота

Прежде чем вы начнёте

Если у вас есть все требуемые пакеты, вы можете пропустить этот шаг.

Примечание

Вам нужно собрать 32-битную библиотеку, так как Valve прекратила поддержку 64-битного HLDS.

Установка пакетов Windows

  • Установите последнюю версию Visual Studio с https://visualstudio.microsoft.com/

  • Запустите Visual Studio Installer, выберите требуемую редакцию Visual Studio и установите все необходимые компоненты для разработки на C/C++.

  • Установите последнюю версию Git для Windows с https://git-scm.com/download/windows/

  • Запустите установщик, и следуйте его указаниям.

  • Установите последнюю версию Python с https://www.python.org/downloads/windows/

  • Запустите установщик, и следуйте его указаниям.

  • Установите Meson и Ninja используя pip, введя следующую команду в окне командной строки или powershell pip install meson ninja.

  • Готово!

Установка пакетов Linux

  • Установите последнюю версию GCC или Clang, введя следующую команду в окне терминала sudo apt install gcc, или sudo apt install clang.

  • Установите последнюю версию Git, введя следующую команду в окне терминала sudo apt install git.

  • Установите последнюю версию Python, введя следующую команду в окне терминала sudo apt install python3.

  • Установите пакеты gcc-multilib и g++-multilib, введя следующую команду в окне терминала sudo apt install gcc-multilib g++-multilib.

  • Установите Meson и Ninja используя pip, введя следующую команду в окне терминала pip install meson ninja.

  • Готово!

Сборка на Windows

  • Клонируйте репозиторий YaPB, введя следующую команду в окне Visual Studio Developer PowerShell или Visual Studio Developer Command Prompt git clone --recursive https://github.com/yapb/yapb

  • Войдите в папку с проектом YaPB: cd yapb

  • Сконфигурируйте этот проект используя Meson: meson setup build

  • Скомпилируйте DLL библиотеку: meson compile -C build

  • Готово! Скомпилированная библиотека находится в build/yapb.dll

Сборка на Linux

  • Клонируйте репозиторий YaPB, введя следующую команду в окне терминала git clone --recursive https://github.com/yapb/yapb

  • Войдите в папку с проектом YaPB: cd yapb

  • Сконфигурируйте этот проект используя Meson: meson setup build

  • Скомпилируйте .so библиотеку: meson compile -C build

  • Готово! Скомпилированная библиотека находится в build/yapb.so

Авторы

Команда разработчиков

  • jeefo - Текущий разработчик, и создатель версий 2.x - 4.x.

  • $_Vladislav - Документация, вэйпоинты.

  • Whistler - Оригинальный автор форка YaPB. (в отставке)

Особые благодарности

  • Botman, создатель первого бота. Он выяснил как добавить ботов в CS.

  • CountFloyd, создатель PODBot, на основе которого был создан этот бот.

  • KWo, текущий разработчик PODBot MM.

  • Pierre-Marie Baty, соучредитель Bots-United.

  • Splorygon, оригинальный разработчик PODBot MM.

  • evilspy, автор JKbotti.

  • The Storm, автор e[POD]bot.

  • Immortal_BLG, автор YaPB3.

  • Valve, за создание такой прекрасной игры.

  • SpArK, за большую помощь на ранних версиях бота.

  • Overitab, за множество вэйпоинтов.

  • [PRince4], за множество вэйпоинтов.

Вэйпоинтеры и тестировщики

  • Вэйпоинтеры:

    • $_Vladislav

    • Overitab

    • headshot26

    • Ek

    • CoCoNUT

    • MarD

    • Bots-United Members

    • Reallite Labs

  • Тестировщики:

    • ZmifF

    • RR99i

    • FFreJuSE

    • TeMP

    • SaTaN

    • SpArK

  • Другие:

    • Ancient, за хостинг сайта yapb на некоторое время.

Дополнительно

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