|
|
КАК СОЗДАВАТЬ НОВЫЕ БОЕВЫЕ ФОРМАЦИИ |
|
Здесь можно задать вопрос по этому тутору. м Активно обсуждаем военные игры, историю, МОДы, и новинки |
Рассмотрим для примера следующую. Она рассчитана на размещение членов семьи генералов. begin_formation ai_family_multi attack defend ai_priority 2.0
;; Family-members, first line begin_block 0 min_units 2 max_units 3 not_general unit_type skirmish cavalry 1.0 default_melee_state skirmish unit_density close min_unit_width 16 max_unit_width 22 block_formation line block_relative_pos 0 0.0 0.0 inter_unit_spacing 2.0 priority 1.0 end_block
;; Family-members, left begin_block 1 not_general unit_type skirmish cavalry 1.0 default_melee_state skirmish unit_density close min_unit_width 16 max_unit_width 22 block_formation line block_relative_pos 0 -18.0 -2.0 inter_unit_spacing 2.0 priority 0.8 end_block
;; Family-members, right begin_block 2 not_general unit_type skirmish cavalry 1.0 default_melee_state skirmish unit_density close min_unit_width 16 max_unit_width 22 block_formation line block_relative_pos 0 18.0 -2.0 inter_unit_spacing 2.0 priority 0.8 end_block
;; Family-member, General begin_block 3 min_units 1 max_units 1 unit_type skirmish cavalry 1.0 default_melee_state skirmish unit_density close min_unit_width 16 max_unit_width 22 block_formation line block_relative_pos 0 0.0 -18.0 inter_unit_spacing 2.0 priority 1.0 end_block
;; Siege equipment, left begin_block 4 unit_type siege 1.0 default_melee_state fire_at_will unit_density close min_unit_width 11 max_unit_width 11 block_formation line block_relative_pos 3 -6.0 -2.0 inter_unit_spacing 6.0 priority 0.4 end_block
;; Siege equipment, right begin_block 5 unit_type siege 1.0 default_melee_state fire_at_will unit_density close min_unit_width 11 max_unit_width 11 block_formation line block_relative_pos 3 6.0 -2.0 inter_unit_spacing 6.0 priority 0.4 end_block
;; Dummy block begin_block 6 unit_type any 0.1 unit_density close block_formation square block_relative_pos 3 0.0 -18.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation
Я постараюсь объяснить использование операторов формаций на примере той формации, которая находится выше, так как очень важно понимать назначение каждой одиночной команды, из которых мы может сделать интересные комбинации операторов, так что нам понадобится внимание, чтобы уяснить некоторые тонкости моддинга формаций. -Название формации Формация начинается с оператора: "begin_formation”, который следует за именем, которое вы присвоили формации. -Цель формации -существует еще несколько целей для битвы у моста и осады (про них позже) Когда армия разворачивается, она будет по умолчанию развернута в "defend" formation и сохранит "defend" purpose или после начала битвы переключится на "attack" purpose. Вам не нужны формации только для атаки и защиты, хотя они позволять сделать существенные различия между атакующей и обороняющейся армией (или в подкреплении, по меньшей мере, в некоторых случаях). Я точно не знаю, как используются "march" and "pursue" формации, так как в моих текущих экспериментах я делал очень простыми и никогда не замечал, чтобы они когда-нибудь использовались , что не значит, что они никогда не используется. Я, пока, просто не знаю. "standard_ambush_defender_deployment" purpose используется, когда армия успешно сделала засаду, и армия разворачивается в середине засадной зоны. - Приоритет формации Я лично использую приоритет двух уровней: 2.0 для attack и defend и 1.0 для всего остального. -Поддерживаемые фракции supported_factions romans_julii, romans_scipii и так далее Итак, что мы имеем теперь после всего вышесказанного: begin_formation ai_my_formation attack defend ai_priority 1.0
supported_factions romans_julii, romans_scipii
{Здесь начинается фактически формация}
end_formation Формация (если сказать просто) – это комбинация блоков. Их использование зависит от ваших знаний и фантазии. Когда армия развернута (ИИ или игрока), игра просматривает формации в поисках наиболее подходящей, используя корректную цель формации и просматривая приорететы, поэтому подходящая для обороны формация не может быть использована в атаке и так далее. Есть несколько способов воздействия на игру, чтобы заставить выбирать нужную для вас формацию, наиболее «грубые» - это приоритет и поддерживаемые фракции, хотя оба блока могут и не дать игре выбрать формацию. Для примера, вы хотите выбрать формацию для фракции, где много кавалерии (гунны и т.д.) Но в формации вы забыли поставить блок кавалерии. Тогда из-за этих двух ограничений игра или вылетит, или выберет не ту формации. - Ложные блоки Spacer позволяет создавать пустые блоки без размещения юнитов. Это необходимо, например, чтобы установить дополнительное расстояние между двумя другими блоками при нехватке необходимых юнитов в стеке. Спейсеры нужны для создания промежутков (не занятых юнитами) между блоками и юнитами. Пример формации с полезным спейсером. begin_formation ai_archer_small_reinforcements attack defend ai_priority 1.0
begin_dummy_block 0 spacer 0.0 0.0 60 30 end_dummy_block
;; Archers, left begin_block 1 min_units 1 max_units 3 unit_type ranged_missile_infantry 1.0 default_melee_state fire_at_will_and_defend_and_skirmish unit_density close min_unit_width 40 max_unit_width 40 block_formation column block_relative_pos 0 -2.0 0.0 inter_unit_spacing 3.0 priority 1.0 end_block
;; Archers, right begin_block 2 min_units 1 max_units 3 unit_type ranged_missile_infantry 1.0 default_melee_state fire_at_will_and_defend_and_skirmish unit_density close min_unit_width 40 max_unit_width 40 block_formation column block_relative_pos 0 2.0 0.0 inter_unit_spacing 3.0 priority 1.0 end_block
;; Generals unit, in center behind begin_block 3 min_units 1 max_units 1 unit_type general_unit 1.0 unit_density close block_formation line block_relative_pos 0 0.0 -12.0 inter_unit_spacing 2.0 priority 1.0 end_block
;; Dummy block begin_block 4 unit_type any 0.1 unit_density close block_formation square block_relative_pos 3 0.0 -18.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation
Spans необходимы для того, чтобы связать несколько блоков в один, когда нужно разместить что-то относительно этих нескольких блоков. Вы можете использовать спаны как в этой формации. begin_formation ai_legion_smallcavalry attack defend ai_priority 1.0
;; Legions, first line begin_block 0 max_units 8 unit_type light_pilum_infantry 1.0 default_melee_state fire_at_will unit_density close min_unit_width 20 max_unit_width 20 block_formation line block_relative_pos 0 0.0 0.0 inter_unit_spacing 10.0 priority 1.0 end_block
;; Legions, second line begin_block 1 max_units 6 unit_type heavy_pilum_infantry 1.0 default_melee_state fire_at_will unit_density close min_unit_width 20 max_unit_width 20 block_formation line block_relative_pos 0 0.0 -12.0 inter_unit_spacing 12.0 priority 1.0 end_block
begin_dummy_block 2 spans 0 1 end_dummy_block
;; Cavalry, right flank .. AI loves cav. on right! begin_block 3 max_units 2 unit_type heavy cavalry 1.0 unit_type light cavalry 1.0 unit_density close block_formation line block_relative_pos 2 24.0 -12.0 inter_unit_spacing 2.0 priority 0.6 end_block
;; Dummy block begin_block 4 unit_type any 0.1 unit_density close block_formation line block_relative_pos 2 0.0 -12.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation Как видите, первая линия состоит из легкой пехоты, вторая – из тяжелой. - Блок юнитов Для начала я предоставлю типичный пример блока юнитов, который часто используется в различных формациях. begin_formation ai_dummy_formation attack defend ai_priority 1.0
;; Dummy block begin_block 0 unit_type any 0.1 unit_density close block_formation square block_relative_pos 0 0.0 0.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation Это прекрасно работающая формация, лучше той, которая используется в стандартной версии игры под названием «простая линия». Я буду помечать команду следующим образом: begin_block # Эта команда является началом блока и должна быть пронумерована, начиная с 0. (Ложные блоки нумеруются в одном порядке с блоками для юнитов). min_units 1 not_general Будьте внимательны, когда используйте эту команду. Если она неправильно расположена, она может причинить неудобства. Эта формация (наиболее вероятно) поместит вашего генерал в "любой квадрат", если вы будете использовать 2 или более отряда тяжелой кавалерии begin_formation ai_small_cavalry attack defend ai_priority 1.0
;; Cavalry, first line begin_block 0 min_units 1 max_units 1 unit_type heavy cavalry 1.0 unit_density close min_unit_width 20 max_unit_width 20 block_formation line block_relative_pos 0 0.0 0.0 inter_unit_spacing 2.0 priority 1.0 end_block
;; Cavalry, second line begin_block 1 not_general unit_type heavy cavalry 1.0 unit_density close min_unit_width 20 max_unit_width 20 block_formation line block_relative_pos 0 0.0 -12.0 inter_unit_spacing 2.0 priority 1.0 end_block
;; Dummy block begin_block 2 unit_type any 0.1 unit_density close block_formation square block_relative_pos 1 0.0 -18.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation Эта формация разместит юнита (не генерала) а первую очередь в первом блоке, который заполнен из-за оператора ограничения юнитов 1 поэтому игра пытается разместить генерала во втором блоке, но там стоит оператор, не позволяющий генералу там оказаться. В результате генерал отправляется в последний блок, называемый "любой квадрат". Подобная формация, но теперь рабочая: begin_formation ai_small_cavalry attack defend ai_priority 1.0
;; Cavalry, first line begin_block 0 max_units 1 unit_type heavy cavalry 1.0 unit_density close min_unit_width 20 max_unit_width 20 block_formation line block_relative_pos 0 0.0 0.0 inter_unit_spacing 2.0 priority 0.1 end_block
;; Cavalry, second line begin_block 1 not_general unit_type heavy cavalry 1.0 unit_density close min_unit_width 20 max_unit_width 20 block_formation line block_relative_pos 0 0.0 -12.0 inter_unit_spacing 2.0 priority 1.0 end_block
;; Dummy block begin_block 2 unit_type any 0.1 unit_density close block_formation square block_relative_pos 1 0.0 -18.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation Если вы обратите внимание на первый блок и рассмотрите приоритет блока, вы увидите, что я его сильно снизил, также оператор min_units удален, поэтому игра так не ведет себя в заполнении блока. По меньшей мере, с командой нет проблем самой по себе, но она все же работает немного проблематично. Обратите внимание на самую первую формацию в туторе, она располагает генерала в центральном блоке с помощью сочетания операторов min_units, max_units, block-priority, not_general. unit_type any 0.1 Как видите, узнать типы юнитов можно, просматривая ванильные файлы. default_melee_state fire_at_will_and_defend_and_skirmish Также, можно отключить все эти настройки, если использовать специальные команды, как показано здесь. В данном случае лучники не стреляют и держат позицию. default_melee_state dummy Вам следует весьма осторожно использовать defend, так как это нельзя отключить, также ИИ не может поменять настройку во время битвы. В этом случае юниты не атакуют активно. unit_formation square unit_density close min_unit_width 20 Дарт Вейдер упоминал "min_unit_depth" и "max_unit_depth", но мне не удалось заставить эти команды работать в игре. block_formation line - Определение позиции блока Когда вы хотите расположить свою армию в битве, у вас есть два способа это сделать: block_relative_pos 0 0.0 0.0 или комбинация команд: normalised_pos 0.0 0.0 normalised_rot 0.0 Первый способ гораздо легче и более распространен, второй гораздо труднее и не всегда адекватно работает. Минимальные значения команд таковы: normalised_pos 0.0 0.0 normalised_rot 0.0t Максимальные значения: normalised_pos 1.0 1.0 normalised_rot 360.0 Я сам плохо понимаю значение команд, но дам несколько примеров, как они работают: begin_formation ai_normalisedstuff_defend defend ai_priority 3.0
;; First line of infantry begin_block 0 max_units 3 unit_type heavy_pilum_infantry 1.0 default_melee_state fire_at_will_and_defend unit_density close block_formation line normalised_pos 0.0 0.0 normalised_rot 0.0 inter_unit_spacing 6.0 priority 1.0 end_block
;; Second line of infantry begin_block 1 max_units 2 unit_type heavy_pilum_infantry 1.0 default_melee_state fire_at_will_and_defend unit_density close block_formation line normalised_pos 0.0 0.0 normalised_rot 0.0 inter_unit_spacing 6.0 priority 1.0 end_block
;; Dummy block begin_block 2 unit_type any 0.1 unit_density close block_formation square normalised_pos 0.0 0.0 normalised_rot 0.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation Посмотрите, где армии развернуты относительно центра развертывания. и begin_formation ai_normalisedstuff_defend defend ai_priority 3.0
;; First line of infantry begin_block 0 max_units 3 unit_type heavy_pilum_infantry 1.0 default_melee_state fire_at_will_and_defend unit_density close block_formation line normalised_pos 0.6 0.6 normalised_rot 45.0 inter_unit_spacing 6.0 priority 1.0 end_block
;; Second line of infantry begin_block 1 max_units 2 unit_type heavy_pilum_infantry 1.0 default_melee_state fire_at_will_and_defend unit_density close block_formation line normalised_pos 0.0 0.0 normalised_rot 45.0 inter_unit_spacing 6.0 priority 1.0 end_block
;; Dummy block begin_block 2 unit_type any 0.1 unit_density close block_formation square normalised_pos 0.0 0.0 normalised_rot 45.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation Опять, армии находятся в центре построения, но это не произвело поворота. Не используйте подобные значения в normalised_pos except for 0.0 0.0, если вы не хотите сломать формацию. block_relative_pos 0 0.0 0.0 Я проиллюстрирую эту команду еще несколькими примерами. begin_formation ai_position_defend1 defend ai_priority 2.0
supported_factions romans_julii
;; Legions begin_block 0 unit_type heavy_pilum_infantry 1.0 unit_density close block_formation line block_relative_pos 0 0.0 0.0 inter_unit_spacing 12.0 priority 1.0 end_block
;; Cavalry begin_block 1 unit_type heavy cavalry 1.0 unit_density close block_formation line block_relative_pos 0 0.0 -12.0 inter_unit_spacing 2.0 priority 0.9 end_block
;; Dummy block begin_block 2 unit_type any 0.1 unit_density close block_formation square block_relative_pos 1 0.0 -18.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation Следующая: begin_formation ai_position_defend2 defend ai_priority 2.0
supported_factions romans_brutii
;; Legions begin_block 0 unit_type heavy_pilum_infantry 1.0 unit_density close block_formation line block_relative_pos 0 0.0 0.0 inter_unit_spacing 12.0 priority 1.0 end_block
;; Cavalry begin_block 1 unit_type heavy cavalry 1.0 unit_density close block_formation line block_relative_pos 0 -12.0 0.0 inter_unit_spacing 2.0 priority 0.9 end_block
;; Dummy block begin_block 2 unit_type any 0.1 unit_density close block_formation square block_relative_pos 1 0.0 -18.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation Теперь такая: begin_formation ai_position_defend3 defend ai_priority 2.0
supported_factions romans_scipii
;; Legions begin_block 0 unit_type heavy_pilum_infantry 1.0 unit_density close block_formation line block_relative_pos 0 0.0 0.0 inter_unit_spacing 12.0 priority 1.0 end_block
;; Cavalry begin_block 1 unit_type heavy cavalry 1.0 unit_density close block_formation line block_relative_pos 0 -12.0 -12.0 inter_unit_spacing 2.0 priority 0.9 end_block
;; Dummy block begin_block 2 unit_type any 0.1 unit_density close block_formation square block_relative_pos 1 0.0 -18.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation ![]() inter_unit_spacing 2.0 priority 1.0 В этой формации первая линия будет заполняться 10 юнитам до размещения юнитов во второй линии, max_units предотвращает размещение лишних юнитов в первой линии. begin_formation ai_priority_defend defend ai_priority 2.0
;; Legions begin_block 0 max_units 10 unit_type heavy_pilum_infantry 1.0 unit_density close block_formation line block_relative_pos 0 0.0 0.0 inter_unit_spacing 12.0 priority 1.0 end_block
;; Legions begin_block 1 unit_type heavy_pilum_infantry 1.0 unit_density close block_formation line block_relative_pos 0 0.0 -12.0 inter_unit_spacing 12.0 priority 0.1 end_block
;; Dummy block begin_block 2 unit_type any 0.1 unit_density close block_formation square block_relative_pos 1 0.0 -18.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation Теперь обсудим другой способ работы с приоритетами. я покажу несколько примеров. begin_formation ai_priority_infantry defend ai_priority 2.0
;; Legions begin_block 0 unit_type heavy_pilum_infantry 1.0 unit_density close block_formation line block_relative_pos 0 0.0 0.0 inter_unit_spacing 12.0 priority 1.0 end_block
;; Cavalry begin_block 1 unit_type heavy cavalry 1.0 unit_density close block_formation line block_relative_pos 0 0.0 -12.0 inter_unit_spacing 2.0 priority 0.6 end_block
;; Dummy block begin_block 2 unit_type any 0.1 unit_density close block_formation square block_relative_pos 1 0.0 -18.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation В этой форации пехота доминирует над кавалерией. Пример на картинке: Теперь же я изменю приоритеты: кавалерия получит высокий приоритет, а пехота – маленький. begin_formation ai_priority_cavalry defend ai_priority 2.0
;; Legions begin_block 0 unit_type heavy_pilum_infantry 1.0 unit_density close block_formation line block_relative_pos 0 0.0 0.0 inter_unit_spacing 12.0 priority 0.6 end_block
;; Cavalry begin_block 1 unit_type heavy cavalry 1.0 unit_density close block_formation line block_relative_pos 0 -24.0 -12.0 inter_unit_spacing 2.0 priority 1.0 end_block
;; Dummy block begin_block 2 unit_type any 0.1 unit_density close block_formation square block_relative_pos 1 0.0 -18.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation Теперь в формации больше кавалерии, чем пехоты Я показал вам примеры, как только с помощью приоритетов можно заставить игру создавать из почти одинаковых формаций совершенно разные по поставу войск. Так можно делать практически с каждой формации. end_block -Formation for a full Roman army begin_formation ai_full_legion attack defend ai_priority 1.0
;; First line of infantry begin_block 0 unit_type light_pilum_infantry 1.0 unit_type heavy_pilum_infantry 0.9 default_melee_state fire_at_will unit_density close block_formation line block_relative_pos 0 0.0 0.0 inter_unit_spacing 12.0 priority 1.0 end_block
;; Second line of infantry left begin_block 1 max_units 1 unit_type heavy_pilum_infantry 0.9 unit_type light_pilum_infantry 0.1 default_melee_state fire_at_will unit_density close block_formation line block_relative_pos 0 0.0 -12.0 inter_unit_spacing 12.0 priority 1.0 end_block
;; Spearmen begin_block 2 unit_type spearmen 1.0 unit_density close block_formation line block_relative_pos 1 0.0 -12.0 inter_unit_spacing 18.0 priority 1.0 end_block
;; Achers, behind the other infantry begin_block 3 unit_type ranged_missile_infantry 1.0 default_melee_state fire_at_will_and_defend_and_skirmish unit_density close block_formation line block_relative_pos 2 0.0 -6.0 inter_unit_spacing 3.0 priority 1.0 end_block
;; Elephants begin_block 4 unit_type elephants 1.0 default_melee_state fire_at_will unit_density close block_formation line block_relative_pos 3 0.0 -6.0 inter_unit_spacing 12.0 priority 0.8 end_block
begin_dummy_block 5 spans 0 1 2 3 4 end_dummy_block
;; Siege equipment begin_block 6 unit_type siege 1.0 default_melee_state fire_at_will unit_density close block_formation line block_relative_pos 5 0.0 -12.0 inter_unit_spacing 6.0 priority 0.2 end_block
;; Generals unit begin_block 7 min_units 1 unit_type general_unit 1.0 unit_density close block_formation line block_relative_pos 6 0.0 -12.0 inter_unit_spacing 12.0 priority 1.0 end_block
;; Cavalry, left wing begin_block 8 unit_type heavy cavalry 1.0 unit_type light cavalry 0.9 unit_density close block_formation line block_relative_pos 5 -24.0 -6.0 inter_unit_spacing 2.0 priority 0.9 end_block
;; Cavalry, right wing begin_block 9 unit_type heavy cavalry 1.0 unit_type light cavalry 0.9 unit_density close block_formation line block_relative_pos 5 24.0 -6.0 inter_unit_spacing 2.0 priority 0.9 end_block
;; Dummy block begin_block 10 unit_type any 0.1 unit_density close block_formation square block_relative_pos 7 0.0 -12.0 inter_unit_spacing 2.0 priority 0.1 end_block
end_formation На этом и закончим разговор о формациях для ИИ. Дополнительная информация по формациям. any infantry light infantry heavy infantry pilum_infantry light_pilum_infantry heavy_pilum_infantry spearmen spearmen infantry non_phalanx_spear phalanx missile infantry skirmish infantry ranged_missile_infantry cavalry spearmen cavalry heavy cavalry light cavalry missile cavalry skirmish cavalry elephants heavy_chariots handler siege general_unit chanting_screeching swimming carrying_siege_engine ram carrying_siege_engine ladder carrying_siege_engine towerФормации для игрока В первую очередь, нельзя добавлять в формации для игрока неограниченное количество формаций, всего существует восемь 8 формаций (столько же и кнопок формаций) и одна дополнительная формация. -Названия формации simple_line ordered_single_line simple_double_line ordered_double_line ordered_triple_line_1 ordered_triple_line_2 ordered_triple_line_3 column - Выбор юнита -Цель и приоритет -default_melee_state -Несколько примечаний по использованию формаций для игрока. general_order Group_Formation_Single_Line general_order Group_Formation_Sorted_Line general_order Group_Formation_Sorted_Double_Line general_order Group_Formation_Sorted_Double_Line general_order Group_Formation_Missile_First_3_lines general_order Group_Formation_Infantry_First_3_Lines general_order Group_Formation_Cavalry_First_3_Lines general_order Group_Formation_Column |
|
© Перевод тутора - hick09. ©Запрещается любая перепечатка и копирование без согласия Internetwars.ru . |