WoW:SpellLink: Difference between revisions
(the spelllink was in the format of an itemlink, trimmed the excess fields) |
|||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:spellLink}} | {{DISPLAYTITLE:spellLink}} | ||
{{wowapitype}} | {{wowapitype}} | ||
spellLinks are returned by several functions, e.g. [[API GetSpellLink|GetSpellLink]](), etc. | spellLinks are returned by several functions, e.g. [[API GetSpellLink|GetSpellLink]](), etc. | ||
Latest revision as of 04:48, 15 August 2023
Warning: Display title "WoW API type: SpellLink" overrides earlier display title "spellLink".← API types
spellLinks are returned by several functions, e.g. GetSpellLink(), etc.
In essence, they are spellStrings with additional formatting to make in-game text controls display them as clickable hyperlinks.
|cff71d5ff|Hspell:10060|h[Power Infusion]|h|r
Broken up in its components:
- "|cff71d5ff" – Colorizes the link with a blue/cyan color (all spell links are blue)
- The first two characters after pipe-c may be the alpha level, where
ff
is fully opaque. - The next three sets of two characters represent the red, green, and blue levels, just like HTML.
- The first two characters after pipe-c may be the alpha level, where
- "|H" – "Hyperlink link data starts here"
- "spell:10060" – Read more at spellString.
- "|h" – "End of link, text follows"
- "[Power Infusion]" – The actual text displayed
- "|h" – "End of hyperlink"
- "|r" – Restores color to normal
You can extract the spellString from a given spellLink with the following pattern:
local found, _, spellString = string.find(spellLink, "^|c%x+|H(.+)|h%[.*%]")
Note: The format of the link is similar for enchant, spell and quest links, with merely the "spellstring" changing. See spellString, itemString, enchantString and questString
Printing links for debug[edit]
Printing out the contents of an spell link is perhaps not so obvious; displaying it anywhere in-game will just show you a clickable link. Reformat it slightly to ruin the escape sequences and you'll see what it really looks like:
link = GetSpellLink(spell); printable = gsub(link, "\124", "\124\124"); ChatFrame1:AddMessage("Here's what it really looks like: \"" .. printable .. "\"");
"124" is the ascii value of the "|" character. If you are writing this in a regular .lua file, feel free to go ahead and just use "|" and "||". However, if you're typing it in an in-game editor, it's better to use the ascii code escape to avoid problems.