Знакомство с zBot, их командами и настройкой навигации

Сообщения
1,536
Реакции
2,324
Помог
39 раз(а)
Автор оригинальной статьи: Rich ¥Weeds¥ Nagel
Автор вольного перевода и дополнений: Tranquillity (правки по переводу принимаются в ЛС)
Оглавление:
  1. Команды ботов
  2. Навигация
  3. Обозначения мест навигации на карте
  4. Обработка областей навигации
  5. Отладка навигации


В этом руководстве подробно описываются ВСЕ команды и переменные консоли Bot в игре, а также ВСЕ команды редактирования AI Bot Navigation Mesh для Counter-Strike: Condition Zero, откуда они были перенесены в Counter-Strike 1.6

Актуальность команд будет соответствовать последней версии ReGameDll
https://github.com/s1lentq/ReGameDL...74/regamedll/dlls/bot/cs_bot_manager.cpp#L246
https://github.com/s1lentq/ReGameDL...1078fa/regamedll/dlls/bot/cs_bot_init.cpp#L31


Команды

bot_add [name]
bot_add_t [name]
bot_add_ct [name]

Заставляет бота (имя которого задано в "BotProfile.db" и где указаны его характеристики и уровень сложности) зайти в игру. Без указания имени, бот будет выбран случайным образом.
Для добавления бота в конкретную команду используются отдельные команды bot_add_t (добавляет бота за террористов) и bot_add_ct (добавляет бота за контр-террористов). Без указания команды, бот будет добавлен в команду, где меньше всего игроков, чтобы сбалансировать их.

bot_kill [name, all]
Данная команда принимает значение имени бота или слова all, пустое значение будет приравнено к "all" (заставляя всех ботов в игре умереть)

bot_kick [name, all]
Данная команда принимает значение имени бота или слова "all", пустое значение будет приравнено к "all" (заставляя всех ботов в игре покинуть сервер).

bot_knives_only
bot_pistols_only
bot_snipers_only
bot_all_weapons

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

bot_difficulty [0 - 3]
Этот CVAR определяет сложность всех вновь созданных ботов. 0 = легкий, 1 = нормальный, 2 = сложный и 3 = эксперт (значения сложности выше «3» сбрасываются на «3»).
Обратите внимание, что существующие боты в игре сохранят сложности с которыми они были созданы.

bot_deathmatch [0, 1]
Если значение 1, тогда включает поддержку режима Deathmatch и боты не выполняют сценарий карты.
Данный квар был добавлен в regamedll

bot_quota_mode [normal, fill]
Задает режим заполнения сервера ботами.
При значение fill - сервер будет кикать количество ботов, равное кол-ву подключившихся игроков, а при значение normal, кол-во игроков не будет влиять на кол-во ботов.
Данный квар был добавлен в regamedll

bot_quota [мин. кол-во ботов]
Установка этого CVar приведет к тому, что заданное количество ботов будет поддерживаться в игре.
Если бот был кикнут с сервера, новый бот будет добавлен для поддержания квоты, чтобы отключить квоту, установите ее в ноль.

bot_quota_match [коэффициент]
Устанавливает соотношение количества ботов на кол-во игроков (т.е. «Кол-во ботов = кол-во игроков * bot_quota_match_ratio»).
По мере того как игроки присоединяются или покидают сервер, количество ботов в игре будет соответствующим образом скорректировано.
Обратите внимание, что эта команда отменяет команду «bot_quota».

bot_auto_vacate [0, 1]
Установите значение 1, чтобы заставить ботов автоматически покинуть сервер, чтобы освободить место для игроков-людей (Значение 0 для отключения).

bot_prefix [строка]
Данная [строка] будет отображена перед никами всех вновь добавленных ботов.

bot_join_team [ct, t, any]
Определяет, к какой команде присоединятся боты.

bot_join_after_player [0, 1]
Если значение 1, боты будут ждать, чтобы присоединиться к игре, пока не присоединится хотя бы один игрок.

bot_allow_pistols
bot_allow_shotguns
bot_allow_sub_machine_guns
bot_allow_rifles
bot_allow_snipers
bot_allow_machine_guns
bot_allow_grenades
bot_allow_shield

Все CVars "bot_allow" могут быть только 0 или 1.
Если ноль, боты не будут покупать или использовать данную категорию оружия.

