Сообщество Империал: Основы и немного о счетчиках (Medieval 2: Total War) - Сообщество Империал




Norinke

Основы и немного о счетчиках (Medieval 2: Total War)

Основы и немного о счетчиках, а так же с чем они связанные
Тема создана: 22 марта 2020, 04:37 · Автор: Norinke
Просмотров:
 10 720

  • 7 Страниц
  • « Первая
  • 2
  • 3
  • 4
  • 5
  • 6
  • Последняя »
 2 
 Norinke
  • Imp
Imperial
 

Дата: 22 марта 2020, 04:37

Imp


Такс, решил я тут начать по чучуть писать туториалы по скриптам, для начала возьму самое просто это счетчики, а так же затрону минимальные основы для создания скрипта

Со временем надеюсь напишу по всем командам, а так же условиям и евентам, возможно напишу докумендос по комадам на подобии зелено глазого с ТВЦ

Оффтоп (контент вне темы)



Это основа которую мы будем использовать

     monitor_event < команда которая вызывает проверку события

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

     end_monitor < окончание нашего монитора


А теперь более понятно на примере

|

     monitor_event FactionTurnStart < когда начинается ход какой либо фракции, запускается наш монитор
     terminate_monitor
     end_monitor


Но ясно дело этого нам мало, в целом в игре есть 220 с хвостиком событый которые она проверяет
и так же 410 с хвостиком условий и 240 с чем-то команд, со временем надеюсь обясню по всем

Вот как выгляди к примеру проверка на ход Швеции

|

     monitor_event FactionTurnStart FactionType sweden
     terminate_monitor
     end_monitor

     FactionTurnStart < проверка события начало хода какой либо фракции

     FactionType < проверка какой тип фракции начал ход, если не швеция, то игнорит

Небольшое примечание, мы не может использовать все существующие проверки к FactionTurnStart
к примеру мы не можем использовать проверку SettlementName, потому что это же не город(ваш кеп)

Мы можем использовать только те что касаются фракций, а так же универсальные, которые не имею привязки к фракции, поселению, человеку и т.д.

К примеру I_CompareCounter, является универсальным

В то время как FactionType может применятся к тем евентам, которые имеют информацию о фракции


Чтобы было еще понятнее FactionTurnStart знает только о фракциях и не более, можно проверить казну, тип фракции, религию и т.д., не более

А BecomesFactionLeader уже знает больше, это событие что персонаж становится лидером какого либо альянса, тут уже мы можем
проверять записи по персонажу, фракцию, проверить регион где стоит и еще всякое, но опять таки, здесь еще нужно следовать логике, к числу записей по персонажу подходит такая проверка как "WonBattle", но она же не логичная, у нас сработало событие, что персонаж стал лидером, а не что окончилась битва, так не забавыйте о банальной логике

Так же у нас есть кроме обычного monitor_event есть

     monitor_conditions

Чем он отличается? Он работает исключительно с универсальными проверками, как I_BattleStarted(используется только во время бытвы), I_CompareCounter, I_SettlementOwner(карта глобальная) и т.д.
к примеру если нам нужно что-то сделать сразу же после того как счетчик I_CompareCounter принял значение 100, то мы можем использовать его

|

monitor_conditions I_CompareCounter TestCounter = 1
historic_event bla_bla_bla < показать сообщение
end_monitor


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

|

monitor_conditions I_CompareCounter TestCounter = 1
historic_event bla_bla_bla < показать сообщение
set_counter TestCounter 2
end_monitor



Так же есть команда которая означает не, пример

|

     monitor_event FactionTurnStart not FactionType sweden
     terminate_monitor
     end_monitor


Она указывает, что событие пройдет проверку, только если ход не Швеции
Так же можно вместо not поставить !

|

     monitor_event FactionTurnStart ! FactionType sweden
     terminate_monitor
     end_monitor


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

|

     monitor_event FactionTurnStart ! FactionType sweden
     ;historic_event war_with_Polan отключаем ибо захотелось
     set_counter war_Kiev 5 ; ставим счетчик на 5
     terminate_monitor
     end_monitor

все что после точки с зяпятой ; игнорируется

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




Объявляем простой счетчик, который будет часто использоваться на самом то деле, хотя и может использоваться только внутри файла campaign_script

Объявление должно быть в обязательном порядке, и оно в самом начале имеет значение 0
     declare_counter < команда обявление
     war_start_after_2_ages < условное имя

     declare_counter war_start_after_2_ages

Обьявление должно быть перед тем как мы будем использовать наш счетчик, так же оно не должно быть в monitor_event
пример

|

declare_counter war_start_after_2_ages

monitor_event FactionTurnStart FactionType sweden
terminate_monitor
end_monitor


Присваиваем счетчику значение

     set_counter war_start_after_2_ages 100

Мы можем просвоить любое значение сразу же после обьвяления, оно сработает только 1 раз

|

declare_counter war_start_after_2_ages
set_counter war_start_after_2_ages 100

monitor_event FactionTurnStart FactionType sweden
terminate_monitor
end_monitor


Добавляем или отнимаем к счетчику значение
     inc_counter war_start_after_2_ages -50 или 10


Это условие которое проверяет показатель счетчика
     I_CompareCounter


