Редактирование nav - зон для ботов

Counter-Strike: Source сочетает отмеченную наградами технологию командной игры и передовой движок Source, обладающий современной графикой, новейшими звуковыми эффектами и дающий ощущение физического присутствия.
Сообщение
Автор
Artem123
Нович0к
Нович0к
Сообщения: 2
Зарегистрирован: 12.03.2005

#1 Сообщение 31.07.2005, 17:09

Какой программой или каким образом можно подредактировать пути перемещения ботов, а то nav - зоны которые генерит сам CSS немного кривоватые?

NikSon
Нович0к
Нович0к
Сообщения: 1
Зарегистрирован: 07.06.2018

#2 Сообщение 31.07.2005, 23:58

хз.. :? а зачем тебе надо? боты умнее не станут..

Artem123
Нович0к
Нович0к
Сообщения: 2
Зарегистрирован: 12.03.2005

#3 Сообщение 01.08.2005, 11:30

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

ROM@N
Капитан
Капитан
Сообщения: 414
Зарегистрирован: 06.02.2005
Откуда: Владивосток
Поблагодарили: 13 раз

#4 Сообщение 01.08.2005, 14:11

Artem123 редактировать nav зоны можно через консоль, к сожалению команду не помню :(
Можете тебе легче скачать пак?
Reallite Nav Pack v2.3 для Counter-Strike: Source
Для корректной работы необходим Counter-Strike: Source с установленным обновлением от 06.07.2005 или выше
http://reallite.kuban.ru/modules.php?na ... tit&lid=72

Аватара пользователя
k0stE
реликт форума
Сообщения: 363
Зарегистрирован: 27.05.2005
Откуда: Новосибирск
Контактная информация:

#5 Сообщение 01.08.2005, 14:33

хе. навы сами генерируются, мне хваетает.
ASUS P8P67 Pro | 2500K@4800MHz | Thermalright Archon | CrossFire HD7970 Reference | 4x4Gb Samsung @2133MHz | 64Gb Crucial M4 | Chieftec E-ATX | Cougar CMX 700 | ASUS STX (OPA827)

PhoEniX[nTOP]
Нович0к
Нович0к
Сообщения: 3
Зарегистрирован: 13.05.2005

#6 Сообщение 11.09.2005, 10:27

Вообщем вот статья как редактировать навы ! Это под контру 1.5 и 1.6 но и для сорса она тоже подходит только все команды по редактированию идут без приставки Bot_ вначале команды !


Редактирование NAV-зон для CSBot (Часть 1)






Вступление

Что представляют собой зоны

Порядок редактирования зон

СозданиеNAV-зон

Непосредственное редактирование NAV-зон
Привязка названий мест к карте





Вступление



В этой статье рассказано об основах редактирования зон для CSBot (Zbot) 1.5. На момент написания этой статьи официально CSBot ещё не вышел, а то, что называется версией 1.5, на самом деле одна из бета-версий бота. В этой версии нет ни слова о редактировании зон для бота (не считая краткого описания команд, да и то только основных), но поскольку CSBot пользуется всё большей популярностью, то наша команда считает своим долгом поделиться теми знаниями, которые удалось установить опытным путём.

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

Впрочем, следует сразу заметить, что если у Вас есть какой-либо опыт редактирования вэйпоинтов для PODBot, то здесь он вряд ли пригодится: редактирование зон для CSBot не имеет практически ничего общего с редактированием путей для PODBot. Зато также очевидно и следующее: редактирование зон для CSBot гораздо проще, чем редактирование путей для PODBot и занимает намного меньше времени. Думаю, что для одной карты потребуется максимум полтора часа, а обычно редактирование можно завершить и за 30–50 минут. Также следует отметить, что цена ошибки при редактировании зон CSBot ниже, так что если Вы ошибётесь и/или не исправите ошибку, ничего страшного не будет.

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

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

Что представляют собой зоны
Начнём с самого начала. Зоны нужны для того, чтобы боты ориентировались на карте: не упирались в стены, знали, как пробраться к врагу кратчайшим и безопасным путём и т.д. Для каждой карты зоны, само собой разумеется, различаются. Сведения о зонах хранятся в файлах, которые имеют такое же название, как и карта, а расширение — .NAV. Эти файлы сохраняются в ту же папку, где хранятся сами карты (…cstrikemaps).

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

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

Сами зоны отображаются красными прямоугольниками. Фактически зона означает, что бот может передвигаться по её территории. Зоны располагаются непосредственно на поверхности, на которой находятся, но отображаются они чуть выше. Высоту отображения зон можно изменять с помощью переменной bot_nav_zdraw, которая по умолчанию равна 4 юнитам. Это бывает полезно, например, на воде.

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

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

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

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

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

Наконец, на некоторых зонах рисуются вертикальные линии красного, зелёного и фиолетового цветов. Что это такое, мы точно до сих пор не знаем, хотя подмечено, что именно на этих точках боты особенно любят сидеть и кемперить. Возможно, что это прототип кемперских точек в PODBot. Как бы то ни было, редактировать их вручную не получается, так что и говорить о них мы не будем.

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

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

Далее будут рассмотрены три этапа в отдельности.

Создание NAV-зон
Создание NAV-зон используется в следующих случаях:

- Если у Вас есть карта, на которой Вы хотите играть с ботами, но отсутствует соответствующий NAV-файл.

- NAV-файл для карты есть, но при попытке добавить бота на сервер происходит зависание компьютера. К сожалению, такие случаи бывают, при этом глючному файлу помочь нельзя — придётся в любом случае всё создавать заново.

- NAV-файл для карты есть, но при загрузке ботов на сервер выводится сообщение о том, что версия карты различается от первоначальной, и боты могут не бегать правильно. Это сообщение возникает в том случае, если, к примеру, у Вас NAV-файл для карты de_cbble от версии CS 1.5, а Вы запускаете карту de_cbble от версии CS 1.6. Боты будут загружаться, но Вам стоит понаблюдать за их поведением, и если Вы будете замечать такие странности, как попытка пробежать сквозь стену, прыжки на месте с целью проверки прочности пола, упорное нежелание бегать по какой-либо из дорог, то придётся эти недостатки исправлять. Если их мало, то можно всё поправить вручную, однако в противном случае логичнее удалить NAV-файл и создать новый.

Итак, у Вас есть карта, но нет NAV-файла. Всё, что Вам нужно — это:

1) Запустить эту карту

