Community Imperial: Гайды по моддингу Mount & Blade 2: Bannerlord - Сообщество Империал




Haktar

Гайды по моддингу Mount & Blade 2: Bannerlord

Гайды по моддингу Mount & Blade 2: Bannerlord
Theme created: 16 April 2020, 01:19 · Author: Haktar
Views:
 24 839

 Haktar
  • Imp
Imperial
 

Date: 16 April 2020, 01:19



Гайды по моддингу Mount & Blade 2: Bannerlord



Imp

В этой теме размещаем различные гайды, руководства, инструкции по моддингу игры Mount & Blade 2: Bannerlord.

     Haktar
    • Imp
    Imperial
     

    Date: 16 April 2020, 01:37



    Создание базового мода Mount & Blade 2: Bannerlord



    Imp



    Введение

    Данное руководство покажет вам, как шаг за шагом, создать базовый мод для Mount&Blade II: Bannerlord, используя язык C#. Этот мод добавляет кнопку "Message" в главное меню одиночного режима игры. При ее нажатии, происходит отправка сообщения "Hello World" в чат.

    Перед началом

    Моддинг в Mount&Blade II: Bannerlord в данный момент имеет ограничения, связанные с отсутствием доступа к библиотекам CampaignSystem (одиночного режима игры) и инструментам мододелов от разработчиков. В тоже время доступно множество вещей с которыми можно работать и которые можно будет менять в версии для раннего доступа, не дожидаясь официальных инструментов.

    Инструментарий

    C# IDE (интегрированная среда разработки)
    To view the link Register (не требуется для базовых модификаций)

    C# Decompiler (декомпилятор)
    To view the link Register или To view the link Register (не требуется для базовых модификаций)

    Текстовый Редактор
    To view the link Register или To view the link Register

    Для запуска своих модов, вы можете использовать Bannerlord.exe, вызывая его из ".bat" файла (для более подробной информации см. пункт "Отладка").

    Cоздание папки модуля и файла SubModule

    • Найдите папку "Modules" в папке с игрой
    • Создайте и назовите папку по своему усмотрению (к примеру "MyModule")
    • Внутри папки создайте подпапку "bin", но не переходите в нее (она будет использовать для хранения ваших библиотек)
    • В папке модуля создайте текстовый файл и переименуйте его в "SubModule.xml" (без кавычек) и вставьте текст который вы можете видеть ниже
    • Проверьте отображается ли ваш модуль в лаунчере, в спиcке модулей для одиночной игры (singleplayer)

    <Module>
            <Name value="My Module"/>
            <Id value="MyModule"/>
            <Version value="v1.0.0"/>
            <SingleplayerModule value="true"/>
            <MultiplayerModule value="false"/>
            <DependedModules/>
            <SubModules>
                <SubModule>
                    <Name value="MySubModule"/>
                    <DLLName value="../../Modules/MyModule/bin/ExampleMod.dll"/>
                    <SubModuleClassType value="ExampleModNameSpace.MySubModule"/>
                    <Tags>
                        <Tag key="DedicatedServerType" value="none" />
                        <Tag key="IsNoRenderModeElement" value="false" />
                    </Tags>
                </SubModule>
            </SubModules>
            <Xmls/>
        </Module>


    Создание и настройка проекта Visual Studio

    До того как начать настраивать проект в Microsoft Visual Studio, важно понять что это не требуется для простейших модификаций (например изменение или добавление предметов/ персонажей/сцен).
    • Запустите Microsoft Visual Studio и выберите Create New Project (в редакции на руском языке выберите Файл>Создать>Проект)
    • Выберите библиотеку классов (.NET Framework)
    • Назовите ваш проект и выберите .NET Framework 4.7.2. Если данная опция вам не доступна, скачайте специальный пакет для разработчиков (developer pack) To view the link Register
    • Теперь когда ваш проект создан, To view the link Register для исходных файлов компиляции проекта в Modules/ВашеНазваниеМодуля/bin, которая находится в папке с вашой игрой
    • Также нужно сделать To view the link Register с вашего новосозданного проекта на библиотеки TaleWorlds, которые находятся в bin\Win64_Shipping_Client


    Создание и настройка базового класса и игровой логики

    • Для начала создадим базовый класс MySubModule (который в свою очередь наследует класс MBSubModuleBase) и применим заимствования к нему. У вас должно получиться что то такое (смотреть первый блок "Code")
    • Добавим в наш класс метод OnSubModuleLoad() и укажем на его перезапись (смотреть второй блок "Code")
    • После этого добавим немного кода в наш перезаписанный метод. По сути мы добавляем кнопку в главное меню используя метод AddInitialStateOption, а за вывод изображения на экране отвечает DisplayMessage (смотреть третий блок "Code")
    • Скомпилируйте ваш код используя комбинацию клавиш CTRL+B или CTRL+SHIFT+B (итоговый код в четвертом блоке "Сode")
    • Откройте Community Launcher и выберите ваш мод в списке модулей для одиночной игры
    • Запустите игру. В главном меню вы увидите кнопку "Message", нажав на нее, в левом нижнем углу появится текст "Hello World"
    • Поздравляем! Вы создали свой первый мод для Mount&Blade II: Bannerlord

    using TaleWorlds.Core;
    using TaleWorlds.Localization;
    using TaleWorlds.MountAndBlade;
    namespace ExampleModNameSpace
    {
        public class MySubModule : MBSubModuleBase
        {
        }
    }

    protected override void OnSubModuleLoad()
            {
                base.OnSubModuleLoad();
            }

    Module.CurrentModule.AddInitialStateOption(new InitialStateOption("Message",
                    new TextObject("Message", null),
                    9990,
                    () => { InformationManager.DisplayMessage(new Informationmessage("Hello World!")); },
                    false));

    using TaleWorlds.Core;
    using TaleWorlds.Localization;
    using TaleWorlds.MountAndBlade;
    namespace ExampleModNameSpace
    {
        public class MySubModule : MBSubModuleBase
        {
           protected override void OnSubModuleLoad()
            {
                base.OnSubModuleLoad();
                Module.CurrentModule.AddInitialStateOption(new InitialStateOption("Message",
                    new TextObject("Message", null),
                    9990,
                    () => { InformationManager.DisplayMessage(new Informationmessage("Hello World!")); },
                    false));
            }
        }
    }


    Отладка

    • Откройте настройки проекта и выберите кнопку "Debug" (To view the link Register)
    • Выберите опцию Start external program (запуск внешнего приложения) и сконфигурируйте путь к файлам "Bannerlord.exe"
    • Удостоверьтесть что в качестве рабочей директории выбрана папка bin\Win64_Shipping_Client
    • Добавьте следующие command line arguments (аргументы коммандной строки) "_MODULES_*Native*MyModule*_MODULES_ /singleplayer" (без кавычек, также удостоверьтесь что название вашего модуля "MyModule", а не какое либо другое). Вы также можете использовать данные аргументы коммандной строки для запуска своих модов (для этого создайте файл с расширением".bat" и поместите в папку bin\Win64_Shipping_Client, предварительно добавьте в файл следующее "Bannerlord.exe _MODULES_*Native*MyModule*_MODULES_ /singleplayer" (без кавычек))


    Дополнительная информация
    • В качестве среды разработки для модов, также может использоваться To view the link Register (отличается многими полезными функциями, в том возможностью смотреть декомпилированный код тейлов сразу, не прибегая к помощи сторонних декомпиляторов). Минусы это то что программа платная, но есть версия для студентов
    • Официальной поддержки модификаций от тейлов ждать еще как минимум пол-года, а то и год (полный функционал будет доступен только после релиза). То что я описал выше, это отличная возможность опробовать себя в моддинге уже сейчас и получить полезные навыки, которые пригодятся в будущем
    • За основу данного туториала, был взят гайд от Ster, который доступен по этой ссылке To view the link Register, а также документация по игре To view the link Register. Пока что в ней не хватает информации по некоторым направлениям, но она будет дополнятся. Если вам интересен дальнейший моддинг игры, советую ознакомиться с ней

    To view the link Register
       Haktar
      • Imp
      Imperial
       

      Date: 16 April 2020, 01:57



      Руссификация модов на Mount & Blade 2: Bannerlord



      Imp



      Автор гайда To view the link Register

      Есть 3 вида, где прописывается текст для модов:
      1. Текст хранится в X:\Название мода\ModuleData\Languages
      2. Тест хранится в самом файле X:\Название мода\bin\Win64_Shipping_Client\Название мода.dll
      3. Как и второй вариант только отличие в том что в .dll файле просто идет направление по id текста в локализацию.

      Рассмотрим 2 вариант, самый распространённый.

      Нам нужна программа To view the link Register, скачиваем.
      Далее возьму мод для примера простенький это XorberaxTrainingField. Идем по пути X:\XorberaxTrainingField\bin\Win64_Shipping_Client и видим там 3 файла:
      Imp

      1. 0Harmony.dll это файл для загрузки мода в игру, есть не везде, его не трогаем.
      2. config.json этот файл для настройки некоторых аспектом мода, есть в большинства модов.
      3. TrainingField.dll это сам наш мод, он нам и нужен.

      Далее...

      Запускаем dnSpy, перетягиваем наш TrainingField.dll в левый столбик с название "Обозреватель сборок". Должно получиться так:
      Imp

      Вскрываем наш мод нажатием на вот такой треугольник:
      Imp

      Переходим в TrainingField желтого цвета и листаем подмодули и смотрим на код справа.

      Находим текст серого цвета справа с предположительным нашим текстом:
      Imp

      Нажимаем правой кнопкой по тексту и выбираем в меню "Изменить инструкции IL..."
      Imp

      Появится окно и смотрим слева на столбик "Опкод", весь наш текст находится под Опкодом "ldstr". Справа в строке видим текст "{=town_arena_train_troops}Train your troops ({COST}{GOLD_ICON})" и меняем его на "{=town_arena_train_troops}Тренировать свои войска ({COST}{GOLD_ICON})".
      Imp

      Проделываем аналогичное с остальными строками, вбиваем перевод. И далее нажимаем кнопку "ОК". Чтобы изменения наши сохранились, нужно нажать раздел "Файл", а в нем "Сохранить модуль..." и кнопку ОК.
      Imp

      Ну вот вроде и все Проверяем нашу работу в игре. Удачи!
      To view the link Register
         Haktar
        • Imp
        Imperial
         

        Date: 16 April 2020, 02:13



        Mount & Blade II: Bannerlord — Как редактировать юнитов



        Imp



        В этом небольшом гайде рассмотрим, как редактировать юнитов в Mount & Blade II: Bannerlord.

        С чего начать

        Зайдите в папку с установленной игрой. В стиме расположение игры можно посмотреть, нажав по названию правой кнопкой мыши -> управление –> посмотреть локальные файлы. Общая папка с игрой должна выглядеть примерно так:
        Imp

        Далее заходим в папку Modules.

        Что редактировать

        Первым делом отправляемся в папку SandboxCore, затем заходим в папку Module Data. Там нужно найти файл Spnpccharacters.xml и открыть его любым текстовым редактором, например, Notepad++. Обязательно сделайте резервную копию этого файла перед редактированием.

        Imp

        Файл будет выглядеть следующим образом:
        Imp

        Можете спокойно пропускать эту стену текста (либо попробовать в ней разобраться, если владеете английским и базовым понимаем xml-разметки) и идти в следующую секцию. Нас интересует тэг skills на строке, указанном на скриншоте выше. Там вы можете изменять параметры скиллов юнитов. В секции equipment можно редактировать снаряжение солдат. Так вы можете прописать каждому солдату из древа свое снаряжение и даже разнообразить юнитов с помощью рандома.

        К примеру, «EQ-tree 1» имеет 1 меч. Это прописано следующим образом:
        Imp

        А “EQ-tree 2” имеет топор, что отражено следующей разметкой:
        Imp

        Это означает, что юнит может получить меч ИЛИ топор в начале сражения. Он получит что-то одно, так как оба предмета прописаны на нулевой слот снаряжение (Item0). В данном случае шанс, что юнит появится с тем или иным оружием составляет 50%. Если вы добавить еще одно оружие для слота 0, то шанс станет 33,3%.

        Секция персонажа юнита

        • <NPCCharacter id=»sturgian_soldier» <——— Это идентификатор. Не меняйте его, если не знаете, что делаете.
        • default_group=»Infantry» <——— Это тип группы юнита: лучник, пехотинец, кавалерия.
        • level=»16″ <——- Уровень юнита.
        • civilianTemplate=»NPCCharacter.sturgia_troop_civilian_template_t2″ <— Модель солдата.
        • name=»{=brlJJW5I}Sturgian Veteran Fyrd» <——— Внутриигровое имя юнита.
        • occupation=»Soldier» <—- Не меняйте.
        • culture=»Culture.sturgia» <—- Не меняйте.
        • skill_template=»NPCCharacter.infantry_heavyinfantry_level16_template_skills»> <— Не меняйте.

        Секция снаряжения

        • <equipmentSet> <— Начало секции снаряжения.
        • <equipment slot=»Item0″ <—- Вооружение для первого слота.
        • id=»Item.sturgia_sword_2_t3″ />
        • <equipment slot=»Item1″ <— Вооружение для второго слота.
        • id=»Item.northern_round_shield» />
        • <equipment slot=»Item2″ <— Вооружение для третьего слота.
        • id=»Item.northern_spear_2_t3″ />
        • <equipment slot=»Head» <— Броня для головы.
        • id=»Item.goggled_helmet_over_leather» />
        • <equipment slot=»Cape» <— Броня для плеч
        • id=»Item.wrapped_scarf» />
        • <equipment slot=»Body» <— Нагрудник
        • id=»Item.northern_padded_gambeson» />
        • <equipment slot=»Gloves» <— Перчатки/наручи
        • id=»Item.highland_gloves» />
        • <equipment slot=»Leg» <— Ботинки
        • id=»Item.highland_boots» />
        • </equipmentSet> <— Конец секции снаряжения

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

        Секция скиллов

        Здесь важно не менять идентификаторы скиллов, а лишь подправлять цифровые значения. С их помощью можно создать настоящих терминаторов на поле боя или ослабить слишком читерных юнитов той или иной фракции.
        • <skills> <— Начало секции скиллов
        • <skill id=»Athletics» <— Атлетика, идентификатор скилла. Его трогать не стоит.
        • value=»70″ /> <— Значение скилла атлетика, его можно редактировать.
        • <skill id=»Riding»
        • value=»30″ /> <— Значение скилла верховая езда.
        • <skill id=»OneHanded»
        • value=»70″ /> <— Значение скилла одноручное оружие.
        • <skill id=»TwoHanded»
        • value=»40″ /> <— Значение скилла двуручное оружие.
        • <skill id=»Polearm»
        • value=»70″ /> <— Значение скилла древковое оружие.
        • <skill id=»Bow»
        • value=»30″ /> <— Значение скилла стрельба из лука.
        • <skill id=»Crossbow»
        • value=»10″ /> <— Значение скилла стрельба из арбалета.
        • <skill id=»Throwing»
        • value=»40″ /> <— Значение скилла метательное оружие.
        • </skills> <— Конец секции скиллов

        Как найти идентификаторы предметов

        По соседству с редактируемым файлом лежит файлик spitems.xml. Там-то вы и найдете идентификаторы предметов, которые можно вписать для солдат.

        Imp

        Что делать, если оригинальный файл удалился

        Вы можете просто удалить измененный файл и проверить целостность файлов в Steam. В крайнем случае придется переустанавливать игру.
        To view the link Register
           Haktar
          • Imp
          Imperial
           

          Date: 20 April 2020, 18:56



          Гайд по ручной установке модов на Mount & Blade 2: Bannerlord



          Imp



          Итак, вот предположим, что вы решили уставновить себе мод на Bannerlord. В данном гайде будет рассмотрен данный вопрос.

          Перед установкой модов вам необходимо иметь установленную и пропатченную лицензионную игру Mount & Blade II: Bannerlord. Допустим, игра у вас установлена.

          Обычно все моды авторы пакуют в архив. Вам следует скачать его, ссылка должна быть в теме мода. Затем архив следует распаковать. Обычно архив содержит одну папку с именем мода <название мода>, тогда вам следует поместить эту папку <название мода> в папку modules игры. Если же Вы видите в архиве сразу файл SubModule.xml, то вам сделует создать папку <название мода> в папке modules игры, и распаковать архив туда. В итоге файловая структура должна быть такой:
          • <папка игры Mount & Blade II Bannerlord>\Modules\<название мода>
          • <папка игры Mount & Blade II Bannerlord>\Modules\<название мода>\SubModule.xml
          • <папка игры Mount & Blade II Bannerlord>\Modules\<название мода>\bin

          следует сказать, что в папке <папка игры Mount & Blade II Bannerlord>\Modules\<название мода> могут быть и другие файлы и папки.

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

          Кроме того, некоторые моды могут конфликтовать. Полного списка модов, с которым конфликтует определенный мод, вам обычно никто не скажет. Может быть написано что-то в духе: данные мод не работает корректно с модами, которые патчат метод X. Это значит, что мод не будет работать корректно (или вообще игра может вылетать) совмесно со всеми модами, которые патчат метод X.

          Теперь вам следует разблокировать исполняемые файлы мода, ведь операционная система может блокировать их выполнение из-за того, что они получены с неизвестного источника. Их необходимо разблокировать. Для этого заходим в папку <папка игры Mount & Blade II Bannerlord>\Modules\<название мода>\bin\Win64_Shipping_Client и для каждого dll-файла надо выполнить: щелкните правой кнопкой мыши на dll-файл и выберите свойства в контексном меню, затем если вы видите кнопку 'unblock' (разблокировать) внизу, то нажмите на нее (подробнее: To view the link Register).

          Теперь можно играть с данным модом. Для этого запустите лаунчер игры Mount & Blade II: Bannerlord, а затем отметьте <название мода> на вкладке Singleplayer -> Mods, а также все моды-зависимости данного мода.
          To view the link Register
             Cerber
            • Imp
            Imperial
             

            Date: 21 April 2020, 01:27

            Imp

            Консоль разработчика

            Модификация позволяет открывать консоль разработчика путем нажатия Ctrl + ~ в Mount And Blade Bannerlord. В консоли можно ввести различные команды.

            Установка: кидаем файлы из архива в папку Modules (находится в корневой папке игры). Убеждаемся, что мод включен в лаунчере. Запускаем игру и нажимаем CTRL + ~.


            Скриншоты
            Spoiler (expand)


            To view the link Register

            To view the link Register
               Haktar
              • Imp
              Imperial
               

              Date: 21 April 2020, 19:16



              Менеджер модов ModLib



              Imp



              ModLib – в основном мод для мододелов. Он предоставляет полезный код и простое в использовании меню настроек для моддеров. Для игроков он так же может понадобиться потому, некоторые моды требуют наличие ModLib.

              • Основная особенность ModLib – от него зависят другие моды. Поэтому убедитесь, что ModLib расположен выше вашего мода в списке лаунчера.
              • Разблокировать .dll файлы.
              • Windows автоматически помечает DLL-файлы, загруженные из Интернета, как подозрительные и устанавливает для них блокировку безопасности. Функция вызывает проблемы с системой загрузки модов в Bannerlord. Чтобы это исправить, откройте папку ModLib в папке ваших модулей, затем перейдите в bin/Win64_Shipping_Client. Щелкните правой кнопкой мыши ModLib.dll и откройте “Свойства”. Во всплывающем окне установите флажок «Разблокировать» в нижней части вкладки «Общие». Сделайте то же самое для 0Harmony.dll и ModLib.Patches.dll.
              • Разблокируйте все файлы с помощью PowerShell (расширенный метод).
              • Если вам удобно пользоваться терминалом, вы можете использовать PowerShell для автоматической разблокировки всех файлов в каталоге Bannerlord. Это исправит не только файлы для этого мода, но и для других, у которых также есть проблемы. Следуйте инструкциям ниже:
              • В меню «Пуск» Windows найдите PowerShell
              • Щелкните правой кнопкой мыши и выберите «Начать как администратор». Появится синее окно.
              • Откройте окно проводника и перейдите в папку «Модули» Bannerlord (здесь вы установили свои моды)
              • Нажмите на адресную строку и нажмите Ctrl+C, чтобы скопировать адрес.
              • Вернитесь в окно PowerShell и введите: cd “Вставьте адрес, используя Ctrl+V,введите закрывающую кавычку ” Результат должен выглядеть примерно так: cd “C:/Program Files (x86)/Steam/steamapps/common/Mount & Blade II Bannerlord/Modules” (Ваше местоположение может быть другим, не забывайте кавычки!)
              • Нажмите Ввод.
              • Теперь введите (или даже лучше, скопируйте строку и вставьте ее в окно PowerShell): dir -Recurse | Unblock-File
              • После ввода строки нажмите клавишу ввода.
              • Окно PowerShell будет работать несколько секунд и закроется. Все файлы в каталоге модулей теперь разблокированы, если они были заблокированы.

              Попробуйте запустить игру в режиме администратора

              Перейдите к «C:/Program Files (x86)/Steam/steamapps/common/Mount & Blade II Bannerlord/bin/Win64_Shipping_Client», затем ПКМ по файлу «TaleWorlds.MountAndBlade.Launcher.exe», далее «Свойства». Пункт «Запускать программу от имени администратора», во складке совместимости. (требуются права администратора в вашей учетной записи.)

              Попробуйте другой лаунчер

              Другие моддеры создали лучшие лаунчеры для игры, которые помогают исправить некоторые проблемы, вызванные по умолчанию. Например, FixedLauncher

              Проверьте другие моды на наличие проблем

              Моды, настроеные неправильно, вызовут проблемы для отсальных, которые вы добавили в игру. Одна плохая модификация разрушит весь дом.

              Убедитесь, что ModLib находится ниже всех официальных модулей в панели запуска. Этот мод зависит от кода от официальных модулей и должен быть загружен после них. Мое внимание было обращено на то, что другие моды, которые не имеют правильной настройки файла SubModule.xml, могут вызвать проблемы. Если порядок загрузки модов перемешивается, проверьте файл SubModule.xml для каждой установленной модификации и убедитесь, что он содержит этот фрагмент кода:
              Imp

              Если в них отсутствует хотя бы одна из строк, отредактируйте файл SubModule.xml и добавьте недостающие фрагменты. Снова проверьте панель запуска, чтобы убедиться, что порядок модов правильный. Официальные модули TaleWorlds должны быть сгруппированы вверху.
              Примечание: если отредактируете SubModule неправильно, это усугубит ваши проблемы. Я рекомендую настройку, только если вы уверены в том, что делаете.

              Не редактируйте файл SubModule.xml для ModLib

              Он перепроверен много раз. С ним проблем нет. Изменения только добавят вам проблем.

              Даже неактивированные моды в лаунчере могут вызвать проблемы

              Если ничего из вышеперечисленного не работает, попробуйте временно удалить все другие моды из папки Modules, кроме ModLib. Запустите игру и посмотрите, будет ли она работать только с этим модом.
              Помните: простая деактивация модов не решит проблему, вы должны фактически удалить их из папки модулей. Проверяйте их один за одним и тогда найдете, в каком была проблема.
              To view the link Register
              • Скачать файлы из архива в папку Modules: C:\Program Files (x86)\Steam\steamapps\common\Mount & Blade II Bannerlord\Modules\*mod*\
              • Поставить галочку в лаунчере напротив нужного мода

              Версия 1.0.1 | Совместимость с игрой e1.1.1
              To view the link Register
                 Cerber
                • Imp
                Imperial
                 

                Date: 11 May 2020, 22:44

                Imp

                ModLib

                ModLib - это невероятно крутой инструмент, который добавляет меню для управления модов. Что-то подобное знакомо фанатам Skyrim, мод обладает функциями SkyUI. Можно менять настройки различных модов, которые поддерживают этот инструмент и многое другое.

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


                Скриншоты
                Spoiler (expand)


                To view the link Register

                To view the link Register
                  Translate a Page
                  Community ImperialИгровой Форум Mount & Blade 2: Bannerlord Моды Mount & Blade 2: Bannerlord Feedback
                  Style:Language: 
                  Conditions · Responsibility · Confid. · About · 02 Jul 2026, 22:10 · Mirrors: ImtwOrg, ImtwSite, ImtwRuImtwRu, ImtwOrg, ImtwSite