Оно может использовать в условиях монитора

Цитата

monitor_event FactionTurnStart FactionType sweden < когда фракция Швеция начнет свой год
and I_CompareCounter war_start_after_2_ages = 1 < проверяем наше значение

set_counter war_start_after_2_ages 100

end_monitor


А так же внутри монитора может использовать

|

monitor_event FactionTurnStart FactionType sweden < когда фракция Швеция начнет свой год

if I_CompareCounter war_start_after_2_ages = 1
set_counter war_start_after_2_ages 100
end_if

end_monitor


Операторы = > < ! думаю всем знакомы еще со школы
= равно
< меньше
> больше
<= меньше равно
>= больше равно
!= не равно


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

Так же любое историческое событие является евент счетчиком, к примеру любое событие из descr_event является счетчиком
event historic new_era_begins
date 180
Когда событие не случилось стоит 0, когда оно случится(в данном случае в 180 году), счетчик примет значение 1


     set_event_counter historic_event_Holy_War_2 56

Так же как и в обычном, добавить или отнять у счетчика
     inc_event_counter historic_event_Holy_War_2 -50 или 10

Создается случайный счетчик и выбирается случайное число от 1 до 20(границы могут быть и другие от 30 до 100 и т.д.)
     generate_random_counter RandomCounter 1 20

Команда совмещает в себе характеристики inc и random, то есть можно к примеру добавить случайное число в рамках от 10 до 20
использовать только на event_counter, к обычному не применять

     random_counter_inc RandomCounter 10 20


Отличие от обычного счетчик еще в том, что здесь есть собственная проверка изменяется ли event_counter

Срабатывает в случае изменения какого либо из счетчиков
     monitor_event EventCounter

Имя счетчика
     EventCounterType

Проверка числа
     EventCounter

|

monitor_event EventCounter EventCounterType historic_event_Holy_War_2
and EventCounter > 5

end_monitor



Так же есть как и в обычном счетчике проверка и может использоваться так же как и обычный
     I_EventCounter

|

monitor_event FactionTurnStart FactionType sweden
and I_EventCounter historic_event_Holy_War_2 = 1
set_counter historic_event_Holy_War_2 100
end_monitor


А так же внутри монитора может использовать

|

monitor_event FactionTurnStart FactionType sweden
if I_EventCounter historic_event_Holy_War_2 = 1
set_counter historic_event_Holy_War_2 100
end_if
end_monitor


Он может использоватся в трейтах, анчах, тригерах гильдий и т.д., там в принципе будет все выглядить как и в обычных скриптах, кроме файла строительства и наемников
там оно будет выглядить следующим образом в EDB

recruit_pool "iqta'dar" 0 0.08 1 0 requires factions { turks, } and event_counter some_event_counter 1

в EDB так же можно использовать not

recruit_pool "iqta'dar" 0 0.08 1 0 requires factions { turks, } and not event_counter some_event_counter 1

в descr_mercenaries , здесь срабатывает проверка, если event_counter равен 1, когда 0 отключает

unit Numidian Cavalry exp 1 cost 315 replenish 0.04 - 0.13 max 2 initial 0 events { some_event_counter}




Создать событие, появится сообщение о событии, текст берется из historic_events, и так же для него создаться event_counter
     historic_event rebel_attack_London

Так же событие можно ограничить по фракциям, к примеру
     historic_event rebel_attack_London { england, }

Можно добавить видео
     historic_event rebel_attack_London faction/rebel_attack.bik { england, }

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

     historic_event rebel_attack_London true faction/rebel_attack.bik { england, }

создастя отдельно два event_counter с именем события и праставками _accepted и _declined
rebel_attack_London_accepted
rebel_attack_London_declined

Если нажали да

|

monitor_conditions I_EventCounter rebel_attack_London_accepted = 1
set_event_counter rebel_attack_London_accepted 0 или terminate_monitor если событие одноразовое
end_monitor


Если нажали нет

|

monitor_conditions I_EventCounter rebel_attack_London_declined = 1
set_event_counter rebel_attack_London_declined 0 или terminate_monitor если событие одноразовое
end_monitor


Для ИИ можно сделать так

|

monitor_event *****

historic_event rebel_attack_London true faction/rebel_attack.bik { england, }

generate_random_counter random_accept 0 10

if I_EventCounter random_accept <= 5
set_event_counter rebel_attack_London_accepted 1
end_if

if I_EventCounter random_accept > 5
set_event_counter rebel_attack_London_declined 1
end_if

end_monitor