2) Добавить бота за любую из команд (с помощью консольной команды bot_add).

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

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

При выполнении пункта 2 происходит два этапа. На первом этапе у Вас появляется сообщение о том, что боты учатся играть на этой карте. При этом создаются все зоны, анализируются пути между ними и т.д. Этот этап обычно длится не очень долго. На втором этапе у Вас появляется надпись “Analyzing” и шкала, на которой отражается процесс. На этом, втором этапе происходит анализ в первую очередь тактики и стратегии, выбор маршрутов и т.д. — в общем, всего того, чем нас удивляет CSBot. Расстановка точек тоже, по-видимому, происходит именно на этом этапе.

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

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

Однако если Вы создаёте абсолютно новый NAV-файл, то этап анализа оказывается не нужным. Поскольку зоны создаются компьютером, то логично было бы посмотреть, что там компьютер насоздавал, исправить какие-то явные ошибки, после чего уже запустить игру с ботами для выявления более мелких ошибок. Анализ может занимать много времени (от 10 секунд до 20 минут), так что зачем Вам ждать это время, если Вы точно знаете, что потом придётся снова выполнять этот этап? Поэтому, если только карта не представляет собой квадрат, ограниченный стенами, стоит сделать так: перед добавлением бота на сервер (то есть перед выполнением п. 2) ввести в консоли bot_quick_save 1. В этом случае будет выполнен первый этап создания зон, после чего сразу произойдёт перезагрузка сервера. Этап 2, то есть анализ зон, будет пропущен, а позднее Вы сможете к нему вернуться, вызвав вручную.

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

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

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

Таким образом, создание новых зон является самым простым этапом. Если Вы уверены, что ошибок на карте не будет, или Вам нет дела до них, то всего Вам достаточно нажать несколько кнопок, чтобы получить возможность играть с ботами. Если Вы всё же решили посмотреть зоны и сразу исправить явные ошибки, то это, конечно, займёт времени больше, зато Вы сразу получите достаточно качественный NAV-файл. После чего Вы можете играть с ботами, при этом рано или поздно Вы можете увидеть недочёты в их игре, которые Вам захочется исправить. Тогда Вы в любой момент сможете загрузить редактор и поправить всё, что Вам не нравится. Это и будет второй этап при редактировании зон.

