Сообщество Империал: Программа для усиления/ослабления отдельных фракций путём редактирования EDU - Сообщество Империал

Kassatka

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

KsS RTW Faction Booster от Kassatka
Тема создана: 11 мая 2021, 16:40 · Автор: Kassatka
  • 2 Страниц
  • 1
  • 2
 3 
 Kassatka
  • Imperial
Imperial
Форумчанин

Дата: 11 мая 2021, 16:40

KsS RTW Faction Booster от Kassatka
Программа для усиления/ослабления отдельных фракций путём редактирования export_descr_unit.txt

Предистория и основная идея программы
Для многих игроков стандартный ИИ кажется слишком слабым, потому как во многих случаях создаёт слишком мало юнитов. Усиление сложности игры на very hard эту проблему никак не решает.
На написание программы меня вдохновил пост от Sonar
Оригинальный пост (Раскрыть)

Если коротко, то количество армии, которую нанимает и содержит ИИ зависит исключительно соотношения суммарного дохода за ход и цены содержания этой армии. Даже если вкинуть в казну ИИ пару миллионов денег, больше армии он всё равно содержать не будет. Поэтому если уменьшить цену содержания юнитов, то ИИ тут же станет их нанимать больше. Цена содержания каждого юнита задаётся в export_descr_unit.txt, можно перед стартом игры, например уменьшить цену содержания юнитов для всех ИИ-фракций, но при этом не трогать параметры юнитов той фракции, за которую собираемся играть, ну и наёмников тоже желательно не трогать. Делать это в блокноте очень муторная и неприятная работа, а если захотим начать игру за другую фракцию, то каждый раз придётся переделывать. Я решил написать программу, которая автоматизирует этот процесс. Указываем исходный файл export_descr_unit.txt без правок в качестве источника, задаём коэффициент, на который нужно умножить цену содержания каждого юнита, задаём список фракций, для юнитов которых нужно применить этот коэффициент, жмём кнопочку и сохраняем готовый 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 файла export_descr_unit.txt задаётся либо фракция, либо культура. Соответственно если в программе поставить галочку выбора для фракции, то будут выбраны только те юниты, для которых в строке ownership есть фракция, а если в строке ownership есть культура, то для выбора такой фракции нужно ставить галочку напротив культуры. Юниты повстанцев и наёмников считаются вне культур и обычных фракций. Также можно применить изменения сразу ко всем юнитам любых фракций, постанцев и наёмников, если поставить галочку вверху напротив "all".
Программу я написал, а потом значительно её усовершенствовал. Во-первых сделал список отдельных заданий, в каждом из которых задаются свои изменяемые параметры и свой список фракций. Можно либо поочередно выполнить все задания для каждого юнита, либо для каждого параметра применять тот коэффициент/слагаемое, который даёт наибольшее усиление или же ослабление, либо же из самого крайнего левого или правого задания, которое первое подходит по списку фракций для данного юнита. Количество заданий выбирается счётчиком. Также сделал, что если указанное значение коэффициента/слагаемого приносит усиление фракции, то отображается зелёным шрифтом, если ослабление - синим, если ничего не меняет - чёрным.
Для работы программы, ей нужно дать доступ к исходному файлу export_descr_unit.txt, а также к файлу descr_sm_factions.txt, из которого она прочитает список фракций. Я сделал, что можно указать сразу папку data игры/мода, из которой она загрузит исходные файлы, или же отдельно указать местоположение каждого из этих двух файлов. Также у программы есть папка "Presets", в которой хранятся уже заданные наперёд мною комбинации этих двух файлов, любую из них можно выбрать в выпадающем списке. Каждая комбинация двух файлов храниться в отдельной подпапке папки "Presets". Сейчас там 7 готовых вариантов исходных файлов для игры 270 г. до н.э. + двух дополнений Barbarian Invasion и Alexander как для "Rome: Total War Remastered", так и для оригинальной игры "Rome: Total War", а также для мода "Amazon: Total War 3.0c" для оригинальной игры. Вы можете создавать в папке "Presets" любые свои подпапки для любых модов или для измененных исходных файлов. Независимо от того, из какого источника игра загрузила данные, по нажатию кнопки "Выполнить задания" измененное состояние export_descr_unit.txt сохраняется на вкладке "export_descr_unit.txt" во второе поле текстового редактора. Вы можете прокрутить, посмотреть его содержимомое перед сохранением и даже что-то вручную подправить. Сохранение производится по нажатию кнопки "Сохранить как..." и в диалоговом окне сохранения файла Вам нужно будет указать, куда сохранить изменённый export_descr_unit.txt.

