Полное руководство по Export_Descr_Unit.Txt (далее EDU) (Medieval 2: Total War)

Редактирование файла export_descr_units.txt

(автор MythicCommodore)

Предполагается, что у вас уже есть распакованные файлы.
В нашем примере будем работать со Swiss Pikemen. Вот код,определяющий параметры этого юнита:


type Swiss Pikemen
dictionary Swiss_Pikemen ; Swiss Pikemen
category infantry
class spearmen
voice_type Heavy
accent German
banner faction main_spear
banner holy crusade
soldier Swiss_Pikemen,60, 0, 1
attributes sea_faring,hide_forest, very_hardy, can_withdraw, pike
formation 1.2, 1.2, 2.4,2.4, 8, square, phalanx
stat_health 1, 0
stat_pri 14, 4, no, 0, 0,melee, melee_blade, piercing, spear, 25, 1
;stat_pri_ex 0, 0, 0
stat_pri_attr spear, long_pike,spear_bonus_8
stat_sec 13, 3, no, 0, 0,melee, melee_blade, piercing, sword, 25, 1
;stat_sec_ex 0, 0, 0
stat_sec_attr no
stat_pri_armour 0, 5, 0, flesh
;stat_armour_ex 0, 0, 0, 0, 5, 0,0, flesh
stat_sec_armour 0, 0, flesh
stat_heat 2
stat_ground 1, -2, 3, 2
stat_mental 11, impetuous,highly_trained
stat_charge_dist 40
stat_fire_delay 0
stat_food 60, 300
stat_cost 1, 470, 185, 115,90, 470, 4, 110
armour_ug_levels 0
armour_ug_models Swiss_Pikemen
ownership slave
;unit_info 14, 0, 5


Ниже будет рассмотрена каждая строка кода.

type Swiss Pikemen


type– эта строка отражает имя юнита для использования его движком. Есть два подобных имени, это первое, второе определяется строкой dictionary. Каждое из них используется для своих целей, но они идентичны, за исключением того, что встроке type применяются пробелы, в dictionary – нижние подчеркивания. Какие файлы используют type имя?

descr_rebel_factions.txt
descr_sm_factions.txt
descr_sounds_units_x.txt
campaign_script.txt
descr_mercenaries.txt
descr_strat.txt
export_descr_buildings.txt


Основное правило: если перед вами файл, содержащий название юнита, но в нем нет нижних подчеркиваний, юзайте type имя.

dictionary Swiss_Pikemen ; Swiss Pikemen

dictionary –второе имя юнита, используется в других приложениях, например, в инфокартинках. Вторая часть отделяется точкой с запятой. Точка с запятой говорят движку игнорировать остальную часть строки. 
Это удобно для добавления комментариев. 

category infantry

category – эта строка говорит игре к какому типу войск юнит принадлежит. Альтернатива:
infantry
cavalry
siege
ship




Обратите внимание, что "повозки" вроде Креста или знамен относятся к siege классу.

class spearmen

class – какому в точности типу внутри категории соответствует юнит. Альтернатива:
light
(используется для infantry,cavalry, и ships)
heavy
(используется для infantry,cavalry, и ships)
missile
(используется дляinfantry, cavalry, и siege)
spearmen
(для infantry)

Если хотите создать повозку вроде Великого Креста, выберите light в качестве class – исключение для других членов осадной категории, которым может быть только присвоен missile class.

voice_type Heavy

voice_type – определяет тип голоса юнита. Вариации:

Light
Heavy 
General 

accent German

accent – эта строка определяет, с каким акцентом говорит юнит. Если этой строки не будет, юнит будет говорить с акцентом фракции, к которой принадлежит. Поскольку Swiss Pikemen принадлежит Англии, у него Немецкий акцент. Акценты содержаться в descr_sounds_accents.txt файле и включают:

English
Scottish
French
German
Mediterranean
East_European
Arabic
Mongolian

banner faction main_spear


