Программа для усиления/ослабления отдельных фракций в Rome: Total War (Remastered) путём редактирования EDU - Моды и моддинг - Strategium.ru Перейти к содержимому

Программа для усиления/ослабления отдельных фракций в Rome: Total War (Remastered) путём редактирования EDU

Рекомендованные сообщения

Kassatka

KsS RTW/M2TW Faction Booster от Kassatka

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

Программа разработана для усиления/ослабления отдельных фракций в играх «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-файл для перевода интерфейса программы на любой другой язык.
Также добавлена справка тоже на русском, украинском и английском языках, она тоже доступна для редактирования. Справки хранятся в папке «Localization\Help\».
Прикрутил сохранение состояния рабочего окна в файл Settings.ini. Если произошли изменения, то программа пытается при закрытии сохранить их в Settings.ini в папке рядом с *.exe-файлом программы. Если нет доступа на запись, то сохранение не происходит. При запуске программы она загружает предыдущее своё состояние из этого файла.
Программа скомпилирована в x32 и x64 разрядности, поэтому вложено два *.exe-файла.

 

Как работать с программой на основе примера? Скриншоты.

Допустим, мы хотим играть за Армению в «Rome: Total War Remastered» базовая игра кампания 270 г. до н.э. Сначала выберем пресет для базовой игры, чтобы работать именно с файлами кампании 270 г. до н. э. Переходим на вкладку «С готовых пресетов», в списке «Выберите одну из игр Total War или сборник модов:» выбираем «Rome: Total War Remastered», а в списке «Выберите пресет для данной игры из папки "Presets\Rome 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. Окно программы будет выглядеть следующим образом:

Спойлер

Tasks_variant1.thumb.png.e82b2b94eef2f8c5d1df0f37dd3afb3d.png

 

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

Спойлер

egyptian_chariot.thumb.png.a457d7941237d35002fef652862f80c3.png

 

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

Спойлер

roman_praetorian_cohort_i.thumb.png.2657d3b7096feb6e5f73f3eb1e33c54d.png

 

Теперь остаётся сохранить измененный файл.
Если Вы играете в «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», так и с «Классическими» настройками.
В обоих случаях будет сохранено содержимое второй колонки с изменённым файлом. В случае если Вы вручную внесёте какие-либо изменения в содержимое этой колонки, то оно будет сохранено вместе с Вашими изменениями.
Теперь остаётся перенести сохранённые файлы в папку игры и начать игру.

Также Вы могли бы не задавать поправочные коэффициенты для римлян с помощью дополнительного задания, а просто указать отдельное задание для всех фракций, кроме армян, римлян и наёмников и отдельное задание для римлян. Окно программы будет выглядеть следующим образом:

Спойлер

Tasks_variant2.thumb.png.16f8e298ae6ffffc060342d8bec960d5.png

Результат получится точно такой же самый как и в первом варианте.

 

Также прилагаю скриншот окна со справкой по использованию программы:

Спойлер

HelpRussian.thumb.png.0d229ed85c7b61c08693f7a3d45d273a.png

 

Планы на будущее

Было бы неплохо усилять/ослаблять фракции не только путём редактирования «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, инсталляция не требуется, информацию в реестре не хранит.

 

Скачать программу: Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. , Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

 

Замечание

Программу создано в среде Embarcadero Delphi v10.3.3. Раньше в более старых версиях антивирус Касперского из-за своего эвристического анализа мог ложно срабатывать на другие программы, написанные в Embarcadero Delphi. Если антивирус ложно срабатывает на программу, то внесите программу в исключения антивируса.

 

KsS RTW/M2TW Faction Booster в Сообществе Steam: Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. , Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. , Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. .

Ссылка на комментарий

Закреплённые сообщения
Kassatka

Маленькое обновление до версии 1.3.

 

Версия программы 1.3 от 9 июня 2021 г., перечень изменений:

  • Обновлены пресеты для игры «Rome: Total War Remastered» на основе обновлённых файлов патча 2.0.1 игры.
  • Исправлена допущенная Feral ошибка в файле feral_export_descr_unit.txt для Barbarian Invasion и обнаруженная форумчанином с другого сайта под ником Crusader556. При этом для юнитов «alemanni warhounds» и для «merc wolfhounds» в строке animal в оригинальном файле от Feral указано «wardogs», а нужно «wardog». Игра при этом выводит предупреждение об ошибке, если запускать её с параметром «-show_err». Заменено на «wardog», чтобы данной ошибки не было.

 

Ссылки на скачивание те же самые.

Ссылка на комментарий

Присоединиться к обсуждению

Вы можете оставить комментарий уже сейчас, а зарегистрироваться позже! Если у вас уже есть аккаунт, войдите, чтобы оставить сообщение через него.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Ваша ссылка автоматически преображена.   Отображать как простую ссылку

×   Предыдущее содержимое было восстановлено..   Очистить текст в редакторе

×   You cannot paste images directly. Upload or insert images from URL.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу


Copyright © 2008-2024 Strategium.ru Powered by Invision Community

×
×
  • Создать...