Усовершенствования
Прикрутил локализацию интерфейса программы. Программа теперь поддерживает русский, украинский и английский языки интерфейса. Языки интерфейса хранятся в папке "Localization". Сейчас там три *.ini файла для русского, украинского и английского, любой желающий может по их примеру создать новый *.ini файл для перевода интерфейса моей программы на любой другой язык.
Прикрутил сохранение состояния рабочего окна в файл Settings.ini. Если произошли изменения, то программа пытается при закрытии сохранить их в Settings.ini в папке рядом с *.exe файлом программы. Если нет доступа на запись, то сохранение не происходит. При запуске программы она загружает предыдущее своё состояние из этого файла.
Было бы полезно также усилять/ослаблять фракции.
Программа скомпилирована в x32 и x64 разрядности, поэтому вложено два *.exe файла.

Системные требования
Программа должна работать с файлами как ремастера, так и оригинальной игры, должна работать как в современных, так и более старых Windows. Требуется разрешение экрана не ниже 800 по ширине и 720 по высоте. Полностью portable, инсталляции не требуется, информацию в реестре не хранит.

Скриншоты
Скриншоты предоставляю на базе примера. Допустим мы хотим играть за Армению в Ремастер кампания 270 г. до н.э. Давайте усилим все остальные фракции, это произведём в "Задание 1". Поставим в колонке "Включить" галочку "all", а в колонке "Исключить" укажем свою культуру "eastern", фракцию "armenia" а также наёмников "mercenary", так как не нужно игроку иметь возможность нанимать читерских наёмников. Теперь увеличим в полтора раза атаку, на 20% дальность атаки, на 30% количество стрел/снарядов, на 20% параметры брони для человека и для животных, количество ходов для найма сократим в двое (юниты, которые нанимались 2 хода, теперь будут за 1 ход), стоимость найма, содержания и апгрейда сократим на 30%. Также на единичку повысим здоровье как для людей, так и для животных и на двоечку увеличим мораль. А теперь мы решили, что римлян не нужно так сильно усилять. Создаем второе задание и выбираем в нём римскую культуру и все четыре римские фракции. Пусть их атака и чардж после умножения на коэффициент 1,5 в первом задании уменьшится на 25% путём умножения на коэффициент 0,75 во втором задании. Также мы решили что не хочем, чтоб у римлян изменилась стоимость найма отряда, относительно оригинальной игры. Поскольку в первом задании мы умножали стоимость найма отряда на 0,7 , то здесь умножим на 1/0,7=1,42857142857143. В итоге после последовательных двух умножений стоимость найма не изменится. На скриншотах предоставлены настройки параметров двух заданий, а также результат применения этих настроек для юнита "Египетские колесницы" и римские "Преторианцы".
Скриншоты на основе примера (Раскрыть)


Скачать программу: Для просмотра ссылки Зарегистрируйтесь, Для просмотра ссылки Зарегистрируйтесь

Планы на будущее
Было бы неплохо усилять/ослаблять фракции не только путём редактирования "export_descr_unit.txt", но и путём редактирования "export_descr_buildings.txt", но там очень сложный формат файла, нужно писать рекурсивный парсер, пока точно не осилю. Также можно было бы, чтобы вместо ключей фракций типа "romans_julii", отображалась локализация типа "Дом Юлиев". Это избавило бы от путаницы в модах, когда фракции переименованы. И поди разберись сначала, что в моде про амазонок "dacia" это не "Дакия", а "Bean Sidhe" на самом деле. Формат файлов локализации игры довольно прост, возможно это усовершенствование внесу в будущем. Также пишите свои замечания, указания на ошибку и пожелания по усовершенствованию программы.
Ещё можно попытаться сделать, что там где рядом отображаются текстовые редакторы для export_descr_unit.txt до и после изменений сделать, чтобы прокрутка одного редактора вызывала автоматом прокрутку второго на столько же строк.

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

[-Сообщение склеено-]

Обязательно напишите, пожалуйста, у кого установлен Касперыч, ругается ли он сейчас на мою программу.

