на главную
об игре
Battlefield 2142 17.10.2006

Искусственный интеллект для AE Defuser

В Battlefield 2142 есть устройство для разминирования, в архиве Weapons_server его конфигурации лежат в папке Unl_Defuser. Как у многих других девайсов для него не прописан искусственный интеллект. Когда я формировал комплекты для одиночной игры, каждому оружию и приспособлению я прописывал условия применения их ботами. С дефузером вышла заминка. Во второй батле боты на ура ключом и чинили и мины снимали, но в 2142м произошло разделение этих функций между двумя устройствами.
Во второй батле условия ремонта в файле AI соотетствующей папки с оружием/приспособлением описывались аналогично условиям применения любого оружия:
weaponTemplate.create wrench_AI
weaponTemplate.indirect 0
weaponTemplate.minRange 0.0
weaponTemplate.maxRange 0.0
weaponTemplate.setStrength Infantry 0.0
weaponTemplate.setStrength LightArmour 5.0
weaponTemplate.setStrength HeavyArmour 5.0
weaponTemplate.setStrength NavalArmour 1.0
weaponTemplate.setStrength Helicopter 3.0
weaponTemplate.setStrength AirPlane 3.0
В 2142й эти условия описаны иначе:
weaponTemplate.create Unl_Repair
weaponTemplate.weaponType Repair
weaponTemplate.maxRange 50.0
Как мы видим, убран приоритет по классам техники, и что самое главное, добавлен тип "оружия", что определяет характер применения устройства ботом. Соответствующие типы есть для дефибриллятора, медицинского комплекта, и так далее.
Не зная нужный тип для дефузера, я сначала махнул рукой на написание файла AI для него, решив, что его просто не создали. Но на днях в файле AIBehaviours в папке \Battlefield 2142\mods\bf2142\AI я заметил строку aiSettings.setBehaviour 9 DefuseMines
Насколько я понимаю, разминирование ботами в игре предусмотрено, нужно лишь знать тот самый weaponType. Использовать DefuseMines/Defuser/Defuse я пробовал, ни один из трёх не дал результата.
У меня по этому поводу вопросы.
Есть ли на самом деле, и если есть, то какой weaponType для разминирования? Или же этого мало, и нужны манипуляции с минами (какой то маркер для ботов, чтобы они понимали, что это мины, по аналогии с маркером "пехота" на огневые точки и дроны)?
Или же нужны совсем иные действия?

Комментарии: 6
Ваш комментарий

Дмитрий Евгеньевич
Скорее всего weaponType для разминирования не существует, даже поискав в самих AI.dll и BF2142.exe, я нашёл такие weaponsType'ы, как Healing, Repair, C4, CloseCombat и т.д., но ничего не нашёл про Defuse. Ведь разработчики рассчитывали, что дефюзером и минами будут пользоваться именно игроки, поэтому не стали делать такую возможность ботам в финальной версии. Хотя если взглянуть на строку "aiSettings.setBehaviour 9 DefuseMines", то скорее всего планировалась возможность разминирования ботами.

1

_Zuko_42_
Спасибо за ответ! А чем открывали AI.dll и BF2142.exe?

0

Дмитрий Евгеньевич
Можно просмотреть в любом HEX-редакторе, в моём случае это ArtMoney

1

_Zuko_42_
HEX Editor Neo меня подвел с AI.dll. Попробую ArtMoney, спасибо за совет.

0

Перетащи все нужные АИ из второй батлы

0

Terminatys111
Простой перенос не работает, нужен weaponType на разминирование, а в AI файлах на оружие во второй батле weaponType не указывался. Да и не факт, что weaponType совпадают во второй и 2142й.

0