Сообщество Империал: [Статья: Оптимизация скриптов в Medieval 2 Total War] - Сообщество Империал




bitterhowl

[Статья: Оптимизация скриптов в Medieval 2 Total War]

[Статья: Оптимизация скриптов в Medieval 2 Total War]
Тема создана: 14 января 2016, 21:36 · Автор: bitterhowl
Просмотров:
 4 571

  • 2 Страниц
  • « Первая
  • 1
  • 2
 1 
 bitterhowl
  • Imp
Imperial
 

Дата: 17 октября 2025, 16:07

Как раз для Myth TW скрипт будет компактным и относительно простым. Думаю, что в течение месяца будет полностью готов, в том числе с возможностью игры через хотсит.

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

Уходим от многочисленных определений хода фракции, однократно привязав к этому event_counter england_turn для фракции england и т.д.

Остальные скрипты заводим под один монитор

monitor_event EventCounter TrueCondition

И дальше для каждой фракции

if I_EventCounter england_turn = 1
... (делаем всё что нужно для хода Англии)
end_if

Причем число и ветвление if ничем не ограничено.
     Delabras
    • Imp
    Imperial
     

    Дата: 19 ноября 2025, 23:56

    Камрады, такой вопрос интересует, может кто в курсе - есть ли разница по нагрузке когда используется set_event_counter и set_counter по сути можно в скрипте использовать set_event_counter с той же целью, что и set_counter но влияет ли это как-то на работоспособность?
       bitterhowl
      • Imp
      Imperial
       

      Дата: 20 ноября 2025, 03:20

      Не влияет.

      Разница только в том, что значение event_counter можно вытаскивать в другие файлы, а counter нет.
         Delabras
        • Imp
        Imperial
         

        Дата: 30 ноября 2025, 22:31

        Столкнулся с такой ситуацией, написал скрипт в одном мониторе на 15к строк, условия сперва проверяется принадлежность города фракции а потом в этом блоке идет еще штук 15 доп проверок на разные условия... и так на каждый город отдельно... собственно проблема в следующем, когда этот скрипт размножил на все играбельные фракции, получилось 27 мониторов, в каждом по 198 проверок городов и в каждом доп проверки... И тут получается что-то около 400к строк кода... + добавил в начало мониторов проверку если фракция ИИ то отключить этот монитор через terminate_monitor...
        НО! теперь загрузка кампании стала нестабильно работать, то загрузится нормально (особенно если удалить map.rwm) загружает 1 раз, потом если выйти с кампании в меню и загрузить новую случается вылет... если выйти с игры, повторно зайти и загрузить кампанию случается вылет в 95% случаев... трассировка лога показывает что скрипты отработаны последняя строка в логе про wait_monitors и после этого error...
        кто-то с подобным сталкивался?
           Delabras
          • Imp
          Imperial
           

          Дата: 01 декабря 2025, 00:10

          Походу все же есть какой-то лимит на размер блока скрипта, сделал вместо 1го монитора 10 мониторов по 1500 строк в среднем, начало загружаться лучше... более стабильно... но когда размножил на все фракции все равно ловлю вылет... может нужно еще сильнее раздробить на куски... а может есть какой-то общий лимит строк на файл скриптов :038:
             bitterhowl
            • Imp
            Imperial
             

            Дата: 01 декабря 2025, 10:57

            Возможно есть ошибка где-то в данных счётчиков, которые начинают противоречить друг другу.
               Delabras
              • Imp
              Imperial
               

              Дата: 01 декабря 2025, 14:17

              bitterhowl 01 декабря 2025, 10:57

              Возможно есть ошибка где-то в данных счётчиков, которые начинают противоречить друг другу.


              Разбил скрипт на 20 мониторов приблизительно по 750-800 строк в каждом, прописал чтоб мониторы где фракция ИИ закрывались до начала хода игрока, после этого начало намного стабильнее работать... при разбивке на 1,5к строк тоже стабильно работало но наблюдались вылеты, а при уменьшении стало еще стабильнее... получается есть какое-то ограничение на количество данных которое движок может хранить в 1 мониторе... оптимально получается до 1к строк делать на скрипт, и разбивать на разные мониторы если код получается длиннее...
                 wint
                • Imp
                Imperial
                 

                Дата: 02 декабря 2025, 15:48

                оптимально получается сокращать количество строк.
                  • 2 Страниц
                  • « Первая
                  • 1
                  • 2
                   
                  Перевести Страницу
                  Условия · Ответственность · Конфид. · Визитка · 03 июл 2026, 05:45 · Зеркала: ImtwOrg, ImtwSite, ImtwOnline