Total War: ROME REMASTERED Guide

Програма для посилення або ослаблення окремих фракцій for Total War: ROME REMASTERED

Програма для посилення або ослаблення окремих фракцій

Overview

Перед початком нової кампанії ми можемо змінити в EDU-файлі ціну утримання кожного юніта та інші параметри окремо для ШІ й для гравця, щоб збільшити/зменшити кількість найманих ШІ юнітів, а також підвищити або знизити складність гри. Можна примусити ШІ наймати більш потужні армії.

KsS RTW/M2TW Faction Booster от Chornomoh

Програму розроблено для посилення/ослаблення окремих фракцій у іграх «Rome: Total War» (Remastered) та «Medieval II: Total War» шляхом пакетного редагування параметрів у файлі export_descr_unit.txt / feral_export_descr_unit.txt.
Автор програми Kassatka, він же Chornomoh.

Передісторія і головна ідея програми

Для багатьох гравців стандартний ШІ здається занадто слабким, тому що в багатьох випадках створює занадто мало юнітів. Посилення складності гри на very hard цю проблему ніяк не вирішує. Користувач під ніком Sonar з одного російського форуму визначив, що кількість армії, яку наймає і утримує ШІ залежить виключно від співвідношення сумарного доходу за хід і ціни утримання цієї армії. Навіть якщо вкинути в казну ШІ пару мільйонів грошей, більше армії він все одно утримувати не буде. Тому якщо зменшити ціну утримання юнітів, то ШІ відразу ж почне їх наймати більше. Ціна утримання кожного юніта задається в feral_export_descr_unit.txt або в export_descr_unit.txt, можна перед стартом гри, наприклад зменшити ціну утримання юнітів для всіх фракцій ШІ, але при цьому не чіпати параметри юнітів тієї фракції, за яку збираємося грати, ну і найманців теж бажано не чіпати. Робити це в текстовому редакторі дуже марудна і неприємна робота, а якщо захочемо почати гру за іншу фракцію, то кожен раз доведеться переробляти. Я вирішив написати програму, яка автоматизує цей процес. Вказуємо початковий файл feral_export_descr_unit.txt або export_descr_unit.txt без правок як джерело, задаємо коефіцієнт, на який потрібно помножити ціну утримання кожного юніта, задаємо список фракцій, для юнітів яких потрібно застосувати цей коефіцієнт, тиснемо кнопочку і зберігаємо готовий feral_export_descr_unit.txt / export_descr_unit.txt, в якому вартість утримання юнітів для обраних фракцій змінена на зазначений коефіцієнт.

Опис програми