bot_allow_rogues [0, 1]
Значение 1, позволяет ботам быть более агрессивными и неуправляемыми.
Боты перестанут следовать за игроком, а на все радио команды будут отвечать «Отрицательно».

bot_defer_to_human [0, 1]
Если значение 1, заставляет ботов отдавать цели карты игрокам (закладка бомбы и т. д.).

bot_walk [0, 1]
Заставить всех ботов ходить (запретить бегать).

bot_stop [0, 1]
Если значение 1, все боты перестанут двигаться и реагировать на игроков.

hostage_stop [0, 1]
Если значение 1, все заложники перестанут двигаться и реагировать на игроков.

bot_chatter [normal, minimal, radio, off]
Устанавливает частоту использование радиокоманд ботами (Нормально, по минимуму, Стандартно или отключить полностью).

bot_profile_db [filename.db]
Устанавливает имя файла базы данных, которое определяет характеристики и индивидуальные настройки бота.
Обратите внимание, что имя файла базы данных по умолчанию - «BotProfile.db».

bot_about
Отображает номер версии модуля бота и информацию об авторе бота.
--------------------------------------------------------------------------
The Official Counter-Strike Bot V1.50
Created by Michael S. Booth
Web: www.turtlerockstudios.com\csbot
E-mail: [email protected]
--------------------------------------------------------------------------

Автоматическая балансировка команда игроков и ботов

Обратите внимание, что балансировка команды в Counter-Strike и Counter-Strike: Condition Zero (при игре с ботами в игре) может быть немного запутанной.

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

bot_auto_vacate 1
mp_autoteambalance 1
mp_limitteams 0




Редактирование областей навигации

80_screenshots_2011-10-23_00003.jpg
Каждая команда, которая начинается на "bot_nav_*" помогают настроить навигацию, позволяя вручную настраивать автоматически полученные данные. Рекомендуется, чтобы эти команды были привязаны к клавишам для простоты использования во время редактирования. Обратите внимание, что операции «отменить» нету, поэтому чаще сохраняйте свои изменения!
Редактирование производится через NewGame. Если у вас не включается редактор - установите regamedll в свой клиент (достаточно заменить mp.dll)

bot_nav_edit [0, 1]
1.jpg

Значение 1 позволяет вручную настроить навигацию ботов.
Когда режим редактирования активирован, можно использовать остальные команды «bot_nav_ *».


bot_nav_zdraw [значение высоты]
Это значение определяет, как высоко над землей рисовать «сетку навигации» в режиме редактирования.
Если рельеф имеет сильные искажения (не ровный или наклоненный), может быть полезно увеличить это значение до 10 или 15.
Значение по умолчанию 4.

bot_nav_mark
BgZGlA.jpg

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

bot_nav_warp
Телепортирует вас в точку, которая отмечена в данный момент.
Обратите внимание, что вы должны находиться в режиме наблюдателя «Free Look», чтобы эта команда функционировала.

bot_nav_delete
Удаляет выбранную навигационную область.

bot_nav_split
pTv1YT.jpg

Разделение выбранной области навигации на две новые области навигации вдоль белой разделительной линии.

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

bot_nav_connect
9abUWZ.jpg

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

bot_nav_disconnect
Удаляет все связи от текущей помеченной области до текущей выбранной области

bot_nav_begin_area
wcVdgK.jpg

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

bot_nav_end_area
g4xrwD.jpg

Закончит создание области и она приобретет желтый оттенок.
Эти две команды создают новые области: bot_nav_begin_area помечает один угол области, а bot_nav_end_area — противоположный и собственно, создает область.
Для отмены операции напишите команду bot_nav_begin_area снова.

bot_nav_splice
vmaD4q.jpg

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

bot_nav_corner_select
bot_nav_corner_raise
bot_nav_corner_lower
jH1RZ0.jpg

Выбирает один из четырех углов обозначенной в данный момент навигационной сетки («bot_nav_mark»), а затем позволяет поднимать (bot_nav_corner_raise) или опускать (bot_nav_corner_lower) выбранный угл.
Выполните команду «bot_nav_corner_select» несколько раз, чтобы переключаться между четырьмя углами (а затем еще раз, чтобы отменить выбор всех углов).

bot_nav_crouch
jCthXw.jpg

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

