Справка 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_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 62
- GSG-93
- SAS4
- GIGN5
- Спецназ (Только для 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_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
- Доступны следующие основные команды 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 62
- GSG-93
- SAS4
- GIGN5
- Спецназ (Только для 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 на следующее доступное.
en
- Английский языкru
- Русский язык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 (Контр-Террористов). Вы можете также видеть стрелочки указывающие на эти точки (красные для Террористов, синие для Контр-Террористов).
Белые стрелочки указывают на выделенную вами точку (на которую указывает ваш прицел). Жёлтые стрелочки указывают на кэшированную вами точку.

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

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

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

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

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

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

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

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

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

Обычный кемперский вэйпоинт с приседанием и с маркерами начала и конца просматриваемой зоны (направления)
Когда бот приближается к изображённому кемперскому вэйпоинту, он сначала поворачивается лицом к начальному маркеру. Затем он просмотрит область между этим маркером и конечным маркером, меняя каждые несколько секунд направление с одного на другое. Враг, выходящий за пределы двух маркеров, может ускользнуть от внимания бота, если только он не услышит приближение врага. На рисунке выше оба маркера указывают на одинаковую высоту. Однако вы также можете указать разную высоту для каждого маркера. Это очень полезно, если боты следят за подъёмом, уклоном, лестницей или другими неровными поверхностями. Все идёт нормально. Но как установить рабочий кемперский вэйпоинт? Следуйте этим шагам:
Подойдите к тому месту, где вы хотите чтобы боты кемперили (конечно, тёмный угол или подобные места лучше всего подходят для кемпинга, хотя кому я говорю?)
Если вы хотите, чтобы боты стояли во время кемпинга, продолжайте стоять прямо. Если вы хотите, чтобы они приседали во время кемпинга (более точное прицеливание!), Присядьте, добавляя точку.
Наведите прицел в том направлении и на той высоте, куда вы хотите чтобы ваши боты начали смотреть.
Вызовите меню «Тип вэйпоинта« и выберите
6. Кемперский
. Кемперский вэйпоинт теперь будет размещён в вашем текущем положении, и вы увидите две выходящие линии из него. Начальный кемперский маркер уже будет направлен в указанном вами направлении, а конечный кемперский маркер будет нуждаться в некоторой корректировке.Теперь наведите прицел в том направлении и на той высоте, где вы хотите чтобы ваши боты заканчивали наблюдение.
Ещё раз откройте меню «Тип вэйпоинта«, но теперь выберите
7. Конец кемперского
. Вы увидите, что конечный кемперский маркер теперь будет направлен в указанном вами направлении.
Это всё! Если вы не хотите сделать ваш кемперский вэйпоинт важным для определённой команды или добавить ещё один флаг (см. раздел: Флаги вэйпоинтов), всё готово! На самом деле это звучит намного сложнее, чем есть на самом деле.
Небольшие заметки и подсказки о кемперских вэйпоинтах:
Вы можете изменять начальные и конечные кемперские маркеры ровно столько, сколько вы захотите. Как только вы приблизитесь к существующему кемперскому вэйпоинту (т.е. как только отобразится статистика этого вэйпоинта в верхнем левом углу вашего HUD), откройте меню «Тип вэйпоинта« и выбрав
6. Кемперский
или7. Конец кемперского
НЕ добавит новый вэйпоинт. Вместо этого он изменит положение начального и/или конечного кемперского маркера на ближайшем кемперском вэйпоинте в указанном вами новом направлении.Таким образом, если вы хотите разместить два кемперских вэйпоинта близко друг к другу, убедитесь, что статистика первого вэйпоинта исчезла из вашего HUD, прежде чем устанавливать второй. Если статистика первого вэйпоинта все ещё видна, вы можете случайно изменить начальный или конечный кемперский маркер этого вэйпоинта вместо того, чтобы поставить новую точку.
Не размещайте кемперские вэйпоинты в неважных стратегически областях, иначе вы увидите, как боты находятся в совершенно бесполезных областях, в то время как их товарищи по команде подвергаются сильной атаке.
Обеспечьте «оборонительную» команду несколькими хорошими снайперскими точками рядом с целью на карте! В общем, если вы создаете командные кемперские вэйпоинты, вы добиваетесь больше для оборонительной команды, чем для атакующей команды.
Целевые вэйпоинты
Очевидно, что этот тип вэйпоинта указывает на цель карты.
На As_ картах, целевой вэйпоинт сообщает ботам, где находится зона побега VIP. Убедитесь что в вашем HUD отображается символ зоны побега когда вы ставите туда целевой вэйпоинт. Иначе, VIP может закончить тем, что достигнет точки и снова убежит, как вы бы сделали со спасательными вэйпоинтами. На Cs_ картах, целевой вэйпоинт отмечает местоположение заложников. Вам НЕ следует размещать по одному целевому вэйпоинту на каждого заложника. Если заложники не стоят очень далеко друг от друга, одна точка на группу заложников вполне подойдет. На De_ картах, целевой вэйпоинт отмечает места закладки бомб. Он должен быть размещён где-то внутри зоны закладки бомбы, то есть значок бомбы должен мигать на вашем HUD, когда вы размещаете такой вэйпоинт. В отличие от карт Cs_, на картах De_ имеет смысл устанавливать несколько целевых вэйпоинтов в одной зоне закладки бомбы. Это позволит ботам выбирать из нескольких мест для установки бомбы и сделает их менее предсказуемыми.
Примечание
На Es_ картах, целевые вэйпоинты отмечают зону побега для Террористов. Вы можете следовать тем же правилам что и для As_ карт. Теперь вы можете задаться вопросом, как определить точную функцию целевого вэйпоинта? Не волнуйтесь, это полностью зависит от карты, вам не нужно ничего с этим делать. Все боты обеих участвующих команд автоматически знают, какая цель карты на данный момент, им нужна только точка которая направляет их туда. Вы можете добавить этот тип вэйпоинта, выбрав 8. Целевой
в меню «Тип вэйпоинта«. Цвет целевых вэйпоинтов фиолетовый, как вы можете видеть на картинках ниже.
Примеры целевых вэйпоинтов

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

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

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

Целевой вэйпоинт побега террористов (карта es_trinity)
Прыговые соединения
Прыговые вэйпоинты на самом деле не вэйпоинты, а соединения между ними. (см .: Соединения вэйпоинтов)
Итак, теперь мы увидели какие типы вэйпоинтов используют боты, мы можем видеть как мы можем связать эти вэйпоинты вместе чтобы создать гигантскую сеть, покрывающую карту.
Радиус
Радиус вэйпоинта обозначается синим многоугольником, который расходится во всех направлениях от положения вэйпоинта. Фото ниже было сделано сверху, где мы смотрим на вэйпоинт, и вы можете увидеть что цвет радиуса синий, как вы можете видеть на картинке ниже.

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

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

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

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

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

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

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

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

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

Полностью удалённое путевое соединение
Как вы уже заметили, все путевые соединения были удалены с вэйпоинта на котором вы стоите до выбранного вэйпоинта.
Добавление путевых соединений
Чтобы добавить путевое соединение, вы должны открыть меню вэйпоинтов и выбрать 3. Создать путь
. Затем появится меню как показано на картинке ниже.

Меню путевых соединений
Выберите
1. Исходящий путь
чтобы создать исходящее путевое соединение от ближайшей до указанной (или кэшированной) точки.Выберите
2. Входящий путь
чтобы создать входящее путевое соединение от указанной (или кэшированной) до ближайшей точки.Выберите
3. Двунаправленный (Оба пути)
чтобы создать двунаправленное (двухстороннее) путевое соединение между ближайшей и указанной (или кэшированной) точкой.Выберите
4. Прыговой путь
чтобы создать исходящее прыговое путевое соединение от ближайшей до указанной (или кэшированной) точки.
Флаги вэйпоинтов
YaPB имеет 9 флагов для вэйпоинтов, которые из них:
Блокировка с заложником - флаг, который запрещает Контр-Террористам ведущих заложников идти через определённые вэйпоинты помеченные этими флагами. Важно: вы обязательно должны ставить эти флаги на путях где контр-террористы могут потерять заложников!
Только для Террористов - делает вэйпоинт важным для Террористов
Только для Контр-Террористов - делает вэйпоинт важным для Контр-Террористов
Использовать лифт - флаг для вэйпоинта который заставляет ботов ждать пока они поднимутся на лифте (вы должны поставить этот флаг в начале и конце пути лифта)
Снайперский - флаг, который делает кемперскую точку как снайперскую.
Цель карты - флаг, который превращает обычный вэйпоинт в целевой.
Зона спасения - флаг, который указывает вэйпоинт как точку спасения заложников.
Присесть - флаг, который заставляет ботов приседать при достижении этого вэйпоинта.
Кемперская точка - флаг, который делает вэйпоинт как кемперскую точку. При добавлении этого флага, открывается меню выбора начального и конечного направления обзора бота, когда он кемперит.

Меню флагов вэйпоинтов
Меню «Отладка цели»
Чтобы проверить проходимость ботов до указанной точки, вам нужно открыть вторую страницу меню «Операции с вэйпоинтами», и выбрать 1. Отладка цели
. Затем, должно появиться меню, как показано на картинке ниже.

Меню «Отладка цели»
Выберите
1. Отладить ближайшую точку
чтобы указать ближайшую точку как цель, которую боту нужно достичь.Выберите
2. Отладить указанную точку
чтобы указать точку, на которую наведён ваш прицел, как цель, которую боту нужно достичь.Выберите
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 на некоторое время.
Дополнительно
Конечно, есть больше людей которые помогли оживить бота, если вы не упомянуты здесь пожалуйста сообщите.