Моддинг в 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(). Имейте в виду, что текстовые переменные можно свободно переписать в любое время с новыми значениями.






- используйте эту кнопку если вы обнаружили ошибку/искажение содержимого/отсутствие контента в новости или если хотите сообщить администрации о выходе новой версии мода и т.п.

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

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

Онлайн

Сейчас на сайте: 90
Гостей: 88

Пользователи: 
- отсутствуют

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

MOD 108 heroes
iskanderzp, Вчера, 09:16
Цитата: epilectпридет добрый дядька тот который iskanderzp,) и все тебе объяснит...Ну, спасибо на...
MOD 108 heroes
epilect, Вчера, 02:25
Dobrynya, Терпение и труд все перетрут).А если серьезно,то мод один из лучших и играется не так...
MOD 108 heroes
Dobrynya, Вчера, 01:11
До войны с лордами нормально дожить не могу. Сильные очень. Из профессий брал: пастуха - здоровье...
MOD 108 heroes
Dobrynya, Вчера, 00:38
Как в это играть? Играю за Чжао, воюют против Ша. Нашел лорда, у него по числу и качеству армия...
Как русифицировать моды?
Xan Kreagor, 25 июля 2024 00:57
Kmyeh, ... но раз queine переводят как королеву ... Скорее уж тогда царёк и королевна (в...
Как русифицировать моды?
Kmyeh, 24 июля 2024 09:41
Xan Kreagor, Не знаю что за fulcher, но раз queine переводят как королеву, то fulcher видимо...
Как русифицировать моды?
Xan Kreagor, 23 июля 2024 21:54
Доброго времени суток. Простите, если вопрос покажется вам не совсем по теме, но если тут есть...
MOD NOLDORION WORLDS
Dimar Leh, 20 июля 2024 11:17
Кстати советую один онлайн переводчик, неплохая помощь по...
MOD 1429 : la Guerre de Cent Ans - Steel Edition
Влад Сагайдачний, 19 июля 2024 22:55
Здравствуйте,  возникла проблема, пролистал всё обсуждение и так и не нашёл идентичную проблему....