Непосредственное редактирование NAV-зон
В данном разделе речь пойдёт о непосредственной работе с NAV-зонами, то есть, на что именно Вам стоит обращать внимание и что стоит исправлять. Это лучше всего сделать на конкретных примерах, которые будут рассмотрены чуть ниже, а вначале будут даны некоторые общие рекомендации.

Работа с NAV-файлами.

В любой момент Вы можете включить редактор зон с помощью консольной команды bot_nav_edit 1. Для выключения редактора необходимо ввести bot_nav_edit 0. Здесь есть одна особенность: при включении редактора на сервере должен находиться хотя бы один бот. Поэтому перед включением редактора необходимо добавить бота на сервер командой bot_add, а после включения редактора, если бот Вам не нужен, убрать его командой bot_kick. Если Вы включите редактор, не добавляя бота на сервер, то зоны не будут рисоваться — к сожалению, есть такой глюк.

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

При редактировании зон время от времени сохраняйтесь командой bot_nav_save. Существует команда bot_nav_load для загрузки сохранённых зон, но, как мне кажется, она не работает. (Ещё один глюк?) Когда всё, что было необходимо отредактировать, отредактировано, необходимо запустить анализ зон командой bot_nav_analyze. Подробно об этом было написано в предыдущем разделе.

К сожалению, иногда бывает так, что после анализа и перезагрузки сервера КС виснет. И в дальнейшем, когда Вы загружаете эту карту и пытаетесь добавить бота, происходит зависание. Ну а не добавив бота, невозможно осуществлять редактирование карт. Поэтому такой NAV-файл будет запорчен, и всё придётся начинать заново. Отсюда вывод: перед редактированием NAV-файла сохраняйте его копию. Лучше выйти из КС и потратить на это лишнюю минуту, чем потом кусать локти и прочие труднодоступные места. J

Чтобы свести к минимуму вероятность порчи NAV-файла, следуйте следующим рекомендациям:

- Не делайте слишком больших и радикальных изменений в зонах — боты этого не поймут. Чем больше Вы работаете над одним файлом, тем больше вероятность, что в нём возникнет ошибка. Если Вас всё устраивает в движении ботов, не стоит вводить лишних, никому не нужных изменений.

- Очень осторожно работайте с командой, которая объединяет две соседние зоны. Действия, произведённые с помощью этой команды, на мой взгляд, являются большим фактором риска. Не объединяйте маленькие зоны в большие, если для этого нет особых причин. Потому что на размер NAV-файла количество зон никак не влияет, — следовательно, заниматься этой лишней и бесполезной работой не стоит.

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

А вот то, что на сервере находятся боты, в то время как Вы занимаетесь редактированием — это никак на работоспособность сервера не влияет. Поэтому можете их не удалять, ну а если они Вам мешают своей беготнёй и разговорами — просто остановите их командой bot_stop 1.

Техника работы с зонами.

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

bot_nav_delete — удалить текущую зону. Здесь вроде бы всё ясно — зона, на которую наведён Ваш курсор, исчезнет.

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

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

На объекты типа entities это правило не распространяется, так что на них поставить зону нельзя. В качестве примера можно привести мост на de_aztec — на нём нарисовать зону невозможно, так как курсор проецируется сквозь него.

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

Если Вы ввели команду bot_nav_begin_area, но передумали создавать зону, то введите её ещё раз.

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

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

bot_nav_split — в результате действия этой команды зона разрезается на две новые по белой линии. Эти две новые зоны автоматически соединяются друг с другом двухсторонним путём.

bot_nav_mark — эта команда позволяет выделить текущую зону для дальнейшего редактирования (подробнее об этом см. выше). Большинство операций с зонами осуществляется именно с выделенными зонами. (Хотя некоторые, например, удаление зоны, можно осуществлять с текущими зонами.) Повторное использование этой команды (а также просто использование какой-либо другой команды, относящейся к работе с выделенными зонами) автоматически убирает выделение.

bot_nav_connect — создаёт между выделенной зоной и текущей зоной односторонний путь от выделенной зоны к текущей зоне.

Если Вам нужно создать двухсторонний путь от зоны 1 к зоне 2, то Ваши действия будут таковы:

- наводите курсор на зону 1 (т.е. делаете её текущей);

- выделяете зону 1 командой bot_nav_mark;

- наводите курсор на зону 2;

- создаёте путь от зоны 1 к зоне 2 командой bot_nav_connect;

- выделяете зону 2 командой bot_nav_mark (при условии, что курсор на неё наведён);

