Community Imperial: Гарнизонный скрипт Medieval 2: Total War - Сообщество Империал




yonan

Гарнизонный скрипт Medieval 2: Total War

Скрипт генерирующий юниты в случаи осады города
Theme created: 24 April 2012, 17:32 · Author: yonan
Views:
 24 080

  • 8 Pages
  • « First
  • 1
  • 2
  • 3
  • 4
  • 5
  • Last »
 2 
 OPASEH
  • Imp
Imperial
 

Date: 27 April 2012, 06:08

Гарнизонный скрипт


declare_counter g2
declare_counter f2

;;;;;;;;;;;;;;;;;;Эти счетчки нужны,чтобы скрипт работал только когда человек напал на АИ.В вашем случае скрипт будет работать даже если АИ напал на город человека.
monitor_event SettlementTurnStart not SettlementIsLocal
and SettlementName Rheims
set_counter g2 0
end_monitor

monitor_event SettlementTurnStart SettlementIsLocal
and SettlementName Rheims
set_counter g2 1
end_monitor
;===================================ONLY PLAYER VS AI(Это Чтобы скрипт не работал АИ ПРОТИВ АИ,АИ не знает что в городе есть гарнизонный скрипт и поэтому подводить к нему мало войск и отгребает============================
declare_counter Grrson
set_counter Grrson 0
declare_counter Facstart
set_counter Facstart 1

monitor_event FactionTurnStart FactionIsLocal
set_counter Facstart 1
end_monitor

monitor_event FactionTurnEnd FactionIsLocal
set_counter Facstart 0
end_monitor
;;;;;;;;;;;;;Сам скрипт
monitor_conditions not I_SettlementUnderSiege Rheims
and I_CompareCounter f2 = 1
set_counter f2 0
end_monitor
monitor_conditions I_SettlementUnderSiege Rheims
and I_CompareCounter f2 = 0
and I_CompareCounter g2 = 0
set_counter Grrson 0
if I_CompareCounter Facstart = 1
set_counter Grrson 1
end_if
if I_CompareCounter Grrson = 1
create_unit Rheims, Mercenary Spearmen, num 1, exp 3, arm 1, wep 1
create_unit Rheims, Mercenary Spearmen, num 1, exp 3, arm 1, wep 1
create_unit Rheims, Breton Light Cavalry, num 1, exp 3, arm 1, wep 1
create_unit Rheims, Breton Light Cavalry, num 1, exp 3, arm 1, wep 1
create_unit Rheims, Mercenary Frankish Knights, num 1, exp 3, arm 1, wep 1
create_unit Rheims, Mercenary Pavise Crossbowmen, num 1, exp 3, arm 1, wep 1
end_if
set_counter f2 1
end_monitor


В данном случае используються только наемники(приоритет найма наемников у АИ убран в EDU),т.к они прописаны всем,то и удалять их будет проше.(Однако лучше создать для этого спец юнитов)
Удаление:

declare_counter Clear_Units

monitor_event PreFactionTurnStart FactionIsLocal
set_counter Clear_Units 1
end_monitor

monitor_event FactionTurnEnd FactionIsLocal
set_counter Clear_Units 2
end_monitor

monitor_conditions not I_FactionBesieged france(У франции нет город в осаде)
and I_IsFactionAIControlled france
and I_CompareCounter Clear_Units = 1
destroy_units france Mercenary Spearmen
destroy_units france Breton Light Cavalry
destroy_units france Mercenary Frankish Knights
destroy_units france Mercenary Pavise Crossbowmen
destroy_units france Macemen
destroy_units france Prussian Spearmen
end_monitor


Т.е скрипт работает всегда,независимо кому принадлежит город и после осады,воины в гарнизоне исчезнут
     OPASEH
    • Imp
    Imperial
     

    Date: 27 April 2012, 08:58

    Я уже задавался этим вопросом,и проверял - результат ничего не вылетело.
    Темболее движок вам не позволит сделать как-то по другому удаление гарнизоных юнитов(это еще не в одном моде нету),юнитов в страт режиме леблить нельзя,поэтому только общей командой.
       Dart Kovu Nazgul
      • Imp
      Imperial
       

      Date: 27 April 2012, 09:35

      BULAT STEEL
      Но выходит что если осадить два города фракции france, и в одном из них выиграть, команда расформирует гарнизоны во всех городах, соответственно в тот же ход можно будет захватить другие ослабленные города.
         OPASEH
        • Imp
        Imperial
         

        Date: 27 April 2012, 10:12

        Нет вы меня поняли,я все продумал и этот момент тоже.
        Команда not I_FactionBesieged france - означает,что у Франции нет не одного города в осаде.
        Т.е представим ситуацию:
        1)Я взял в осаду два города Франции
        2)В одном городе я проиграл осаду или выйграл или снял с города осаду сам(не важно),то просто в обоих городах юниты не удаляться.Скрипт будет ждать(кондитион означает что цикл может выполняться бесконечно) пока у фракции france не будет не одного города в осаде и тогда он только удалит юнитов из гарнизона.

        К сожалению команд типо удалить в N городе N юнит в движке нет.
           Dart Kovu Nazgul
          • Imp
          Imperial
           

          Date: 27 April 2012, 19:33

          BULAT STEEL

          2)В одном городе я проиграл осаду или выйграл или снял с города осаду сам(не важно),то просто в обоих городах юниты не удаляться.

          но тогда второй вариант, гарнизонные юниты из первого города будут жить до снятия осады со второго, значит их можно будет использовать уже как регулярные но до момента исчезновения всех осад или и это предусмотрели ??
             OPASEH
            • Imp
            Imperial
             

            Date: 28 April 2012, 07:06

            Да,но это лушче чем ничего.К тому же случаеться это редко
               Gwrtheyrn Gwrthneu
              • Imp
              Imperial
               

              Date: 19 March 2013, 20:38

              OPASEH а вот интересно если осада с города снята но гарнизон не распущен. И уже другая армия начинает осаждать тот же город то скрипт получается сработает вновь и в добавок к старому подойдет новый гарнизон?
              Если да тогда попытаюсь это ограничить. Чтоб гарнизон мог вновь собираться только через несколько ходов после начала осады.
                 Avtocrator
                • Imp
                Imperial
                 

                Date: 28 April 2013, 18:58

                OPASEH

                Камрад, а не пробовали в скрипте удалять юниты командой inc_recruit_pool? В ней как я понял не сам отряд удаляется, а можно уменьшить количество юнитов в отряде(поставив отрицательное число). Вот только не знаю можно ли ей уменьшить количество воинов в отряде до нуля и удалится ли он.
                   _Feanor_
                  • Imp
                  Imperial
                   

                  Date: 28 April 2013, 19:12

                  Насколько я знаю inc_recruit_pool уменьшает/увеличивает число юнитов, доступных для найма. Он их не убирает из гарнизона(хотя я не пробовал). Если в городе нет постройки, рекрутирующей юнита "1" и мы пишем inc_recruit_pool "1", то будет вылет(у меня так).
                     Avtocrator
                    • Imp
                    Imperial
                     

                    Date: 28 April 2013, 19:19

                    _Feanor_
                    Наверное я перевел неправильно. А свести к нулю количество нанимаемых юнитов возможно?
                       _Feanor_
                      • Imp
                      Imperial
                       

                      Date: 28 April 2013, 19:23

                      Именно в городе? Скорее всего да. Вот про наемников не знаю - вряд ли. Но опять же, такая команда требует массу доп. условий, чтобы скрипт работал адекватно.
                        • 8 Pages
                        • « First
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        • Last »
                         
                        Translate a Page
                        Conditions · Responsibility · Confid. · About · 02 Jul 2026, 23:24 · Mirrors: ImtwOrg, ImtwSite, ImtwRuImtwRu, ImtwOrg, ImtwSite