Надеюсь все было понятно, если что можете смело задавать вопросы, я почти не кусаюсь
     Norinke
    • Imp
    Imperial
     

    Дата: 02 апреля 2020, 04:42

    BOOT 02 апреля 2020, 00:18

    Norinke 01 апреля 2020, 23:24

    BOOT 01 апреля 2020, 21:52

    Ув. Norinke.

    Посмотрите на скрипт где правильно а где нет???

    ну для начала очевидно

    1 - задайте label армии и используйте вместо имени везде где нужно, имя может такое уже существовать, а вот лейбл уникальная штука

    spawn_army
    faction portugal
    character Gill, named character, age 18, x 54, y 83

    spawn_army
    faction portugal
    character Gill, named character, age 18, x 54, y 83, label attack_something

    2 - я не вижу трейта, который убирал бы возможность генерал ходить

    3 - в случае если фракция не Португалия, у вас буду висеть лишние мониторы, это не кошерно

    4 - зачем использовать два раза if который выполняете те же условия(и зачем вы во 2 if поставили те же условия что и в сам монитор?)

    Цитата

    and not I_SettlementOwner Lisbon = portugal
    and I_NumberOfSettlements portugal > 0
    and not I_SettlementUnderSiege Lisbon



    if not I_LocalFaction portugal
    and not I_SettlementUnderSiege Lisbon
    and not I_SettlementOwner Lisbon = portugal
    and I_NumberOfSettlements portugal > 0



    5 - у вас все идет одно за другим здеся, то есть все сделается в один ход

    Цитата

    monitor_event FactionTurnStart FactionType portugal
    and I_CompareCounter AttacLisbonFail = 1
    if I_CharacterExists Rodrigo
    siege_settlement Rodrigo, Lisbon, maintain
    end_if
    set_counter AttacLisbonFail 2
    set_counter AttacLisbon 2
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionType portugal
    and I_CompareCounter AttacLisbon = 2
    if I_CharacterExists Gill
    siege_settlement Gill, Lisbon, maintain
    end_if
    set_counter AttacLisbon 3
    terminate_monitor
    end_monitor

    monitor_event FactionTurnStart FactionType portugal
    and I_CompareCounter AttacLisbon = 3
    if I_CharacterExists Gill
    and I_SettlementUnderSiege Lisbon
    siege_settlement Gill, Lisbon, attack
    end_if
    set_counter AttacLisbon 4
    terminate_monitor
    end_monitor


    6 - зачем это? оно ничего не дает, просто место занимает

    Цитата

    monitor_event FactionTurnStart not FactionIsLocal
    set_counter AttacLisbonFail 0
    set_counter AttacLisbon 0
    terminate_monitor
    end_monitor




    Спасибо огромное вам))

    На счет "label" проблема, этот скрипт на движке Medieval II, medieval.exe, а он лабелы не читает, вырубает все скрипты(((

    А вы еще будете писать гайды по Счетчикам?...

    Мне бы очень хотелось самому научиться (разобраться) в счетчиках))


    версия игры 1.52?
    Если 1.5 то переключайся на kingdom, если 1.52 то оно принимает лейблы
       BOOT
      • Imp
      Imperial
       

      Дата: 02 апреля 2020, 17:41

      Norinke 02 апреля 2020, 04:42

      BOOT 02 апреля 2020, 00:18

      Norinke 01 апреля 2020, 23:24

      BOOT 01 апреля 2020, 21:52

      Ув. Norinke.

      Посмотрите на скрипт где правильно а где нет???

      ну для начала очевидно

      1 - задайте label армии и используйте вместо имени везде где нужно, имя может такое уже существовать, а вот лейбл уникальная штука

      spawn_army
      faction portugal
      character Gill, named character, age 18, x 54, y 83

      spawn_army
      faction portugal
      character Gill, named character, age 18, x 54, y 83, label attack_something

      2 - я не вижу трейта, который убирал бы возможность генерал ходить

      3 - в случае если фракция не Португалия, у вас буду висеть лишние мониторы, это не кошерно

      4 - зачем использовать два раза if который выполняете те же условия(и зачем вы во 2 if поставили те же условия что и в сам монитор?)

      Цитата

      and not I_SettlementOwner Lisbon = portugal
      and I_NumberOfSettlements portugal > 0
      and not I_SettlementUnderSiege Lisbon



      if not I_LocalFaction portugal
      and not I_SettlementUnderSiege Lisbon
      and not I_SettlementOwner Lisbon = portugal
      and I_NumberOfSettlements portugal > 0



      5 - у вас все идет одно за другим здеся, то есть все сделается в один ход

      Цитата

      monitor_event FactionTurnStart FactionType portugal
      and I_CompareCounter AttacLisbonFail = 1
      if I_CharacterExists Rodrigo
      siege_settlement Rodrigo, Lisbon, maintain
      end_if
      set_counter AttacLisbonFail 2
      set_counter AttacLisbon 2
      terminate_monitor
      end_monitor

      monitor_event FactionTurnStart FactionType portugal
      and I_CompareCounter AttacLisbon = 2
      if I_CharacterExists Gill
      siege_settlement Gill, Lisbon, maintain
      end_if
      set_counter AttacLisbon 3
      terminate_monitor
      end_monitor

      monitor_event FactionTurnStart FactionType portugal
      and I_CompareCounter AttacLisbon = 3
      if I_CharacterExists Gill
      and I_SettlementUnderSiege Lisbon
      siege_settlement Gill, Lisbon, attack
      end_if
      set_counter AttacLisbon 4
      terminate_monitor
      end_monitor


      6 - зачем это? оно ничего не дает, просто место занимает

      Цитата

      monitor_event FactionTurnStart not FactionIsLocal
      set_counter AttacLisbonFail 0
      set_counter AttacLisbon 0
      terminate_monitor
      end_monitor




      Спасибо огромное вам))

      На счет "label" проблема, этот скрипт на движке Medieval II, medieval.exe, а он лабелы не читает, вырубает все скрипты(((

      А вы еще будете писать гайды по Счетчикам?...

      Мне бы очень хотелось самому научиться (разобраться) в счетчиках))


      версия игры 1.52?
      Если 1.5 то переключайся на kingdom, если 1.52 то оно принимает лейблы

      Ванильная версия Медивал 2

      Если не ошибаюсь medneval.exe 1.2
         Norinke
        • Imp
        Imperial
         

        Дата: 02 апреля 2020, 22:00

        BOOT 02 апреля 2020, 17:41

        Norinke 02 апреля 2020, 04:42

        BOOT 02 апреля 2020, 00:18

        Norinke 01 апреля 2020, 23:24

        BOOT 01 апреля 2020, 21:52

        Ув. Norinke.

        Посмотрите на скрипт где правильно а где нет???

        ну для начала очевидно

        1 - задайте label армии и используйте вместо имени везде где нужно, имя может такое уже существовать, а вот лейбл уникальная штука

        spawn_army
        faction portugal
        character Gill, named character, age 18, x 54, y 83

        spawn_army
        faction portugal
        character Gill, named character, age 18, x 54, y 83, label attack_something

        2 - я не вижу трейта, который убирал бы возможность генерал ходить

        3 - в случае если фракция не Португалия, у вас буду висеть лишние мониторы, это не кошерно

        4 - зачем использовать два раза if который выполняете те же условия(и зачем вы во 2 if поставили те же условия что и в сам монитор?)

        Цитата

        and not I_SettlementOwner Lisbon = portugal
        and I_NumberOfSettlements portugal > 0
        and not I_SettlementUnderSiege Lisbon



        if not I_LocalFaction portugal
        and not I_SettlementUnderSiege Lisbon
        and not I_SettlementOwner Lisbon = portugal
        and I_NumberOfSettlements portugal > 0



        5 - у вас все идет одно за другим здеся, то есть все сделается в один ход

        Цитата

        monitor_event FactionTurnStart FactionType portugal
        and I_CompareCounter AttacLisbonFail = 1
        if I_CharacterExists Rodrigo
        siege_settlement Rodrigo, Lisbon, maintain
        end_if
        set_counter AttacLisbonFail 2
        set_counter AttacLisbon 2
        terminate_monitor
        end_monitor

        monitor_event FactionTurnStart FactionType portugal
        and I_CompareCounter AttacLisbon = 2
        if I_CharacterExists Gill
        siege_settlement Gill, Lisbon, maintain
        end_if
        set_counter AttacLisbon 3
        terminate_monitor
        end_monitor

        monitor_event FactionTurnStart FactionType portugal
        and I_CompareCounter AttacLisbon = 3
        if I_CharacterExists Gill
        and I_SettlementUnderSiege Lisbon
        siege_settlement Gill, Lisbon, attack
        end_if
        set_counter AttacLisbon 4
        terminate_monitor
        end_monitor


        6 - зачем это? оно ничего не дает, просто место занимает

        Цитата

        monitor_event FactionTurnStart not FactionIsLocal
        set_counter AttacLisbonFail 0
        set_counter AttacLisbon 0
        terminate_monitor
        end_monitor




        Спасибо огромное вам))

        На счет "label" проблема, этот скрипт на движке Medieval II, medieval.exe, а он лабелы не читает, вырубает все скрипты(((

        А вы еще будете писать гайды по Счетчикам?...

        Мне бы очень хотелось самому научиться (разобраться) в счетчиках))


        версия игры 1.52?
        Если 1.5 то переключайся на kingdom, если 1.52 то оно принимает лейблы

        Ванильная версия Медивал 2

        Если не ошибаюсь medneval.exe 1.2


        за что ты так с собой?
           BOOT
          • Imp
          Imperial
           

          Дата: 02 апреля 2020, 22:24

          Norinke 02 апреля 2020, 22:00

          BOOT 02 апреля 2020, 17:41

          Norinke 02 апреля 2020, 04:42

          BOOT 02 апреля 2020, 00:18

          Norinke 01 апреля 2020, 23:24

          BOOT 01 апреля 2020, 21:52

          Ув. Norinke.

          Посмотрите на скрипт где правильно а где нет???

          ну для начала очевидно

          1 - задайте label армии и используйте вместо имени везде где нужно, имя может такое уже существовать, а вот лейбл уникальная штука

          spawn_army
          faction portugal
          character Gill, named character, age 18, x 54, y 83

          spawn_army
          faction portugal
          character Gill, named character, age 18, x 54, y 83, label attack_something

          2 - я не вижу трейта, который убирал бы возможность генерал ходить

          3 - в случае если фракция не Португалия, у вас буду висеть лишние мониторы, это не кошерно

          4 - зачем использовать два раза if который выполняете те же условия(и зачем вы во 2 if поставили те же условия что и в сам монитор?)

          Цитата

          and not I_SettlementOwner Lisbon = portugal
          and I_NumberOfSettlements portugal > 0
          and not I_SettlementUnderSiege Lisbon



          if not I_LocalFaction portugal
          and not I_SettlementUnderSiege Lisbon
          and not I_SettlementOwner Lisbon = portugal
          and I_NumberOfSettlements portugal > 0



          5 - у вас все идет одно за другим здеся, то есть все сделается в один ход

          Цитата

          monitor_event FactionTurnStart FactionType portugal
          and I_CompareCounter AttacLisbonFail = 1
          if I_CharacterExists Rodrigo
          siege_settlement Rodrigo, Lisbon, maintain
          end_if
          set_counter AttacLisbonFail 2
          set_counter AttacLisbon 2
          terminate_monitor
          end_monitor

          monitor_event FactionTurnStart FactionType portugal
          and I_CompareCounter AttacLisbon = 2
          if I_CharacterExists Gill
          siege_settlement Gill, Lisbon, maintain
          end_if
          set_counter AttacLisbon 3
          terminate_monitor
          end_monitor

          monitor_event FactionTurnStart FactionType portugal
          and I_CompareCounter AttacLisbon = 3
          if I_CharacterExists Gill
          and I_SettlementUnderSiege Lisbon
          siege_settlement Gill, Lisbon, attack
          end_if
          set_counter AttacLisbon 4
          terminate_monitor
          end_monitor


          6 - зачем это? оно ничего не дает, просто место занимает

          Цитата

          monitor_event FactionTurnStart not FactionIsLocal
          set_counter AttacLisbonFail 0
          set_counter AttacLisbon 0
          terminate_monitor
          end_monitor




          Спасибо огромное вам))

          На счет "label" проблема, этот скрипт на движке Medieval II, medieval.exe, а он лабелы не читает, вырубает все скрипты(((

          А вы еще будете писать гайды по Счетчикам?...

          Мне бы очень хотелось самому научиться (разобраться) в счетчиках))


          версия игры 1.52?
          Если 1.5 то переключайся на kingdom, если 1.52 то оно принимает лейблы

          Ванильная версия Медивал 2

          Если не ошибаюсь medneval.exe 1.2


          за что ты так с собой?



          Честно, даже не знаю, просто первый Stainless Steel на старом еще движке, а в Булатку играть комп слабый.

          Спасибо огромное за уделенное вами время мне).

          Еще один вопрос:
          declare_counter bla_bla
          set_counter bla_bla 5 - присваиваем значения счетчику
          inc_counter bla_bla 10 - Это значение добавляется до set_counter bla_bla 5 ???
          правильно понял?...
             Norinke
            • Imp
            Imperial
             

            Дата: 02 апреля 2020, 22:33

            BOOT 02 апреля 2020, 22:24

            Norinke 02 апреля 2020, 22:00

            BOOT 02 апреля 2020, 17:41

            Norinke 02 апреля 2020, 04:42

            BOOT 02 апреля 2020, 00:18

            Norinke 01 апреля 2020, 23:24

            BOOT 01 апреля 2020, 21:52

            Ув. Norinke.

            Посмотрите на скрипт где правильно а где нет???

            ну для начала очевидно

            1 - задайте label армии и используйте вместо имени везде где нужно, имя может такое уже существовать, а вот лейбл уникальная штука

            spawn_army
            faction portugal
            character Gill, named character, age 18, x 54, y 83

            spawn_army
            faction portugal
            character Gill, named character, age 18, x 54, y 83, label attack_something

            2 - я не вижу трейта, который убирал бы возможность генерал ходить

            3 - в случае если фракция не Португалия, у вас буду висеть лишние мониторы, это не кошерно

            4 - зачем использовать два раза if который выполняете те же условия(и зачем вы во 2 if поставили те же условия что и в сам монитор?)

            Цитата

            and not I_SettlementOwner Lisbon = portugal
            and I_NumberOfSettlements portugal > 0
            and not I_SettlementUnderSiege Lisbon



            if not I_LocalFaction portugal
            and not I_SettlementUnderSiege Lisbon
            and not I_SettlementOwner Lisbon = portugal
            and I_NumberOfSettlements portugal > 0



            5 - у вас все идет одно за другим здеся, то есть все сделается в один ход

            Цитата

            monitor_event FactionTurnStart FactionType portugal
            and I_CompareCounter AttacLisbonFail = 1
            if I_CharacterExists Rodrigo
            siege_settlement Rodrigo, Lisbon, maintain
            end_if
            set_counter AttacLisbonFail 2
            set_counter AttacLisbon 2
            terminate_monitor
            end_monitor

            monitor_event FactionTurnStart FactionType portugal
            and I_CompareCounter AttacLisbon = 2
            if I_CharacterExists Gill
            siege_settlement Gill, Lisbon, maintain
            end_if
            set_counter AttacLisbon 3
            terminate_monitor
            end_monitor

            monitor_event FactionTurnStart FactionType portugal
            and I_CompareCounter AttacLisbon = 3
            if I_CharacterExists Gill
            and I_SettlementUnderSiege Lisbon
            siege_settlement Gill, Lisbon, attack
            end_if
            set_counter AttacLisbon 4
            terminate_monitor
            end_monitor


            6 - зачем это? оно ничего не дает, просто место занимает

            Цитата

            monitor_event FactionTurnStart not FactionIsLocal
            set_counter AttacLisbonFail 0
            set_counter AttacLisbon 0
            terminate_monitor
            end_monitor




            Спасибо огромное вам))

            На счет "label" проблема, этот скрипт на движке Medieval II, medieval.exe, а он лабелы не читает, вырубает все скрипты(((

            А вы еще будете писать гайды по Счетчикам?...

            Мне бы очень хотелось самому научиться (разобраться) в счетчиках))


            версия игры 1.52?
            Если 1.5 то переключайся на kingdom, если 1.52 то оно принимает лейблы

            Ванильная версия Медивал 2

            Если не ошибаюсь medneval.exe 1.2


            за что ты так с собой?



            Честно, даже не знаю, просто первый Stainless Steel на старом еще движке, а в Булатку играть комп слабый.

            Спасибо огромное за уделенное вами время мне).

            Еще один вопрос:
            declare_counter bla_bla
            set_counter bla_bla 5 - присваиваем значения счетчику
            inc_counter bla_bla 10 - Это значение добавляется до set_counter bla_bla 5 ???
            правильно понял?...

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


            да, все правильно
               BOOT
              • Imp
              Imperial
               

              Дата: 02 апреля 2020, 22:49

              Norinke 02 апреля 2020, 22:33

              BOOT 02 апреля 2020, 22:24

              Norinke 02 апреля 2020, 22:00

              BOOT 02 апреля 2020, 17:41

              Norinke 02 апреля 2020, 04:42

              BOOT 02 апреля 2020, 00:18

              Norinke 01 апреля 2020, 23:24

              BOOT 01 апреля 2020, 21:52

              Ув. Norinke.

              Посмотрите на скрипт где правильно а где нет???

              ну для начала очевидно

              1 - задайте label армии и используйте вместо имени везде где нужно, имя может такое уже существовать, а вот лейбл уникальная штука

              spawn_army
              faction portugal
              character Gill, named character, age 18, x 54, y 83

              spawn_army
              faction portugal
              character Gill, named character, age 18, x 54, y 83, label attack_something

              2 - я не вижу трейта, который убирал бы возможность генерал ходить

              3 - в случае если фракция не Португалия, у вас буду висеть лишние мониторы, это не кошерно

              4 - зачем использовать два раза if который выполняете те же условия(и зачем вы во 2 if поставили те же условия что и в сам монитор?)

              Цитата

              and not I_SettlementOwner Lisbon = portugal
              and I_NumberOfSettlements portugal > 0
              and not I_SettlementUnderSiege Lisbon



              if not I_LocalFaction portugal
              and not I_SettlementUnderSiege Lisbon
              and not I_SettlementOwner Lisbon = portugal
              and I_NumberOfSettlements portugal > 0



              5 - у вас все идет одно за другим здеся, то есть все сделается в один ход

              Цитата

              monitor_event FactionTurnStart FactionType portugal
              and I_CompareCounter AttacLisbonFail = 1
              if I_CharacterExists Rodrigo
              siege_settlement Rodrigo, Lisbon, maintain
              end_if
              set_counter AttacLisbonFail 2
              set_counter AttacLisbon 2
              terminate_monitor
              end_monitor

              monitor_event FactionTurnStart FactionType portugal
              and I_CompareCounter AttacLisbon = 2
              if I_CharacterExists Gill
              siege_settlement Gill, Lisbon, maintain
              end_if
              set_counter AttacLisbon 3
              terminate_monitor
              end_monitor

              monitor_event FactionTurnStart FactionType portugal
              and I_CompareCounter AttacLisbon = 3
              if I_CharacterExists Gill
              and I_SettlementUnderSiege Lisbon
              siege_settlement Gill, Lisbon, attack
              end_if
              set_counter AttacLisbon 4
              terminate_monitor
              end_monitor


              6 - зачем это? оно ничего не дает, просто место занимает

              Цитата

              monitor_event FactionTurnStart not FactionIsLocal
              set_counter AttacLisbonFail 0
              set_counter AttacLisbon 0
              terminate_monitor
              end_monitor




              Спасибо огромное вам))

              На счет "label" проблема, этот скрипт на движке Medieval II, medieval.exe, а он лабелы не читает, вырубает все скрипты(((

              А вы еще будете писать гайды по Счетчикам?...

              Мне бы очень хотелось самому научиться (разобраться) в счетчиках))


              версия игры 1.52?
              Если 1.5 то переключайся на kingdom, если 1.52 то оно принимает лейблы

              Ванильная версия Медивал 2

              Если не ошибаюсь medneval.exe 1.2


              за что ты так с собой?



              Честно, даже не знаю, просто первый Stainless Steel на старом еще движке, а в Булатку играть комп слабый.

              Спасибо огромное за уделенное вами время мне).

              Еще один вопрос:
              declare_counter bla_bla
              set_counter bla_bla 5 - присваиваем значения счетчику
              inc_counter bla_bla 10 - Это значение добавляется до set_counter bla_bla 5 ???
              правильно понял?...

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


              да, все правильно


              то есть set_counter bla_bla 5 + inc_counter bla_bla 10 = set_counter bla_bla 15 ??
                 Norinke
                • Imp
                Imperial
                 

                Дата: 02 апреля 2020, 22:57

                BOOT 02 апреля 2020, 22:49

                Norinke 02 апреля 2020, 22:33

                BOOT 02 апреля 2020, 22:24

                Norinke 02 апреля 2020, 22:00

                BOOT 02 апреля 2020, 17:41

                Norinke 02 апреля 2020, 04:42

                BOOT 02 апреля 2020, 00:18

                Norinke 01 апреля 2020, 23:24

                BOOT 01 апреля 2020, 21:52

                Ув. Norinke.

                Посмотрите на скрипт где правильно а где нет???

                ну для начала очевидно

                1 - задайте label армии и используйте вместо имени везде где нужно, имя может такое уже существовать, а вот лейбл уникальная штука

                spawn_army
                faction portugal
                character Gill, named character, age 18, x 54, y 83

                spawn_army
                faction portugal
                character Gill, named character, age 18, x 54, y 83, label attack_something

                2 - я не вижу трейта, который убирал бы возможность генерал ходить

                3 - в случае если фракция не Португалия, у вас буду висеть лишние мониторы, это не кошерно

                4 - зачем использовать два раза if который выполняете те же условия(и зачем вы во 2 if поставили те же условия что и в сам монитор?)

                Цитата

                and not I_SettlementOwner Lisbon = portugal
                and I_NumberOfSettlements portugal > 0
                and not I_SettlementUnderSiege Lisbon



                if not I_LocalFaction portugal
                and not I_SettlementUnderSiege Lisbon
                and not I_SettlementOwner Lisbon = portugal
                and I_NumberOfSettlements portugal > 0



                5 - у вас все идет одно за другим здеся, то есть все сделается в один ход

                Цитата

                monitor_event FactionTurnStart FactionType portugal
                and I_CompareCounter AttacLisbonFail = 1
                if I_CharacterExists Rodrigo
                siege_settlement Rodrigo, Lisbon, maintain
                end_if
                set_counter AttacLisbonFail 2
                set_counter AttacLisbon 2
                terminate_monitor
                end_monitor

                monitor_event FactionTurnStart FactionType portugal
                and I_CompareCounter AttacLisbon = 2
                if I_CharacterExists Gill
                siege_settlement Gill, Lisbon, maintain
                end_if
                set_counter AttacLisbon 3
                terminate_monitor
                end_monitor

                monitor_event FactionTurnStart FactionType portugal
                and I_CompareCounter AttacLisbon = 3
                if I_CharacterExists Gill
                and I_SettlementUnderSiege Lisbon
                siege_settlement Gill, Lisbon, attack
                end_if
                set_counter AttacLisbon 4
                terminate_monitor
                end_monitor


                6 - зачем это? оно ничего не дает, просто место занимает

                Цитата

                monitor_event FactionTurnStart not FactionIsLocal
                set_counter AttacLisbonFail 0
                set_counter AttacLisbon 0
                terminate_monitor
                end_monitor




                Спасибо огромное вам))

                На счет "label" проблема, этот скрипт на движке Medieval II, medieval.exe, а он лабелы не читает, вырубает все скрипты(((

                А вы еще будете писать гайды по Счетчикам?...

                Мне бы очень хотелось самому научиться (разобраться) в счетчиках))


                версия игры 1.52?
                Если 1.5 то переключайся на kingdom, если 1.52 то оно принимает лейблы

                Ванильная версия Медивал 2

                Если не ошибаюсь medneval.exe 1.2


                за что ты так с собой?



                Честно, даже не знаю, просто первый Stainless Steel на старом еще движке, а в Булатку играть комп слабый.

                Спасибо огромное за уделенное вами время мне).

                Еще один вопрос:
                declare_counter bla_bla
                set_counter bla_bla 5 - присваиваем значения счетчику
                inc_counter bla_bla 10 - Это значение добавляется до set_counter bla_bla 5 ???
                правильно понял?...

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


                да, все правильно


                то есть set_counter bla_bla 5 + inc_counter bla_bla 10 = set_counter bla_bla 15 ??

                да, inc используется когда нужно что-то посчитать, к примеру количество ферм в городах

                SettlementTurnEnd SettlementBuildingExists = farm
                inc_counter how_many_farm_in_game 1
                   BOOT
                  • Imp
                  Imperial
                   

                  Дата: 02 апреля 2020, 23:26

                  Norinke 02 апреля 2020, 22:57

                  BOOT 02 апреля 2020, 22:49

                  Norinke 02 апреля 2020, 22:33

                  BOOT 02 апреля 2020, 22:24

                  Norinke 02 апреля 2020, 22:00

                  BOOT 02 апреля 2020, 17:41

                  Norinke 02 апреля 2020, 04:42

                  BOOT 02 апреля 2020, 00:18

                  Norinke 01 апреля 2020, 23:24

                  BOOT 01 апреля 2020, 21:52

                  Ув. Norinke.

                  Посмотрите на скрипт где правильно а где нет???

                  ну для начала очевидно

                  1 - задайте label армии и используйте вместо имени везде где нужно, имя может такое уже существовать, а вот лейбл уникальная штука

                  spawn_army
                  faction portugal
                  character Gill, named character, age 18, x 54, y 83

                  spawn_army
                  faction portugal
                  character Gill, named character, age 18, x 54, y 83, label attack_something

                  2 - я не вижу трейта, который убирал бы возможность генерал ходить

                  3 - в случае если фракция не Португалия, у вас буду висеть лишние мониторы, это не кошерно

                  4 - зачем использовать два раза if который выполняете те же условия(и зачем вы во 2 if поставили те же условия что и в сам монитор?)

                  Цитата

                  and not I_SettlementOwner Lisbon = portugal
                  and I_NumberOfSettlements portugal > 0
                  and not I_SettlementUnderSiege Lisbon



                  if not I_LocalFaction portugal
                  and not I_SettlementUnderSiege Lisbon
                  and not I_SettlementOwner Lisbon = portugal
                  and I_NumberOfSettlements portugal > 0



                  5 - у вас все идет одно за другим здеся, то есть все сделается в один ход

                  Цитата

                  monitor_event FactionTurnStart FactionType portugal
                  and I_CompareCounter AttacLisbonFail = 1
                  if I_CharacterExists Rodrigo
                  siege_settlement Rodrigo, Lisbon, maintain
                  end_if
                  set_counter AttacLisbonFail 2
                  set_counter AttacLisbon 2
                  terminate_monitor
                  end_monitor

                  monitor_event FactionTurnStart FactionType portugal
                  and I_CompareCounter AttacLisbon = 2
                  if I_CharacterExists Gill
                  siege_settlement Gill, Lisbon, maintain
                  end_if
                  set_counter AttacLisbon 3
                  terminate_monitor
                  end_monitor

                  monitor_event FactionTurnStart FactionType portugal
                  and I_CompareCounter AttacLisbon = 3
                  if I_CharacterExists Gill
                  and I_SettlementUnderSiege Lisbon
                  siege_settlement Gill, Lisbon, attack
                  end_if
                  set_counter AttacLisbon 4
                  terminate_monitor
                  end_monitor


                  6 - зачем это? оно ничего не дает, просто место занимает

                  Цитата

                  monitor_event FactionTurnStart not FactionIsLocal
                  set_counter AttacLisbonFail 0
                  set_counter AttacLisbon 0
                  terminate_monitor
                  end_monitor




                  Спасибо огромное вам))

                  На счет "label" проблема, этот скрипт на движке Medieval II, medieval.exe, а он лабелы не читает, вырубает все скрипты(((

                  А вы еще будете писать гайды по Счетчикам?...

                  Мне бы очень хотелось самому научиться (разобраться) в счетчиках))


                  версия игры 1.52?
                  Если 1.5 то переключайся на kingdom, если 1.52 то оно принимает лейблы

                  Ванильная версия Медивал 2

                  Если не ошибаюсь medneval.exe 1.2


                  за что ты так с собой?



                  Честно, даже не знаю, просто первый Stainless Steel на старом еще движке, а в Булатку играть комп слабый.

                  Спасибо огромное за уделенное вами время мне).

                  Еще один вопрос:
                  declare_counter bla_bla
                  set_counter bla_bla 5 - присваиваем значения счетчику
                  inc_counter bla_bla 10 - Это значение добавляется до set_counter bla_bla 5 ???
                  правильно понял?...

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


                  да, все правильно


                  то есть set_counter bla_bla 5 + inc_counter bla_bla 10 = set_counter bla_bla 15 ??

                  да, inc используется когда нужно что-то посчитать, к примеру количество ферм в городах

                  SettlementTurnEnd SettlementBuildingExists = farm
                  inc_counter how_many_farm_in_game 1



                  А большее значение выставить inc_counter how_many_farm_in_game 10 - к примеру?.

                  -Добавлено-

                  Это если правильно пронял таких условий будет штук десять то inc будет тоже 10?.
                     Norinke
                    • Imp
                    Imperial
                     

                    Дата: 03 апреля 2020, 05:27

                    можно выставить больше 10, это чисто как пример был

                    оно добавляет до текущего

                    declare some_counter

                    inc_counter some_counter 5
                    some_counter тут он уже 5

                    inc_counter some_counter 9
                    some_counter 14

                    inc_counter some_counter 10
                    some_counter 24

                    inc_counter some_counter 10
                    some_counter 34
                       BOOT
                      • Imp
                      Imperial
                       

                      Дата: 03 апреля 2020, 09:16

                      Norinke 03 апреля 2020, 05:27

                      можно выставить больше 10, это чисто как пример был

                      оно добавляет до текущего

                      declare some_counter

                      inc_counter some_counter 5
                      some_counter тут он уже 5

                      inc_counter some_counter 9
                      some_counter 14

                      inc_counter some_counter 10
                      some_counter 24

                      inc_counter some_counter 10
                      some_counter 34



                      А вот такое значение:
                      declare_counter bla_bla

                      set_counter bla_bla 5

                      and I_CompareCounter bla_bla < 6 - Будет считывать назад счетчик??

                      P.S. Спасибо вам огромное за время потраченое на меня)
                        • 7 Страниц
                        • « Первая
                        • 2
                        • 3
                        • 4
                        • 5
                        • 6
                        • Последняя »
                         
                        Перевести Страницу
                        Условия · Ответственность · Конфид. · Визитка · 03 июл 2026, 06:52 · Зеркала: ImtwOrg, ImtwSite, ImtwOnline