Сообщество Империал: Ограничение количества нанимаемых юнитов - Сообщество Империал

peskot

Ограничение количества нанимаемых юнитов

Нанимайте только заданное количество отрядов
Тема создана: 11 апреля 2014, 12:41 · Автор: peskot
  • 2 Страниц
  • 1
  • 2
 peskot
  • Imperial
Imperial
Форумчанин

Дата: 11 апреля 2014, 12:41

...я хочу сделать нечто на подобие ограничения найма, как в Наполеоне, чтобы не боле трёх, пяти или одного или неважно какая цифра отрядов юнита определённого вида можно было нанимать) не факт, что у меня зто получится, это всего лишь задумка в теории...
...полагаю есть вероятность воплощения чего-то подобного и подозреваю, что только посредством скриптов всё таки...
     Avtocrator
    • Imperial
    Imperial
    Gorthaur2488

    Дата: 12 апреля 2014, 00:18

    peskot

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

    Можно просто прописать со старта и все.

    Если принципиально, чтоб именно нанимать тоже можно, но мудрено, на основе скрипта из Bellum Crucis.

    Проблема в том, что для скриптов нет команды, подсчитывающей количество определенных отрядов. Однако есть команда, отслеживающая когда был нанят юнит определенной категории и юнит определенного класса(см. category и class в шапке темы), при том в игре использованы не все существующие классы(не использованы дрессировщики handler). На основе этого в Bellum Crucis создали скрипт, который при найме одного юнита(подставного) заменяет его на другого юнита/агента.

    В общий чертах Ваш скрипт будет таким:

    Цитата

    monitor_event UnitTrained TrainedUnitCategory handler; нанят подставной юнит категории дрессировщик
    and FactionType england; если фракция - Англия
    and SettlementName London; лучше сделать найм в определенном городе

    create_unit London, название уникального юнита, num 0, exp 0, arm 0, wep 0; собственно создает в Лондоне того самого уникального юнита, ради которого все затеяли
    destroy_units england название подставного юнита; уничтожает подставного юнита
    inc_event_counter название счетчика 1; счетчик - он прибавляет 1 пункт при срабатывании и позволит ограничить найм, просто пропишите в здании где будет наниматься подставной юнит условие and название счетчика < 6 и болше пяти юнитов нанять не сможете

    end_monitor


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

    Однако переобучать его будет невозможно. Разве только способом, который указал раньше.
       OPASEH
      • Imperial
      Imperial
      Ветеран модинга

      Дата: 12 апреля 2014, 00:36

      Avtocrator Зачем так все сложно? Для всех городов писать такое это ужас.

      Вариант № 1 (простой) - лимит только в одного юнита.
      Скрипт:
      monitor_event PreFactionTurnStart ваша фракция
      and I_UnitExists ваш юнит
      set_event_counter Unit_limit 1
      end_monitor
      
      monitor_event PreFactionTurnStart ваша фракция
      and not I_UnitExists ваш юнит
      set_event_counter Unit_limit 0
      end_monitor
      

      Export_descr_buildings.txt
      recruit_pool "Desert Archers" 1 0.32 4 0 requires factions { moors, } and not event_counter Unit_limit 1
      


      Итак, что делает скрипт? Он проверяет наличие у фракции опредленного юнита, если такой юнит уже есть, то скрипт уберет его из найма вообще у всех городов. При этом учтите, вы не сможете сделать отображение в интерфейсе как в Наполеоне: "Сейчас 0 из 4"

      Вариант №2:
      Юнит нанимаеться сразу и на конец хода фракции нанимателя остается в поселении. Принцип исчезания юнита из найма такой же.
      Скрипт:
      monitor_event SettlementTurnEnd SettlementName Clermont
      and I_NumberUnitsInSettlement ваш юнит = 1
      inc_event_counter Unit_limit 1
      end_monitor
      
      monitor_event SettlementTurnEnd SettlementName Clermont
      and I_NumberUnitsInSettlement ваш юнит = 2
      inc_event_counter Unit_limit 1
      end_monitor
      
      monitor_event SettlementTurnEnd SettlementName Clermont
      and I_NumberUnitsInSettlement ваш юнит = 3
      inc_event_counter Unit_limit 1
      end_monitor
      
      Когда величина достигла опредленного количества, убераем из найма 
      
      monitor_event PreFactionTurnStart ваша фракция
      and I_CompareCounter Unit_limit = 3 (лимит в 3 юнита)
      set_event_counter Unit_limit 1
      end_monitor
      
      Если еще у фракции нет 3 юнитов, найм разрешен
      monitor_event PreFactionTurnStart ваша фракция
      and I_CompareCounter Unit_limit < 3 (лимит в 3 юнита)
      set_event_counter Unit_limit 0
      end_monitor
      


      Export_descr_buildings.txt
      recruit_pool "DesertArchers" 1 0.32 4 0 requires factions { moors, } and not event_counter Unit_limit 1
      

      Внимание. Название юнита в EDU и скрипте должно быть без черточек, а просто в одно имя.
         peskot
        • Imperial
        Imperial
        Форумчанин

        Дата: 12 апреля 2014, 09:27

        ...огромнейшее мерси!!! ...только маленькое уточнение - сам скрипт писать отдельным скриптом и запускать с панели управления, либо же добавлять строки в какой-то из существующих скриптов?
           Avtocrator
          • Imperial
          Imperial
          Gorthaur2488

          Дата: 12 апреля 2014, 10:41

          OPASEH
          Мой скрипт рассчитан для найма в конкретном городе, а не для того, чтоб по всем 199 прописывать.

          monitor_event SettlementTurnEnd SettlementName Clermont
          and I_NumberUnitsInSettlement ваш юнит = 1
          inc_event_counter Unit_limit 1
          end_monitor

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

          peskot

          peskot

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


          Вставляете в файл campaign_script.txt после всех скриптов, но до строк:
          	wait_monitors
          
          end_script

          Никаких панелей управления, он и так сработает.
             OPASEH
            • Imperial
            Imperial
            Ветеран модинга

            Дата: 12 апреля 2014, 12:53

            Avtocrator (12 апреля 2014, 10:41):

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

            monitor_event SettlementTurnEnd SettlementName Clermont
            and I_CompareCounter Unit_limit = 0
            and I_NumberUnitsInSettlement ваш юнит = 1
            inc_event_counter Unit_limit 1
            end_monitor
            


            Avtocrator (12 апреля 2014, 10:41):

            Мой скрипт рассчитан для найма в конкретном городе, а не для того, чтоб по всем 199 прописывать.

            Это ясно, но нанимать юнитов зачастую можно не только в одном конкретном городе.
               Avtocrator
              • Imperial
              Imperial
              Gorthaur2488

              Дата: 13 апреля 2014, 23:21

              OPASEH
              monitor_event SettlementTurnEnd SettlementName Clermont
              and I_CompareCounter Unit_limit = 0
              and I_NumberUnitsInSettlement ваш юнит = 1
              inc_event_counter Unit_limit 1
              end_monitor
              

              Да, но тогда будет другая проблема, юнит могут наоборот сразу же выводить из поселения, тогда следующий счетчик при найме второго уникального юнита не сработает, ведь для этого надо два юнита в поселении:
              monitor_event SettlementTurnEnd SettlementName Clermont
              and I_NumberUnitsInSettlement ваш юнит = 2
              inc_event_counter Unit_limit 1
              end_monitor
              

              Потому ИМХО если принципиально количество, то надо вести подсчет нанятых, а не присутствующих в поселении.
                 OPASEH
                • Imperial
                Imperial
                Ветеран модинга

                Дата: 13 апреля 2014, 23:54

                Я думал до вас дойдет))))

                monitor_event SettlementTurnEnd SettlementName Clermont
                and I_CompareCounter Unit_limit = 0
                and I_NumberUnitsInSettlement ваш юнит = 1
                inc_event_counter Unit_limit 1
                end_monitor
                
                monitor_event SettlementTurnEnd SettlementName Clermont
                and I_CompareCounter Unit_limit = 1
                and I_NumberUnitsInSettlement ваш юнит = 2
                inc_event_counter Unit_limit 1
                end_monitor
                
                monitor_event SettlementTurnEnd SettlementName Clermont
                and I_CompareCounter Unit_limit = 2
                and I_NumberUnitsInSettlement ваш юнит = 3
                inc_event_counter Unit_limit 1
                end_monitor
                
                   Avtocrator
                  • Imperial
                  Imperial
                  Gorthaur2488

                  Дата: 14 апреля 2014, 00:04

                  OPASEH

                  Я думал до вас дойдет))))

                  Так читайте же)))

                  Avtocrator

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

                  Как я понимаю I_NumberUnitsInSettlement считает юнитов в поселении, но если нанять 3-ех юнитов, вовсе не обязательно, что они встретятся в этом городе и сработает скрипт на ограничение. Так можно будет до бесконечности нанимать.
                     OPASEH
                    • Imperial
                    Imperial
                    Ветеран модинга

                    Дата: 14 апреля 2014, 02:27

                    monitor_event SettlementTurnEnd SettlementName Clermont
                    and I_NumberUnitsInSettlement ваш юнит = 1
                    set_counter Unit_limit 1
                    end_monitor
                    
                    monitor_event SettlementTurnEnd SettlementName Clermont
                    and I_NumberUnitsInSettlement ваш юнит = 2
                    set_counter Unit_limit 2
                    end_monitor
                    
                    monitor_event SettlementTurnEnd SettlementName Clermont
                    and I_NumberUnitsInSettlement ваш юнит = 3
                    set_counter Unit_limit 3
                    end_monitor
                    
                    Когда величина достигла опредленного количества, убераем из найма 
                    
                    monitor_event PreFactionTurnStart ваша фракция
                    and I_CompareCounter Unit_limit = 3 (лимит в 3 юнита)
                    set_event_counter Unit_limit 1
                    end_monitor
                    
                    Если еще у фракции нет 3 юнитов, найм разрешен
                    monitor_event PreFactionTurnStart ваша фракция
                    and I_CompareCounter Unit_limit < 3 (лимит в 3 юнита)
                    set_event_counter Unit_limit 0
                    end_monitor
                    

                    Тогда надо будет писать под максимальный одновременный найм. В данном случае их 3. Для других городов другой скрипт.
                      • 2 Страниц
                      • 1
                      • 2
                       Похожие Темы
                      PUR - Potestas Ultima RatioPUR - Баги юнитов, проблемы анимации и прочие проблемы визуального плана.
                      Тема для скриншотов визуальных проблем юнитов требующих устранения и правки.
                      Автор: Воевода Воевода
                      Обновление: 02 апреля 2022, 17:03
                      Моды Total War: Rome Remastered[MOD] Оригинальные иконки юнитов в HD
                      [MOD] Оригинальные иконки юнитов в HD
                      Автор: Kelt881 Kelt881
                      Обновление: 20 марта 2022, 12:43
                      Статьи Библиотеки[Статья] Полный список юнитов Королевств Огров в Total War: WARHAMMER III
                      [Статья] Полный список юнитов Королевств Огров в Total War: WARHAMMER III
                      Автор: СоциоПат СоциоПат
                      Обновление: 25 ноября 2021, 15:57
                      Total War: Warhammer[Статья] Полный список юнитов Королевств Огров в Total War: Warhammer 3
                      [Статья] Полный список юнитов Королевств Огров в Total War: Warhammer 3
                      Автор: Татарин Татарин
                      Обновление: 25 ноября 2021, 12:18
                      Статьи Библиотеки[Статья] Полный список юнитов Тзинча в Total War: WARHAMMER III
                      [Статья] Полный список юнитов Тзинча в Total War: WARHAMMER III
                      Автор: СоциоПат СоциоПат
                      Обновление: 09 ноября 2021, 11:52
                      Воспользуйтесь одной из соц-сетей для входа
                      РегистрацияВход на форум 
                      2022 «Империал» · Условия · Ответственность · Визитка · Сотрудничество · 27 июн 2022, 07:50 · Счётчики