WoW:SpellLink: Difference between revisions
(Initial creation) |
(Changed example to use an actual spell instead of itemlinks) |
||
Line 4: | Line 4: | ||
== spellLink API Type (String) == | == spellLink API Type (String) == | ||
spellLinks are returned by several functions, e.g. [[API | spellLinks are returned by several functions, e.g. [[API GetSpellLink|GetSpellLink]](), etc. | ||
In essence, they are [[spellString]]s with additional formatting to make in-game text controls display them as clickable hyperlinks. | In essence, they are [[spellString]]s 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: | Broken up in its components: | ||
* <tt>"'''| | * <tt>"'''|cff71d5ff'''"</tt> – 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 <code>ff</code> is fully opaque. | ** The first two characters after pipe-c may be the alpha level, where <code>ff</code> is fully opaque. | ||
** The next three sets of two characters represent the red, green, and blue levels, just like HTML. | ** The next three sets of two characters represent the red, green, and blue levels, just like HTML. | ||
* <tt>"'''|H'''"</tt> – "Hyperlink link data starts here" | * <tt>"'''|H'''"</tt> – "Hyperlink link data starts here" | ||
* <tt>"'''spell: | * <tt>"'''spell:10060:0:0:0:0:0:0:0'''"</tt> – Read more at [[spellString]]. | ||
* <tt>"'''|h'''"</tt> – "End of link, text follows" | * <tt>"'''|h'''"</tt> – "End of link, text follows" | ||
* <tt>"'''[ | * <tt>"'''[Power Infusion]'''"</tt> – The actual text displayed | ||
* <tt>"'''|h'''"</tt> – "End of hyperlink" | * <tt>"'''|h'''"</tt> – "End of hyperlink" | ||
* <tt>"'''|r'''"</tt> – Restores color to normal | * <tt>"'''|r'''"</tt> – Restores color to normal | ||
Line 33: | Line 33: | ||
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 [[UI Escape Sequences|escape sequences]] and you'll see what it really looks like: | 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 [[UI Escape Sequences|escape sequences]] and you'll see what it really looks like: | ||
link = [[API | link = [[API GetSpellLink|GetSpellLink]](<i>spell</i>); | ||
printable = [[API gsub|gsub]](link, "\124", "\124\124"); | printable = [[API gsub|gsub]](link, "\124", "\124\124"); | ||
ChatFrame1:AddMessage("Here's what it really looks like: \"" .. printable .. "\""); | 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. | "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. |
Revision as of 03:20, 19 December 2008
Warning: Display title "WoW API type: SpellLink" overrides earlier display title "spellLink".← API types
spellLink API Type (String)
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:0:0:0:0:0:0:0" – 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
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.