banner faction –какой тип знамени использует юнит в качестве основного – действительно большого. Основное знамя определяет "mini banners"появляющиеся при апгрейдах оружия, доспехов, роста опыта. Доступные знамена содержатся descr_banners_new.xml файле и включают:

main_spear

main_infantry

main_cavalry

main_missile

В основном, знамя соответствует типу юнита. Конечно, можно экспериментировать с этой возможностью. Корабли не присутствуют на поле боя,поэтому у них нет этой строки.

banner holy crusade


banner holy –юнит может обладать набором дополнительных знамен, отражающих разные состояния.Например, у короля королевское знамя ("royal banner"). Эта опциональная строка определяет, будет ли у юнита другое знамя, отображаемое при священной войне. Определяется файлом descr_banners_new.xml. Если эта строка присутствует, у юнита будет указанное знамя в качестве дополнительного для священной войны. Вариации:

crusade

jihad

Если этой строки не будет, у юнита не будет знамени для священной войны.

soldier Swiss_Pikemen, 60, 0, 1


soldier – первая линия со многими значениями. Они разделены запятыми. Первоезначение (Swiss_Pikemen, 60, 0, 1) этомодель, которая используется для солдата. Это соотносится со строкой в battle_models.models db файле,что определяет, как юнит выглядит. Второе значение (Swiss_Pikemen, 60, 0, 1) количество людей в юните. Определяется настройками в главном меню игры. Наименее возможное - 4, наибольшее - 60. В дополнительных кампаниях Kingdoms, однако, размер юнита может достигать 100! Третье значение (Swiss_Pikemen, 60, 0, 1) используется только юнитами с "extras"такими, как осадные орудия. Определяет сколько их будет. Вот пример из строки Требюше:

soldier NE_Trebuchet_Crew, 16, 2, 1


Цифра 2 означает, что будет 2 Требюше в юните.

Четвертое и последнее значение (Swiss_Pikemen, 60, 0, 1) отражает массу солдат. 1 – это норма. Это не касается кавалерии, чья масса определяется параметром «mount». Чем больше значение, тем больше солдаты весят. С увеличением массы растет эффект от чарджа (натиска).

attributes sea_faring, hide_forest, very_hardy, can_withdraw, pike


attributes – отображает дополнительные возможности юнита. Перечень:
sea_faring – юнит на корабле может пересекать водные преграды. Не касается возможности юнита получать преимущество от мостов. Также можно придать эту возможность кораблю.
hide_forest\hide_improved_forest– возможность прятаться в лесу. Эффект имеет место и на страткарте тоже.
hide_anywhere –может прятаться повсюду. Не распространяется на страткарту.
frighten_foot– пугает пеших.
frighten_mounted– пугает конных.
can_run_amok – может впадать в безумие, как слоны. Применимо только для конных юнитов.
general_unit –может быть использован как телохранитель генерала.
general_unit_upgrade – применяется в поздних телохранителях генерала. Не отображается, так что бесполезно.
cantabrian_circle –возможность формировать Кантабрианский круг, спецспособность. Помните, что уюнита может быть только одна спец способность
no_custom –юнита нельзя выбирать в кастом битве.
command – поднимает мораль, находящимся рядом войскам. Сомнительно,что работает должным образом.
mercenary_unit –Два эффекта – юнит будет использовать только наемническую ("merc") версию своей модели. То есть если я хочу, чтоб Швейцарского пикинера можно было нанимать для Франции, он не будет носить французскую форму, пока не будет убран этот атрибут.Второй эффект – юнит может быть нанят как наемник. Прописано в файле descr_mercenaries.txt.
is_peasant –Для расчета порядка в поселении используется только половина состава юнита. Если в юните Swiss Pikemen 150 людей, он будет считаться равным 75 при расчете порядка в городе.
druid – возможность заклинать. Поднимает мораль ваших войск,понижает вражеских.
power_charge –усиливает чардж юнита.
free_upkeep_unit – поддержка юнита может быть нулевой в городе, как у милиции.
can_withdraw –юнит может отступить с поля боя. 
hardy\very_hardy – юнит более вынослив, чем обычный.
can_formed_charge– может формировать клин.
knight – юнит является рыцарем. Получает бонусы от построек типа Турнирного Поля.
gunpowder_unit –применяет огнестрельное оружие.
start_not_skirmishing – только для стрелков. Вступает в бой с выключенным засадным режимом.
stakes – может ставить колья перед боем. 
fire_by_rank – стреляет и поворачивается как Мушкетер.
cannot_skirmish –Отключение засадного режима для стрелков.