bot_nav_jump
IdQEIx.jpg
bot_nav_no_jump
WVJsvO.jpg

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

bot_nav_precise
vzzGhr.jpg

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

bot_nav_strip
Удаляет все точки укрытия, столкновения и приближения (которые генерируются с помощью команды «bot_nav_analyze») из выбранной области.



Некоторые примеры расширенного редактирования навигации:
80_screenshots_2011-10-17_00001.jpg
80_screenshots_2013-04-18_00001.jpg 80_screenshots_2013-05-03_00001.jpg 80_screenshots_2013-04-21_00001.jpg 80_screenshots_2013-04-18_00002.jpg

80_screenshots_2013-08-29_00001.jpg
Навигационная система ZBOT автоматически создает линию движения вокруг лестницы особым образом, но это вызывает проблемы из-за того, что вы не можете изменить ее положение, длину, связанные области.
ladder-002.jpg
Боты пытаются подняться с обратной стороны лестницы, когда линия взаимодействия с лестницей задано не правильно, это может спровоцировать их застревание или смерть. На схеме выше, показано, как заставить бота подниматься по правильной стороне лестницы.
ladder-parallel-001.jpg
В параллельном методе, бот идет к лестнице, чтобы добраться до линии навигации и тем самым поднимается наверх.

ladder-float-method.png
Параллельный метод не идеален, если вы хотите добиться хороших путей, воспользуйтесь методом float. Вырежьте оригинальную синюю линию движения по лестнице на изолированных областях и создайте плавающую верхнюю область в подходящем положении.
ladder-float-method-01.jpg
Создайте изолированные области вокруг верхней части вертикальной синей линии и нижней части, чтобы вырезать синею линию движения по лестнице.
ladder-float-method-02.jpg
Возможно, вам потребуется отрегулировать положение плавающей области как в горизонтальном, так и в вертикальном положении.
ladder-float-method-03.jpg

Советы по созданию навигации в местах, где используются двойные двери с узким проходом
double-doors.png
Слева - основной путь, справа - метод возврата для узких дверей.
double-doors-0.jpg
выравнять путь входа
double-doors-1.jpg
Проверьте все двойные двери и убедитесь, что соединили обе стороны прохода
double-doors-2.jpg
узким проходам нужен метод возврата, созданный одним соединенным путем
double-doors-3.jpg
Сделайте неиспользуемое пространство сбоку от бота, где были застревания.


Название мест
(Это то, что должно быть сделано для получения качественной навигации!)


Обратите внимание, что имена мест используются для определения местоположения ботов при использовании радио-чат команд, так же как и текстовые сообщения от игроков. Также не забывайте сохранять изменения в навигации чаще («bot_nav_save») на случай, если вы допустили ошибку, а затем снова проанализируйте навигационную сетку («bot_nav_analyze»).

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

Зеленый = Текущее установленное название места.
Синий = Другое название места уже задано.
Красный = Убрать название места

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

bot_nav_use_place - отобразит список доступных мест
bot_nav_use_place [place name]

AirplaneAlleyApartmentApartments
AtriumAtticBackBackAlley
BackDoorBackHallBackRoomBackWay
BackYardBalconyBasementBathroom
BedroomBigOfficeBombsiteABombsiteB
BombsiteCBridgeBunkerComputerRoom
ConferenceRoomCourtyardCratesCrawlspace
CTSpawnDeckDenDoubleDoors
DownstairsDuctsDumpsterElevator
EntranceEntrywayFamilyRoomFarSide
FenceFoyerFrontFrontDoor
FrontHallFrontRoomFrontYardGarage
GateGateHouseGuardHouseHostageRescueZone
HostagesHouseInsideKitchen
LadderLittleOfficeLivingRoomLoadingDock
LobbyLoftLongHallMainHall
MarketMeetingRoomMiddleMines
OfficeOutsideOverpassPatio
PorchProjectorRoomRampRear
RoofSecurityDoorsSewersSide
SideAlleySideDoorSideHallSideRoom
SideYardStairsStairwellStorageRoom
TowerTruckTSpawnTunnel
UndergroundUnderpassUpstairsVault
VendingMachinesVillageVipRescueZoneWall
WaterWindowWindowsWineCellar
[TBODY] [/TBODY]
Задает название места (например "bot_nav_use_place BombsiteA").

