Введение в ИИ

Что стоит знать перед работой:

  • ИИ в HOI4 ужасен убейте меня.... , хуже только работа с ним.

  • Вы не можете редактировать боевой ИИ, вам это не позволено.

  • ИИ может игнорировать коэфициенты выставленные вами.

  • ИИ не умеет видеть местность. Единственное что он видет - континент.

  • ИИ нельзя задать статическую покупку ресурсов, а значит, невозможно заскриптить стандартными методами.

  • ИИ сам выстраивает интерес к ресурсам базируясь на потребности в производстве техники. Если ресурс для техники не используется, значит он не нужен. Заскриптить самому невозможно.

Сущность стратегий ИИ:

Сущноть стратегий содержит одну или несколько стратегий ИИ и определяет, когда и как они должны применяться. Когда страна проверяет сущность, она будет разрешена только в том случае, если enable она истинна, а abort пустая или ложная. Сущность отключается, если abort она не пуста и истинна. Он также отключается, если abort_when_not_enabled установлен и enable имеет значение false.

Обращенная сущность работает совсем по-другому. сущность включается для страны-источника, если она указана как id в ai_strategy и enable_reverse пуста или истинна. Затем сущность проверяется на соответствие целям. Если target_array и/или targets установлен, они используются как возможные цели. В противном случае все страны используются в качестве возможных целей. enable и abort спусковые проверяются для каждой возможной цели. Если цель проходит эти проверки, все ai_strategy элементы записи включены для источника, но заменяются id на цель.

Стратегии ИИ:

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

С точки зрения структуры, стратегия AI имеет только четыре атрибута: type, value, id, и target. Только некоторые типы используют id и/или target. Все четыре атрибута по своей сути являются целыми числами, но если они type указаны первым, id атрибут может ссылаться на соответствующие значения по имени. target_country это еще один способ установить target. Он принимает индекс страны или тег и в обоих случаях проверяет, относится ли он к допустимой стране.

ИИ сам создает динамические стратегии, но можно добавлять и статические. Статические стратегии в первую очередь определяются с помощью записи стратегии ИИ в Hearts of Iron IV/common/ai_strategy или плана стратегии ИИ. Черты лидера страны (в /common/country_leader) могут нести стратегии ИИ, которые активируются, когда соответствующий человек становится правителем. Индивидуальные стратегии также могут быть добавлены напрямую с помощью эффекта add_ai_strategy (например, в случае событий, национальных фокусов и тд. и тп).

Эффективные стратегии ИИ страны сохраняются в файлах сохранения как ai атрибут страны.

Типы:

Так как скриптеры ИИ обращаются к списку стратегиям очень часто, значит и разумнее их выставить наверх. При определении ai_strategy тип определяет, какой аспект стратегии ИИ изменяется. Дополнительные ai_strategy от LaR можно найти в /common/ai_strategy/default.txt

Тип

ID

Описание

put_unit_buffers

См. Ai_strategy/default.txt

Используется для указания ИИ гарнизона в определенных регионах

conquer

<тег>

Поощряет военный ИИ нацеливаться на указанный тег.

colonize

????

???? "Не используется".

explore

????

???? "Не используется".

antagonize

<тег>

Подталкивает дипломатический ИИ к противодействию по отношению к другой указанной стране.

befriend

<тег>

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

protect

<тег>

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

consider_weak

<тег>

Подталкивает ИИ к рассмотрению указанного тега как слабого.

influence

????

???? "Не используется".

alliance

<тег>

Подталкивает дипломатический ИИ к формированию союза с другой указанной страной.

build_ship

????

???? "Не используется".

build_airplane

????

???? "Не используется".

build_army

<роль подразделения>

Приказывает ИИ построить дивизию или оборудование (например, самолеты или корабли), которые относятся к определенной роли подразделения.

build_building

<здание>

Приказывает ИИ построить определенное здание в определенном месте. Использует target для указания местоположения стейта.

research_tech

<технология>

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

garrison

<целое число>

Используется в ai_strategies/SOV.txt, USA.txt, ENG.txt, какая часть армии должна оставаться в гарнизоне

contain

<тег>

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

invade

<тег>

Подталкивает ИИ к вторжению в указанный тег.

unit_ratio

<тип объекта>