Как думаете, можно ли выкладывать мою программу в Steam в раздел "руководства" по игре, где дать ссылку на скачивание моей программы? Типа как выкладывают в Steam русификаторы?
     Age of Kings
    • Imperial
    Imperial
    Советник

    Дата: 11 мая 2021, 16:43

    Kassatka

    Как думаете, можно ли выкладывать мою программу в Steam в раздел "руководства" по игре


    Вполне можно, но ссылки на ЯнДиск Стим почему-то блочит, там надо их как-то видоизменять (например, добавить пару лишних пробелов).
       Kassatka
      • Imperial
      Imperial
      Форумчанин

      Дата: 11 мая 2021, 16:47

      Только сначала надо обязательно узнать, ругается ли Касперыч на мою программу. Поэтому помогите, пожалуйста в этом вопросе.
         Celman Ctraik
        • Imperial
        Imperial
        Темная Госпожа

        Дата: 11 мая 2021, 16:50

        Kassatka (11 мая 2021, 16:47):

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


        А почем именно Касперский ,а не просто антивирус.У меня Доктор веб стоит.
           Sonar
          • Imperial
          Imperial
          Вольный стрелок

          Дата: 11 мая 2021, 16:50

          О это огромный респект камрад. Теперь будет гораздо проще играться с настройками отдельных фракций перед стартом новой кампании.
          Тут еще такой момент. Когда в Риме выбираются новые настройки игра активирует и работает с файли с припиской feral
          Например, я редактирую вот такой файл чаще всего - feral_export_descr_unit.txt
          В качестве бафов-дебафов часто используются также стоимость найма юнита и длительность найма в ходах.
          Где-то был еще лимит юнитов, но это в Меди-2, есть ли он в Риме сомневаюсь. А им тоже можно было хорошо манипулировать.

          export_descr_buildings.txt - это тоже магический файлик, но тут всё тяжелее... Очень многие здания у очень многих фракций имеются.
          Чтобы бафнуть конкретную нужно либо искать уникальное здание, либо бафать по культуре.
             Xamax
            • Imperial
            Imperial
            Форумчанин

            Дата: 11 мая 2021, 16:59

            Для второмеди ЕДУ сможет редактировать?
               Kassatka
              • Imperial
              Imperial
              Форумчанин

              Дата: 11 мая 2021, 17:03

              Celman Ctraik (11 мая 2021, 16:50):

              А почем именно Касперский ,а не просто антивирус.У меня Доктор веб стоит.

              Потому что раньше на одну из моих программ ругался именно Касперский, а не другой антивирус.

              Xamax (11 мая 2021, 16:59):

              Для второмеди ЕДУ сможет редактировать?

              Скиньте мне, пожалуйста UDU от второмеди, а также файл с перечнем фракций во второмеди, я гляну, если что надо, то внесу правки в программу. Или сами проверьте, как работает.
                 ToXeR
                • Imperial
                Imperial
                Форумчанин

                Дата: 11 мая 2021, 19:40

                Добрый день. Крайне полезная программа!
                Есть пара моментов:
                не отображается полный функционал: (Раскрыть)

                (Мое разрешение 1680х1050)
                Еще хотелось бы видеть множитель на мораль, а не только слагаемое.
                Так же, как правильно заметил камрад Sonar, основным файлом EDU в ремастер версии является feral_export_descr_unit.txt. Настройки отрядов грузятся с него.
                И, конечно, огромное спасибо за труд, где же Вы были все эти 17 лет :030:
                   Dr.Schmeisser
                  • Imperial
                  Imperial
                  Форумчанин

                  Дата: 13 мая 2021, 23:36

                  Скриншоты в шапке нужно по новой залить. И лучше на форумный загрузчик.
                     Kassatka
                    • Imperial
                    Imperial
                    Форумчанин

                    Дата: 14 мая 2021, 05:16

                    Xamax (11 мая 2021, 16:59):

                    Для второмеди ЕДУ сможет редактировать?

                    Как то я вообще когда писал первый вариант проги, то мне даже в голову не пришло подумать о Меди, так как я в неё не играю из-за лимита юнитов. Оказалось, что прога работала, даже ничего менять не пришлось. То, что в стоке stat_cost больше параметров, программе всё равно, она меняет только первые, а все последующие просто переносит без изменений.

                    ToXeR (11 мая 2021, 19:40):

                    Так же, как правильно заметил камрад Sonar, основным файлом EDU в ремастер версии является feral_export_descr_unit.txt.

                    Ну да, я так понял, что в feral_export_descr_unit.txt хранятся обновлённые параметры для Remastered настроек, а в export_descr_unit.txt - для классических настроек, которіе остались как в оригинальной игре, чтоб фаны не ругались, что изменили баланс. Программа должна уметь менять оба файла, так как неизвестно, какие параметры выберет игрок.

                    ToXeR (11 мая 2021, 19:40):

                    Есть пара моментов:
                    не отображается полный функционал: (Раскрыть)

                    (Мое разрешение 1680х1050)

                    Это баги, связанные с тем, что у Вас включено масштабирование и оно больше 100%. Какого-то фига обычные компоненты масштабируются при помещении на форму, а уже кастомный унаследованный от стандартного - нет. Плюс масштабирование координат и размеров отрабатывает в момент помещения компонента на форму, а если менять их после, то они уже не будут умножаться на коэффициент. Работает через задницу на костылях, но теперь подправил.

                    ToXeR (11 мая 2021, 19:40):

                    Еще хотелось бы видеть множитель на мораль, а не только слагаемое.

                    Сделано.

                    Dr.Schmeisser (13 мая 2021, 23:36):

                    Скриншоты в шапке нужно по новой залить. И лучше на форумный загрузчик.

                    На выходных сделаю. Старые скриншоты всё равно устарели, сейчас программа выглядит уже чуть иначе. Скрины в png весят совсем мало, так что без проблем должны залиться через форумный загрузчик.


                    Выкладываю версию 1.1
                    Изменения:
                    • Подправлены баги с масштабированием интерфейса.
                    • Мораль теперь можно изменять не только через слагаемое, но и через множитель. А количество ходов, за которое нанимается юнит, можно теперь изменять не только через множитель, но и через слагаемое. Сначала применяются множители, если они есть, а потом слагаемые.
                    • Введен выпадающий список выбора игры. Игр три - RTW Remastered, RTW и M2TW.
                    • Для игры RTW Remastered программа теперь работает одновременно с файлами export_descr_unit.txt и feral_export_descr_unit.txt. Соответственно добавлена новая вкладка для содержимого этого файла. Кнопка "Сохранить как..." теперь работает в зависимости от того, какую вкладку export_descr_unit.txt или feral_export_descr_unit.txt выбрано.
                    • Добавлены пресеты под игру Mediewal II: Total War. Базовая игра и четыре дополнения.
                    • Сделана заготовка окна под справку, но пока там тестовая страница.
                    • Куча всяких мелких правок, которые не вспомнишь и толком не заметишь, но которые заняли много времени.


                    Скачать можно все по той же ссылке из шапки с Гугл-диска, пока только x64 версия:

                    Kassatka (11 мая 2021, 16:40):


                    На Яндекс диск пока не заливал, так как лень Tor-browser устанавливать. Там пока старая версия 1.0.
                      • 2 Страниц
                      • 1
                      • 2
                       Похожие Темы
                      TЗа какую из фракций в Total War: Attila самая интересная кампания?
                      За какую из фракций в Total War: Attila самая интересная кампания?
                      Автор a alexzander96
                      Обновление 09 апреля 2024, 15:46
                      МLocalizer M2TW v.1.1. Программа для переводов модов на Medieval 2: TW
                      Локализатор модов с автозаменой из словарей и встроенной поддержкой онлайн-переводчиков.
                      Автор A Astorius
                      Обновление 25 февраля 2024, 16:04
                      ЛОткрытие всех фракций и 2-3-4-6-12 ходов в год
                      Открытие всех фракций и 2-3-4-6-12 ходов в год
                      Автор n nia
                      Обновление 16 февраля 2024, 10:33
                      Воспользуйтесь одной из соц-сетей для входа
                      РегистрацияВход на форум 
                      Сообщество ИмпериалTotal War: Rome Remastered Total War: Rome Remastered Моды Total War: Rome Remastered Обратная Связь
                      Стиль:Language: 
                      «Империал» · Условия · Ответственность · Визитка · 16 апр 2024, 08:20 · Зеркала: Org, Site, Online · Счётчики