Вы здесь:

Total War моды

Как добавить постройки \ слоты для построек городам (Empire: Total War)

 

Автор: demis14

Эта инструкция покажет вам как добавлять слоты для построек городу, благодаря чему город становится больше и появляется вомзожность строить дополнительные здания (например, адмиралтейство). Это потребует достаточно много времени, так что будьте терпеливы и повторяйте все за нами шаг за шагом.
ЗАМЕТЬТЕ: Эта инструкция основана на такое изменение города, при котором тот имел бы 5 зданий. Чтобы установить любое другое значение, сделайте то же самое, кроме нашего изменения координат, так как они будут различаться в зависимости от числа.

Во-первых вам нужна последняя версия программы Esf Editor.
В этой инструкции я добавлю адмиралтейство в Афины (как я пробовал для потребностей своего мода Greece ETW Playable & Retexture mod.


Итак, начнем:
1) Во-первых сделайте резервную копию ("бэкап") файлов, которые мы будем редактировать:
startpos.esf (У автора - C:\Program Files\Steam\steamapps\common\empire total war\data\campaigns\main)
regions.esf (У автора - C:\Program Files\Steam\steamapps\common\empire total war\data\campaign_maps\global_map)
2) Теперь откройте startpos.esf через Esf Editor. Для начала, нам нужно "клонировать" существующий REGION_SLOT_ARRAY любого settlement building (здания поселения; т.е. расположенного внутри города).
Это мы найдем тут:
CAMPAIGN_STARTPOS\CAMPAIGN_ENV\CAMPAIGN_MODEL\WORLD\REGION_MANAGER\REGIONS_ARRAY\REGIONS_ARRAY\REGION(Greece)\REGION_SLOT_MANAGER\REGION_SLOT_ARRAY. Щелкните правой кнопкой мыши по уже существующему слоту постройки и нажмите "CLONE".
3) После "клонирования" должен появится новый REGION_SLOT_ARRAY, подсвеченный зеленым. Теперь щелкните по зеленому REGION_SLOT'у и измените его первое значение справа (ID здания, впишите [необходимый] Uint) и "переименуйте" его на случайное значение, но только девятизначное! (шанс переписать уже существующий ID чрезвычайно мал)
4) Теперь нам нужно изменить второе значение на новое, отражающее то строение, которое мы хотели бы добавить. В нашем случае это "settlement:greece:athens:settlement_navy-admin". Измените соответствующий текст.
Значения ID разных зданий можно найти в main.pack/db/building_chains_to_slots_tables\building_chains_to_slots под данными, для открытия которых нужен PackFileManager.
Пятое и шестое значение - координаты для стратегической карты, соответственно, мы изменим их позже, что будет описано ниже. Также мы останем нетронутым неизвестное восьмое значение, одинаковое со значением REGION_SLOT'а данного региона. (Фактически это значение должен соответствовать первому, когда вы редактировали выделенное поле SETTLEMENT, т.е. в моем случае, это был номер 3).
Мы не собираемся редактировать остальные поля.
5) Теперь выделите SIEGABLE_GARISSON_RESIDENCE и измените здесь первое значение, в соответсвии с Building ID того REGION_SLOT'а, который вы только редактировали.
Затем, под SIEGABLE_GARISSON_RESIDENCE, щелкните на GARISSON_RESIDENCE и измените правое значение, на ID фракции, которая владеет Городом. (в нашем примере - Греция) Вы можете просто копировать значение существующего GARISSON_RESIDENCEs других REGION_SLOT_ARRAYs региона.
6) Этот шаг определит, будет ли город иметь пустой слот, или уже построенное до начала игры здание.
a) Для пустого слота:

Просто щелкните правой конпкой мыши поле (если есть) BUILDING, что под BUILDING_MANAGER, а затем нажмите DELETE (оно должно покраснеть).