unique_unit - прописав этот атрибут, джанный юнит будет наниматься только по одному на каждое построенное для его найма здание. Плюс он не будет выдаваться как награда за миссии.

Можно прописать любое название атрибута и использовать его в скриптах для таких команд как destroy_units и create_unit, чтоб не прописывать каждый юнит в отдельности, группируем их по заданному атрибуту.

 

formation 1.2, 1.2, 2.4, 2.4, 8, square, phalanx


formation - Первое значение (1.2,1.2, 2.4, 2.4, 8, square, phalanx) это дистанцияв метрах с левого края до правового в плотном строю, другая (1.2, 1.2, 2.4,2.4, 8, square, phalanx) – от первой до последней шеренги.

Следующие два (1.2, 1.2, 2.4, 2.4, 8, square, phalanx) то же что и выше, но всвободном строю.

Пятое число (1.2, 1.2, 2.4, 2.4, 8, square, phalanx) количество шеренг по умолчанию.

Следующие два значения (1.2, 1.2, 2.4, 2.4, 8, square, phalanx) это формации. Первое- дефолтноезнчение. Второе – другая возможная формация. Если в этой строке два значения, то одна формация должна быть квадратом или ордой (кругом) и вторая должна быть shield_wall (стена щитов), phalanx (Spear Wall), schiltrom, или wedge (клин).

stat_health 1, 0


stat_health – Первое значение(1, 0) показывает количество хитпойнтов. Восновном, Второе значение (1, 0) не используется.

stat_pri 14, 4, no, 0, 0, melee, melee_blade, piercing, spear, 25, 1


stat_pri – основноеоружие. Если оно стрелковое, то оно и основное. Исключение составляет артиллерийские юниты, где основным является оружие экипажа. Первое значение (14, 4, no, 0, 0, melee, melee_blade, piercing,spear, 25, 1) наносимый оружием урон, ограничение - 63. Следующее число (14, 4, no, 0, 0,melee, melee_blade, piercing, spear, 25, 1) это чардж бонус. Следующее значение (14, 4, no, 0, 0, melee, melee_blade,piercing, spear, 25, 1) тип боеприпасов используемый юнитом. Приведены в descr_projectile.txt. Альтернатива:

no
arrow
arrow_fiery
composite_arrow
composite_arrow_fiery
cav_composite_arrow
cav_composite_arrow_fiery
bodkin_arrow
bodkin_arrow_fiery
cav_bodkin_arrow
cav_bodkin_arrow_fiery
catapult
fiery_catapult
trebuchet
fiery_trebuchet
tarred_rock
stone
bolt
javelin
ballista
flaming_ballista
tower_ballista
tower_flaming_ballista
scorpion
flaming_scorpion
repeating_ballista
bombard_shot
flaming_bombard_shot
ribault_shot
monster_ribault_shot
grand_bombard_shot
flaming_grand_bombard_shot
monster_bombard_shot
cannon_shot
exploding_cannon_shot
culverin_shot
exploding_culverin_shot
mortar_shot
basilisk_shot
exploding_basilisk_shot
serpentine_shot
elephant_cannon_shot
cow_carcass
rocket
elephant_rocket
test_cannon_ball
naphtha_bomb
hand_gun_bullet
arquebus_bullet
musket_bullet
pistol_bullet
camel_gun_bullet
crossbow_bolt
steel_crossbow_bolt
norman_catapult
fiery_norman_catapult


