Предлагаю обсуждать здесь все что касается ботов и их интеллекта.
Сам выписываю все что знаю по редактированию AI может кому пригодится: Редактируем AI ручного оружия и вооружения техники:
Искуственный интелект ручного оружия обычно находится в папке: Ваш_мод\Objects_server\Weapons\Handheld\имя_оружия\ai\Weapons.ai
Открывается файл *.ai обычным блокнотом или wordpad.
Написание AI для оружия складывается из следующих тегов. Запихивать все теги в один документ не нужно. Обязательными являются только эти:
weaponTemplate.create
weaponTemplate.minRange
weaponTemplate.maxRange
weaponTemplate.setStrength Infantry
weaponTemplate.setStrength LightArmour
weaponTemplate.setStrength HeavyArmour
weaponTemplate.setStrength NavalArmour
weaponTemplate.setStrength Helicopter
weaponTemplate.setStrength AirPlane
Остальные приписываются по мере необходимости. Привожу описания все с которыми знаком:
rem *** Имя оружия *** - эта строчка не обязательна, она никак не влияет на ход игры. Применимо не только для AI, но и для любых других скриптов игры. Если строчка начинается на "rem" игра её не читает и сюда можно спрятать комментарий к ниже идущему скрипту или вставить сюда стишок на арабском языке.)))) Если предполагается перенос на другую строчку, ее тоже надо начинать со слова "rem"
weaponTemplate.create ---текст---
это уже читается игрою. Указывает к какому оружию принадлежит данное AI. Сюда можно ввести любое название на английском, без пробелов. Вместо пробела используются "_". Данное название должно обязательно совпадать со строчкой:
ObjectTemplate.aiTemplate ---текст---
находящаяся в *.tweak файле того оружия к которому принадлежит данный Ai файл. Другими словами строчка ObjectTemplate.aiTemplate - это ссылка на AI оружия.
weaponTemplate.minRange - минимальное растояние до цели с которого можно открывать огонь
weaponTemplate.maxRange - максимальное растояние до цели с которого можно открывать огонь
weaponTemplate.optimalRangePercentage - оптимальное растояние до цели для открытия огня
weaponTemplate.setFiringPose - наиболее удобная поза для стрельбы Задается следующими параметрами:
Lying - лежа
Crouching - на ходу, присев
Standing - стоя
Против кого эффективнее использовать оружие. Чем больше значение, тем эффективнее будет использоваться оружие против определенного класса целей. 0 - означает для бота что это оружие абсолютно не пригодно против стрельбы по цели. К примеру из гранатомета хорошо уничтожать танки и машины, неплохо пальнуть по лодке, трудно попасть по вертолету. Против остального он не эффективен:
weaponTemplate.setStrength Infantry 0.0 пехота
weaponTemplate.setStrength LightArmour 10.0 легкобронированная техника и автомобили
weaponTemplate.setStrength HeavyArmour 8.0 тяжелобронированная техника
weaponTemplate.setStrength NavalArmour 6.0 морской транспорт
weaponTemplate.setStrength Helicopter 1.0 вертолеты
weaponTemplate.setStrength AirPlane 0.0 самолеты
weaponTemplate.setSoundSphereRadius 0 не знаю точно, но скорее всего это зона, в радиусе которой вражеские боты могут определить по звуку месторасположение стрелка сделавшего выстрел из данного образца оружия.
weaponTemplate.allowedDeviation 0.0 отклонение от цели. Хотя конкретного эффекта от этого параметра не заметил.
weaponTemplate.indirect 0 тип прицеливания. Значение 0 означает что огонь ведется напрямую по цели, либо по навесной траектории. Значение 1 означает что огонь ведется нелинейным прицеливанием. К примеру сброс бомб с самолета.
weaponTemplate.setExplosionRadius 0 - радиус в котором по мнению бота будет нанесен урон. К примеру после броска гранаты с радиусом 10 бот убежит от неё на 10 метров и будет думать что находится в безопасности.
weaponTemplate.setFiresThroughTransparent - 0 незнаю точно, но кажется этот параметр отвечает за то, будет ли вестись огонь, если цель не видно напрямую. К примеру если цель закрыта дымовой завесой. Пригодится для противотанковых комплексов. Значения 1 или 0. Точно описать значения не могу.
weaponTemplate.fireRate 0 частота выстрелов в минуту. Пригодится для вертолетов и любой другой техники, оснащенной неуправляемыми реактивными снарядами (НУРС). С помощью этого параметра бот будет бомбить по полной, а не выпускать ракеты по одной штуке.
Если вы правите AI не ручного оружия, а скажем вооружения техники то оно пишется аналогичным образом. Располагается оно
Objects_server\Vehicles\Land (Air, sea, xpak2_vehicles) \имя_техники\ai\Weapons.ai
Структура похожая, только в одном документе прописывается не один вид оружия, а все по очереди, которыми оснащен данный транспорт. AI пассажирских мест и пассажирских пулеметов приписывается отдельно, в папке с пулеметом. Незабывайте указать точную ссылку к оружию.
Оно находится в *.tweak файле самого транспорта. Для поиска советую в блокноте нажать Ctrl+F и ввести weaponTemplate.create и искать.
Впрочем если вы не создаете свое оружие или транспорт с нуля, а только меняете существующий - это не надо делать. Просто правьте параметры и сохраняйте. Незабудьте сначала снять галочку в свойствах файла: "Только для чтения" иначе сохранить не получится.
Кто знает больше - делитесь.))) К сожалению я не умею добавлять ботов на свои карты и не разбираюсь в AI техники и общего поведения ботов.