После этого, щелкните на BUILDING_MANAGER и измените значение 1-го логического типа ("булеана") на “FALSE”.
б) Для построенного здания
Щелкните BUILDING_MANAGER и убедитесь, что значение первого логического типа - “TRUE”.
Здесь также должно быть поле BUILDING, показанное под BUILDING_MANAGER. (Если такого нет, просто копируйте аналогичное правой конпкой мыши из другого слота). Когда поле BUILDING выделено, измените третье значение на нужного owner faction (в этом случае - меняем "portugal" на "greece") и четвертое значение на owner faction government type (форма правления владельца; в этом случае - от “gov_constitutional_monarchy” к “gov_absolute_monarchy” ).
Второе значение отображает building level (уровень здания), так что сюда вводите соответствующий текст (в нашем случае - "адмиралтейство").
ID зданий других уровней найдете тут: main.pack/db/building_levels_tables/building_levels в папке данных, для открытия которой потребуется PackFileManager - http://www.twcenter.net/forums/downloads.p...ile&id=2409
7) Сейчас, нам придется добавить слот здания для использования ИИ тоже, чтобы игра не "вылетела", когда будет строиться обновление здания ("апгрейд"). Для этого мы будем использовать метод HusserlTW.
a) Перейдите в startpos.esf\CAMPAIGN_STARTPOS\CAMPAIGN_ENV\CAMPAIGN_MODEL\CAI_INTERFACE\CAI_WORLD\CAI_WORLD_BUILDING_SLOTS и щелкните правой кнопкой мыши по любому из CAI_WORLD_BUILDING_SLOTS, а затем выберите CLONE. Должно появиться новое поле CAI_WORLD_BUILDING_SLOTS, выделенное зеленым. Щелкните по нему.
Измените первое справа значение, то есть ID слота, на случайное четырехзначное число, но этот номер не должен конфликтовать с любым другим ID, так что, чтобы изменить обезопасить игру, измените его на, скажем, "9999". (это была одна из моих ошибок:whistling)


