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

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

yonan Гарнизонный скрипт
Скрипт генерирующий юниты в случаи осады города
Тема создана: 24 Апрель 2012, 17:32 · Автор: yonanСообщений: 54 · Просмотров: 5 077

  • 6 Страниц X
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • Гарнизонный скрипт Вконтакте!
  • Гарнизонный скрипт в Фейсбуке!
  • Гарнизонный скрипт в Google+!
Библиотека
OPASEH
  • Imperial
Imperial
6 660
Imperial
10
Imperial
542
Imperial
3 577
Imperial
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


Т.е скрипт работает всегда,независимо кому принадлежит город и после осады,воины в гарнизоне исчезнут
    OPASEH
    • Imperial
    Imperial
    6 660
    Imperial
    10
    Imperial
    542
    Imperial
    3 577
    Imperial
    0

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

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

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

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

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

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

        К сожалению команд типо удалить в N городе N юнит в движке нет.
          Dart Kovu Nazgul
          • Imperial
          Imperial
          22 033
          Imperial
          949
          Imperial
          2 423
          Imperial
          37 229
          Imperial
          43

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

          Для просмотра ссылки Зарегистрируйесь BULAT STEEL

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

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

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

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

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

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

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

                OPASEH

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

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

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

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

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

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

                      Именно в городе? Скорее всего да. Вот про наемников не знаю - вряд ли. Но опять же, такая команда требует массу доп. условий, чтобы скрипт работал адекватно.
                        • 6 Страниц X
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        • 6
                        • Гарнизонный скрипт Вконтакте!
                        • Гарнизонный скрипт Фейсбуке!
                        • Гарнизонный скрипт Google+!
                        Лента Новостей

                        Введите ваши имя форумчанина и пароль:

                        Введите Ваше имя  
                        [Регистрация нового аккаунта]
                        Введите Ваш пароль 
                        [Восстановить пароль]

                        Воспользуйтесь одной из социальных сетей для входа на форум:


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

                        Стиль
                           23 Окт 2017, 16:40
                        © 2017 «Империал». Условия предоставления. Ответственность сторон. Декларация о Сотрудничестве. Лицензия зарегистрирована на: «Империал». Счётчики