Заодно подумав, які ще параметри в feral_export_descr_unit.txt / export_descr_unit.txt корисно пакетним чином змінювати для посилення або ослаблення окремих фракцій. Вирішив, що буде корисно змінювати параметр атаки і чарджу в stat_pri/stat_sec, а також дальності стрільби і кількості стріл/набоїв, якщо атака стрілецька, параметри броні (фактор броні, навик захисту й щит у stat_pri_armour, а також фактор броні, навик захисту для тварин в stat_sec_armour), параметри вартості в stat_cost (кількість ходів, вартість найму, вищезгадана вартість утримання, вартість апгрейду зброї і броні). Усі ці параметри зручно задавати або у вигляді коефіцієнта, на який слід множити початкове значення, або у вигляді позитивної/негативної кількості відсотків, на які слід змінити початкове значення.
Також корисним буде змінювати параметри здоров’я (окремо людини і тварини в stat_health). В даному випадку краще ставити не коефіцієнт, на який потрібно множити, а доданок у вигляді цілого числа, яке слід додавати/віднімати до початкового значення.
Корисно також змінювати параметр моралі в stat_mental. У даному випадку було вирішено, що корисно мати можливість змінювати параметр моралі як через коефіцієнт, на який потрібно множити, так і через доданок у вигляді цілого числа, яке слід додавати/віднімати.
Ще параметр кількості ходів для найму корисно теж мати можливість змінювати як через множник, так і через доданок. Спочатку застосовуються множники, якщо вони є, а потім доданки.
У рядку ownership файлу feral_export_descr_unit.txt / export_descr_unit.txt задається або фракція, або культура. Відповідно якщо в програмі поставити галочку вибору для фракції, то будуть обрані тільки ті юніти, для яких в рядку ownership є фракція, а якщо в рядку ownership є культура, то для вибору такої фракції потрібно ставити галочку навпроти культури. Юніти повстанців і найманців вважаються поза культурами і звичайними фракціями. Також можна застосувати зміни відразу до всіх юнітів будь-яких фракцій, постанців і найманців, якщо поставити галочку вгорі навпроти «Усі культури й фракції».
Програму я написав, а потім значно її удосконалив. По-перше, зробив список окремих завдань, в кожному з яких задаються свої змінювані параметри та свій список фракцій. Можна або по черзі виконати всі завдання для кожного юніта, або для кожного параметра застосовувати той коефіцієнт/доданок, який дає найбільше посилення або ж ослаблення, або ж з крайнього лівого або правого завдання, яке перше підходить за списком фракцій для даного юніта. Кількість завдань обирається лічильником. Також зробив, що якщо вказане значення коефіцієнта/доданка приносить посилення фракції, то відображається зеленим шрифтом, якщо ослаблення — синім, якщо нічого не змінює — чорним.
Для роботи програми, їй потрібно дати доступ до початкового файлу feral_export_descr_unit.txt / export_descr_unit.txt, а також до файлу descr_sm_factions.txt, з якого вона прочитає список фракцій. Я зробив, що можна вказати відразу папку data гри/моду, з якої вона завантажить початкові файли, або ж окремо вказати місце розташування кожного з цих файлів. Також у програми є тека «Presets», в якій зберігаються вже задані наперед автором програми або користувачем комбінації файлів feral_export_descr_unit.txt / export_descr_unit.txt і descr_sm_factions.txt, будь-яку з них можна вибрати в списку, що випадає. У теці «Presets» за замовчуванням зберігаються теки для кожної з ігор «Rome: Total War Remastered», «Rome: Total War» і «Medieval II: Total War». Кожна комбінація файлів зберігається в окремій теці однієї з цих трьох тек.
Зараз там:

  • для гри «Rome: Total War Remastered» є 3 готових варіанти початкових файлів для базової гри 270 р. до н.е. + двох доповнень «Barbarian Invasion» і «Alexander»;
  • для старої оригінальної гри «Rome: Total War» є 4 готових варіанти початкових файлів для базової гри 270 р. до н.е. + двох доповнень «Barbarian Invasion» і «Alexander», а також для моду «Amazon: Total War v3.0c»;
  • для гри «Medieval II: Total War» є 5 готових варіантів початкових файлів для базової гри + чотирьох додаткових кампаній Americas, British_Isles, Crusades і Teutonic доповнення «Kingdoms».

Ви можете створювати в теці «Presets» будь-які свої підтеки для будь-яких модів або для змінених початкових файлів. Незалежно від того, з якого джерела програма завантажила дані, після натискання кнопки «Виконати завдання» змінений стан export_descr_unit.txt / feral_export_descr_unit.txt зберігається на вкладинках «export_descr_unit.txt» і «feral_export_descr_unit.txt» у другому стовпчику. Ви можете прокрутити, подивитися вміст цього стовпчика перед збереженням і навіть щось вручну підправити. Збереження вмісту другого стовпчика активної вкладинки виконується після натиснення кнопки «Зберегти як…» і в діалоговому вікні збереження файлу Вам потрібно буде вказати, куди зберегти змінений export_descr_unit.txt або feral_export_descr_unit.txt.

Удосконалення