c) Затем щелкните на поле CAI_BUILDING_SLOT, что под CAI_WORLD_BUILDING_SLOTS которые мы клонировали. Отсюда измените первое справа значение, чтобы точно соответствовать случайному REGION_SLOT ID, который мы создали выше, в шаге 3. Второе значение должно составить 0, вероятно, указывая, что здание находится внутри города.
d) Последний шаг - изменить третье справа значение, на значение нашего Settlement AI ID (например, в нашем случае ID ИИ Athens' составляет 1681). Чтобы найти этот ID для других поселений, используйте список, в который я внес все значения AI Settlement IDs,
чтобы спасти вас от необходимости самим это искать...
WARNING - это жуть. В столбик автор писать не умеет



RegionSettlement AI IDmoldaviaiasi2142persiaisfahan1504bulgariasofia2018algonquin_territoryniagara3400naplesnaples1780ko
miust_sysolsk2614malwaujjain2902don_voiskocherkassk2054french_guyanacayenne3051great_plainsknife_riv
e
r_village3497ukrainekiev2331croatiazagreb1974marylandannapolis3382leeward_islandsantigua3173carnatic
a
arcot2730kareliapetrovskaya_sloboda2700ingriast_petersburg2657wurttembergstuttgart2103curacaopunda31
2
2savoyturin1928galicialwow2295new_andalusiacaracas3078flandersbrussels2243lithuaniavilnius2463iroquo
i
s_territorycayuga3461norwaychristiania2620cherokee_territorytellico3287greeceathens1681belarusminsk2
3
12portugallisbon1752upper_louisianafort_chartres3327rhinelandkoln2227sindhneroon_kot2937azerbaijanar
d
abil1732tripolitripoli1480arkhangelskarkhangelsk2671trinidad_tobagosan_jose_de_oruna3588cubala_haban
a
3209windward_islandsmartinique3132moroccotangier1462swedenstockholm2568courlandjelgava2600bavariamun
i
ch2091guatemalaantigua_guatemala3106michigan_territorydetroit3388austriavienna1954prussiakonigsberg2
4
48irelanddublin2345moreapatras1666bosniasarajevo1990rumeliaconstantinople1847finlandaabo2683englandl
o
ndon2184mysoremysore2773mainefalmouth3473virginiawilliamsburg3352gibraltargibraltar2724icelandreykja
v
ik2714labradoragvituk3568new_mexicosanta_fe3263silesiabreslau2285jamaicaport_royal3181serbiabelgrade
2
005new_grenadabogota3028bohemiaprague2258bengalcalcutta2917anatoliaangora1702kashmirsrinagar3018newf
o
undlandplaissance3540spainmadrid1628bijapursatara2805hungarypressburg2113bashkiraufa2514hyderabadhyd
e
rabad2823ceylontrincomalee2756tunistunis1541afghanistankabul1576mesopotamiabaghdad1558netherlandsams
t
erdam2373franceparis1889chechenya-dagestantarki1877syriadamascus1608the_papal_statesrome1825berarnagpur2871acadiafort_nashwaak3483new_
englandboston3429hispaniolasanto_domingo3189hannoverhannover2359saxonydresden2273milanmilano2066new_
s
painmexico3143venicevenice2076estonia_and_livoniariga2641genoagenoa1940armeniayerevan1802denmarkcope
n
hagen2544hindustanagra2971gujaratahmedabad2888carolinascharleston3311georgia_usasavannah3303kaintuck
_
territorytanase3340astrakhanastrakhan2172ahmadnagarahmadnagar2859huron_territoryfort_sault_ste-marie3507dutch_guyanaparamaribo3061tatariyakazan2152corsicabastia1814maltavalletta1660malabargoa2793
bahamasnassau3243new_yorkalbany3412lower_louisiananew_orleans3271georgiatbilisi1865palestinejerusale
m
1493rajpootanaudaipur2951polandwarsaw2428west_pommeraniaberlin2390alsacestrasbourg2218orissacuttack2
8
39punjablahore2998algiersalgiers1591baluchistanzahedan1528sardiniacaligari1770egyptcairo1439transylv
a
niakolozsvar2130ontariomontreal3447pennsylvaniaphiladelphia3368northwest_territoriesyork_factory3580
p
anamapanama3094ruperts_landmoose_factory3554new_francequebec3522crimeabakhchisaray2036floridast_augu
s
tine3227muscovymoscow2484west_prussiagdansk2410scotlandedinburgh2529tejasvilla_de_bexar3251



Наконец, мы закончили редактирование startpos.esf, так что сохраним файл и откроем Esf Editor'ом файл region.esf
8) Перейдите к global_map\regions.esf\root\region_data\regions\ и найдите регион, в который вы будете добавлять здание\свободный слот (Греция в моем случае). В regions перейдите к settlement_and_slots/slot_descriptions и кликните правой кнопкой мыши по существующему полю, выбрав CLONE.
9) Щелкните по выделенному зеленым клонированному slot_descriptions, и измените первое и второе значение справа, чтобы они соответственно отображали ваше новое здание, как ранее в startpos.esf (например, в моем случае я изменил первое значение на "settlement:greece:athens:settlement_navy-admin" и второе на "settlement_navy-admin").
Третье и четвертое значения, скорее всего, координаты карты, и мы их соответственно изменим позже, это описано ниже.
После этого СОХРАНИТЕ изменения.

Чтобы установить слоты здания правильно, так чтобы здания отлично вписывались в увеличенный с новой постройкой город (как на тактической, так и на стратегической карте), используйте эту отличную электронную таблицу, сделанную erasmus777, и следуйте инструкциям, описанным в таблице и дополнительным инструкциям ниже.
Таблица: http://www.twcenter.net/forums/attachment....mp;d=1242957421
а) Редактируя startpos.esf, перейдите к REGION_SLOT_ARRAY и щелкните по вашему первому слоту. Пятое и шестое значение - координаты X и Y (для стратегической карты). Проверьте тип строения и введите соответствующее ему значение. Сделайте так со всеми городскими слотами.
Сохранитесь. Теперь ваши строения появятся на карте в правильном положении!
б) Редактируя regions.esf, перейдите к slot_descriptions, что под settlement_and_slots, и щелкните по вашему первому слоту. Третье и четвертое ззначения - координаты X и Y, разделенные знаком " ; ". Проверьте тип строения и введите соответствующее ему значение. Сделайте так со всеми городскими слотами.
Сохранитесь. Ваши здания будут теперь корректно отображаться на тактической карте!
Более детальная информация:

1) Откройте startpos.esf через Esf editor.