- наводите курсор на зону 1;

- создаёте путь от зоны 2 к зоне 1 командой bot_nav_connect.



Как видно, если у Вас команды забиндены на клавиши, то все эти пункты по времени займут не более 2 секунд. В CSBot не нужно запоминать номер зон, как это было с точками в PODBot, и это очень ускоряет работу.

bot_nav_disconnect — команда удаляет все пути между текущей и выделенной зонами, и односторонние, и двусторонние.

Допустим, между зонами 3 и 4 у Вас есть двусторонний путь (рисуется голубым цветом), но Вам нужно сделать так, чтобы путь от зоны 3 к зоне 4 был, а от зоны 4 к зоне 3 — не было. Ваши действия:

- наводите курсор на зону 3;

- выделяете её командой bot_nav_mark;

- наводите курсор на зону 4;

- командой bot_nav_disconnect удаляете пути от зоны 3 к зоне 4 и от зоны 4 к зоне 3;

- наводите курсор на зону 3;

- выделяете её командой bot_nav_mark;

- наводите курсор на зону 4;

- создаёте путь от зоны 3 к зоне 4 командой bot_nav_connect.



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

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

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

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




РИСУНОК 1

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

Команда bot_nav_splice не только создаёт зону между двумя зонами, но и соединяет их все в двух направлениях. (То есть соединяются: текущая зона с вновь создаваемой, вновь создаваемая с текущей, вновь создаваемая с выделенной, выделенная с вновь создаваемой.)

Каждая зона может иметь четыре флага. Флаг обозначает дополнительную характеристику зоны. Флаг задаётся для текущей зоны следующими командами:

bot_nav_jump — флаг прыжка;

bot_nav_duck — флаг приседания;

bot_nav_nojump — флаг отсутствия прыжка;

bot_nav_precise — флаг точности.

Чтобы поставить флаг прыжка на текущей зоне, Вы вводите bot_nav_jump. Повторный ввод этой команды убирает флаг.

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

Рассмотрим каждый флаг в отдельности. Флаг прыжка используется в тех случаях, когда бот должен на этом месте подпрыгнуть. Парадокс заключается в том, что если Вы поставите этот флаг на ровной поверхности, бот прыгать не будет. Он прыгнет только в том случае, если упрётся в какое-то препятствие. Так что возможности прыговой зоны реализованы не полностью. Особенно досадным является то обстоятельство, что с помощью прыговой зоны нельзя сделать так, чтобы боты прыгали бы через какую-нибудь яму. (Например, на cs_mansion на будку.) Я вообще не уверен, работает ли этот флаг, мне кажется, что бот всегда сам определяет, когда ему надо прыгать.

Флаг приседания используется в том случае, чтобы бот, проходящие через зону, нагнулся. Этот флаг работает стопроцентно.

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

Общие рекомендации.

Рассмотрим некоторые конкретные ситуации, на которые нужно обращать внимание при редактировании зон. Предположим, у Вас есть сгенерированный компьютером NAV-файл, и Вы хотите сразу исправить недочёты. В этом случае Вы просто начинаете оббегать карту, смотря по сторонам и выискивая, где компьютер начудил или не потрудился должным образом.

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

Проблемы с зонами начинаются при изменяющемся рельефе. На ступеньках можно часто увидеть вот такую картину (см. рисунок 2). Раньше я занимался исправлением этого, но бросил это дело, когда понял, что замена нескольких маленьких зон на одну большую никак не влияет на размер NAV-файла. Поэтому на подобные сооружения не обращаем внимания.



РИСУНОК 2

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



РИСУНОК 3



РИСУНОК 4

С бортиками вообще возможна такая ситуация, как на рисунке 5 — зоны неправильно располагаются по высоте. Переделывать такое или нет — зависит оттого, насколько правильно боты будут вести себя в этом месте. Если никаких глюков не будет, то зачем тратить время на переделывание?

Редактирование NAV-зон для CSBot (Часть 2)







РИСУНОК 5

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



РИСУНОК 6



РИСУНОК 7

Думаю, стоит подробнее пояснить о том, где должны находиться зоны, а где — пути. Насколько я понимаю, зоны в идеале должны примыкать друг к другу вплотную. Но если Вы расположите их на некотором расстоянии друг от друга и соедините путём, то ничего страшного не будет. В случае с ящиками и бортиками должны быть горизонтальные зоны на полу и на бортике (см. рисунок 8), а между ними — наклонная прыговая зона.



