Сообщество Империал: Вопросы и ответы по моддингу в Total War: Warhammer - Сообщество Империал

Haktar

Вопросы и ответы по моддингу в Total War: Warhammer

Техническая часть
Тема создана: 23 октября 2015, 02:10 · Автор: Haktar
  • 125 Страниц
  • Первая
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • Последняя »
 5  
 Haktar
  • Imperial
Imperial
Основатель

Дата: 23 октября 2015, 02:10

Новости Total War: Warhammer


     Tryggvi
    • Imperial
    Imperial
    Bokareis

    Дата: 07 октября 2017, 22:38

    rawhide, я не уверен, что мой опыт из трейтов подойдёт (к тому же, на Аттиле), а на Вахе проверять команды мне не с руки по известным вам причинам.
    Но я бы попробовал зайти с такой стороны.
    Вводить переменные, мне кажется, слишком заморочно (точнее, я не могу похвастаться, что когда-нибудь такое проделывал). Точнее говоря, это даже не переменные, а функции самостоятельные, которые где-то ещё прописаны.
    Я бы удалил единый скрипт со второго скрина и вместо него поставил бы два: для игрока и для ИИ.
    В Аттиле и трейтах для этого сгодилась бы приписка "and context:character():faction():is_human()" "and not context:character():faction():is_human()" соответственно.
    То есть приписку эту добавлять к каждому основному условию, например (для человека):
    if character:has_garrison_residence() and context:character():faction():is_human() then"
    Конечно, можно было бы выпендриться и уместить это всё один скрипт с под-условиями и else (как на первом скрине есть условие внутри условия), но проще будет продублировать один и тот же скрипт с означенными приписками.

    Правда, я не помню, например, упомянутую команду с гарнизоном в Аттиле - там она по-другому выглядела. Так что и команда для человека/ИИ может по-другому выглядеть. В общем, поэкспериментируйте пока с этим, я АКит поставлю, попробую нутро глянуть.

    На том же скрине вы можете видеть, что context:character() отдельной командой (после local) сокращён до просто character (видимо, для удобства)
    В таком случае приписка может выглядеть и как and character:faction():is_human()

    - - - Сообщение автоматически склеено - - -

    Единственное, что эти скрипты в таком случае должны называться по-разному (ваш Кэп) - скажем, просто setup_experience_triggers и setup_experience_triggers_ai. И где-то это дело, видимо, ещё придётся прописывать для срабатывания, ну да эту процедуру вы знаете.
       rawhide
      • Imperial
      Imperial
      Форумчанин

      Дата: 07 октября 2017, 22:57

      Tryggvi

      Вводить переменные, мне кажется, слишком заморочно (точнее, я не могу похвастаться, что когда-нибудь такое проделывал). Точнее говоря, это даже не переменные, а функции самостоятельные, которые где-то ещё прописаны.
      это вы про "xp_battle_victory", "general is garrisoned" и проч?
      у меня ещё была идея, что это можно оформить по такому образцу:
      Imp

      или так. в скрипте отдельно вынесены дополнительные условия, например:
      Для просмотра ссылки Зарегистрируйтесь
      но в этих вариантах, как я понимаю, не обойтись без введения дополнительной переменной, вроде "is_ai_general",
      а именно от этого вы и предостерегали выше, я правильно понял?
      а в последнем вообще пришлось бы по аналогии прописывать это добро для каждой мажорной фракции :038:
         Tryggvi
        • Imperial
        Imperial
        Bokareis

        Дата: 07 октября 2017, 23:19

        rawhide

        это вы про "xp_battle_victory", "general is garrisoned" и проч?

        Угу.
        То, что вы написали - теоретически тоже может сработать. В конце концов, там так же есть условия, к которым можно что-либо приписать.
        Мне мой способ кажется наиболее простым, в том смысле, что вносит в скрипт как можно меньше отсебятины (никаких отдельных циклов писать не надо и т.п.) и, следовательно, снижает риск неработоспособности.
        Судя по вашему скрину со Скарсником, предложенная мной команда ...is_human должна работать - она там (у Скарсника) и есть, только в начале скрипта её, опять же, сократили до условного обозначения аж двумя командами - local character и local faction.
           rawhide
          • Imperial
          Imperial
          Форумчанин

          Дата: 07 октября 2017, 23:28

          интересно, а такой, самый простой вариант не может сработать? (по образцу куска про Скарсника):
          if not faction:is_human() then
          value = value * 2;
          end


          т.е. простой добавкой в существующий скрипт?
             Tryggvi
            • Imperial
            Imperial
            Bokareis

            Дата: 07 октября 2017, 23:34

            rawhide, можно попробовать, только я не вполне понимаю, куда именно в текущий скрипт это ставить.
            Кроме того, лучше сначала попробовать без not - на человеческой фракции будет легче проверить.
               rawhide
              • Imperial
              Imperial
              Форумчанин

              Дата: 07 октября 2017, 23:36

              rawhide

              только я не вполне понимаю, куда именно в текущий скрипт это ставить.

              в "особые правила". т.е. не к скарснику, а под него в общий список отдельных условий. там и по ТЭ есть и проч.
                 Tryggvi
                • Imperial
                Imperial
                Bokareis

                Дата: 07 октября 2017, 23:41

                По идее, можно совместить это с нижним условием на ИИ-агентов (вам ведь не нужно, чтобы они быстро прокачивались?) через else (там ведь как раз проверка на генерала задана).
                if not is_general then
                value = value * 0,5
                else
                value = value * 2;
                end;

                end;
                Ну это так, чисто теоретически.

                - - - Сообщение автоматически склеено - - -

                Кстати, любопытно, что Скарсник делает в одном скрипте с тёмными эльфами? :0182:
                   rawhide
                  • Imperial
                  Imperial
                  Форумчанин

                  Дата: 08 октября 2017, 00:13

                  Tryggvi

                  Кстати, любопытно, что Скарсник делает в одном скрипте с тёмными эльфами?
                  дык скрипты первой и второй части идут вместе. либо в одних папках, либо в одних файлах. да и в таблицах все эффекты и проч от первой части рядом барахлом из второй

                  - - - Сообщение автоматически склеено - - -

                  йес! получилось.
                  вот в таком виде:
                  Imp
                  то есть встало это в блок функции с дополнительным опытом. иначе пришлось бы дописывать к каждому перечисленному в начале таблицы случаю.
                  вот, крыс, первый противник Малекита на первом ходу, после поражения получил аж седьмой уровень(специально выставил значения побольше, чтобы сразу заметить изменения)
                  Для просмотра ссылки Зарегистрируйтесь
                  осталось добавить ограничение для агентов
                     rawhide
                    • Imperial
                    Imperial
                    Форумчанин

                    Дата: 08 октября 2017, 08:26

                    пока так сделал набор опыта у АИ:
                    Для просмотра ссылки Зарегистрируйтесь
                    вроде работает. если это технически неправильно - поправьте, пожалуйста :046:
                       Tryggvi
                      • Imperial
                      Imperial
                      Bokareis

                      Дата: 08 октября 2017, 11:50

                      rawhide, так выше же и так настраивается опыт для ИИ-агентов (вон даже зелёненьким подписано). В лучшем случае вы просто дублируете информацию, в худшем - эти команды наложатся друг на друга. Я могу ошибаться, но по положению else в том скрипте кажется, что оно относится именно к дилемме "игрок-ИИ" (т.е. все фракции), а не конкретно к Скарснику (или вы и опыт агентов проверили? Тогда оставляйте как есть, раз работает).
                      Если это так, то я бы оформил ваш скрипт одним условием:
                      if is_general and not faction:is human() then
                          value = value * 2,5
                      end;

                      Т.е. мы воздействуем на ИИ-генералов и ни на кого больше.
                        • 125 Страниц
                        • Первая
                        • 43
                        • 44
                        • 45
                        • 46
                        • 47
                        • 48
                        • 49
                        • Последняя »
                         Похожие Темы
                        ЭRetrofit Mod v 1.00 - Hotseat Medieval 2 Total War
                        Давным-давно в далекой-предалекой галактике шли... Тотальные воины
                        Автор А Алексей_Гетьма...
                        Обновление 22 мин. назад
                        TОбсуждение Total War: Pharaoh
                        Очередная часть серии игр Total War
                        Автор O OlegDo
                        Обновление 51 мин. назад
                        СЧто происходит с Total War?
                        Статья с группы Клуб Total War
                        Автор T Torpedniy_Kater
                        Обновление 57 мин. назад
                        Воспользуйтесь одной из соц-сетей для входа
                        РегистрацияВход на форум 
                        Сообщество ИмпериалTotal War: Warhammer Моды Total War: Warhammer Обратная Связь
                        Стиль:Language: 
                        «Империал» · Условия · Ответственность · Визитка · 25 апр 2024, 16:57 · Зеркала: Org, Site, Online · Счётчики