От всей армии это соотношение (в%) того типа подразделения, которое должна иметь армия.

role_ratio

<роль подразделения>

От всей армии это соотношение (в%) роли этого подразделения, которое должна иметь армия. Роли могут быть определены произвольно в ai_templates.

land_xp_spend_priority

????

???? "Не используется".

pp_spend_priority

<решение> <гарантия> <отношение> и т.д.

Устанавливает приоритет расходования политической власти на указанное действие.

template_prio

<тип объекта>

Устанавливает приоритет шаблона указанного типа юнита для ИИ.

template_xp_reserve

????

Устанавливает XP, зарезервированный для AI, чтобы учитывать изменения шаблона.

equipment_design_priority

????

????

equipment_stockpile_surplus_ratio

????

Устанавливает прибавочную стоимость базового оборудования.

air_factory_balance

????

Изменяет заводское соотношение воздуха.

equipment_production_factor

<тип объекта>

Изменяет порядок производства оборудования для указанного типа юнита.

equipment_variant_production_factor

<оборудование>

Изменяет расположение производства варианта оборудования для указанного оборудования.

equipment_production_min_factories

<тип объекта>

Устанавливает минимальное заводское количество, необходимое для начала производства оборудования для указанного типа юнита.

ignore

<тег>

Подталкивает ИИ к игнорированию указанного тега.

area_priority

<область ии>

Поощряет военный ИИ нацеливаться на указанную область ИИ.

send_volunteers_desire

<тег>

Изменяет настрой ИИ на отправку добровольцев на указанный тег.

occupation_policy

<тег>

Определяет политику оккупации по отношению к указанному тегу.

support

<тег>

Изменяет настрой ИИ на поддержку указанного тега против партизан.

naval_avoid_region

<стратегический регион>

Изменяет режим избегания ИИ указанного стратегического региона военно-морскими силами.

prepare_for_war

<тег>

Подталкивает ИИ к планированию атаки для возможной войны с целью

save_equipment

<оборудование>

Заставляет ИИ сохранять оборудование указанного типа до установленного значения.

pp_spend_amount

<решение> <гарантия> <отношение> и т.д.

Устанавливает сумму, разрешенную для траты политической власти на указанное действие.

declare_war

<тег>

Подталкивает ИИ к объявлению войны указанному тегу.

ignore_army_incompetence

????

Устанавливает склонность ИИ игнорировать некомпетентность армии.

spare_unit_factor

????

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

dont_join_wars_with

<тег>

Подвигает ИИ к отказу от защиты целевой страны, когда задействован указанный тег. Использует target_country для определения целевой страны.

added_military_to_civilian_factory_ratio

????

Изменяет коэффициент соотношения количества военных и гражданских предприятий.

factory_build_score_factor

????

Изменяет расположение сборки ИИ для состояния. Используйте target для определения целевого стейта

ignore_claim

<тег>

Устанавливает игнорирование ИИ претензий к указанному тегу. Принимает 1 как значение.

dockyard_to_military_factory_ratio

????

Изменяет соотношение верфей и военных заводов.

dont_defend_ally_borders

????

Подталкивает ИИ к отказу от защиты указанного союзника.

force_defend_ally_borders

????

???? "Не используется".

building_target

<здание>

Приказывает ИИ увеличивать количество <постройки>. Сюда входят те, которые уже находятся в собственности и приобретены торговлей (гражданский завод).

production_upgrade_desire_offset

<оборудование>

???? "Не используется".

force_build_armies

????

Заставляет ИИ строить армии

strike_force_home_base

<регион>

Приоритет портов региона для военно-морских операций

garrison_reinforcement_priority

????

Приоритет гарнизона

intelligence_agency_branch_desire_factor

????

????

intelligence_agency_usable_factories

????

????

