Подстановка текста
Квесты, и связанный с ними текст, может содержать следующие теги:
Теги
<Alias=AliasName>
- Этот тег будет заменен полным именем ссылки, находящейся в псевдониме AliasName.
- Для его использования, вам нужно поставить отметку у нужного алиаса "Stores Text" (это указывает квесту, что имя алиаса должно быть сохранено в экземпляре квеста).
- Если в результате будет текст '[...]', то это значит, что алиас не был заполнен.
<Alias.Subtag=AliasName>
- Различные дополнительные теги (subTag - сабтег) существуют для более навороченного анализа и построения текста, например: <Alias.Race=Bob> напечатает "Норд" если расой Боба была раса Нордов(NordRace)
- <Alias.ShortName=AliasName> -- короткий вариант имени, если такой есть (в противном случае использует обычное полное имя).
- <Alias.Race=AliasName> -- раса ("Норд", "Темный Эльф", и т.д.)
- <Alias.Pronoun=AliasName> -- местоимение ("он" или "она")
- <Alias.PronounObj=AliasName> -- местоимение объекта ("его" или "её")
- <Alias.PronounPos=AliasName> -- притяжательное местоимение ("его" или "её")
- <Alias.PronounPosObj=AliasName> -- притяжательное местоимение для объекта ("его" или "её")
- <Alias.PronounRef=AliasName> -- возвратное местоимение ("сам" или "сама")
- <Alias.PronounInt=AliasName> -- усилительное местоимение ("сам" или "сама")
- Примечание: в английском местоимения reflexive и intensive являются одинаковыми, однако я не уверен, что так и во всех остальных языках, так что будьте внимательны. Примеры:
- Усилительное: "Единственным, кто сделал это, был сам Боб." (подчеркивает существительное Боб)
- Возвратное: "Он увидел самого себя в зеркале." (субъект и объект ссылаются на одного человека)
- Примечание: в английском местоимения reflexive и intensive являются одинаковыми, однако я не уверен, что так и во всех остальных языках, так что будьте внимательны. Примеры:
<Relationship.Alias1=Alias2>
- Можно узнавать данные об отношениях между двумя 2 алиасами. Например: <Relationship.Sigrid=Dorthe> напечатает "Мать" если Sigrid является матерью Dorthe.
<Alias.SubtagCap=AliasName>
- Добавляя "Cap" в конец любого сабтега, сделает все буквы заглавными (сокращение от слова capitalized):
- "<Alias=Bob> съел <Alias.PronounPos=Bob> сандвич. <Alias.PronounCap=Bob> был счастлив." станет текстом:
- Боб съел его сандвич. Он был счастлив.
Automatic <Alias=Player> "text parsing alias"
- You can use <Alias=Player> and <Alias.Pronoun=Player> etc. WITHOUT needing to put the player in an alias.
- Note that in order for this to work inside a Book, the book needs to have an active quest reference pointing to it (e.g. from the Quest Aliases tab of a quest of your choice).
<Global=GlobalName>
- This tag is replaced with the value in global GlobalName at the start of the quest. Float globals are displayed to two decimal places.
- In order to use this, you need to add the global to the list on the Quest Data tab.
- The CURRENT VALUE of these globals will be saved to the current quest instance each time the quest starts.
- If these values change during the quest, and you want the current quest instance to know about this change, use the function UpdateCurrentInstanceGlobal_-_Quest.
- Subtags for Global.
- <Global.Hour12=GlobalName> -- Global based on GameDaysPassed parsed as hours on a 12-Hour scale.
- <Global.Minutes=GlobalName> -- Global based on GameDaysPassed parsed as minutes.
- <Global.Month=GlobalName> -- Global based on GameDaysPassed parsed as the current month expressed as a number
- <Global.MonthWord=GlobalName> -- Global based on GameDaysPassed parsed as the current month expressed as a word (e.g., First Seed, Midyear, Evening Star)
- <Global.Day=GlobalName> -- Global based on GameDaysPassed parsed as the current day.
- <Global.Year=GlobalName> -- Global based on GameDaysPassed parsed as the current year.
- <Global.TimeSpan=GlobalName> -- Global based on GameDaysPassed parsed as the current span of time (e.g., Afternoon, Morning, Evening)
- <Global.Meridiem=GlobalName> -- Global based on GameDaysPassed parsed as the current Meridiem time
- There's a special subtag for timers
- <Global.Time=GlobalName> -- Global value parsed as "X Hours" for values greater than 1 or "X Minutes" for values less than 1.
<BaseName>
- This tag is replaced with the original full name of the object. This only works when changing a ref alias's display text.
If a tag fails to parse for any reason (invalid format, invalid param, etc) the unparsed tag is displayed in the text instead.
Пример
Например, в FreeformRiften04 есть задание:
"Find 20 nirnroot for Ingun Black-Briar (<Global=FFR04NirnCount>/<Global=FFR04NirnTotal>)"
Будет отображено в виде:
"Find 20 nirnroot for Ingun Black-Briar (0/20)"
Каждый раз, при изменении FFR04NirnCount, скрипт должен вызывать:
FreeformRiften04.UpdateCurrentInstanceGlobal(FFR04NirnCount)
И затем снова показывать задание. (Вспомогательная функция ModObjectiveGlobal can handle all of this in a single function call.)
Где используется
Теги тектовых вставок могут использоваться в следующих текстовых полях:
- Quest stage Log Entry
- Quest objective Display Text
- Topic prompts
- Messages - Title and Message Text
- Book text
Для объектов Message и Book, чтобы использовать текстовые вставки, базовый объект должен быть надлежащим образом связан с конкретным квестом.
Name replaced with Message
You can use a Message to replace the display name of anything in a quest's alias. Select a message on the "Display Name" dropdown on the Alias window. The Title of the Message is used instead of the alias's normal name. The Message can use text replacement (see above), including the base name of the aliased object. This is how you'd rename a sword to "Bob's Iron Longsword" for example.