bot_nav_toggle_place_painting
Включить режим задания привязки текущей зоны к текущему месту.
Такие зоны выделяются зелёным цветом. Введите команду во второй раз, чтобы остановить рисование. Затем вы можете выбрать новое название места («bot_nav_use_place [название места]») и начать именовать другие навигационные сетки («bot_nav_toggle_place_painting»).

bot_nav_place_floodfill
Задать всем зонам внутри тех, которые привязаны к месту, привязку к этому же месту.

bot_nav_place_pick
Выбирает имя места выделенного в данный момент в качестве вашего текущего имени места (аналогично инструменту цветовой палитры любой программы рисования «eyedropper»).

bot_nav_mark_unnamed
Отмечает ближайшую неназванную навигационную область и отображает общее количество безымянных областей.
Эта команда полезна для поиска безымянных навигационных областей при использовании в сочетании с командами «bot_zombie 1» и «bot_goto_mark» (а также командой «bot_nav_warp»).

Вы можете услышать фразы ботов, при использовании нескольких этих названий мест, в коротком видео ниже




Обработка

bot_nav_analyze
Проанализируйте навигационные области, чтобы определить точки приближения, столкновения и укрытия.
Это может занять несколько минут в зависимости от размера и сложности карты. Обратите внимание, что для этой команды требуется один бот в игре.
Рекомендуемая процедура - сохранить навигацию, добавить бота и ввести «bot_nav_analyze».

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

bot_nav_load
Очищает текущую навигацию и загружает ее с диска.

bot_nav_save
Сохраняет текущую навигацию на диске.
Навигации (файл .nav) автоматически присваивается имя текущей карты. Например, если карта DE_Dust.bsp, файл навигации будет DE_Dust.nav.

bot_quicksave [0, 1]
Если значение 1, анализ карты будет пропущен.
Это полезно при повторной настройке навигационных файлов вручную.
Обратите внимание, что, несмотря на этот анализ, боты не будут правильно ориентироваться на карте.




bot_show_nav [0, 1]
Если значение 1, отображается навигационная сетка рядом с каждым ботом.

bot_show_danger [0, 1]
Если значение 1, «опасность» в каждой области навигации отображается как вертикальная линия.
Синие линии представляют опасность для контр-террористов, а красные линии представляют опасность для террористов.

bot_zombie [0, 1]
Заставляет ботов на карте игнорировать опасность (и другие ситуации на карте), и использовать только геометрическое расстояние для навигации по карте.
Эта команда полезна для проверки проходимости определенных частей навигационной сетки (или определения местоположения безымянных навигационных областей при редактировании названий мест навигации) при использовании в сочетании с «bot_nav_mark» (или «bot_nav_mark_unnamed») и командой «bot_goto_mark». При виде врага бот остановится.

bot_goto_mark
Заставляет ботов на карте перемещаться в центр текущей отмеченной области.
Эта команда полезна для проверки проходимости определенных областей навигации при использовании в сочетании с командой «bot_zombie 1».

bot_nav_check_consistency [filename.nav]
Проверяет консистентность и целостность файла навигации.

bot_traceview [0, 1]
Используется для внутренней отладки навигации в режиме реального времени.
Голубая линия указывает направление движения бота, фиолетовая линия указывает поле зрения бота, а оранжевая линия указывает следующую навигационную область, к которой движется бот (а также полный путь бота).
Обратите внимание, что вы должны быть в режиме "First Person" или "Free Chase Cam", чтобы эта команда функционировала.

bot_debug [0, 1, 2, 3, 4]
Установите значение 1, чтобы отобразить отладочные сообщения для бота за которым вы наблюдаете (обратите внимание, что вы должны быть в режиме "First Person" или "Free Chase Cam", чтобы эта команда функционировала) или установить для отображения отладочной информации для всех ботов.
Отладочные сообщения будут показаны в консоли, отображая, что бот в настоящее время думает и делает, а также любые сообщения об ошибках или предупреждения (включая звуковой сигнал), относящиеся к поведению или навигации бота.

hostage_debug [0, 1]
Фиолетовая линия указывает направление, куда смотрит заложник, зеленые линии указывают поле зрения заложника, оранжевая линия указывает следующую навигационную область, к которой движется заложник, а желтая линия указывает полный путь заложника.
Обратите внимание, что вы должны играть за Counter-Terrorist и уже нажали клавишу «Использовать» на заложнике (чтобы дать ему указание следовать за вами) для получения наилучших результатов при использовании этой команды.

