Сообщество Империал: Важная информация по моддингу Total War: Attila - Сообщество Империал

papeion

Важная информация по моддингу Total War: Attila

Туторы, советы, нюансы - без обсуждения
Тема создана: 16 апреля 2016, 06:52 · Автор: papeion
  • 6 Страниц
  • 1
  • 2
  • 3
  • 4
  • 5
  • Последняя »
 4 
 Tryggvi
  • Imperial
Imperial
Bokareis

Дата: 06 июля 2020, 16:49

В этой теме - собирать только важную информацию по моддингу, для справки и использования камрадам. Также в шапке будут даваться ссылки и на другие статьи на этом и сторонних ресурсах. Обсуждать и задавать вопросы здесь не надо - пишите их в Для просмотра ссылки Зарегистрируйтесь!

Список ссылок:

1) Скоупы: Для просмотра ссылки Зарегистрируйтесь, Для просмотра ссылки Зарегистрируйтесь
2) Для просмотра ссылки Зарегистрируйтесь
3) Для просмотра ссылки Зарегистрируйтесь (посты 4-13)
4) Для просмотра ссылки Зарегистрируйтесь
5) Для просмотра ссылки Зарегистрируйтесь
6) Для просмотра ссылки Зарегистрируйтесь
7) Для просмотра ссылки Зарегистрируйтесь
8) Для просмотра ссылки Зарегистрируйтесь, если ссылки не открываются, то см. Для просмотра ссылки Зарегистрируйтесь.
9) Для просмотра ссылки Зарегистрируйтесь
10) Для просмотра ссылки Зарегистрируйтесь (ссылка на TWC)
11) Для просмотра ссылки Зарегистрируйтесь
12) Для просмотра ссылки Зарегистрируйтесь
13) Для просмотра ссылки Зарегистрируйтесь
14) Для просмотра ссылки Зарегистрируйтесь
15) Для просмотра ссылки Зарегистрируйтесь
16) Для просмотра ссылки Зарегистрируйтесь
17) Для просмотра ссылки Зарегистрируйтесь
18) Для просмотра ссылки Зарегистрируйтесь
19) Для просмотра ссылки Зарегистрируйтесь
20) Для просмотра ссылки Зарегистрируйтесь
21) Для просмотра ссылки Зарегистрируйтесь
22) Для просмотра ссылки Зарегистрируйтесь
23) Для просмотра ссылки Зарегистрируйтесь (статья)
24) Для просмотра ссылки Зарегистрируйтесь (статья)
25) Для просмотра ссылки Зарегистрируйтесь (ссылка, EN)
26) Для просмотра ссылки Зарегистрируйтесь
27) Программа RMEditor (редактирование файлов моделей rigid_models_v2 и анимации anim) - Для просмотра ссылки Зарегистрируйтесь