Четвертое значение (14, 4, no, 0, 0, melee, melee_blade, piercing,spear, 25, 1) дальностьстрельбы. Следующее (14, 4, no,0, 0, melee, melee_blade, piercing, spear, 25, 1) количество боеприпасов у юнита.Следующее (14, 4, no,0, 0, melee, melee_blade, piercing, spear, 25, 1) тип оружия – melee (рукопашное), thrown (метательное), missile (стрелковое), или siege_missile (осадных машин). Седьмое значение (14, 4, no, 0, 0, melee, melee_blade,piercing, spear, 25, 1) тип «технологии». Похоже, что влияет на апгрейд. Возможнее варианты:

melee_simple
melee_blade
missile_mechanical
missile_gunpowder
artillery_mechanical
artillery_gunpowder


Затем тип повреждений (14, 4, no, 0, 0, melee, melee_blade,piercing, spear, 25, 1). Возможные типы рубящий, дробящий и колющий. Следующий параметр – тип звука (14, 4, no,0, 0, melee, melee_blade, piercing, spear, 25, 1). Виды звуков: none (нет), spear (копье), sword (меч), axe (топор), mace (булава), и knife (нож). Если у юнита огнестрельное оружие, установите musket_shot_set тут. Следующее значение (14, 4, no,0, 0, melee, melee_blade, piercing, spear, 25, 1) минимальная задержка между атаками в десятых секунды. Чем меньше значение, тем чаще юнит бьет. Последнее значение (14, 4, no, 0, 0, melee,melee_blade, piercing, spear, 25, 1) используется, когда у юнита несколько видов оружия. В основном, это задает приоритет.

;stat_pri_ex 0, 0, 0

Строки с точкой с запятой – игнорируйте их. Они игнорируютсяигрой

stat_pri_attr spear, long_pike, spear_bonus_8


stat_pri_attr – Специальные атрибуты основного оружия. Если их нет, то стоит "no".

Возможные варианты:

  • ap – пробивающее доспех. Учитывает только половину доспехапротивника.thrown – оружие метательное
  • area – урон по площади.
  • launching – атака подбрасывает людей в воздух.
  • bp – только для стрелкового оружия. Может поражать нескольких? одного за другим.
  • spear – бонус против кавалерии и укрепляющие бонусы (лучше в защите), но штраф против пехоты.
  • light_spear –укрепляющий бонус.
  • long_pike –для пикинеров.
  • spear_bonus_x – атакующий бонус против кавалерии. x= 2, 4, 6, 8, 10, 12
  • prec – пережиток RTW:возможность метать оружие перед атакой.

stat_sec 13, 3, no, 0, 0, melee, melee_blade, piercing, sword, 25, 1

;stat_sec_ex 0, 0, 0

stat_sec_attr no


stat_sec – второе оружие. Используйте как секцию stat_pri. Если у юнита нет второго оружия сделайте следующее:

stat_sec 0, 0, no, 0, 0, no, melee_simple, blunt, none, 25, 1

;stat_sec_ex 0, 0, 0

stat_sec_attr no


Движок будет считать, что у юнита нет второго оружия.

stat_pri_armour 0, 5, 0, flesh

stat_pri_armour – доспехи юнита. Первое значение (0, 5, 0, flesh) рейтинг доспехов. Второе (0, 5, 0, flesh) навык защиты и третий (0, 5, 0, flesh) это щит. Последнее значение (0, 5, 0, flesh) это звук, какой издает оружие при контакте с доспехом. Варианты: 

flesh

metal

leather

stat_sec_armour 0, 0, flesh

stat_sec_armour – защита транспортных средств (артиллерии или повозок). Первое значение (0, 0, flesh) рейтинг защиты, второе (0, 0, flesh) навык защиты и третье (0, 0, flesh) тип звука. Если нет прикрепленных повозок, используйте (flesh).