Прикрутив локалізацію інтерфейсу програми. Програма тепер підтримує українську, англійську та російську мови інтерфейсу. Мови інтерфейсу зберігаються в папці «Localization». Програма надається з трьома *.ini-файлами для української, англійської та російської мов відповідно, будь-хто бажаючий може за їхнім прикладом створити новий *.ini-файл для перекладу інтерфейсу програми на будь-яку іншу мову.
Також додано довідку також українською, російською та англійською мовами, вона теж доступна для редагування. Довідки зберігаються в теці «LocalizationHelp».
Прикрутив збереження стану робочого вікна у файл Settings.ini. Якщо відбулися зміни, то програма намагається при закритті зберегти їх в Settings.ini в теці поруч з *.exe-файлом програми. Якщо немає доступу на запис, то збереження не відбувається. При запуску програми вона завантажує попередній свій стан з цього файлу.
Програму скомпільовано в x32 і x64 розрядності, тому вкладено два *.exe-файли.

Як працювати з програмою на основі прикладу? Скриншоти.

Припустимо, ми хочемо грати за Вірменію в «Rome: Total War Remastered» базова гра кампанія 270 р. до н.е. Спочатку виберемо пресет для базової гри, щоб працювати саме з файлами кампанії 270 р. до н. е. Переходимо на вкладинку «З готових пресетів», у списку «Оберіть одну з ігор Total War або збірник модів:» обираємо «Rome: Total War Remastered», а в списку «Оберіть пресет для даної гри з теки “PresetsRome Total War Remastered”:» оберемо «001. Base Game (270 BC – 14 AD)».
Давайте посилимо всі інші фракції, крім Вірменії, це зробимо в «Завдання 1». Поставимо в стовпчику «Включити» галочку «Усі культури й фракції», а в колонці «Виключити» вкажемо свою культуру «eastern», фракцію «armenia» а також найманців «Найманці», оскільки не потрібно гравцеві мати можливість наймати читерських найманців.
Тепер збільшимо в півтора рази атаку (включаючи чардж), на 20% дальність атаки, на 30% кількість стріл/набоїв, на 20% усі параметри броні для людей і для тварин, кількість ходів для найму скоротимо вдвічі (юніти, які наймалися 2 ходи, тепер будуть за 1 хід), вартість найму, утримання та апгрейду скоротимо на 30%. Також на одиничку підвищимо здоров’я як для людей, так і для тварин. Для збільшення моралі використовуємо і множник, і доданок — нехай спочатку мораль буде збільшена в півтора рази, а потім до результату додамо ще двійочку.
А тепер ми вирішили, що римлян не потрібно так сильно посилювати. Створюємо друге завдання, для цього в лічильнику «Кількість завдань:» вказуємо 2. Обираємо в «Завдання 2» римську культуру й усі чотири римські фракції. Нехай їх атака й чардж після множення на коефіцієнт 1,5 у першому завданні зменшиться на 25% шляхом множення на коефіцієнт 0,75 у другому завданні. У результаті в римлян ці два параметри збільшаться в 1,5×0,75=1,125 рази. Також ми вирішили що не хочемо, щоб у римлян змінилася вартість найму загону щодо оригінального файлу. Оскільки в першому завданні ми множили вартість найму загону на 0,7, то тут помножимо на 1÷0,7=1,42857142857143. У підсумку після послідовних двох множень вартість найму не зміниться (збільшиться в 0,7×1,42857142857143=1 раз). Щодо моралі нехай у римлян теж буде збільшення в 1,5 рази, але не буде подальшого збільшення на двійочку. Для цього віднімемо число 2 в доданку для моралі. Підсумкова мораль римських загонів буде підрахована за формулою <Початкова мораль>×1,5+2-2=<Початкова мораль>×1,5. Вікно програми буде виглядати таким чином:

Тепер натискаємо кнопку «Виконати завдання». Результат виконання роботи буде на вкладинках «export_descr_unit.txt» і «feral_export_descr_unit.txt». У лівому стовпчику відображається вміст файлу до змін, а в правому стовпчику — після застосування завдань. Ось результат застосування наших завдань для юніта «Єгипетські колісниці»:

А ось результат застосування наших завдань для римського юніта «Когорта преторіанців»:

Тепер залишається зберегти змінений файл.
Якщо Ви граєте в «Rome: Total War Remastered» і перед стартом гри для параметра «Балансування загонів» обрано «Remastered» то Вам знадобиться зберегти файл «feral_export_descr_unit.txt». Для цього потрібно вибрати вкладинку «feral_export_descr_unit.txt», натиснути кнопку «Зберегти як…» і вказати місце розташування, куди хочете зберегти змінений файл «feral_export_descr_unit.txt».
Якщо Ви граєте в «Rome: Total War Remastered» і перед стартом гри для параметра «Балансування загонів» обрано «Класичні», а також якщо Ви граєте в «Medieval II: Total War» або в старий оригінальний «Rome: Total War» то вам знадобиться зберегти файл «export_descr_unit.txt». Для цього потрібно вибрати вкладинку «export_descr_unit.txt», натиснути кнопку «Зберегти як…» і вказати місце розташування, куди хочете зберегти змінений файл «export_descr_unit.txt».
Для «Rome: Total War Remastered» можна зберегти по черзі обидва файли, щоб змінені параметри загонів застосовувалися як з «Remastered», так і з «Класичними» налаштуваннями.
В обох випадках буде збережено вміст другого стовпчика зі зміненим файлом. У разі якщо Ви вручну внесете будь-які зміни у вміст цього стовчика, то він буде збережений разом з Вашими змінами.
Тепер залишається перенести збережені файли в теку гри і почати гру.

Також Ви могли б не задавати поправочні коефіцієнти для римлян за допомогою додаткового завдання, а просто вказати окреме завдання для всіх фракцій, окрім вірмен, римлян і найманців і окреме завдання для римлян. Вікно програми буде виглядати таким чином:
Результат вийде точно такий же самий як і в першому варіанті.

Також додаю скриншот вікна з довідкою з використання програми:

Плани на майбутнє

Було б непогано посилювати/ослаблювати фракції не тільки шляхом редагування «export_descr_unit.txt», а й шляхом редагування «export_descr_buildings.txt», але там дуже складний формат файлу, потрібно писати рекурсивний парсер, поки точно не подужаю. Також можна було б, щоб замість ключів фракцій типу «romans_julii», відображалася локалізація типу «Дім Юліїв». Це позбавило б від плутанини в модах, коли фракції перейменовані. І спробуй розберися спочатку, що в моді про амазонок «dacia» це не «Дакія», а «Bean Sidhe» насправді. Формат файлів локалізації гри досить простий, можливо це удосконалення внесу в майбутньому. Також пишіть свої зауваження, вказівки на помилку і побажання щодо вдосконалення програми.
Ще можна спробувати зробити, що там де поруч відображаються текстові редактори для «export_descr_unit.txt» до і після змін зробити, щоб прокрутка одного редактора викликала автоматом прокрутку другого на стільки ж рядків.

Системні вимоги

Програма повинна вміти працювати з файлами трьох ігор «Rome: Total War Remastered», «Rome: Total War» і «Medieval II: Total War», а також будь-яких модів під ці ігри.
Програма повинна працювати як в сучасних, так і більш старих версіях Windows. Як мінімум починаючи з Windows 2000 і закінчуючи Windows 10. Підходять як 32-розрядні, так і 64-рорзрядні версії Windows.
Вимагається роздільна здатність екрана не нижче 1024 пікселей за шириною і 720 пікселей за висотою.
Програма повністю portable, інсталяція не потрібна, інформацію в реєстрі не зберігає.

Скачати програму

Google Drive: [link]
Яндекс.Диск: [link] ndex.ua/d/M2Z0CLvaH8_nHQ (приберіть пробіл перед переходом за посиланням)

Зауваження

Програму створено в середовищі Embarcadero Delphi v10.3.3. Раніше в старіших версіях антивірус Касперського через свій евристичний аналіз міг хибно спрацьовувати на інші програми, написані в Embarcadero Delphi. Якщо антивірус помилково спрацьовує на програму, то внесіть програму в виключення антивірусу.

SteamSolo.com