Моддинг в Bannerlord: MBTextManager


Моддинг в Bannerlord: MBTextManager 

Оригинал статьи - https://docs.bannerlordmodding.com/_csharp-api/localization/MBTextManager.html

Общая информация

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


Установка глобальных текстовых переменных

Вы можете установить текстовую переменную в MBTextManager, используя метод SetTextVariable:

MBTextManager.SetTextVariable(tag, textObject);

У него есть несколько перегруженных версий с разными типами аргументов значения.

Любая переменная, установленная в MBTextManager, будет использоваться игровым текстовым процессором для любого TextObject, как если бы она была определена для самого TextObject:

StringHelpers.SetCharacterProperties("CURRENT_LIEGE", forLord.MapFaction.Leader.CharacterObject, null, null, false);
StringHelpers.SetCharacterProperties("NEW_LIEGE", newLiege.CharacterObject, null, null, false);
...
persuasionTask2.SpokenLine =
      new TextObject("{=CymOFgzv}I gave an oath to {CURRENT_LIEGE.LINK} - but {?LORD.GENDER}her{?}his{\\?} disregard for the common people of this realm does give me pause.");

В этом примере метод StringHelpers.SetCharacterProperties используется для сохранения определенных свойств символа в массиве переменных MBTextManager, что делает их глобальными. Затем они используются для формирования нового объекта TextObject для строки диалога с убеждением.

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


TextContext 

Любая переменная, для которой установлено значение MBTextManager, сохраняется в закрытом поле только для чтения с именем TextContext. TextContext служит в качестве расширенного словаря текстовых переменных и функций (требуется дополнительная информация по этому вопросу) и очищается только в Campaign.OnDestroy(). Имейте в виду, что текстовые переменные можно свободно переписать в любое время с новыми значениями.






Если вы обнаружили ошибку/искажение содержимого/отсутствие контента в новости: Выделите место с ошибкой, нажмите ctrl+Enter и изложите проблему

Комментариев 0

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Интересно

Онлайн

Сейчас на сайте: 153
Гостей: 144

Пользователи: 

Последние комментарии

MOD A Clash of Kings
Texnolog, Сегодня, 18:33
Иннот, спасибо за ответ. Видимо это у меня что то с системой, потому что это не первый мод в...
MOD A World of Ice and Fire
Regulaz, Сегодня, 18:28
а как попасть в чит-магазин?...
Hotfix (e1.7.2) & Beta Hotfix (e1.8.0 - 16/06/22)
Velizariy, Сегодня, 17:37
А куда пропали политические фракции в 1.8.0? Эту функцию выключили или спрятали?...
MOD Diplomacy
Velizariy, Сегодня, 17:34
Во всех локализациях надо добавить 1 файл с описанием файлов локализации - language_data.xml. Єто...
Перечень модификаций на MOUNT AND BLADE 2 BANNERLORD
Tissimir, Сегодня, 13:16
Обновилось:Eykonal's Banners Surrender TweaksTetsojin (AKA.Ronin)...
MOD Neekio's Donate Food To Towns and Castles
Tissimir, Сегодня, 13:00
Вышла версия для 1.8.0, добавил ссылку....
MOD Diplomacy
Tissimir, Сегодня, 12:51
Raganvad, приветствую на сайте. Возможно, русификатор не работает с последними версиями, попробуй...
MOD Perisno
Tissimir, Сегодня, 12:49
ArdKarraig, приветствую на сайте....
MOD Perisno
ArdKarraig, Сегодня, 12:39
Добрый день. B Perisno дробящее оружие помимо оглушающего эффекта даёт ещё и смертельный, примерно...