2) Перейдите к CAMPAIGN_STARTPOS\CAMPAIGN_ENV\CAMPAIGN_MODEL\WORLD\REGION_MANAGER\REGIONS_ARRAY\REGIONS_ARRAY\[Your Region] и щелкните SETTLEMENT\SIEGEABLE_GARRISON_RESIDENCE

3) Вы увидете Int-параметр в десятом и оддинадцатом значениях. Это координаты X (десятое) и Y (оддинадцатое). Запишите их. Наши расчеты будут соответствовать этим номерам.

4) Конверитуем их в координаты для карты, их понять проще, разделяя каждый на 1.000.000 (это американский вариант: другими словами, установите 6 десятичных значений, начиная справа и заканчивая слева)

Например, 17328740/1,000,000 = 17.328740

Заметьте: вы можете достигнуть тех же результатов, оставив координаты гарнизона без изменений, вместо этого умножая "вычисленные" номера, которые я привожу к 1.000.000. Если вся эта математика мучает вас (oh, yeah), игнорируйте дальнейшие инструкции, а лучше - загрузите таблицу.

5) Мы собираемся вычислить координаты гарнизонов для каждого здания. Это поможет нам узнать, куда поставить здания. Для каждого здания просто введите соответствующее значение, относящееся к кординатам гарнизона (Garrison). Вот вычисления:

Building X; Y

Army -0.798581; +0.792384

Government +0.003188; -0.009376

Culture +0.815036; -0.821216

Navy -0.808820; -0.821376

Ordinance +0.819688; +0.807104

Road +0.040256; -1.39504

Fortification +0.040256; +1.390304


6) После того, как вы получили координаты для всех зданий, конвертируйте их обратно в игру, умножив на 1.000.000.

Пример:

_________________________________
Вот координаты гарнизона Дании: 88411680; 413792544:

A) Я делю каждую координату на: 1,000,000

= 88.411680; 413.792544


Я добавляю вычисления для Army-admin слотов:

88.411680 + (-0.798581) = 87.813099

413.792544 + 0.792384 = 414.584928


C) Затем я конверитую координаты обратна в игру, умножая на 1,000,000 (или просто перемещая запятую на позиций направо):

87.813099 x 1,000,000 = 87813099

414.584928 x 1,000,000 = 414484928
________________________________

 

7) Перейдите к REGION_SLOT_ARRAY и щелкните по первому слоту. Пятое и шестое значения, соответственно, координаты Х и Y. Проверьте тип строения и соответствующее ему значение. Сделайте так со всеми слотами в городе.

Сохранитесь. Теперь ваши здания появятся на правильном месте на карте!


Теперь нам надо отредактировать координаты слотов зданий в regions.esf на аналогичный манер (эти координаты, скорее всего, отвечают за тактическую карту).


1) Откройте regions.esf через Esf Editor.

2) Перейдите в regions.esf\root\region_data\regions\regions[your region] и щелкните settlement_and_slots, где находятся координаты X и Y, разделенные знаком " ; ". Их мы будем вычислять вместе с другими координатами здания (как мы деллаи чуть ранее, в startpos.esf).

3) Вот вычисления для regions.esf:

Building X; Y

Army -0.7616; +0.7557

Government +0.003; -0.0089

Culture +0.7773; -0.7831

Navy -0.7714; -0.7833

Ordnance +0.7817; +0.7698

Road +0.0384; -1.3304

Fortification +0.0384; +1.3259

4) Переходим в slot_descriptions, под settlement_and_slots. Щелкните по вашему первому слоту. Третье и четвертое значение - координаты, разделенные " ; ". Проверьте тип здания и соответственное значение. Сделайте так со всеми слотами зданий города.

Сохранитесь. Ваши здания теперь будут корректно отображаться на тактической карте!

ТЕПЕРЬ ВЫ УСПЕШНО ЗАВЕРШИЛИ ОБУЧЕНИЕ


Я надеюсь оно было полезным и несложным, хотя и долгим. Я хотел бы поблагодарить erasmus777 и husserlTW за их помощь в составлении этой инструкции и их коммандной работе, что мне действительно нравится в сообществе TWC!
Аттачмент: ТУТ

Форум ТУТ