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

Стратегии, Игровые Миры, История, Total War
Imperial Уважаемый Гость, проголосуй за лучшие отечественные моды по серии игр Total War - Лучшие Моды!
yonan

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

Скрипт генерирующий юниты в случаи осады города
Тема создана: 24 Апрель 2012, 17:32 · Автор: yonan
Сообщений: 59 · Просмотров: 7 284
  • 6 Страниц
  • 1
  • 2
  • 3
  • 4
  • 5
  • Последняя »
 OPASEH
  • Imperial
Imperial
Ветеран модинга
6 872
9
544
3 730
0

Дата: 27 Апрель 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


Т.е скрипт работает всегда,независимо кому принадлежит город и после осады,воины в гарнизоне исчезнут
     yonan
    • Imperial
    Imperial
    Форумчанин
    2 532
    37
    983
    2 068
    1

    Дата: 24 Апрель 2012, 17:32

    Уважаемые камрады, разбирающиеся в скриптах, проверьте пожалуйста вот этот гарнизонный скрипт пожалуйста, а то он у меня что-то не срабатывает.
    Спойлер (раскрыть информацию)
       Dart Kovu Nazgul
      • Imperial
      Imperial
      Гранд-мофф
      25 660
      894
      2 637
      43 125
      44

      Дата: 24 Апрель 2012, 20:57

      yonan

      Попробуйте такой вариант:


      declare_counter constantinople_siege
      monitor_conditions not I_SettlementUnderSiege Constantinople
      set_counter constantinople_siege 0
      end_monitor
           monitor_conditions I_SettlementUnderSiege Constantinople
           and I_CompareCounter constantinople_siege = 0
           if I_SettlementOwner Constantinople = byzantium
           create_unit Constantinople, Trebizond Archers, num 4, exp 3, arm 0, wep 0
           end_if
      set_counter constantinople_siege 1
      end_monitor


      Только для начала проверьте есть ли у вас в моде юнит Trebizond Archers
         Avtocrator
        • Imperial
        Imperial
        Gorthaur2488
        2 958
        36
        540
        2 256
        14

        Дата: 24 Апрель 2012, 23:18

        Dart Kovu Nazgul
        Я, правда, опять же не уверен насчет записи, но по-моему create_unit надо прописать как консольную команду.
           yonan
          • Imperial
          Imperial
          Форумчанин
          2 532
          37
          983
          2 068
          1

          Дата: 25 Апрель 2012, 12:04

          Dart Kovu Nazgul, при каких условиях скрипт работает???

          if I_SettlementOwner Rome = byzantium и вот эта строчка мне не совсем понятна, Рим причем???
             Dart Kovu Nazgul
            • Imperial
            Imperial
            Гранд-мофф
            25 660
            894
            2 637
            43 125
            44

            Дата: 25 Апрель 2012, 13:22

            yonan
            :001: Брал оригинал из одного сообщения тут на форуме, как то не присмотрелся.

            Должно быть:
            if I_SettlementOwner Constantinople = byzantium
               yonan
              • Imperial
              Imperial
              Форумчанин
              2 532
              37
              983
              2 068
              1

              Дата: 25 Апрель 2012, 13:42

              Dart Kovu Nazgul, поправьте свой пост, вдруг кому-нибудь скрипт понадобится.
              - - - - - - Сообщение автоматически склеено - - - - - -Скрипт не сработал, может какие-то определенные условия не выполнены???
              А также с внесением этого скрипта перестал работать скрипт, переименовывающий Константинополь в Истамбул.
                 Dart Kovu Nazgul
                • Imperial
                Imperial
                Гранд-мофф
                25 660
                894
                2 637
                43 125
                44

                Дата: 25 Апрель 2012, 13:53

                yonan

                А также с внесением этого скрипта перестал работать скрипт, переименовывающий Константинополь в Истамбул.

                Возможно какойто из них не закрылся (переменные с командой end_), и продолжил взаимодействие с другим.
                Лог что то написал ??

                ПыСы
                С методикой написания скриптов пока знаком поверхностно и всех особенностей не знаю, выводы делаю на основании знаний по написанию программ на Турбо Паскале.
                   yonan
                  • Imperial
                  Imperial
                  Форумчанин
                  2 532
                  37
                  983
                  2 068
                  1

                  Дата: 25 Апрель 2012, 14:04

                  Dart Kovu Nazgul, нет все скрипты закрыты, не работает кстати и скрипт с переименованием Адрианополя, работавший до этого. Лог выдает 2 "фразы"
                  Спойлер (раскрыть информацию)
                     Dart Kovu Nazgul
                    • Imperial
                    Imperial
                    Гранд-мофф
                    25 660
                    894
                    2 637
                    43 125
                    44

                    Дата: 25 Апрель 2012, 14:09

                    yonan

                    monitor_conditionsI_SettlementUnderSiege

                    :030: :001: снова оЧепятка... не хватает пробела
                    monitor_conditions I_SettlementUnderSiege Constantinople
                       yonan
                      • Imperial
                      Imperial
                      Форумчанин
                      2 532
                      37
                      983
                      2 068
                      1

                      Дата: 25 Апрель 2012, 14:25

                      Dart Kovu Nazgul, поправил, теперь лог это выдаёт
                      Спойлер (раскрыть информацию)
                        • 6 Страниц
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        • Последняя »
                        Дата: 17 Декабрь 2018, 02:26
                        Дата: 06 Декабрь 2018, 23:42
                        Дата: 06 Декабрь 2018, 19:45
                        Дата: 02 Декабрь 2018, 19:45
                        Дата: 09 Август 2018, 17:32
                        Дата: 25 Июль 2018, 01:32
                        Дата: 12 Июль 2018, 21:31
                        Дата: 30 Май 2018, 20:36
                        Дата: 22 Май 2018, 20:16
                        Дата: 24 Апрель 2018, 19:45
                        Дата: 26 Март 2018, 16:29
                        Дата: 15 Март 2018, 20:21
                        Дата: 21 Февраль 2018, 20:56
                        Дата: 11 Январь 2018, 20:38
                        Дата: 30 Ноябрь 2017, 20:16
                        Дата: 28 Ноябрь 2017, 21:49
                        Дата: 14 Ноябрь 2017, 19:08
                        Дата: 26 Октябрь 2017, 20:23
                        Дата: 12 Октябрь 2017, 15:04
                        Дата: 10 Октябрь 2017, 04:11
                        Дата: 28 Сентябрь 2017, 15:04
                        Дата: 19 Сентябрь 2017, 15:50
                        Дата: 25 Август 2017, 03:15
                        Дата: 24 Август 2017, 10:32
                        Дата: 24 Август 2017, 10:27
                        Введите Ваше имя  
                        [Регистрация нового аккаунта]
                        Введите Ваш пароль 
                        [Восстановить пароль]
                        Уважаемый Гость, для скрытия рекламы, зарегистрируйтесь на форуме.
                        Воспользуйтесь одной из соц-сетей для входа на форум:
                        © 2019 «Империал» · Условия использования · Ответственность · Визитка Сообщества · 23 Мар 2019, 10:19 · Счётчики