stat_heat 2

stat_heat – дополнительнаяусталость юнита в жарком климате. 

stat_ground 1, -2, 3, 2

stat_ground – бонусы атакиюнита (или штрафы) в определенном климате. Первое значение (1,-2, 3, 2) для зарослей.Второе (1, -2, 3, 2) песок. Третье (1, -2, 3, 2) лес и четвертое (1, -2, 3, 2) снег. 

stat_mental 11, impetuous, highly_trained

stat_mental– психика юнита. Первое значение (11, impetuous, highly_trained) базовый уровень морали. Второе значение (11, impetuous, highly_trained) дисциплина. Как юнит отзывается на воздействияна мораль (чардж с тыла, смерть генерала и т.д.). Возможные опции: 

low

normal

disciplined

impetuous

Impetuous юниты могут атаковать без приказа. Последнее значение (11, impetuous, highly_trained) это тренировка. Определяет аккуратность формации. Возможности:

untrained

trained

highly_trained

Есть опциональная четвертая опция - lock_morale, при этом юнит никогда не отступает

stat_charge_dist 40

stat_charge_dist – Дистанция,с которой юнит начинает чардж. 

stat_fire_delay 0

stat_fire_delay – для стрелковых юнитов интервал между выстрелами. 

stat_food 60, 300

stat_food - Устарело

stat_cost 1, 470, 185, 115, 90, 470, 4, 110

stat_cost – стоимость юнита. Первое значение (1,470, 185, 115, 90, 470, 4, 110) сколько ходов рекрутируется юнит. Второе (1,470, 185, 115, 90, 470, 4, 110) сколько юнит стоит кампании. Не касается наемников. Третье (1, 470, 185, 115, 90, 470, 4, 110) стоимость поддержки за ход. Четвертое (1, 470, 185, 115, 90, 470, 4, 110) сколько стоит апгрейд оружия юнита. Пятое (1, 470, 185, 115, 90, 470, 4, 110) сколько стоит апгрейд доспехов юнита. Шестое (1, 470, 185, 115, 90, 470, 4, 110) стоимость в кастом битве. Седьмое (1, 470, 185, 115, 90, 470, 4, 110) показывает сколько юнитов в кастоме можно купить до того, как цена на него начнет расти. Последнее значение (1, 470, 185, 115, 90, 470, 4, 110) -сколько goes up by(?).



armour_ug_levels 0

armour_ug_levels – возможные апгрейды доспехов. Swiss Pikemen не имеет таковых, так что рассмотрим тут - Viking Raiders.

armour_ug_levels0, 1, 2, 3

Уровень доспехов по дефолту. Остальные могут быть улучшены в соответствии с уровнем кузницы. Так Viking Raiders могут апгрейдить доспехи при кузнице уровней 1-3.



armour_ug_models Swiss_Pikemen

armour_ug_models – довольно просто. Каждое значение ссылается на уровень апгрейда доспехов и модель в battle_models.modelsdb. 

ownership slave

ownership – здесь устанавливается принадлежность к фракции. Каждая фракция, приведенная здесь может рекрутировать этого юнита.



Другие строки


Есть несколько строк, которых у Swiss Pikemen нет,поскольку он в них не нуждается. Краткое описание:

officer Catalans


officer –пережиток RTW. Строка офицера идет после строки солдата. Их может быть три. Каждая добавляет офицера. В общем, .офицер это дополнительный солдат. Как он работает прописано в battle_models.modelsdb для модели, например, Catalans.Если добавить строку

officer Catalans


после строки солдата Swiss Pikemen, выглядит так:



type Swiss Pikemen

dictionary Swiss_Pikemen ; Swiss Pikemen

category infantry

class spearmen

voice_type Heavy

accent German

banner faction main_spear

banner holy crusade

soldier Swiss_Pikemen,60, 0, 1