РИСУНОК 8

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



РИСУНОК 9



РИСУНОК 10

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

Довольно часто бывает, что неправильно создаются флаги: отсутствует флаг прыжка там, где он нужен, или наоборот, есть флаг прыжка или приседания там, где они не нужны. Это можно отслеживать и исправлять сразу при первом редактировании зон. Также помните, что игра не расставляет сама флаги precise и no_jump, так что при желании можно их добавлять вручную. Я флаг no_jump не использую (так и не понял, в каких случаях он нужен), а флаг precise ставлю в тех местах, где от бота требуется точное движение по зонам (см. рисунок 11). Но помогает это мало.



РИСУНОК 11

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



РИСУНОК 12

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



РИСУНОК 13

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

Самое плохое, с чем Вы можете столкнуться на карте — это лестницы. Дело в том, что они создаются автоматически, и в большинстве случаев никакие глюки с ними исправить нельзя. А глюков-то как раз с лестницами — выше крыши. И всё-таки, раз на раз не приходится, и в отдельных случаях бывает можно кое-что сделать.

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

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



РИСУНОК 14

Боковые синие линии создаются после анализа зон.

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



РИСУНОК 15

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



РИСУНОК 16

Рекомендации по настройке техники движения.

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

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

Много проблем возникает при пользовании лестницами. Об этом подробно рассказывалось выше. С большинством из этих возникающих проблем пока придётся смириться.

Боты практически не умеют прыгать через ямы или, например, с крыши на крышу. К счастью, эти прыжки нужны не на каждой карте, да и вообще, редко когда они играют большую роль. Если расстояние между поверхностями маленькое, то можно просто соединить две зоны путями. Бот, подбегая к краю поверхности, сам догадывается, что нужно совершить прыжок. Но обычно этот прыжок получается очень коротким. Поэтому на дальние прыжки не стоит рассчитывать. Например, на cs_mansion заставить ботов прыгать на будку и оттуда на забор мне не удалось. Точно также на cs_italy мне пока не удалось сделать так, чтобы боты прыгали с ящика в окно в центральном доме (если бежать с респауна ментов). Однако в последнем случае шансы на успешный исход всё же есть. Второй способ — это поставить прыговую зону прямо на яме (т.е. в воздухе). Но этот способ не всегда подходит, в частности, на cs_italy прыжок должен быть угловым. На cs_mansion ботам всё равно не хватает дальности. Одним словом, с такими прыжками пока не всё ясно.

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

Чаще всего, на мой взгляд, при игре с ботами возникают две характерные проблемы, на которые Вы рано или поздно обратите внимание. (Если считать лестницы, то таких проблем три.)

Первая проблема — это когда бот находится на некотором возвышении, например, бортике, и пытается с него сбежать вниз, но постоянно балансирует на краю, не решаясь сделать маленький шажок. Возможно, что он при этом прыгает, даже вроде бы как немного вперёд, но в воздухе меняет направление и возвращается назад, точно на край бортика. Такое представление можно наблюдать иногда до полминуты, и очевидно, что с этим надо что-то делать. Но и здесь я Вас вынужден разочаровать: я не знаю, как это исправить. L Единственное, о чём могу сказать, это следующее. В версии CSBot 1.0 был интересный глюк, когда боты всегда совершали прыжок, находясь на краю бортика и довольно часто таким образом теряли здоровье. В версии CSBot 1.5 этот глюк исправили, но, видимо, не совсем удачно, поскольку теперь мы имеем эдакий модифицированный глюк. Я пробовал экспериментировать с флагом no_jump, но это ситуацию лишь усугубляет: бот ни в какую не хочет спрыгивать с бортика и толчётся на нём как приклеенный. Однако бота, например, может отвлечь противник, тогда проблема становится не такой заметной. В общем, здесь есть над чем думать и есть над чем экспериментировать.

Вторая проблема — это то, что боты часто надолго застревают в узких местах. С этой проблемой, в принципе, можно мириться. На cs_assault боты, например, застревают в двух местах: у входа в трубу на крыше (причина — проблема №1, потому что боту надо немного спуститься, и он боится сделать шаг) и у выхода из трубы в ангаре (причина, в принципе, та же, но там же расположена лестница, которая всё это усугубляет). Зато редко можно увидеть ситуацию, когда два бота встречаются в вентиляционном ходе и не могут разойтись.

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

