Сообщество Империал: Скрипты и скриптинг в Rome: Total War - Сообщество Империал

VIR

Скрипты и скриптинг в Rome: Total War

Делимся опытом, let the profit
Тема создана: 14 февраля 2007, 01:42 · Автор: VIR
 VIR
  • Imperial
Imperial
Форумчанин

Дата: 14 февраля 2007, 01:42

Тут занялся я созданием скриптов для своего мода. Полазил на буржуйских форумах и обнаружил, что можно очень многое сделать с их помощью! Ё%
Я например разабрался(надеюсь) как добавлять с помощью скрипта в ходе игры деньги, армии, новые строения! Но я хочу сделать привязку этих событий к выполнению определенных условий, а не просто с наступлением даты.
Возможно найдутся знающие люди и мы разберемся как это сделать все сообща!? Imp


Информация от камрада HouseOfHam

Spoiler (expand)


     Савромат
    • Imperial
    Imperial
    Форумчанин

    Дата: 01 января 2010, 18:12

    HouseOfHam
    Такой вопрос.
    В скрипте по возникновению армий (напр. Ксантиппа в Европе Барбарорум) есть такая строчка:
    if I_CharacterTypeNearTile slave diplomat, 0 68,11
    При этом сама армия возникает в другой точке, довольно далекой от указанной.

    Смысл команды по документации - "Есть ли в указанной точке персонаж (в данном случае дипломат повстанцев)?

    Но вот как эту точку задать? Чем она определяется - при чем тут позиция в глубине Сахары (68, 11) и возникновение армии недалеко от Карфагена? А если мне надо в Испании армию создать - что мне писать в этой строчке?

    И вообще какой в этом смысл?
       AriX
      • Imperial
      Imperial
      Форумчанин

      Дата: 03 января 2010, 01:46

      HouseOfHam (22 Дек 2009, 00:16):

      Единственное что приходит в голову, это создать скриптом во всех поселениях здание (на основании каких-то определённых событий/условий) присутствие/отсуствие которого является условием найма.

      Ну,хорошо,тогда давайте привяжем скрипт не к реформе Мария,а к,например,строительству 5 Имперских дворцов и 3 Литейных.Поможите? Imp
         Савромат
        • Imperial
        Imperial
        Форумчанин

        Дата: 03 января 2010, 09:40

        HouseOfHam
        Разверну вопрос на примере чтобы мне понятнее было (я же не программер а простой любопытный пользователь)

        В скрипте Европы Барбарорум поднимающем армию Нараваса ниписано:
        ;--------------------------------------------------
        ;Section 8q: Naravas
        ;--------------------------------------------------
        declare_counter NaravasBasicConditions
        declare_counter SpawnNaravas

        Я правильно понимаю что этим задается проверка на базовые условия появления Нараваса и на то не появился ли он раньше - чтобы исключить повторное и далее вновь и вновь возникновение его армии?

        дальше прописываются условия (владение определенными городами)
        monitor_event FactionTurnStart FactionType egypt
        and FactionIsLocal
        and I_TurnNumber > 107

        set_counter NaravasBasicConditions 0

        if I_TurnNumber < 192
        if I_SettlementOwner Adrumeto = egypt
        set_counter NaravasBasicConditions 1
        end_if
        и т.д.

        А затем - проверка не возник ли он ранее. И вот тут появляется этот самый ребельский дипломат в глубине Сахары..
        ; Has Naravas has already been spawned?
        ;
        if I_CharacterTypeNearTile slave diplomat, 1 95,4
        set_counter NaravasBasicConditions 0
        terminate_monitor
        end_if
        end_if

        if I_TurnNumber > 191
        terminate_monitor
        end_if

        end_monitor

        При чем тут slave diplomat, 1 95,4 - в радиусе 1 координаты от точки на самом нижнем краю карты куда емнип даже и попасть нельзя?
        И если мы пишем событие для другой армии - то как нам эту точку задать праивльно - любую свободную в Сахаре у края карты что ли?

        Далее.
        Вот идет скрипт подъема армии и в нем - строчка
        monitor_event FactionTurnStart FactionType egypt
        and FactionIsLocal
        and I_CompareCounter SpawnNaravas = 1

        set_counter SpawnNaravas 0

        spawn_army

        Это типа "армия появилась и мы сбрасываем условия ее появления в 0 чтобы она снова не появилась"?

        И вот это что значит:

        advance_advice_thread Naravas_Thread

        spawn_character slave Abraham, diplomat, command 0, influence 0, management 0, subterfuge 0, age 38, , x 95, y 4

        move Naravas, 73, 98

        end_monitor

        ; Reset basic conditions counter
        ;
        monitor_event FactionTurnStart FactionType egypt
        and FactionIsLocal
        and I_CompareCounter NaravasBasicConditions = 1

        set_counter NaravasBasicConditions 0

        if I_TurnNumber > 191
        terminate_monitor
        end_if

        end_monitor

        - зачем тут снова дипломат ребельный по имени Абрахам в Сахаре и зачем двигать Нараваса?

        И - Reset basic conditions counter - зачем если уже сбросили все на 0?

        Сорри если я спрашиваю очевидные вещи но понять хочется...
           Julius
          • Imperial
          Imperial
          Forbidden

          Дата: 03 января 2010, 10:35

          Chernish 3 Янв 2010 (09:40):

          При чем тут slave diplomat, 1 95,4 - в радиусе 1 координаты от точки на самом нижнем краю карты куда емнип даже и попасть нельзя?
          дипломат тут имеет функцию постоянной переменной, если можно так сказать (ведь как известно в РТВ, переменные теряют свои значения после перезагрузки игры). Если по простому, то логика следующая - раз дипломат уже есть в заданных координатах, значит Наравас уже был создан, и значит повторно его вызывать не надо. (ведь если его убьют, то по другому это условие никак не проверить, т.к. обычная переменная может потеряться при перезагрузке). Для этого создатели и решили воспользоваться дипломатом Imp По идее на его месте мог быть любой юнит, которого можно вызвать через консоль..
          Итак, если дипломат уже есть в нужных координатах, то базовое условие обнуляется и мониторинг этого события завершается:
          Spoiler (expand)


          Chernish 3 Янв 2010 (09:40):

          И если мы пишем событие для другой армии - то как нам эту точку задать праивльно - любую свободную в Сахаре у края карты что ли?
          Нет, пишем как раз необходимые координаты..
          в случае армии Нараваса, это:
          Spoiler (expand)

          Но чтобы не изобретать заново велосипед, рекомендую воспользоваться также и "методом дипломата", что и разрабы ЕВ (дабы избежать повторного спауна армии)..

          Chernish 3 Янв 2010 (09:40):

          Это типа "армия появилась и мы сбрасываем условия ее появления в 0 чтобы она снова не появилась"?
          Да.

          Chernish 3 Янв 2010 (09:40):

          И вот это что значит:
          advance_advice_thread Naravas_Thread - скорее всего просто сообщение о том, что вот появилась армия, бла бла..
          move Naravas, 73, 98 - вот и мне не совсем понятно почему его сначала создают в одном месте (72, 98), а потом двигают на соседнюю клетку.. там случайно не находится ни один город? Imp

          Chernish 3 Янв 2010 (09:40):

          - зачем тут снова дипломат ребельный по имени Абрахам в Сахаре и зачем двигать Нараваса?
          не снова) он создаётся одновременно с армией, только на недоступных игроку координатах.. А выше в скрипте лишь проверялось - есть ли он уже там, или нет.

          Chernish 3 Янв 2010 (09:40):

          И - Reset basic conditions counter - зачем если уже сбросили все на 0?
          Вот тоже не знаю, но думаю причины на это у них были.. может перестраховались? Imp
             Савромат
            • Imperial
            Imperial
            Форумчанин

            Дата: 03 января 2010, 11:17

            Julius2

            Julius2 3 Янв 2010 (10:35):

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

            О! Вот что значит разъяснение знающего человека :-). Спасибо! Теперь понятно..

            Julius2 3 Янв 2010 (10:35):

            Нет, пишем как раз необходимые координаты..
            в случае армии Нараваса, это:

            Это координаты появления армии Нараваса, а я спрашиваю про координаты точки в которой появляется дипломат-переменная. Они могут быть любые в недоступном регионе юга Сахары у края карты? Где физически можно поставить юнит?

            Julius2 3 Янв 2010 (10:35):

            advance_advice_thread Naravas_Thread - скорее всего просто сообщение о том, что вот появилась армия, бла бла..

            То есть если его не напишем то ничего страшного не будет...

            Julius2 3 Янв 2010 (10:35):

            вот и мне не совсем понятно почему его сначала создают в одном месте (72, 98), а потом двигают на соседнюю клетку.. там случайно не находится ни один город?

            Проверю.. Насколько я знаю армию можно поднять только вне города...

            Julius2 3 Янв 2010 (10:35):

            не снова) он создаётся одновременно с армией, только на недоступных игроку координатах.. А выше в скрипте лишь проверялось - есть ли он уже там, или нет.


            Угу. Теперь понятно.

            Julius2 3 Янв 2010 (10:35):

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

            ОК, как рабочая версия подойдет, прописать эти строки для перестраховки нетрудно...

            Вообще спасибо - многое стало понятнее.
            В принципе скрипты пишутся по документации которые Грас Дюк выложил еще в 2005 г. Но некоторые вещи (особенно последовательность команд и их смысл) бывают новому человеку непонятны.
               Julius
              • Imperial
              Imperial
              Forbidden

              Дата: 03 января 2010, 11:25

              Chernish 3 Янв 2010 (11:17):

              То есть если его не напишем то ничего страшного не будет...
              думаю не будет)
              можете проверить, кстати, в файле export_descr_advice.txt, что это за трид - Naravas_Thread ..
              просто я на работе и этот файл мне недоступен Imp
                 Савромат
                • Imperial
                Imperial
                Форумчанин

                Дата: 03 января 2010, 11:39

                Julius2 3 Янв 2010 (11:25):

                я на работе

                Сочувствую..

                AdviceThread Naravas_Thread
                GameArea Campaign

                Item Naravas_Text_01
                Uninhibitable
                Verbosity 0
                Threshold 1
                MaxRepeats 0
                RepeatInterval 1
                Attitude Normal
                Presentation Default
                Title Naravas_Text_01_Title
                Text Naravas_Text_01_Text1


                Текст - {Naravas_Text_01_Title}Our Massylian allies have sent us aid! - Наши нумидийские союзники пришли нам на помощь!
                и т.д.

                В принципе полезная вещь. Если поднимать армию Гамилькара в Иберии то сообщение об этом весьма полезно в игровом плане (а то игрок может и не заметить сразу) + краткая историческая справка кто, зачем и почем...



                А что такое Uninhibitable ?

                72,98 - это точка на границе Карфагена и ребельской Нумидии, на ней расположен значок "слоновая кость", перемещается Наравас на соседнюю клетку, до ближайшего города - Утики - довольно далеко.
                зачем его передвигать то? Чтобы он двигаться мог? Где-то я читал что поднимаемые армии неподвижны иногда.. Imp
                   Julius
                  • Imperial
                  Imperial
                  Forbidden

                  Дата: 03 января 2010, 12:00

                  Chernish 3 Янв 2010 (11:39):

                  Текст - {Naravas_Text_01_Title}Our Massylian allies have sent us aid! - Наши нумидийские союзники пришли нам на помощь!
                  и т.д.
                  угу, как я и говорил)

                  Chernish 3 Янв 2010 (11:39):

                  А что такое Uninhibitable ?
                  не знаю.. помню сам сталкивался.. а документация что говорит, по этому поводу? Imp

                  Chernish 3 Янв 2010 (11:39):

                  зачем его передвигать то? Чтобы он двигаться мог? Где-то я читал что поднимаемые армии неподвижны иногда..
                  хмм, любопытно) вот оно как Imp тогда лучше вам поступить также со своей армией, мало ли что)
                     HouseOfHam
                    • Imperial
                    Imperial
                    Форумчанин

                    Дата: 07 января 2010, 02:19

                    Дипломата кидают в такое место из которого он физически не может уйти (если только не помрёт), иначе проверка на его наличие в этом месте потеряла бы смысл.
                       Савромат
                      • Imperial
                      Imperial
                      Форумчанин

                      Дата: 07 января 2010, 07:42

                      HouseOfHam
                      Ага :-). Его можно поместить в недоступную зону (юг Сахары) на такое место где нельзя двигаться.
                      А после его смерти уже должно действовать ограничение на событие по ходам...

                      Вот только много ли там таких мест? Imp Может его на какой малый островок загнать? Вроде Аи не посылает к таким дипломатам на остров убийц..
                         Похожие Темы
                        МКак убрать вылет при загрузке сейва Medieval 2: Total War?
                        Как убрать вылет при загрузке сейва игры? Для мод Монгольское нашествие 2.0
                        Автор D DinarMayor
                        Обновление 29 мин. назад
                        С[Канал] Total War | Задира
                        YouTube-канал Total War | Задира
                        Автор T Thanatis
                        Обновление 56 мин. назад
                        D[TW:W-3] Total War: WARHAMMER III - Thrones of Decay
                        [TW:W-3] Total War: WARHAMMER III - Thrones of Decay
                        Автор B BL@CK DE@TH
                        Обновление Вчера, 23:55
                        Воспользуйтесь одной из соц-сетей для входа
                        РегистрацияВход на форум 
                        Сообщество ИмпериалRome: Total War Моды Rome: Total War Мастерская RTW Обратная Связь
                        Стиль:Language: 
                        «Империал» · Условия · Ответственность · Визитка · 19 апр 2024, 00:56 · Зеркала: Org, Site, Online · Счётчики