officer Catalans

attributes sea_faring,hide_forest, very_hardy, can_withdraw, pike

formation 1.2, 1.2, 2.4,2.4, 8, square, phalanx

stat_health 1, 0

stat_pri 14, 4, no, 0, 0,melee, melee_blade, piercing, spear, 25, 1

;stat_pri_ex 0, 0, 0

stat_pri_attr spear, long_pike,spear_bonus_8

stat_sec 13, 3, no, 0, 0,melee, melee_blade, piercing, sword, 25, 1

;stat_sec_ex 0, 0, 0

stat_sec_attr no

stat_pri_armour 0, 5, 0, flesh

;stat_armour_ex 0, 0, 0, 0, 5, 0,0, flesh

stat_sec_armour 0, 0, flesh

stat_heat 2

stat_ground 1, -2, 3, 2

stat_mental 11, impetuous,highly_trained

stat_charge_dist 40

stat_fire_delay 0

stat_food 60, 300

stat_cost 1, 470, 185, 115,90, 470, 4, 110

armour_ug_levels 0

armour_ug_models Swiss_Pikemen

ownership slave


Появится Catalan в отряде Swiss Pikemen, что-то вроде мини-генерала без последствий для морали в случае его смерти.

ship heavy warship

ship – только для кораблей. Строка простирается вправо от линии солдата и используется для классификации корабля. Список доступных кораблей находится в descr_ship.txt и это:

heavywarship
lightwarship
flagship



engine ballista

engine – какой тип осадного движка использует юнит. Перечень доступных содержится в descr_engines.txt и включает:

huge_bombard
rocket_launche
monster_ribault
culverin
serpentine
catapult
bombard
mortar
basilisk
ballista
great_bombard
trebuchet
cannon
ribault
great_cross
great_standart_milan
great_standart_venice
siege_tower
middle_tower
heliopolis
tortoise_ram
town_ladder
medium_ladder
sap_point



mount heavy horse

mount –тип верхового животного. Доступные приведены в descr_mount.txt и включают:

camel
easternarmoured horse
armouredhorse
bardedhorse
mailedhorse
pony
fast pony
heavy horse
elephant_cannon
elephant_rocket
elephant



mount_effect elephant -4, camel -4


mount_effect – бонусы в атаке против определенных животных (или штрафы). Можно задействовать список верховых животных (напр.,. mailed horse)или тип животного (camel,elephant, horse). Каждый юнит может иметь до трех таких опций.


stat_ter 12, 3, cow_carcass, 215, 3, siege_missile,artillery_mechanical, blunt, none, 25, 1

;stat_ter_ex 0, 0,0

stat_ter_attr ap, bp, launching,


stat_ter – используйте эту строку аналогично stat_pri или stat_sec, но помните, что это опционально (отключаемо). В игре единственное применение этому – дать Требюше возможность стрелять гниющими тушами.


era 0 england, scotland, france,hre, spain, portugal, milan, venice, papal_states, sicily,

era 1 england,scotland, france, hre, spain,portugal, milan,venice, papal_states, sicily,

era 2 scotland


era x – Этастрока позволяет включить юнит в списки разных фракций в кастом битве применительно к эре. Era0 - ранняя, Era 1 средняя,Era 2 - поздняя. В нашем примере юнит доступен многим фракциям в первые две эры, но только для Шотландии в позднюю эру.



recruit_priority_offset 10

recruit_priority_offset – эта толькодля Kingdoms доступная строка позволяет сообщить AI как часто рекрутировать этого юнита..

move_speed_mod 1.3

move_speed_mod- эта только для Kingdoms доступная строка позволяет установить скорость юнита. Определяется основном скелетом юнита. Число более 1 означает быстрее, менее одного - медленее.

Примечания:

ЕДУ имеет ограничения. Одно из них в том, что можно иметь неболее 500 юнитов в файле.

Недостаточно прав для комментирования