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

  • Поиск
  • Законы
  • Сообщество
  • Репутация
  • Экономика
  • Больше

Реклама отключена для зарегистрированных посетителей

[ Регистрация ] · [ Авторизация ]

Гарнизонный скрипт
Скрипт генерирующий юниты в случаи осады города

  • 5 Страниц
  • 1
  • 2
  • 3
  • 4
  • 5

OPASEH

    5 439

    4

    0

    475

    2 958
  • Статус:Ветеран модинга

Дата: 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


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

    • 5 Страниц
    • 1
    • 2
    • 3
    • 4
    • 5

    OPASEH

      5 439

      4

      0

      475

      2 958
    • Статус:Ветеран модинга

    Дата: 27 Апрель 2012, 08:58

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

      Dart Kovu Nazgul

        19 962

        886

        39

        2 168

        32 551
      • Статус:Гранд-мофф

      Дата: 27 Апрель 2012, 09:35

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

        OPASEH

          5 439

          4

          0

          475

          2 958
        • Статус:Ветеран модинга

        Дата: 27 Апрель 2012, 10:12

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

        К сожалению команд типо удалить в N городе N юнит в движке нет.

          Dart Kovu Nazgul

            19 962

            886

            39

            2 168

            32 551
          • Статус:Гранд-мофф

          Дата: 27 Апрель 2012, 19:33

          BULAT STEEL

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

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

            OPASEH

              5 439

              4

              0

              475

              2 958
            • Статус:Ветеран модинга

            Дата: 28 Апрель 2012, 07:06

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

              Gwrtheyrn Gwrthneu

                221

                0

                0

                12

                88
              • Статус:Легионер

              Дата: 19 Март 2013, 20:38

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

                Avtocrator

                  2 632

                  52

                  14

                  519

                  1 843
                • Статус:Центурион

                Дата: 28 Апрель 2013, 18:58

                OPASEH

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

                  _Feanor_

                    68

                    0

                    0

                    5

                    23
                  • Статус:Рекрут

                  Дата: 28 Апрель 2013, 19:12

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

                    Avtocrator

                      2 632

                      52

                      14

                      519

                      1 843
                    • Статус:Центурион

                    Дата: 28 Апрель 2013, 19:19

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

                      _Feanor_

                        68

                        0

                        0

                        5

                        23
                      • Статус:Рекрут

                      Дата: 28 Апрель 2013, 19:23

                      Именно в городе? Скорее всего да. Вот про наемников не знаю - вряд ли. Но опять же, такая команда требует массу доп. условий, чтобы скрипт работал адекватно.
                        • 5 Страниц
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        Ответить в темуВведите Ваш логин  
                        [Регистрация нового аккаунта]
                        Введите Ваш пароль 
                        [Восстановить пароль]
                        Создать новую тему
                        или Войти на форум через соцсеть
                          Стиль:
                            05 Дек 2016, 01:42
                        © 2016 «Империал». Условия предоставления. Ответственность сторон. Рекрутинг на Империале. Лицензия зарегистрирована на: «Империал». Счётчики