(→Hyperlinks: wording) Tag: WoW API docs |
No edit summary Tag: WoW API docs |
||
(27 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
Many UI elements that display text on the screen support a special escape sequences starting with the | pipe character. |
Many UI elements that display text on the screen support a special escape sequences starting with the | pipe character. |
||
− | {{warning}} If you are using the chat window or an in-game text editor, then <code>"|"</code> will most likely be |
+ | {{warning}} If you are using the chat window or an in-game text editor, then <code>"|"</code> will most likely be escaped. Try using <code>"\124"</code> instead which is the ASCII code for the pipe character. |
== Escape Sequences == |
== Escape Sequences == |
||
=== Coloring === |
=== Coloring === |
||
|cAA<font color=FF0000>RR</font><font color=00FF00>GG</font><font color=0000FF>BB</font>text|r |
|cAA<font color=FF0000>RR</font><font color=00FF00>GG</font><font color=0000FF>BB</font>text|r |
||
− | * Each pair of digits represents a color value (plus the alpha value, however the alpha value is currently ignored and should always be FF) as a hexadecimal number. The <code |
+ | * Each pair of digits represents a color value (plus the alpha value, however the alpha value is currently ignored and should always be FF) as a hexadecimal number. The <code>|r</code> escape sequence pops nested color sequences in-order<ref>https://github.com/Stanzilla/WoWUIBugs/wiki/9.0.1-Consolidated-UI-Changes</ref>. |
/run print("this is \124cFFFF0000red and \124cFF00FF00this is green\124r back to red\124r back to white") |
/run print("this is \124cFFFF0000red and \124cFF00FF00this is green\124r back to red\124r back to white") |
||
> this is <span style="color: #ff0000">red and</span> <span style="color: #00ff00">this is green</span> <span style="color: #ff0000">back to red</span> back to white |
> this is <span style="color: #ff0000">red and</span> <span style="color: #00ff00">this is green</span> <span style="color: #ff0000">back to red</span> back to white |
||
− | |||
− | '''''Classic''''' |
||
− | |||
− | {{Patch 1.13.2|note=The <code><nowiki>|r</nowiki></code> escape sequence resets the text to the default color instead of popping nested colors in-order.}} |
||
− | |||
− | /run print("this is \124cFFFF0000red and \124cFF00FF00this is green\124r back to white") |
||
− | > this is <span style="color: #ff0000">red and</span> <span style="color: #00ff00">this is green</span> back to white |
||
=== Textures === |
=== Textures === |
||
Line 39: | Line 32: | ||
{{Main|AtlasID}} |
{{Main|AtlasID}} |
||
Atlases allow for easily getting part of a texture without having to use tex coords. |
Atlases allow for easily getting part of a texture without having to use tex coords. |
||
− | |A<font color="#ecbc2a">atlas</font>:<font color="#80ff80">height</font>:<font color="#8080ff">width</font>[:<font color="#ff8080">offsetX</font>:<font color="#ff8080">offsetY</font>]|a |
+ | |A:<font color="#ecbc2a">atlas</font>:<font color="#80ff80">height</font>:<font color="#8080ff">width</font>[:<font color="#ff8080">offsetX</font>:<font color="#ff8080">offsetY</font>]|a |
− | + | === Examples === |
|
+ | * Both slash <code>/</code> or escaped backslashes <code>\\</code> are valid file separators. |
||
+ | * Parameters can be omitted in between <code>:</code>characters. |
||
{| class="darktable" |
{| class="darktable" |
||
! colspan="2" | Coloring |
! colspan="2" | Coloring |
||
|- |
|- |
||
| <syntaxhighlight lang="lua">"|cFFFF0000This is red text|r this is normal color" |
| <syntaxhighlight lang="lua">"|cFFFF0000This is red text|r this is normal color" |
||
− | WrapTextInColorCode("This is red text", "FFFF0000")</syntaxhighlight> |
+ | WrapTextInColorCode("This is red text", "FFFF0000").." this is normal color"</syntaxhighlight> |
| <font color=red>This is red text</font> this is normal color |
| <font color=red>This is red text</font> this is normal color |
||
|- |
|- |
||
! colspan="2" | Texture |
! colspan="2" | Texture |
||
|- |
|- |
||
− | | |
+ | | Accepts a file path or [[FileDataID]].<br><syntaxhighlight lang="lua">"|T133784:16|t Coins" |
"|TInterface\\Icons\\INV_Misc_Coin_01:16|t Coins" |
"|TInterface\\Icons\\INV_Misc_Coin_01:16|t Coins" |
||
CreateTextureMarkup("Interface/Icons/INV_Misc_Coin_01", 64, 64, 16, 16, 0, 1, 0, 1)</syntaxhighlight> |
CreateTextureMarkup("Interface/Icons/INV_Misc_Coin_01", 64, 64, 16, 16, 0, 1, 0, 1)</syntaxhighlight> |
||
| [[File:inv_misc_coin_01.png|16px]] Coins<sup>[https://wow.tools/files/#search=interface/icons/inv_misc_coin_01]</sup> |
| [[File:inv_misc_coin_01.png|16px]] Coins<sup>[https://wow.tools/files/#search=interface/icons/inv_misc_coin_01]</sup> |
||
+ | |- |
||
+ | | <syntaxhighlight lang="lua">"|TInterface\\Icons\\INV_Misc_Coin_01:16:16:0:0:64:64:4:60:4:60|t Coins (cropped)"</syntaxhighlight> |
||
+ | | [[File:INV_Misc_Coin_01_crop.png|16px]] Coins (cropped) |
||
|- |
|- |
||
| Sets the vertex color of the texture to green (73:177:73).<br><syntaxhighlight lang="lua">"|TInterface\\ChatFrame\\UI-ChatIcon-ArmoryChat:14:14:0:0:16:16:0:16:0:16:73:177:73|t Reckful"</syntaxhighlight> |
| Sets the vertex color of the texture to green (73:177:73).<br><syntaxhighlight lang="lua">"|TInterface\\ChatFrame\\UI-ChatIcon-ArmoryChat:14:14:0:0:16:16:0:16:0:16:73:177:73|t Reckful"</syntaxhighlight> |
||
Line 61: | Line 59: | ||
! colspan="2" | Texture atlas |
! colspan="2" | Texture atlas |
||
|- |
|- |
||
− | | |
+ | | Accepts an [[AtlasID|Atlas]] name or ID.<sup>[https://wow.tools/dbc/?dbc=uitextureatlasmember#search=groupfinder-icon-role-large-tank]</sup><syntaxhighlight lang="lua">"|A:4259:19:19|a Tank" |
"|A:groupfinder-icon-role-large-tank:19:19|a Tank" |
"|A:groupfinder-icon-role-large-tank:19:19|a Tank" |
||
"|Tinterface\\lfgframe\\groupfinder:19:19:::1024:1024:915:944:785:814|t Tank" |
"|Tinterface\\lfgframe\\groupfinder:19:19:::1024:1024:915:944:785:814|t Tank" |
||
Line 102: | Line 100: | ||
;<code>|</code>: "|" followed by something that is not a valid escape sequence will be displayed as-is or is otherwise undefined behavior. |
;<code>|</code>: "|" followed by something that is not a valid escape sequence will be displayed as-is or is otherwise undefined behavior. |
||
− | == |
+ | ==Patch changes== |
+ | * {{Patch 9.0.1|note=The <code><nowiki>|r</nowiki></code> escape sequence pops nested color sequences in-order instead of resetting the text to the default color.}} |
||
− | : ''See also: {{api|GameTooltip_SetHyperlink|GameTooltip:SetHyperlink}}() and [https://www.townlong-yak.com/framexml/go/ExtractHyperlinkString ExtractHyperlinkString()]. |
||
+ | * {{Patch 4.0.1|note=Added the <code><nowiki>|K</nowiki></code> escape sequence (Kstrings).}} |
||
− | : ''Implemented in [https://www.townlong-yak.com/framexml/live/ItemRef.lua FrameXML/ItemRef.lua]'' |
||
− | Hyperlinks are clickable (chat) links. |
||
− | |c<font color="#ecbc2a">ffxxxxxx</font>|H<font color="#ecbc2a">linkType</font>:<font color="#ecbc2a">payload</font>|h[<font color="#ecbc2a">text</font>]|h|r |
||
− | |||
− | Each kind of hyperlink has the following format: |
||
− | {| class="sortable darktable zebra" style="margin-left: 2em" |
||
− | ! Text !! Description |
||
− | |- |
||
− | | <code><nowiki>|cffxxxxxx</nowiki></code> || The color code |
||
− | |- |
||
− | | <code><nowiki>|H</nowiki></code> || Begins the hyperlink |
||
− | |- |
||
− | | <code><nowiki>linkType:payload</nowiki></code> || The link type and any colon-delimited payload |
||
− | |- |
||
− | | <code><nowiki>|h</nowiki></code> || Marks the end of the payload |
||
− | |- |
||
− | | <code><nowiki>[text]</nowiki></code> || Localized display text |
||
− | |- |
||
− | | <code><nowiki>|h</nowiki></code> || Ends the hyperlink |
||
− | |- |
||
− | | <code><nowiki>|r</nowiki></code> || Stops coloring |
||
− | |} |
||
− | |||
− | The server may expect certain combinations of color, payload and text as {{api|SendChatMessage}}() can reject invalid entries. |
||
− | |||
− | {| class="darktable mw-collapsible mw-collapsed" |
||
− | !HOWTO: Inspecting a hyperlink |
||
− | |- |
||
− | | |
||
− | From the in-game chat window |
||
− | /dump "<font color=71D5FF>[Flash Heal]</font>" |
||
− | |||
− | <syntaxhighlight lang="lua"> |
||
− | > "|cff71d5ff|Hspell:2061:0|h[Flash Heal]|h|r" |
||
− | </syntaxhighlight> |
||
− | |||
− | From an addon, when clicking a hyperlink in-game |
||
− | <syntaxhighlight lang="lua"> |
||
− | hooksecurefunc("SetItemRef", function(link, text) |
||
− | print(link, text:gsub("|", "||")) |
||
− | end) |
||
− | </syntaxhighlight> |
||
− | |||
− | <syntaxhighlight lang="lua"> |
||
− | > "spell:139:0", "|cff71d5ff|Hspell:139:0|h[Renew]|h|r" |
||
− | </syntaxhighlight> |
||
− | |} |
||
− | |||
− | === achievement === |
||
− | {{Seealso|AchievementLink}} |
||
− | achievement : achievementID : guid : completed : month : day : year : criteria1 : criteria2 : criteria3 : criteria4 |
||
− | * <code>guid</code> The player's [[GUID]]. |
||
− | * <code>completed</code> 1 for earned, 0 for unearned achievements. |
||
− | * <code>month:day:year</code> Date the achievement was earned or 0:0:-1 if not earned. |
||
− | * <code>criteria1-4</code> 32-bit bitmask fields for completed criteria, or 0:0:0:0 if not completed. |
||
− | : Example: |
||
− | : <code>"|cffffff00|Hachievement:10671:Player-1096-06DF65C1:1:2:16:17:4294967295:4294967295:4294967295:4294967295|h[Level 110]|h|r"</code> |
||
− | : <code>"|cffffff00|Hachievement:12544:Player-1096-06DF65C1:0:0:0:-1:0:0:0:0|h[Level 120]|h|r"</code> |
||
− | |||
− | === api === |
||
− | {{Seealso|APILink}} |
||
− | Shows [https://www.townlong-yak.com/framexml/live/Blizzard_APIDocumentation API Documentation] from the [[MACRO_api|/api]] command. |
||
− | api : type : name : [parentName] |
||
− | : Example: |
||
− | : <code>"|cffff55dd|Hapi:system:MapUI:|hMapUI|h|r"</code> |
||
− | : <code>"|cff55ddff|Hapi:function:GetMapInfo:MapUI|hC_Map.GetMapInfo()|h|r"</code> |
||
− | : <code>"|cff77ff22|Hapi:event:ZoneChanged:MapUI|hEvent.MapUI.ZoneChanged|h|r"</code> |
||
− | : <code>"|cff55ffdd|Hapi:table:UiMapDetails:MapUI|hUiMapDetails|h|r"</code> |
||
− | |||
− | === azessence === |
||
− | [[:Azerite]] Essence link |
||
− | azessence : essenceID : rank |
||
− | : Example: <code>"|cffa335ee|Hazessence:12:3|h[The Crucible of Flame]|h|r"</code> |
||
− | : See also: {{api|C_AzeriteEssence.GetEssenceInfo}}() |
||
− | |||
− | === battlepet === |
||
− | battlepet : speciesID : level : breedQuality : maxHealth : power : speed : battlePetID |
||
− | : Example: <code>"|cff1eff00|Hbattlepet:202:25:2:1435:267:240:BattlePet-0-000000CC9EA1|h[Baby Blizzard Bear]|h|r"</code> |
||
− | |||
− | === battlePetAbil === |
||
− | battlePetAbil : abilityID : maxHealth : power : speed |
||
− | : Example: <code>"|cff4e96f7|HbattlePetAbil:348:1435:267:240|hBash|h|r"</code> |
||
− | |||
− | === calendarEvent === |
||
− | calendarEvent : monthOffset : monthDay : index |
||
− | : Example: <code>"|HcalendarEvent:0:12:1|hSpring Balloon Festival|h"</code> |
||
− | : See also: {{api|C_Calendar.GetDayEvent}}() |
||
− | |||
− | === channel === |
||
− | Opens the chat window to a specific /channel. |
||
− | channel : channelType : [channelID] |
||
− | : Example: |
||
− | : <code>"|Hchannel:channel:2|h[2. Trade - City]|h"</code> |
||
− | : <code>"|Hchannel:PARTY|h[Party]|h"</code> |
||
− | |||
− | === clubFinder === |
||
− | [[Guild Finder]] (8.2.5) invite link. |
||
− | clubFinder : clubFinderId |
||
− | : Example: <code>"|cffffd100|HclubFinder:ClubFinder-1-19160-1598-53720920|h[Guild: Happy Leveling]|h|r"</code> |
||
− | : See also: [https://www.townlong-yak.com/framexml/go/GetClubFinderLink GetClubFinderLink]() |
||
− | |||
− | === clubTicket === |
||
− | [[Guild_%26_Communities|WoW communities & Blizzard Groups]] invite link. |
||
− | clubTicket : ticketId |
||
− | : Example: <code>"|cffffd100|HclubTicket:oxPbMfv2R|h[Join: test]|h|r"</code> |
||
− | : See also: [https://www.townlong-yak.com/framexml/go/GetClubTicketLink GetClubTicketLink]() |
||
− | |||
− | === community === |
||
− | Community link in [[Quick Join]] requests. |
||
− | community : clubId |
||
− | |||
− | === conduit === |
||
− | [[Conduit]] link |
||
− | conduit : id : [rank] |
||
− | : Example: <code>"|cff71d5ff|Hconduit:5:1|h[Stalwart Guardian]|h|r"</code> |
||
− | : See also: {{api|C_Soulbinds.GetConduitHyperlink}}() |
||
− | |||
− | === currency === |
||
− | currency : id : [amount] |
||
− | : Example: <code>"|cffffffff|Hcurrency:1744|h[Corrupted Memento]|h|r"</code> |
||
− | |||
− | === death === |
||
− | Opens the [[API_GetDeathRecapLink|Death recap]] overview. |
||
− | death : recapID |
||
− | : Example: <code>"|Hdeath:1|h[You died.]|h"</code> |
||
− | |||
− | === enchant === |
||
− | Opens the [[Profession|Tradeskill]] window for a recipe. |
||
− | enchant : spellID |
||
− | : Example: <code>"|cffffd000|Henchant:162206|h[Draenor Engineering: World Shrinker]|h|r"</code> |
||
− | |||
− | === garrfollower === |
||
− | garrfollower : followerID : quality : level : itemLevel : ability1 : ability2 : ability3 : ability4 : trait1 : trait2 : trait3 : trait4 : spec1 |
||
− | : Example: <code>"|cffa335ee|Hgarrfollower:856:4:110:900:457:777:0:0:684:758:0:0:354|h[Calia Menethil]|h|r"</code> |
||
− | |||
− | === garrfollowerability === |
||
− | garrfollowerability : abilityID |
||
− | : Example: |
||
− | : <code>"|cff4e96f7|Hgarrfollowerability:354|h[Discipline]|h|r"</code> |
||
− | : <code>"|cff4e96f7|Hgarrfollowerability:457|h[Holy Nova]|h|r"</code> |
||
− | |||
− | === garrmission === |
||
− | garrmission : missionID : missionDBID |
||
− | : Example: <code>"|cffffff00|Hgarrmission:1610:000000000238f82d|h[Withered Straining]|h|r"</code> |
||
− | : Note: This link type can also be used for securely implementing custom links by posthooking <code>SetItemRef()</code> since it silently fails on non-numbers, whereas custom link types would [https://www.townlong-yak.com/framexml/8.2.5/ItemRef.lua#363 error] out. It does not work on actual chat messages through {{api|SendChatMessage}}() as the server won't show the message. |
||
− | <syntaxhighlight lang="lua"> |
||
− | hooksecurefunc("SetItemRef", function(link) |
||
− | local linkType, addon, param1 = strsplit(":", link) |
||
− | if linkType == "garrmission" and addon == "SomeAddon" then |
||
− | if param1 == "foo" then |
||
− | print(link) |
||
− | end |
||
− | end |
||
− | end) |
||
− | </syntaxhighlight> |
||
− | print("|cFFFFFF00|Hgarrmission:SomeAddon:foo|h[Some Clickable Message]|h|r") |
||
− | |||
− | === instancelock === |
||
− | Opens the [[Raid_lockout|/raidinfo]] list. |
||
− | instancelock : guid : instanceID : difficulty : defeatedEncounters |
||
− | * <code>guid</code> The player's [[GUID]]. |
||
− | * <code>instanceID</code> The instance's [[InstanceID]] |
||
− | * <code>difficulty</code> The instance's [[DifficultyID]] |
||
− | * <code>defeatedEncounters</code> Bitfield indicating the encounters that have been defeated. e.g. 7 means that the first 3 encounters have been cleared. |
||
− | : Example: <code>"|cffff8000|Hinstancelock:Player-3296-000957C8:543:2:4|h[Hellfire Citadel: Ramparts]|h|r"</code> |
||
− | |||
− | === item === |
||
− | item : itemString |
||
− | * <code>itemString</code> must be minimum 18 params when used in {{api|SendChatMessage}}: i.e. <code>%d:::::::::::::::::</code> |
||
− | : Example: |
||
− | : <code>"|cffffffff|Hitem:2592:::::::::::::::::|h[Wool Cloth]|h|r"</code> |
||
− | : See also: [[ItemLink]] |
||
− | |||
− | === journal === |
||
− | Opens the [[Adventure Guide]]. |
||
− | journal : journalType : journalID : difficulty |
||
− | * <code>journalType</code> 0=Instance, 1=Encounter, 2=Section. |
||
− | * <code>journalID</code> InstanceID, [[JournalEncounterID|EncounterID]], or [https://wow.tools/dbc/?dbc=journalencountersection SectionID]. |
||
− | * <code>difficulty</code> [[DifficultyID]] of the instance. |
||
− | : Example: |
||
− | : <code>"|cff66bbff|Hjournal:0:1031:14|h[Uldir]|h|r"</code> |
||
− | : <code>"|cff66bbff|Hjournal:1:2147:14|h[G'huun]|h|r"</code> |
||
− | : <code>"|cff66bbff|Hjournal:2:18068:14|h[Titan Spark]|h|r"</code> |
||
− | : See also: {{api|EJ_HandleLinkPath}}() |
||
− | |||
− | === levelup === |
||
− | levelup : level : levelUpType : [petName] |
||
− | : Example: |
||
− | : <code>"|cffFF4E00|Hlevelup:2:LEVEL_UP_TYPE_CHARACTER|h[Level 2]|h|r"</code> |
||
− | : <code>"|cffFF4E00|Hlevelup:2:LEVEL_UP_TYPE_PET:Bear|h[Level 2]|h|r"</code> |
||
− | |||
− | === lootHistory === |
||
− | Opens the [[Loot#Loot_options:_Need.2C_Greed.2C_Disenchant_and_Pass|/loot]] window. |
||
− | lootHistory : rollID |
||
− | |||
− | === player === |
||
− | : Left-click: starts a whisper message |
||
− | : Right-click: opens the player context menu |
||
− | : Shift-click: sends a [[MACRO_who|/who]] query |
||
− | player : name : [lineID] : [chatType] : [chatTarget] |
||
− | * <code>lineID</code> Message ID for reporting. |
||
− | : Example: |
||
− | : <code>"|Hplayer:Fadeshift|h[Fadeshift]|h"</code> |
||
− | : <code>"|Hplayer:Aquadoll-MoonGuard|h[Aquadoll]|h"</code> |
||
− | : <code>"|Hplayer:Ketho-Anasterian:8:PARTY:|h[|cfffefefeKetho|r]|h"</code> |
||
− | : <code>"|Hplayer:Kilastra-DefiasBrotherhood:90:CHANNEL:2|h[|cff8686ecKilastra|r]|h"</code> |
||
− | : See also: [https://www.townlong-yak.com/framexml/go/GetPlayerLink GetPlayerLink()] |
||
− | |||
− | === playerCommunity === |
||
− | playerCommunity : name : communityClubID : communityStreamID : communityEpoch : communityPosition |
||
− | : Example: <code>"|HplayerCommunity:Ketho-Anasterian:333281:1:1557794365297000:5886997898769|h[|cfffefefeKetho|r]|h"</code> |
||
− | |||
− | === BNplayer === |
||
− | Battle.net friend links. |
||
− | BNplayer : name : bnetIDAccount : lineID : chatType : chatTarget |
||
− | |||
− | === BNplayerCommunity === |
||
− | BNplayerCommunity : name : bnetIDAccount : communityClubID : communityStreamID : communityEpoch : communityPosition |
||
− | |||
− | === quest === |
||
− | quest : questID : questLevel : unknown1 : unknown2 : unknown3 |
||
− | : Example: |
||
− | : <code>"|cffffff00|Hquest:53370:-1:110:120:3|h[Hour of Reckoning]|h|r"</code> |
||
− | : <code>"|cffff8040|Hquest:40746:113:110:255:0|h[One of the People]|h|r"</code> |
||
− | : See also: [[QuestLink]] |
||
− | |||
− | === shareachieve === |
||
− | Opens the Twitter [[MACRO_share|/share]] window for an achievement. |
||
− | shareachieve : achievementID : earned |
||
− | : Example: <code>"|cffffd200|Hshareachieve:964:1|h|TInterface\ChatFrame\UI-ChatIcon-Share:18:18|t|h|r"</code> |
||
− | |||
− | === shareitem === |
||
− | Twitter item link. |
||
− | shareitem : itemLink : earned |
||
− | : Example: <code>"|cffffd200|Hshareitem:151428::::::::20:257:512:1:1:4068:20::::1|h|TInterface\ChatFrame\UI-ChatIcon-Share:18:18|t|h|r"</code> |
||
− | |||
− | === sharess === |
||
− | Twitter screenshot link. |
||
− | sharess : screenshotIndex |
||
− | * <code>screenshotIndex</code>: index of the screenshot to autofill the Tweet with, counted from last login. |
||
− | : Example: <code>"|cffffd200|Hsharess:1|h|TInterface\ChatFrame\UI-ChatIcon-Share:18:18|t|h|r"</code> |
||
− | |||
− | === spell === |
||
− | spell : spellId : glyphId : [event] |
||
− | : Example: |
||
− | : <code>"|cff71d5ff|Hspell:2096:0|h[Mind Vision]|h|r"</code> |
||
− | : <code>"|Hspell:589:0:SPELL_DAMAGE|hShadow Word: Pain|h"</code> |
||
− | : See also: {{api|GetSpellLink}}() |
||
− | |||
− | === storecategory === |
||
− | Opens the [[In-Game Store]]. |
||
− | storecategory : category |
||
− | : Example: <code>"|cffffd000|Hstorecategory:games|h[Click To Upgrade]|h|r"</code> |
||
− | |||
− | === talent === |
||
− | talent : talentID |
||
− | : Example: <code>"|cff71d5ff|Htalent:21754|h[Circle of Healing]|h|r"</code> |
||
− | : See also: {{api|GetTalentInfoByID}}() |
||
− | |||
− | === trade === |
||
− | Shows the tradeskill window (from another player). |
||
− | trade : guid : spellID : skillLineID |
||
− | * <code>guid</code> The player's [[GUID]]. |
||
− | * <code>spellID</code> The tradeskill's Spell ID. |
||
− | * <code>skillLineID</code> The [[TradeSkillLineID]]. |
||
− | : Example: <code>"|cffffd000|Htrade:Player-3296-000957C8:195128:185|h[Cooking]|h|r"</code> |
||
− | : See also: [[TradeSkillLink]] |
||
− | |||
− | === transmogappearance === |
||
− | transmogappearance : sourceID |
||
− | |||
− | === transmogillusion === |
||
− | Previews a weapon enchant in the [[Dressing room]]. |
||
− | transmogillusion : sourceID |
||
− | : Example: <code>"|cffff80ff|Htransmogillusion:5862|h[Titanguard]|h|r"</code> |
||
− | : See also: {{api|C_TransmogCollection.GetIllusionSourceInfo}}() |
||
− | |||
− | === transmogset === |
||
− | transmogset : setID |
||
− | See also: {{api|C_TransmogSets.GetSetInfo}}() |
||
− | |||
− | === unit === |
||
− | Shows the unit tooltip. Opens the combat log context menu on right-click. |
||
− | unit : guid : [name] |
||
− | : Example: <code>"|Hunit:Creature-0-2083-0-7-299-00005A0F91:Young Wolf|hYoung Wolf|h"</code> |
||
− | Implemented in [https://www.townlong-yak.com/framexml/8.1.5/Blizzard_CombatLog/Blizzard_CombatLog.lua#3434 Blizzard_CombatLog.lua] |
||
− | |||
− | === urlIndex === |
||
− | Opens a URL in the default web browser. |
||
− | urlIndex : index |
||
− | : Example: <code>"|HurlIndex:25|h|cff006995Frequently Asked Questions|r|h"</code> |
||
− | |||
− | === worldmap === |
||
− | Opens the World Map to display a pinned waypoint. |
||
− | worldmap : uiMapID : x : y |
||
− | |||
− | * <code>uiMapID</code> The [[UiMapID]] for the waypoint. |
||
− | * <code>x</code> The X coordinate of the waypoint, multiplied by 10000. |
||
− | * <code>y</code> The Y coordinate of the waypoint, multiplied by 10000. |
||
+ | ==See also== |
||
− | : Example: <code>"|cffffff00|Hworldmap:84:7222:2550|h[|A:Waypoint-MapPin-ChatIcon:13:13:0:0|a Map Pin Location]|h|r"</code> |
||
+ | * [[Hyperlinks]] |
||
− | : enUS globalstring: <code>MAP_PIN_HYPERLINK = "|A:Waypoint-MapPin-ChatIcon:13:13:0:0|a Map Pin Location"</code> |
||
− | : See also: {{api|C_Map.SetUserWaypoint}}() |
||
==References== |
==References== |
Revision as of 21:05, 14 October 2021
The API is no longer being updated here until further notice. |
Main Menu |
---|
|
Many UI elements that display text on the screen support a special escape sequences starting with the | pipe character.
Warning: If you are using the chat window or an in-game text editor, then "|"
will most likely be escaped. Try using "\124"
instead which is the ASCII code for the pipe character.
Escape Sequences
Coloring
|cAARRGGBBtext|r
- Each pair of digits represents a color value (plus the alpha value, however the alpha value is currently ignored and should always be FF) as a hexadecimal number. The
|r
escape sequence pops nested color sequences in-order[1].
/run print("this is \124cFFFF0000red and \124cFF00FF00this is green\124r back to red\124r back to white") > this is red and this is green back to red back to white
Textures
|Tpath:height[:width[:offsetX:offsetY:[textureWidth:textureHeight:leftTexel:rightTexel:topTexel:bottomTexel[:rVertexColor:gVertexColor:bVertexColor]]]]|t
- Will insert a texture into a font string. Parameter
width
is optional (see below). The offsets are optional and will shift the texture from where it would normally be placed.TextHeight
is based on size of the font used - this is used to automatically scale icons based on the size of the text.height == 0; width omitted: Width = Height = TextHeight
(always square!)height > 0; width omitted: Width = Height = height
(always square!)height == 0; width == 0 : Width = Height = TextHeight
(always square!)height > 0; width == 0 : Width = TextHeight; Height = height
(height is height!!!)height == 0; width > 0 : Width = width * TextHeight; Height = TextHeight
(width is an aspect ratio and defines width!!!)height > 0; width > 0 : Width = width; Height = height
offsetX offsetY:
Offset for the rendered image, in pixelstextureWidth textureHeight:
Size of the source image, in pixelsleftTexel rightTexel topTexel bottomTexel:
(x1 x2 y1 y2)
Coordinates that identify the left/right/top/bottom edges, in pixels (see Texture:SetTexCoord() but non-normalized)rVertexColor gVertexColor bVertexColor:
RGB color values in the range 0-255 that are used to tint the texture
- Notes:
- When you need to display a square icon in the string (spell/item icon), use only
|Tpath:0|t
- When you need to display a rectangular image in the string (Blizzard logo), use aspect ratio version:
|Tpath:0:aspectRatio|t
- When you need to display a square icon in the string (spell/item icon), use only
Texture atlas
- Main article: AtlasID
Atlases allow for easily getting part of a texture without having to use tex coords.
|A:atlas:height:width[:offsetX:offsetY]|a
Examples
- Both slash
/
or escaped backslashes\\
are valid file separators. - Parameters can be omitted in between
:
characters.
Coloring | |
---|---|
"|cFFFF0000This is red text|r this is normal color"
WrapTextInColorCode("This is red text", "FFFF0000").." this is normal color"
|
This is red text this is normal color |
Texture | |
Accepts a file path or FileDataID."|T133784:16|t Coins"
"|TInterface\\Icons\\INV_Misc_Coin_01:16|t Coins"
CreateTextureMarkup("Interface/Icons/INV_Misc_Coin_01", 64, 64, 16, 16, 0, 1, 0, 1)
|
Coins[1] |
"|TInterface\\Icons\\INV_Misc_Coin_01:16:16:0:0:64:64:4:60:4:60|t Coins (cropped)"
|
Coins (cropped) |
Sets the vertex color of the texture to green (73:177:73)."|TInterface\\ChatFrame\\UI-ChatIcon-ArmoryChat:14:14:0:0:16:16:0:16:0:16:73:177:73|t Reckful"
|
Reckful[2] |
Texture atlas | |
Accepts an Atlas name or ID.[3]"|A:4259:19:19|a Tank"
"|A:groupfinder-icon-role-large-tank:19:19|a Tank"
"|Tinterface\\lfgframe\\groupfinder:19:19:::1024:1024:915:944:785:814|t Tank"
CreateAtlasMarkup("groupfinder-icon-role-large-tank", 16, 16)
|
Tank[4] |
- Utility functions:
- WrapTextInColorCode()
- ColorMixin:WrapTextInColorCode() - Adds the color escape sequences from a ColorMixin.
- CreateTextureMarkup()
- CreateAtlasMarkup()
Protected strings
Also known as Kstrings, they prevent strings from being parsed in addons.
- Battle.net
- The
q
variant e.g.|Kq1|k
is used for the confidentiality of Battle.net account names. The number represents the Battle.net friend ID. - Known sources: C_BattleNet.GetAccountInfoByID()
- The
- Group Finder
- The
r
variant e.g.|Kr14|k
is used for the name and comment in group finder listings to prevent addons like World Quest Group Finder. - Known sources: C_LFGList.GetSearchResultInfo() and C_LFGList.GetActiveEntryInfo()
- The
- Communities
- The
v
variant e.g.|Kv1|k
is used for Community Channels to prevent addons from using it as a shared, persistent data storage. The number represents a chat message line ID. - Known sources: CHAT_MSG_COMMUNITIES_CHANNEL
- The
Grammar
number |1singular;plural;
- Will choose a word depending on whether the digit preceding it is 0/1 or not (i.e. 1,11,21 return the first string, as will 0,10,40). Note that unlike |4 singular and plural forms are separated by semi-colon.
|2text
- Before vowels outputs d' (with apostrophe) and removes any leading spaces from text, otherwise outputs de (with trailing space)
|3-formid(text)
- Displays text declined to the specified form (index ranges from 1 to GetNumDeclensionSets()). Processed by C code, data used for parsing isn't available to UI, all events fire with the data already processed.
number |4singular:plural;
-or-number |4singular:plural1:plural2;
- Will choose a form based on the number preceding it. Client locale dependant. More than two forms (separated by colons) may be required by some locales (i.e. Russian requires 3 forms), if too many forms provided they are ignored, if needed form isn't provided empty string will be used instead. Note that unlike |1 singular and plural forms are separated by colon. (added with 2.4.2)
Other
|n
- Newline, if the widget supports it. Similar behavior as
\n
||
- Escapes the "|" character.
|
- "|" followed by something that is not a valid escape sequence will be displayed as-is or is otherwise undefined behavior.
Patch changes
- Patch 9.0.1 (2020-10-13): The
|r
escape sequence pops nested color sequences in-order instead of resetting the text to the default color. - Patch 4.0.1 (2010-10-12): Added the
|K
escape sequence (Kstrings).