Авторы материалов и советов: asadyan (TWC), Mady, papeion, Pavlinho, rawhide, Tryggvi, vadim, стратег2
     Pavlinho
    • Imperial
    Imperial
    Форумчанин

    Дата: 30 августа 2020, 19:40

    Программа RMEditor

    С разрешения разработчика выкладываю программу RMEditor, обновленная версия. Она еще не полностью завершенная, присутствуют какие-то баги, недочеты, однако разработчик Phazer продолжает работать над программой и открыт для общения по поводу улучшения своей программы. Вопросы по работе программы вы можете задавать мне, постараюсь ответить то, что знаю, какие-то предложения (адекватные, аргументированные по улучшению работы программы), незнакомые вопросы я могу передать непосредственно разработчику. В архиве расположены файл программы, а также файлы-txt с информацией по распространению. Программа предназначена для моддинга игр серии Тотал Вар - Аттила, Рим2, Вархаммер, думаю, можно попробовать и другие игры (более поздние).
    Соответственно, используйте программу на свой страх и риск, однако по своему опыту могу сказать, что она очень и очень помогает и облегчает моддингТВ. Думаю, вполне можно еще раз выразить благодарность за программу разработчику Phazer и всем людям, которые помогали в разработке и тестировании программы. Всем удачи в моддинге!!!

    ПС Кто использует более раннюю
    версию 0.5-0.6 программы (Раскрыть)
    (о которой я упоминал в статьях), эту новую закидывайте в папку с игрой и программа автоматически распознает нужный путь (по крайне мере у меня так сработало)...
       rawhide
      • Imperial
      Imperial
      Форумчанин

      Дата: 01 мая 2016, 18:23

      papeion

      Только на переходе хода вылет... но это понятное дело, так и должно быть.

      может найдутся и еще какие элементы

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

      еще нужно в campaign_model/human_factions проставить номер новой играбельной фракции. как я понимаю, это номер блока players_array+1 или же номер этот находится в первой строке титульной закладки конкретной фракции:
      Для просмотра ссылки Зарегистрируйтесь
         papeion
        • Imperial
        Imperial
        Форумчанин

        Дата: 31 мая 2016, 16:32

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

          Дата: 25 июля 2016, 05:55

          papeion

          Заметил одну вАжную вещь на счёт скоупов (областей применения):
          Если в одной таблице прописать две строки с одинаковым эффектом (например, для технологии), но выставить разную область применения (скоуп), то эффект будет работать в двух областях применения (скоупах).

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

          Чтобы информация выводилась адекватно, СА сделали несколько идентичных скоупов с разными локализациями или вообще без локализации (скрытые).
          1. general_to_force_own
          2. general_to_force_own_horde
          3. general_to_force_own_unseen
          Например: это три скоупа-клона, у которых одно и то же назначение "персонаж при командовании армией". Разница только в локализации.
          Первый выводит на экран "(подчинённые войска)", второй "(подчинённая орда)", третий без локализации.

          А так же, СА сделали клоны эффектов.
          Например для генеральского скила "Ворон" используются два идентичных эффекта с разными скоупами.
          1. att_effect_building_construction_cost_mod
          2. att_effect_force_building_cost_mod
          "Ворон", это варварский скил, а ведь варварская фракция может быть сейчас ордой, а на следующем ходу стать оседлой. И, чтобы показать, что скил "Ворон" снижает цену строительства в обоих случаях, СА и сделали клон эффекта. И мы, благодаря этому, видим, что "Ворон" снижает цену строительства как при командовании ордой, так и во вверенной провинции.

          В некоторых случаях СА косячит и прописывает не тот скоуп. Например, в случае скила "Охотник" для его эффекта att_effect_food_production_characters_horde с локализацией "Пища: \+%n от персонажей (в состоянии орды)" они указали скоуп general_to_force_own, который имеет локализацию "(подчиненные войска)". Имеем результат: Пища: \+%n от персонажей (в состоянии орды)(подчиненные войска). Хотя было бы логичнее в этом случае дать скрытый скоуп, т.е. без локализации, это general_to_force_own_unseen, ибо вывод "(подчинённые войска)" в данном случае не нужен.

          Или мододелы косячат, когда например, в таком же случае дают скоуп general_to_force_own_horde, у которого локализация "(подчиненная орда)".
          В результате выводится такое Г: Пища: \+%n от персонажей (в состоянии орды)(подчиненная орда).

          Вот такие финты ради того, чтобы адекватно вывести инфу на экран об эффектах и скоупах. И вот такие ошибки, если это не учитывать.
             papeion
            • Imperial
            Imperial
            Форумчанин

            Дата: 22 октября 2016, 14:03

            Похоже, что при создании файла старпос в АкиТе учитываются правки, сделанные только в таблицах старпос. Другие таблицы по боку, к сожалению.

            В результате, например, через АкиТ мы не сможем создать новую играбельную фракцию. А придётся вручную копаться в готовом старпос.
            Или другой пример: не сможем изменить группу имён или группу портретов для тех генералов, которые будут в старпос. Это опять придётся делать потом, вручную.

            Акит - сволочь такая )))
               Tryggvi
              • Imperial
              Imperial
              Bokareis

              Дата: 21 апреля 2017, 00:56

              Как делать трейты

              Работа с трейтами распадается на два блока: работа с таблицами в ПФМе для создания трейта и работа в ПФМе со скриптами для редактирования/создания триггера (это набор условий, при котором происходит проверка на получение трейта).
              Нужна ли нам будет вторая часть, если мы используем ванильный триггер? Толком протестировать я это не
              смог, но думаю, что да - всё равно придётся дописывать кое-что в скриптах.
              Замечу, что также нет смысла приниматься за дело без АКита, поскольку жизненно важная таблица trait_triggers (нужная не для создания трейта как такового, но для получения информации о триггере) в ПФМе просто недоступна.
              Я опишу полный цикл создания трейта, включая создание нового триггера. Думаю, после этого работа со старыми трейтами и триггера станет понятна и так.

              Итак, вот полный перечень задействованных таблиц:
              character_traits
              trait_info
              trait_to_included_agents
              trait_to_antitraits
              character_trait_levels
              trait_level_effects
              trigger_effects

              В character_traits создаётся именно трейт, названия колонок в общем и целом понятны. Обращает на себя внимание no_going_back_level. Видимо, именно это Для просмотра ссылки Зарегистрируйтесь rawhide. Я с этим, по крайней мере, не экспериментировал. Остаётся загадкой колонка precedence. Никакого влияния от её параметров я не заметил. Короче говоря, ставьте, как в ванили.

              Далее прописывается техническая оснастка трейта. В trait_info выдаётся общая цель трейта. В игре это только agent. Хотя есть опции region и unit (остаётся только гадать, как это выглядит на практике). В trait_to_included_agents задаётся конкретная цель трейта - генерал, жрец и т.д. Чисто теоретически можно обойтись без этой таблицы, задав жёсткие условия в скрипте, но, как говорится, лучше перебдеть. В системе трейтов вообще много такого, что кажется дублирующим или излишним, но приходится всё это исполнять, как обряд.

              trait_to_antitraits нужна нам, только если мы делаем трейт, противоположный существующему. Или сразу пару противоположных трейтов. Тут всё понятно - указанные в паре трейты будут друг друга заменять, не встречаясь одновременно. Как понимаю, нужно прописывать отдельно и пару трейтА - трейтБ, и пару трейтБ - трейтА, иначе замена будет работать только "в одну сторону".

              Теперь переходим к содержимому трейта. В character_trait_levels мы создаём уровни трейта, создавать уровень нужно даже в том случае, если он у трейта единственный. Тут плюс-минимум всё тоже понятно по названиям колонок. Есть, правда, пустые колонки с манящими названиями вроде epithet_text (уж не кличка ли это?), но они ещё ждут своего исследователя. В этой таблице, однако, задаётся самый загадочный и едва ли не самый главный аспект трейта - threshold (порог). Опытным путём было выявлено, что это количество успешных проверок, которые должен пройти трейт, чтобы получить данный уровень. Т.е., скажем, если у первого уровня threshold = 2, а условие получение трейта, скажем, - выиграть в битве, вероятность же получения = 100%, то персонаж должен получить трейт только после второй выигранной битвы.
              В целом при назначении threshold стоит ориентироваться на ванильные показатели. По крайней мере, поначалу.
              Отмечу, что локализация трейта привязывается именно к его уровням (как название, так и описание - coloured text). Никакого общего названия для трейта не существует.

              Таблицу trait_level_effects нет смысла даже комментировать. Стандартная привязка эффектов, величин и скоупов к уровням трейта.

              На данной стадии трейт уже готов, и его, скажем, можно прописать в стартпозе, так что он будет у данного персонажа со старта. Только вот раздавать этот трейт в дальнейшем игра не будет.

              В trigger_effects мы приписываем трейт к определённому триггеру (придумываем, соответственно, новый). Судя по тестам, колонка value - это тот показатель, который добавляется к threshold после успешного прохождения проверки. Другими словами, если у вас threshold = 3 и value = 1, то трейт появится у персонажа после трёх успешных проверок. А если value = 3, то после первой же успешной проверки. Это проще всего понаблюдать, создав трейт, выдаваемый каждый ход всем персонажам с вероятностью 100, и запустив новую кампанию. В первом случае трейт будет получен на третий ход (каждый ход срабатывала успешная проверка), во втором – на первом же ходу, как только мы запустили кампанию.
              Ну а вероятность, как нетрудно догадаться прописывается здесь же, в колонке chance.

              На этом с таблицами мы покончили, можно приступать к скриптам, но сперва нам надо поучиться.
              Идём в АКите в trait_triggers - это, своего рода, скриптовый файл, разложенный в табличном виде. Настольный учебник по созданию трейтов. Разобравшись в том, что и как там написано, мы усвоим азы синтаксиса скриптов.
              Итак, тут у нас есть триггер, список ивентов, при которых триггер срабатывает (там выпадающий список, интуитивно понятный - наступление нового хода, рождение персонажа, взросление персонажа и т.п.). И самое главное - conditions, условия. Это условия, при которых происходит на получение трейта.
              Тут задаётся контекст - какие персонажи, каких фракций, религий, культур, субкультур, на какой территории и при каких других условиях будут проходить проверки на получение данного трейта.

              В этой колонке настоящее нагромождение текста, но разобраться в нём довольно легко, если учесть, что каждой команде (уж извините, в терминологии не силён) предшествует технический текст и его можно пропускать (хотя я предполагаю, что можно манипулировать и им, но это надо уже совсем в деле разбираться).
              Например, такое условие:
              (char_is_general_with_army(context:character()) and context:character():faction():name() == "bel_fact_byzantine_expedition" and context:character():faction():has_technology("bel_roman_civil_gloria_romanorium"
              ) and not context:character():model():campaign_name("pro_attila")) and not context:character():model():campaign_name("cha_attila")

              Переводится это так:
              Персонаж - генерал с армией И имя фракции - "Римская экспедиция" И фракция персонажа открыла технологию gloria_romanorium И НЕ кампания-пролог И НЕ гранд-кампания
              Т.е. трейт выдаётся генералам и губернаторам Римской экспедиции в кампании Велизария после открытия определённой техи. Всё просто.
              Команды типа context:character():faction():name() – это тот самый технический текст. Мы можем присваивать им ключи, взятые из таблиц – названия фракций, религий и прочего (в данном случае - bel_fact_byzantine_expedition).
              Есть и самостоятельные функции, например, char_is_general_with_army. На самом деле, под этой функцией уже закодирован определённый контекст, который нам не нужно прописывать (контекст, в общем-то, ясен из названия).
              NB. Если открыть пак data через ПФМ, то по адресу lua_scripts / lib_export_triggers.lua можно найти своеобразный сборник этих самых функций. Не могу сказать, что я нашёл там что-то экстраординарное, но для человека, который уже разобрался в trait_triggers, может быть полезно.

              Копируем в свой пак из той же ветки lua_scripts файл export_triggers.lua. Я бы рекомендовал скопировать его содержимое в Notepad++, потому что он куда более удобен для скриптописания, подсвечивает команды и переменные, а тут каждый лишний пробел может стать фатальным.
              Просто копируем последний скрипт и начинаем его править. Вот, например, как выглядит один из трейтовых скриптов Шарлеманя:
              --[[ cha_trig_character_becomes_faction_leader ]]--
              
              function cha_trig_character_becomes_faction_leader_impl (context)
              		return context:character():is_faction_leader() and context:character():faction():is_human() and context:character():model():campaign_name("cha_attila")
              end 
              
              events.CharacterBecomesFactionLeader[#events.CharacterBecomesFactionLeader+1]
               =
              function (context)
              	if cha_trig_character_becomes_faction_leader_impl(context) then
              		effect.trait("cha_trait_leader_influence", "agent", 1, 100, context)
              		return true
              	end
              	return false
              end

              Схематически это будет выглядеть так (извиняюсь, табуляция пропадает, но её тоже надо блюсти):

              --[[ <Название скрипта, думаю, чисто для красоты> ]]--

              function <Название триггера>_impl (context)
              return <набор контекстов>
              end

              events.<название ивента - из trait_triggers>[#events.<то же самое название ивента>+1] =
              function (context)
              if <название триггера>_impl(context) then
              effect.trait("<название трейта>", "<категория из trait_info>", <показатель value из trigger_effects>, <показатель chance из trigger_effects>, context)
              return true
              end
              return false
              end

              Нетрудно догадаться, что всё, что не вошло в скобки <>, трогать не стоит.

              Но самое сердце (и источник всех глюков) трейтового скрипта - это набор условий, или контекстов.
              Синтаксис его довольно прост - его мы уже наблюдали в trait_triggers. Ровно те же самые команды и функции мы из него и берём.
              У нас есть несколько логических операторов (капсом - для наглядности):
              - AND - "и"
              - OR - "или"
              - NOT - оператор отрицания для функций (у которых нет значка присвоения ==). Обычно идёт в комбинации с AND или OR. Т.е. если мы хотим задать условие "все, кроме генералов, командующих армией", то мы пишем not char_is_general_with_army(context:character())
              - ~= - оператор отрицания для команд со значком присвоения ==. Собственно, этот значок он и заменяет. Т.е., если мы хотим задать условие "любая фракция, кроме фракции гаутов", то мы пишем context:character():faction():name() ~= "att_fact_gauti". Ни в коем случае не используйте NOT в данном случае. Весь скрипт просто перестанет работать.
              - и наконец, обычные скобки (). Как в формулах Экселя. С помощью них можно задавать довольно сложные условия, группируя контексты. Скажем, условие вида

              Цитата

              (context:character():is_faction_leader() and context:character():faction():name() == "att_fact_mauri") or context:character():faction():name() == "att_fact_gaetuli"

              - позволяет нам воздействовать конкретно на лидера фракции мавров ИЛИ на всех персонажей фракции гетулов. Но не на рядовых персонажей фракции мавров.
              Тут логика - наше всё. Короче говоря, если вы не понимаете, каковы будут последствия у условия ЕСЛИ (А И Б), а какие - у условия ЕСЛИ (А ИЛИ Б), то лучше вообще не подходите к трейтам.

              На закуску ряд полезных условий для создания трейта (из тех, что я лично проверял или использовал):
              - context:character():is_faction_leader() - персонаж - лидер фракции
              - char_is_general(context:character()) - персонаж - генерал (любой не женский персонаж и не агент)
              - char_is_governor(context:character()) - персонаж - губернатор
              - context:character():faction():name() == "ВАШ ТЕКСТ" - фракция персонажа
              - context:character():model():campaign_name("ВАШ ТЕКСТ") - определить кампанию (пролог, основная, Велизарий, Карл)
              - context:character():faction():state_religion() == "ВАШ ТЕКСТ" - гос. религия персонажа
              - context:character():has_trait("ВАШ ТЕКСТ") - персонаж имеет определённый трейт
              - context:character():faction():culture() == "ВАШ ТЕКСТ" - культура фракции персонажа
              - context:character():faction():subculture() == "ВАШ ТЕКСТ" - субкультура фракции персонажа
              - context:character():age() > ВАШ ТЕКСТ - возраст персонажа больше заданного числа (ну или меньше, если знак перевернуть)
              А есть ещё контексты, связанные с битвами... :0182:

              И последнее. Если вы просто добавляете триггеры, то нет смысла засовывать в свой пак весь ванильный export_triggers.lua.
              Можно переименовать его как-нибудь, удалить содержимое и писать всё с нуля.
              Но, чтобы этот файл заработал, его надо прописывать в той же ветке в файле all_scripted.lua по образцу:
              local triggers = require "data.lua_scripts.ИМЯ_СКРИПТОВОГО_ФАЙЛА"
                 стратег2
                • Imperial
                Imperial
                Форумчанин

                Дата: 14 июля 2017, 13:18

                Как добавить сюжетные миссии для минорных фракций.

                Сначала вам нужен мод с новой игровой фракцией или возьмите свой собственный, мой пример - Suebi для кампании bel_, вы можете сделать то же самое для основного att_. Большая часть работы проста «копировать и вставлять».
                Вам нужно следовать таблицам:

                дБ /
                advice_levels_tables
                advice_threads_tables
                missions_tables


                campaigns/bel_attila/factions
                bel_fact_suebi.lua
                bel_fact_suebi_intro.lua


                campaigns/bel_attila
                missions.text

                text
                localisation.loc


                advice_levels_tables клонирует одну строку, подобную этой «bel_advice_intro_flyby_suebi», и меняет ее в имени вашей фракции. Как в следующем случае вы должны изменить ID в том, что хотите, не делайте двойной там!

                advice_threads_tables то же, что и таблица bevor, клонировать строку, изменяя имя фракции.

                missions_tables здесь вы должны клонировать 5 строк, подобных этому, и изменить его на свою фракцию

                att_objective_bel_suebi_primary_1_seal_2
                att_objective_bel_suebi_primary_2_seal_3
                att_objective_bel_suebi_primary_3_seal_4
                att_objective_bel_suebi_primary_4_seal_5
                att_objective_bel_suebi_primary_5_seal_6



                Bel_fact_suebi.lua скопируйте любую запись из другой фракции и измените имя фракции. В последних строках вы найдете такую ​​запись, сделайте то же самое и измените имя фракции!

                - запуск миссий
                Cm: trigger_custom_mission ("bel_fact_suebi", "att_objective_bel_suebi_primary_1_seal_2");
                конец;

                Это триггер, который запускает миссии вашей главы!


                Bel_fact_suebi_intro.lua только сделать копию из другой фракции, вы должны для первых шагов ничего. Позже вы можете изменить его на свою фракцию - вы можете пропустить введение!

                Mission.text здесь вы можете редактировать свои собственные миссии, скопировать полную 5-ю главу и изменить здесь название фракции. ПОЖАЛУЙСТА, не редактируйте миссии миссий главы, которые вы видели, что она работает. Что я имею в виду, начать игру, вы должны увидеть видео и взглянуть на миссию главы. У вас есть успех ... чем редактировать миссии в свои собственные идеи.


                Localisation.loc здесь вы можете написать свой собственный текст для своих пользовательских миссий - например, вам это нужно
                mission_text_text_att_objective_faction_bel_suebi_1_1_heading

                Это может помочь вам изменить ваши задачи!

                Удачи и получайте удовольствие, я надеюсь, что я ничего не потерял!

                Для просмотра ссылки Зарегистрируйтесь
                   стратег2
                  • Imperial
                  Imperial
                  Форумчанин

                  Дата: 25 октября 2017, 16:49

                  Как перемещать технологии в технологическом древе.
                  В таблице technology_node_links первый ряд child_key - это технология которую мы рассматриваем.
                  Второй ряд parent_key - это предыдущая технология в древе технологий.
                  Ряд parent_link_position - это сторона иконки технологии, сторона с которой линия выходит из предыдущей parent технологии.
                  Ряд child_link_position - это сторона иконки child технологии в которую эта линия входит.
                  Каждая иконка имеет 4 стороны, соответственно по часовой стрелке; верх иконки это 1, правая сторона 2, нижняя 3, левая 4.
                  Ряды parent_link_position_offset и child_link_position - это если из одной стороны иконки выходят сразу две линии, это расстояние насколько одна линия расположена выше или ниже другой.
                  Цифры в таблице technology_nodes_tables, ряд indent - это вертикально в каком ряду расположена иконка технологии.
                  Цифры в ряду tier - это горизонтально в каком ряду расположена технология в технологическом древе.
                     papeion
                    • Imperial
                    Imperial
                    Форумчанин

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

                    Полезные материалы для работы со скриптами:

                    1) Для просмотра ссылки Зарегистрируйтесь это я уже давал, это команды, с помощью которых можно осуществлять действия, типа респаунов армий, агентов, активации восстаний в регионах, и т.д. много чего.
                    Насколько я понял, команда записывается тегом cm:

                    2) Для просмотра ссылки Зарегистрируйтесь это как бы функции "Объекты", к чему посредством их мы можем обратиться (к персонажу, к региону и т.д.).

                    3) Для просмотра ссылки Зарегистрируйтесь - это только что обнаружил, инфа крутенькая... надо разбираться

                    4) Ну и ещё по видимому на этом сайте куча всего такого. Просто наберите в поиске на wiki.totalwar.com слова, типа Script или Scripting, и получите результат!!! Какие страницы в результатах такого поиска самые важные по этой теме мне ещё предстоит узнать. В результатах будет инфа не только по Аттиле, но возможно инструкции от других игр тотал-вар тоже могут быть полезны.

                    5) кстати, вот Для просмотра ссылки Зарегистрируйтесь на материалы по скриптингу, касаемо именно Аттилы. Заметил, что в инструкциях по скриптингу уделено много внимания для создания скриптовой битвы. По видимому исторического сражения. Вот, кстати, можно делать моды на создание новых исторических битв или переделку ванильных исторических битв.

                    Готовые решения (примеры) использования команд\функций можно найти в ванильных скриптах. Для этого удобно использовать программу Notepad++
                    Делаете экспорт скриптов из паков, чтобы они стали отдельными файлами. И оптом открываете все или несколько скриптов этой программой. Далее ищите "найти в текущем документе" или "во всех открытых документах" нужные вам примеры использования команд\функций...
                    Например, я таким образом нашёл в скриптах Эпилога готовые решения для использования команды "восстание в конкретном регионе".

                    ----
                    Ещё момент: найдите уроки по lua, получите базовые знания по этому языку, на котором и написаны скрипты в тотал-вар Аттиле. Уроков в инете тьма и тьмы.
                       vadim
                      • Imperial
                      Imperial
                      StratArtModding

                      Дата: 10 января 2018, 23:04

                      Теория и Практика Модинга Карты Total War: Attila
                      Пояснение
                      На написание данной статьи меня подвигло желание самому разобраться в этом интересном вопросе, желание поделится полезной Инфой со всеми Камрадами кому интересно данное шуршание, ну и личная систематизация накопленной информации, чтобы самому так сказать привести все к чёткой, лаконичной схеме и чтобы самому не забыть и не похерить то что искалось и на что тратился единственно ценный ресурс - личное время.
                      В работе над статьёй использована информация по модингу Total War: WARHAMMER/ хотя её не так уж и много и она поверхностна/ тем не менее она подвигла меня на копания, имеющие Результат.
                      Для просмотра ссылки Зарегистрируйтесь
                      Данная Статья написана для Работы в Assembly Kit /поскольку считаю этот инструмент идеальным для целей модинга/ Пояснение ведётся для файлов Гранд Компании main_attila но подходят и для Dlc
                      №1 Пропись Новой Провинции
                      Идём в файл provinces /в PFM provinces_tables/
                      Жмём Add_Record /кнопка для новой прописи/ - прописываем Новую Прову к соответствующей компании/add-bel-cha/ - это в первой графе.
                      Во второй прописываем название которое будет отображаться в Игре
                      Imperial
                      Жмём на Apple для принятия изменений.
                      Теперь важно понять по каким файлам будет прописываться наша Новая Прова
                      Для этого в Аките есть функция показа где и по каким файлам идёт пропись сделанная в данном файле. Наводим стрелку мыши на заглавие столбца и получаем целеуказание
                      Imperial
                      Вот список файлов в которых будет присутствовать новая пропись Новой Провы
                      region_to_province_junctions / в PFM region_to_province_junctions_tables/ пропись регионов
                      season_province_effect_bundles / в PFM season_province_effect_bundles_tables/ эффекты сезонов погоды для данной Провинции
                      province_to_mercenary_set_junctions / в PFM province_to_mercenary_set_junctions_tables/ пропись пулов наемников для данной провинции
                      Прописываем в этих файлах особенности нашей Новой Провинции и идём далее/на детальном пояснении азов прописи не останавливаюсь, поскольку это простое действие, выполняемое по аналогу с уже написанным -- смотреть на дефолтные прописи/
                      №2 Новые Регионы для Новой Провинции
                      Казалось бы прописал Новую Прову, откусил от соседней /дефолтно_существующей/ один регион, от другой - соседней /дефолтно_существующей/ ещё один вот и всё. Но во первых, распределение регионов по провинциям в Attile имеет свой числитель / на Прову -- три региона/. Это прописанная данность которую безусловно можно попробовать изменить. Пробы проводил, изменения Акита принимает. Но при этом что мы получим? Три куцых провинций с двойными регионами и на этом успокоимся? Полумера не есть верное решение.
                      Предлагаю более правильное, но в тоже время и более радикальное решение проблемы заполнения регионами Новой Провинции.
                      Это 2 типа решения
                      №1 менее радикальное /нарезка регионов на основе куска существующего/
                      №2 более радикальное /нарезка регионов из зон не доступных для Игры/.
                      Оба решения базируются на теории и /моём/ тестинге проб по введению совершенно Новых регионов в Игру.
                      Пояснение по Графической Работе введения Нового Региона
                      Определяем директорию графических файлов Карты которая отображается в Игре /в Основном экране на Страт_уровне и в разных доп. менюшках например в дипломатии/
                      Steam\steamapps\common\Total War Attila\data\ data.pack
                      распаковываем data.pack и дальнейшая директория карт campaign_maps\main_attila_map
                      В данной папке и находятся файлы карты отображаемые на экране и файлы графической идентификации регионов и их границ
                      Imperial
                      Список графических файлов для карты Компании
                      camera_heightmap.png-----карта высот
                      clickgen_map.jpg---------карта для доп. меню
                      geographic_map.png-------карта для доп. меню
                      main_attila_lookup.tga---основная карта идентификации регионов
                      main_attila_lookup_minimap.tga --- доп. карта регионов для меню радара
                      main_attila_map.png ------ основная карта провинций
                      main_attila_map_minimap.png -- карта границ регионов для показа кто владеет регионами на мини
                      main_attila_map_minimap.tga -- карта границ регионов для показа кто владеет регионами на мини
                      Пропись данных граф. файлов и их использование можно проследить в прописи db файлов.
                      В campaign_map_playable_areas / в PFM campaign_map_playable_areas_tables/ можно увидеть пропись этих граф. файлов карты и их градацию для прописи в програм. файлах Игры.
                      Imp
                      При введении Новой Провы. она отрисовывается /с границами и названием регионов и с отметками городов/ в файле main_attila_map.png
                      Imperial
                      При введении Новых Регионов /даже если это нарезка из кусков дефолтных регионов/
                      Отрисовываются Новые Границы Регионов в файлах
                      main_attila_map.png
                      main_attila_map_minimap.png
                      main_attila_map_minimap.tga

                      Далее каждый Регион на основной карте идентификации Регионов main_attila_lookup.tga имеет свой оригинальный цвет он прописан в db основном файле Регионов regions / в PFM regions_tables /. Цветовая идентификация /можно сказать классика для Total War/ RGB
                      ---------------------------------------------------------------
                      Imperial
                      ---------------------------------------------------------------
                      Imperial
                      Пример Регион Александрия /Египетская/ att_reg_aegyptus_alexandria на верхней картинке RGB данного региона 6 32 249 определяем цвет Александрии на карте с помощью Photoshop
                      Imperial
                      Вырисовываем Новые Регионы нашей Новой Провинции с оригинальной цветовой идентификацией в RGB.
                      Спешу уточнить что пикселизация при заполнении цветом должна быть Точной. Азы работы с графикой пропускаем.
                      Несколько поясняющих картинок к вопросу графического введения Новых Регионов.
                      Imperial
                      -----------------------------------------------------------------
                      Imperial
                      В двух словах о данном пояснении.
                      Многие наверное хотели бы с верху карты, неосвоенные территории заполнить Новыми Провами, огго там сколько землицы то.
                      К сожалению карта нарисована/ полностью с высотами и тд/ только в рамках отчерченного разрабами пространства.
                      Карта высот и растительности далее границ, упрощённо заполнена элементами /ровного более менее подходящего ланшафта/ в нашей стороне просто Степью залили и усё.
                      Конечно можно и в этом разобраться, тем более что всё таки часть территории не доступной на данный момент/ спешу заметить Пока/ всё таки обладают более менее обработанным ландшафтом/возможно разрабы задел оставили на потом/ Восток за Аравийским полуостровом.
                      №3 Пропись Новых Регионов в програм файлах db
                      Идём в файл regions / в PFM regions_tables /это основной файл прописи Регионов. Прописываем Новые Регионы которые были нами нарисованы на Картах и прописываем цветовую идентификацию /регионов/ RGВ и прочее что необходимо регионам/смотрим на ближайшие дефолтные/
                      Imperial
                      графа is_sea идентификация для морей,
                      owner_bundle пропись чудес света к региону,
                      сами чудеса света прописываются в файле effect_bundles
                      Жмём на Apple сохраняем изменения, закрываем при этом файл чтобы эти изменения вступили в силу.
                      Возвращаемся к файлу region_to_province_junctions и привязываем к нашей Новой Прове наши Новые Регионы.
                      Далее следуем по данной схеме прописи Новых Регионов и введении их в Игру
                      Imperial
                      1) campaign_map_regions /в PFM campaign_map_regions_tables/ регионы Гранд Компании вообще не отмечены/типо они дефолтом и точка/ новые Регионы в данном файле нужно прописывать
                      2) campaign_map_settlements /в PFM campaign_map_settlements_tables/ важный файл в котором задаётся ключ городу в регионе, прописывается название Города отображаемое в Игре ну и задаются климатические условия региона. Рекомендую обратить внимание на пропись Дефолтных /находящихся рядом / регионов
                      3) campaign_map_slots /в PFM campaign_map_slots_tables/ можно не заполнять
                      4) campaign_map_towns_and_ports /в PFM campaign_map_towns_and_ports_tables/ не заполнять
                      5) campaign_settlement_display_aqueducts /в PFM campaign_settlement_display_aqueducts_tables/ файл координат размещения систем акведуков и пропись их моделей на карте
                      6) region_religions /в PFM region_religions_tables/ пропись религии к региону, третья графа religion_zeal определяет степень религиозного рвения в регионе.
                      7) regions_titles /в PFM отсутствует только через Акиту/ файл не заполненный но очень перспективный пропись в нём может влиять на тип управления регионом
                      Imperial
                      8) region_to_province_junctions /в PFM region_to_province_junctions_tables/ пропись региона к провинции
                      9) region_groups /в PFM region_groups_tables/ пропись к теритреальным Легионам для римских Фракций по к тому же это ещё и ориентирует на географическое положение. Смотреть пропись соседних регионов.
                      10) regions_to_region_groups_junctions /в PFM regions_to_region_groups_junctions_tables/ не заполненный файл но он позволяет точно прописать Регион/например Новый/ к теритреальной группе легионо_распределения.
                      11) start_post_regions /в PFM недоступен изменения через Акит/ файл прописи региона в Сценарном Старпосте /Главном Сценарии Компании или Мода/ в данном файле много важных прописей -- пропись к владению Фракции, пропись столицы. Один из важнейших файлов прописи заданных характеристик Региона.
                      12) start_post_ settlements файл прописи строительства по региону
                      13) start_post_ settlement_garrisons файл не заполнен но возможна пропись гарнизона для региона.
                      14) start_post_region_slot_templates файл слотов региона где прописываются постоянная привязка к портам, ресурсам , и к скрытым ресурсам и тд.
                      15) start_post_victory_conditions интересный файл определяющий цель экспансии Фракции и стиль экспансии /то есть с помощью файла можно определить территориальное направление региональной экспансии и её стилистику./
                      Imperial
                      Итак графика сделана, прописи по файлам осуществлены.
                      Сохраняем , прогоняем через Акиту чтобы собрать все изменения в единый Мод_пак и Привет, пробуем Новую Провинцию и Новые Регионы...
                      Успехов Камрады..
                      Изменения, дополнения и уточнения данной статьи Приветствуются.
                      С Уважением Vadim
                         Cerber
                        • Imperial
                        Imperial
                        Форумчанин

                        Дата: 02 февраля 2018, 04:15

                        Imp

                        Для просмотра ссылки Зарегистрируйтесь
                          • 6 Страниц
                          • 1
                          • 2
                          • 3
                          • 4
                          • 5
                          • Последняя »
                           Похожие Темы
                          TГрафика в Shogun 2 Total War
                          Картинки, скриншоты
                          Автор K Kvirit
                          Обновление 12 мин. назад
                          TОбсуждение Total War: Pharaoh
                          Очередная часть серии игр Total War
                          Автор A Arkess
                          Обновление 33 мин. назад
                          ЭОбсуждение хот-сита Medieval 2 Total War - ванила hot-seat
                          Назад в 15 лет... хот-сит Medieval 2 Total War - ванила
                          Автор n nnaks
                          Обновление Сегодня, 12:54
                          Воспользуйтесь одной из соц-сетей для входа
                          РегистрацияВход на форум 
                          Сообщество ИмпериалTotal War: Attila Моды Total War: Attila Обратная Связь
                          Стиль:Language: 
                          «Империал» · Условия · Ответственность · Визитка · 29 мар 2024, 13:55 · Зеркала: Org, Site, Online · Эльдорадо казино · Gold казино · Счётчики