Навигационные сетки - зоны, по которым можно двигаться. Используются ботами и залогами в контре. Вся навигация хранится в .nav файлах с тем же именем, что и у карты, к которой они принадлежат. Автоматическое создание В контре есть функция автоматического создания .nav файлов. Запускаете карту без .nav файлов с ботами или прописываете в консоли nav_generate и .nav файл генерится автоматом. В зависимости от размера и сложности карты процесс может занять от нескольких минут до нескольких часов. Просмотр созданной сетки Чтобы посмотреть, что у вас вышло в предыдущем пункте, или редактировать сетку, пропишите в консоли nav_edit 1. Для выключения - nav_edit 0. Перед всеми махинациями не забудьте включить читы - sv_cheats 1. Отметка проходных зон На некоторых картах может получиться ситуация, когда наверху/на холме/на крыше нет навигационной сетки. Это происходит потому, что автоматом сетки создаются по принципу разливающейся воды, т.е. представьте, что вы начали лить воду на спавнах, она полилась в нижние зоны и там, где она прошла, остались "следы" - навигационная сетка. Чтобы избежать сего недоразумения отметьте необходимые точки командой nav_mark_walkable. Потом придется перегенерить всю сетку. Редактирование созданной сетки Автоматом генерить сетку - это легче, но если хотите сделать отличную карту, с радаром, с указанием мест и т.д. придется все делать вручную. Активация редактора Включаете редактор nav_edit 1, выключаете - nav_edit 0 Белый крест в центре - курсор Зона, на которую вы показываете, выделена желтым Зоны, которые могут быть достигнуты из указанной, окрашены красным Белая линия на зоне - место, где она будет разрезана, при активации nav_split Виды зон Jump зоны (отмечены зеленым хреником) говорят ботам, где прыгнуть дабы залезть повыше и что здесь нельзя кемперить или снайперить. Crouch зоны (отмечены диагональной слешью) заставляють ботов присесть при передвижении. Виды соединений Двусторонние соединения (На гранях - светло-голубые линии) разрешают ботам спокойно передвигаться между зонами. Односторонние соединения (отмечены темно-синими линииями) Обычно используются для спрыгивания. Там можно спрыгнуть, но нельзя попасть обратно. использование команд для работы с сеткой Лучше при работе с этими командами не лазить в консоль, а забиндить их на какие-нибудь клавиши. Пишем в консоли bind Х название_команды, где Х- название клавиши. Если лень лезть и в консоль пробивать бинды, используйте CFG файл. базовые команды для работы с сеткой Save В этой системе нет никаких кнпок/команд типа "отмена". Поэтому не ленитесь использовать команду nav_save. Split Для разделения одной зоны на две используйте команду nav_split. Merge Чтобы соединить две зоны в одну: нацельте курсор на первую зону и запустите nav_mark нацельте курсор на вторую зону и запустите nav_merge Главное, что обе зоны должны быть одного размера с той стороны, где производится соединение. Полученная зона будет иметь соединения первых двух, и свойства ОТМЕЧЕНОЙ зоны. Splice Это соединение создает еще одну зону между двумя существующими. Этот тул довольно мощный и может создавать наклонные зоны. Принцип действия: нацельте курсор на первую зону и запустите nav_mark нацельте курсор на вторую зону и запустите nav_splice Delete Проще некуда. Нацелились на зону, запустили nav_delete Создание новой зоны Чтобы создать новую зону: Помещаем курсор туда, где будет находиться угол новой зоны Пишем nav_begin_area Растягиваем зону Пишем nav_end_area Добавление и удаление соединений между зонами Что такое соединения уже знаем, теперь осталось их научиться создавать. Создадим 2 зоны с односторонним проходом (зд. можно пройти из зоны 1 в зону 2, но не обратно): нацельте курсор на зону 1 Отметьте ее - nav_mark нацельте курсор на зону 2 Пропишите nav_connect Чтобы создать двустороннее соединение, повторите написанное выше поменяв ролями зоны 1 и 2. Чтобы снести все соединения между зонами 1 и 2: нацельте курсор на зону 1 Отметьте ее - nav_mark нацельте курсор на зону 2 Пропишите nav_disconnect Добавляем названия мест Названия мест используются для конкретного обозначения какого-либо места на карте. Например на карте есть дом, его можно отметить как "House". Названия мест, думаю, знаете, что используются ботами и радаром, на этом не станем останавливаться. Для активации режима раздачи слонов... в смысле названий, пропишите nav_toggle_place_mode (nav_edit по-прежнему "1"). Чтобы узнать, какие названия можно дать, пропишите nav_place_list. Выберете место, прописав nav_use_place (название). Затем покажите туда, куда присобачить сие название и пропишите nav_toggle_place_painting. После использования данной команды ВСЕ зоны, на которые вы укажете, будут носить одно название. Чтобы остановиться и выбрать другое название напишите nav_toggle_place_painting еще раз. Сложные элементы Лестницы Если по чему-то можно залезть, то на этом курсор будет зеленым. Использование nav_build_ladder Простой способ создания лестниц - показываем туда, где можно залезть и пишем nav_build_ladder. Использование nav_begin_area и nav_end_area Если nav_build_ladder вам чем-то не понравился, то можно сделать лестницу вручную: наводим курсор туда, где будет угол лестницы пишем nav_begin_area растягиваем зону пишем nav_end_area Это полезно, если боту можно залезть до половины и перескочить на ящик Лестницы, стоящие задом наперед Иногда может случиться, что нава для лестницы будет стоять наоборот. Если лестница красная - это вид сзади. Если ее видать спереди, перед вами лицевая сторона. Меняется ориентация лестницы путем указания на нее и пропиской nav_ladder_flip. Добавляем места, которые можно игнорировать Использование nav_avoid заставляет ботов игнорировать дорогу, пока основной маршрут не станет слишком опасным. Контроль кемперских точек Использование nav_no_hide не дает кемперить ботам в заданной зоне. Создание снайперских точек Отметьте зону командой nav_walk (?) и пропишите nav_make_sniper_spots. Сие превратит зону в кучку маленьких под-зон, где будут боты снайперить. Ну вот и весь тутор. Главное - в конце не забыть прописать nav_analyze и будет вам щастье.
Источник: http://stav-mapping.info/e107_plugins/content/content.php?content.56 |