Атрибуты ИИ:

  • allowed: (тип: AND триггер) Оценивается только один раз в начале игры, поэтому условия должны быть статическими (например, tag = GER или is_historical_focus_on = yes). Если запись не разрешена, она больше никогда не проверяется, поэтому это можно использовать для повышения производительности.

  • enable: (тип: AND триггер) Включает запись (если abort также не является пустым и истинным).

  • abort: (тип: AND триггер) Если не пусто и истинно, отключает запись.

  • abort_when_not_enabled: (тип: да/нет, по умолчанию: нет) Если включено, запись будет отключена, когда enable станет false.

  • ai_strategy: (тип: стратегия ИИ, может появляться несколько раз) стратегия ИИ, применяемая с этой записью

  • reversed: (тип: да/нет, по умолчанию: нет) использовать обратную семантику, как описано выше

  • enable_reverse: (тип: AND триггер) дополнительный триггер для страны-источника для передачи обратного триггера

  • target_array: (тип: переменная) Переменная массива, содержащая обратные цели, например neighbors, exiles или enemies.

  • target: (тип: список переменных) Список индивидуальных обратных целей, например { GER ENG FRA }

Шаблоны ИИ:

В /common/ai_templates файлы определяют шаблоны, используемые роли, которые ИИ должен использовать. Роли - это ядро системы шаблонов ИИ. Их можно создавать произвольно, что позволяет мододелам создавать собственные роли. Каждый шаблон, назначенный роли, будет формировать группу для этой роли, а затем оценка пригодности каждого доступного шаблона используется для определения того, какой из них используется в определенный момент для конкретной роли.

В качестве примера, используем шаблон "средних танков - ОБТ" Economic Crisis:

Шанс ИИ

Обнаруженный во многих файлах, ai_will_do - это элемент, который выдает число, которое ИИ использует при взвешивании решений. Функционально он очень похож на mean_time_to_happen и использует ту же систему модификаторов, которая там описана. Однако у него другая интерпретация базы и фактора.

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

  • base (Тип: переменная с заданной областью действия, по умолчанию: 1) Базовое значение вычисления до применения каких-либо модификаторов.

  • factor (Тип: число (с 3 десятичными знаками), по умолчанию: 1) Последний коэффициент, применяемый при вычислении.

Пример:

Результат: 0 для GER (10.5 0 = 0) 74 для FRA (((10.5 + 1) 3 + 2.5) 2 = 74) 23 для остальных мажоров ((10.5 + 1) 2 = 23) 21 для миноров (10.5 * 2 = 21)

ИИ мир

В /common/ai_peace файлы управления ИИ при мирной конференции. Существует пять типов мирного поведения:

  • гражданская война

  • демократичный

  • коммунист

  • фашист

  • по умолчанию

    Есть пять базовых вариантов мира, а именно:

  • annex

  • liberate

  • puppet

  • take_states

  • force_government

Пример:

ИИ фокусы

Каждый фокус ИИ можно изменить с помощью соответствующего модификатора для конкретной страны, называемого ai_focus_<x>_factor, который применяется после вычислений по умолчанию, указанных выше. Например, ai_focus_naval_air_factor = 0.5 добавляет 50% бонус к фокусу морской авиации страны. Приоритет исследования В common/ai_focuses файлы управления, сколько фокусы ИИ влияет на какие виды исследований и национальных фокусов. Каждое имя фокуса может иметь постфиксный тег страны, чтобы сделать конкретную настройку фокуса для страны, например, ai_focus_aviation_GER. Пример:

Исторические фокусы Этот фокус не имеет значения, но ИИ будет следовать за национальными фокусами в указанном порядке, если включены исторические фокусы ИИ. Чтобы добавить исторические национальные фокусы, вы добавляете ai_historical_focus_list_<tag>, который содержит национальные фокусы, которым ИИ должен уделять приоритетное внимание. Эта система была в некоторой степени дополнена стратегическими планами ИИ, которые учитывают исторические списки фокусов, но также отклоняются от них, когда основные предположения нарушаются. Пример:

Область ИИ

В /common/ai_areas управления каталогов отнесений земельных провинций именованным областей ИИ. Они, в свою очередь, используются только стратегией ИИ, area_priority описанной ниже. Каждая сухопутная провинция относится только к одной области ИИ. Используется первая совпадающая область. Нет необходимости назначать область ИИ каждой провинции земли, но неназначенные области не могут быть указаны в area_priority стратегии. Область ИИ отображается во всплывающей подсказке отладки провинции. Пример:

Планы ИИ

В /common/ai_strategy_plans файлы определяют конкретное общего поведение ИИ для конкретных тегов, используемые для исторических планов по умолчанию.

Пример:

Last updated

Was this helpful?