Рекомендации по настройке тактики и стратегии.

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

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

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

Что касается тактики, то здесь можно применять некоторые приёмы, которые хоть как-то на неё повлияют. Во-первых, в некоторых случаях можно влиять на кемперские точки. Дело в том, что они всегда создаются по углам зон. А это значит, что можно изменять количество точек способом, который показан на рисунке 17.



РИСУНОК 17

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

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

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

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



РИСУНОК 18

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

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

Сразу скажу, что если у Вас есть всё необходимое, то привязку выполнить очень просто — на это нужно 15–25 минут и знание всего нескольких команд. Однако подготовительная стадия может занять гораздо больше времени. Поэтому я расскажу о том, как работает привязка, чтобы Вы точно знали, что необходимо для её осуществления.

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

Ситуации бывают абсолютно разные, например, бот увидел врага в окне и говорит: «в окне»; или Вы просите его доложить обстановку, и он отвечает: «в канализации — тут чисто» (хотя где он нашёл чистую канализацию — непонятно…). Как бот определяет название того места, о котором хочет сообщить? Ответ: по зонам. В CSBot с помощью специальных команд можно сопоставлять каждой зоне какое-нибудь название места. В даль

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

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

Таким образом, мы получаем вот такую цепочку: звуковые файлы –> ссылки на них в файле BotChatter.db –> названия зон на карте. Именно такой цепочкой Вы должны руководствоваться, когда создаёте привязку зон.

Впрочем, есть ещё нулевой этап: Вы непосредственно придумываете, какие названия мест от ботов Вы хотели бы услышать на карте. Для этого оббегаете всю карту и выписываете названия мест. Можно ограничиться и 5–10 основными местами, можно сделать и более подробное деление карты на «места», но только для каждого такого «места» необходимо придумывать название, а на многих картах это проблематично (особенно на картах с неопределённой местностью типа de_dust). Не стоит для одной карты придумывать больше 25–30 названий мест, потому что сами «места» при этом будут настолько маленькие, что Вы рискуете никогда не услышать их в игре. Лучше оставляйте некоторые территории пустыми, без названия — в этом ничего плохого нет, даже наоборот, на мой взгляд, до 40–50% зон на карте могут не иметь названий.

Что касается названий мест: старайтесь давать им как можно более общие названия. Например, названия «перед ящиком», «за ящиком» слишком конкретизированы, да и в них заложена некая относительность: ведь где у ящика перед, а где зад — это смотря откуда смотреть. J Лучше заменить эти названия более общим «у ящика».

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

Теперь, когда Вам известен список названий мест, у Вас должны быть соответствующие звуковые файлы. Поскольку бот всё должен говорить одним голосом, то записывать эти файлы должен тот человек, что озвучивал весь чаттер, которым Вы пользуетесь. Поэтому важно придумывать такие названия мест, которые уже встречались на других картах — в этом случае соответствующие звуковые файлы у Вас есть. Если Вы пользуетесь чаттером от Reallite Labs, то можете сообщать нам о недостающих звуковых файлах, которые Вам потребовались, и мы постараемся добавлять их в новые версии чаттера.

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

Когда есть соответствующие звуковые файлы, необходимо добавить на них ссылки в файл BotChatter.db. Если Вы пользуетесь нашим чаттером, то всё это уже сделано. Если ссылка в файле указывает на несуществующий файл, то ничего страшного не будет — файл просто не будет проигрываться.

Названия мест, перечисляющиеся в BotChatter.db, доступны в КС во время редактирования зон. То есть у Вас может не быть каких-либо звуковых файлов, но если в BotChatter.db упоминается соответствующее название места, то это название места можно будет использовать в КС.

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

Теперь, когда у Вас есть все звуковые файлы и ссылки на них в файле BotChatter.db, можно заняться непосредственно привязкой. Для этого используйте команду bot_nav_toggle_place_mode. Это переключатель между режимами редактирования. Когда Вы вводите её один раз, редактирование переходит в режим привязки, повторный ввод возвращает КС в режим непосредственного редактирования зон.

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

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

Выбор названия места осуществляется командой bot_nav_use_place. В качестве аргумента этой команде задаётся название места, то есть, например, если Вы хотите выбрать место с названием na_ogorode, то вводите: bot_nav_use_place na_ogorode. Вводимое название места должно быть определено в файле BotChatter.db, иначе введённая Вами строка не окажет никакого действия.

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

Если Вы введёте команду bot_nav_use_place без аргументов (то есть без названия мест), то в консоли Вам выдадут список всех доступных названий мест, которые перечисляются в BotChatter.db. Вы можете использовать это в тех случаях, когда, например, хотите посмотреть, можно ли создать место с каким-либо названием, или уточнить правильность написания места.

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

Допустим, Вы выбрали место с названием pered_domom. Теперь Вам нужно пометить все зоны, находящиеся перед домом, то есть привязать их к названию этого места (или, другими словами, дать им это название — pered_domom). Для этого используется команда bot_nav_toggle_place_painting. Это тоже переключатель. Когда Вы вводите эту команду один раз, то Вы включаете своеобразный режим раскраски, при котором всем зонам, на которые Вы смотрите (т.е. текущим) присваивается то имя, которое было выбрано с помощью команды bot_nav_use_place. Повторный ввод команды bot_nav_toggle_place_painting выключает этот режим. В нашем случае Вы должны наставить прицел на одну из зон, находящихся перед домом, включить режим раскраски и, побегав, посмотреть на все зоны, которые находятся перед домом. После чего, естественно, нужно режим раскраски выключить. Все зоны, на которые Вы посмотрите, станут называться pered_domom. Они будут показываться зелёным цветом.

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

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

Все неразмеченные зоны будут показываться красным цветом. Те зоны, которые Вы разметили (т.е. они имеют какое-то название), будут показываться либо синим, либо зелёным цветом. Чтобы узнать их название, достаточно навести на них прицел. Зоны, которые показываются зелёным, имеют то же название, которое Вы ввели последним с помощью команды bot_nav_use_place. Зоны, которые показываются синим, имеют какое-то другое название.

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

1. Ввести в консоли bot_nav_use_place pered_domom.

2. Посмотреть на зону, имеющее название pered_domom, и ввести в консоли bot_nav_place_pick.

Второй способ предпочтительнее, потому что Вам не нужно вспоминать написание названия места и потом вводить его. Команду bot_nav_place_pick, естественно, можно забиндить. Кроме того, таким способом можно установить «никакое» место, чтобы раскрасить им те зоны, которые Вы раскрасили по ошибке. Для этого надо посмотреть на зону, не имеющую названия (т.е. красную), и ввести команду bot_nav_place_pick. После этого с помощью переключателя режима раскраски (bot_nav_toggle_place_painting) можно удалять названия у тех зон, на какие Вы посмотрите.

Способ 2 не подходит только в том случае, если у Вас на карте пока нет зон с названием, которое Вы хотите использовать. Тогда Вам по любому придётся использовать способ 1.

Команда bot_nav_place_floodfill позволяет автоматически закрасить часть зон какого-либо места, чтобы избавить Вас от необходимости бегать и искать те зоны, которые ещё не закрашены. Это можно использовать для больших зон, но мне кажется, что проще обойтись без этой команды. Чтобы её использовать, Вы оббегаете всё место по периметру, чтобы получилась замкнутая граница из зон, которым присвоено название. После чего Вы наводите прицел на одну из зон, оставшихся внутри этого периметра, и используете команду bot_nav_place_floodfill. В результате все внутренние зоны раскрасятся автоматически.

Если Вы введёте эту команду, и при этом у Вас не будет замкнутого периметра, то все зоны на карте (или большая их часть) раскрасятся и будут иметь одинаковое название. При этом помните, что bot_nav_load не работает. J Так что пользоваться или нет командой bot_nav_place_floodfill — решать Вам. Кроме того, большие места встречаются достаточно редко.

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

Ну и в самом конце небольшое предостережение: помните, что через файл BotChatter.db осуществляется связь названий зон, использующихся на карте, со звуковыми файлами. Возможен такой случай, когда Вы скачали NAV-файл с размеченными зонами, но самих звуковых файлов у Вас нет, и в BotChatter.db не описываются те названия мест, которые есть на карте (то есть BotChatter.db у Вас остался старый, не учитывающий разметку в новом скаченном NAV-файле). В этом случае Вы попадаете в такую ситуацию, когда Вы не сможете воспользоваться разметкой мест на карте. (Т.е. Вы не услышите не звука, так как для каждого размеченного NAV-файла помимо самих звуков с названиями мест должна быть соответствующая версия BotChatter.db). Более того, Вы даже не сможете её оценить, потому что из-за отсутствия названий мест, использующихся на карте, в файле BotChatter.db, происходит глюк, и все названия мест на карте меняются между собой. Поэтому лучше качать все размеченные NAV-файлы из одного источника и пользоваться тем файлом BotChatter.db, который этот источник предоставляет.

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

LLIHULLEJIb и Reallite Labs Team

Закинул сюды без картинок но я думаю и без них разберётесь !
Удачи ! Статья от команды Reallite Labs Team

Ametist
VIP
VIP
Сообщения: 485
Зарегистрирован: 11.02.2005
Откуда: Москва
Поблагодарили: 1 раз
Контактная информация:

#7 Сообщение 11.09.2005, 16:20

Линк на статью дай.
(сылаться на источник надо всегда)
Изображение
Набираем пилотов EVE-Online.

Аватара пользователя
mukca
Местный ГУРУ
Местный  ГУРУ
Сообщения: 857
Зарегистрирован: 06.02.2005
Откуда: с луны, со своей луны, свалился :(
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

#8 Сообщение 17.09.2005, 00:27

по моему статья с реаллайтс лаб! причем там много написано бреда не нужного! и неправильно либбо нап или не работающего.
Изображение
Читай ПРАВИЛА. Я не оДын
зы какие тут тяжелые подписи..

PhoEniX[nTOP]
Нович0к
Нович0к
Сообщения: 3
Зарегистрирован: 13.05.2005

#9 Сообщение 21.09.2005, 23:43

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

-=Hunter83=-
Нович0к
Нович0к
Сообщения: 10
Зарегистрирован: 25.02.2005
Откуда: Россия, Самара

#10 Сообщение 31.10.2005, 14:43

Для тех кто дорабатывает карты сами :))
Самое лучшее пособие - это стандартные карты cs_assault, cs_italy, de_cbble и т.д. там заходите в редактирование зон, основные приемы самих разработчиков там есть(спуск по лестницах, прохождение через двери)
использование таких вещей как nav_run, nav_precise, nav_stop, nav_donthide :)) может кому будет полезно, мне очень помогло.
(==={=======>

Аватара пользователя
mukca
Местный ГУРУ
Местный  ГУРУ
Сообщения: 857
Зарегистрирован: 06.02.2005
Откуда: с луны, со своей луны, свалился :(
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

#11 Сообщение 31.10.2005, 15:13

аможет организовать команду по качественой делке зон??!
Изображение
Читай ПРАВИЛА. Я не оДын
зы какие тут тяжелые подписи..

-=Hunter83=-
Нович0к
Нович0к
Сообщения: 10
Зарегистрирован: 25.02.2005
Откуда: Россия, Самара

#12 Сообщение 31.10.2005, 15:42

Да запроста! А потом свой мод к Халве напишем :))
(==={=======>

ROM@N
Капитан
Капитан
Сообщения: 414
Зарегистрирован: 06.02.2005
Откуда: Владивосток
Поблагодарили: 13 раз

#13 Сообщение 31.10.2005, 16:20

Поддерживаю идею :) Готов выделить отдельную ветку на форуме : 8)

Аватара пользователя
mukca
Местный ГУРУ
Местный  ГУРУ
Сообщения: 857
Зарегистрирован: 06.02.2005
Откуда: с луны, со своей луны, свалился :(
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

#14 Сообщение 31.10.2005, 17:49

вопрос №1 кто этим когджато занимался или пропробовал??
№2 ктонибуть пробовал озвучивать зоны а не тока пути редактировать???

ps Я тока за . так как давно для себя предактирую зоны хотя инет не позволяет хор карты качать.
Изображение
Читай ПРАВИЛА. Я не оДын
зы какие тут тяжелые подписи..

-=Hunter83=-
Нович0к
Нович0к
Сообщения: 10
Зарегистрирован: 25.02.2005
Откуда: Россия, Самара

#15 Сообщение 31.10.2005, 18:19

Навы редактировал, особенно после появляния Сурса:)
Комп генерирует нормальные вайпоинты только для простеньких карт (где нет лестниц, дверей, бордюров например iceworld), а на таких картах как cs_militia и т.п. создает просто некорректные поинты. Честно говоря все карты из инета, за редким исключением, снабжены слегка переделанными NAV-ми. Т.е. авторы карт особо к ним не прикладывались.
Мне кажется Roman идея хорошая :))
Можно создать раздел для обмена опытом в редактировании NAV-ов, начало уже положено.
(==={=======>

Закрыто