Кроме того, эта команда также отображает отладочные сообщения, которые будут напечатаны в консоли, отображая то, что в настоящее время думает и делает заложник (как и команда «bot_debug» выше), а также любые сообщения об ошибках или предупреждениях, относящиеся к заложнику, его поведению или навигации.

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



Информация была взята со следующих источников:
Steam

Sand Storm #1 и #2
ReGameDll
 
Сообщения
83
Реакции
63
Помог
1 раз(а)
а что ето за квар? bot_quota_match_ratio
 
Сообщения
1,536
Реакции
2,324
Помог
39 раз(а)
Vesuvius,
bot_quota_match [ratio] = bot_quota_match_ratio
Я думал перевести формулу как "Кол-во ботов = кол-во игроков * коофициент указанный в bot_quota_match", но как-то не понравилось и оставил оригинальную фразу
 
Сообщения
3
Реакции
1
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
А есть zBot для сервера Linux? Если есть, то можно пожалуйста ссылочку в лс или сюда (если разрешено):blush2:
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
Vendikson, на сервер в сети или локальный сервер?
 
Сообщения
3
Реакции
1
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Minni, На сервер в сети
 
Сообщения
3
Реакции
1
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Minni, Да, у меня стоит ReHLDS, ReGameDLL, ReAPI. Вообщем все продукции Re. 2-3 дня назад обновил себе все модули. За ссылку спасибо, пойду устанавливать.:thank_you:
 
Сообщения
209
Реакции
28
Помог
8 раз(а)
bot_quota_mode [normal, fill]
Задает режим заполнения сервера ботами.
При значение fill - сервер будет кикать количество ботов, равное кол-ву подключившихся игроков, а при значение normal, кол-во игроков не будет влиять на кол-во ботов.

Кикать будет, а вот если игрок выйдет с сервера, то бот вернётся?
 
Сообщения
60
Реакции
38
Помог
1 раз(а)
Minni, ну кстати,не всегда.За пол года использования zbot на csdm иногда замечал,что бот/боты не возвращаются,либо возвращаются спустя продолжительное время.Не знаю,с чем это связано.
 
Сообщения
209
Реакции
28
Помог
8 раз(а)
Почему после смены карты боты пропадают?
 
Сообщения
187
Реакции
319
Помог
1 раз(а)
Создайте в корне мода (например cstrike) конфиг файл (например bots.cfg) и запишите в него все нужные вам настройки для ботов.
Затем в файле server.cfg пропишите внизу строчку exec bots.cfg

Можно все настройки сразу добавить в server.cfg
Что в том, что в другом случае они будут подгружаться сразу при начале новой карты.
 
Сообщения
2,750
Реакции
3,013
Помог
61 раз(а)
Затем в файле server.cfg пропишите внизу строчку exec bots.cfg
И эта строчка исполнится стоого единожды при "старте" сервера.
Если хотим регулировать количество ботов из ReGameDLL - то делаем это непосредственно в конфиге game.cfg любыми путями.
 
Последнее редактирование:
Сообщения
28
Реакции
1
Здравствуйте.
Будут ли добавлены к ботам такие функции как:

bot_autokilldelay - через сколько секунд боты должны будут умереть.
bot_autokill - если все люди мертвы, боты автоматически умирают и начинается новый раунд.
 
Сообщения
119
Реакции
53
Помог
4 раз(а)
Мужики подскажите пожалуйста что сделать что бы определённое количество "zBot" было на сервере при запуске самого сервера.

В формате 3х3 к примеру.

P/s Боты спавнятся только при консольной команде bot_add .
 
Сообщения
160
Реакции
170
Помог
1 раз(а)
Sleedney,
Создать в директории игры файл bot.cfg с вашими настройками, и в server.cfg добавить exec bot.cfg.
 
Сообщения
119
Реакции
53
Помог
4 раз(а)
wopox1337, всё работает занёс настройки в bot.cfg

Код:
bot_add "all"

bot_knives_only

bot_difficulty "3"

bot_quota "6"

bot_auto_vacate "1"

bot_join_team "ct"

bot_join_after_player "1"

bot_deathmatch "1"

bot_quota_mode "normal"
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу