WoW:SpellLink: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
(Initial creation)
 
m (Move page script moved page SpellLink to SpellLink without leaving a redirect)
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:spellLink}}
{{DISPLAYTITLE:spellLink}}
{{wowapitype}}<br>
{{wowapitype}}
 
spellLinks are returned by several functions, e.g. [[API GetSpellLink|GetSpellLink]](), etc.
== spellLink API Type (String) ==
 
spellLinks are returned by several functions, e.g. [[API GetSpellInfo|GetSpellInfo]](), 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.


  |cff9d9d9d|Hspell:7073:0:0:0:0:0:0:0|h[Broken Fang]|h|r
  |cff71d5ff|Hspell:10060|h[Power Infusion]|h|r


Broken up in its components:
Broken up in its components:


* <tt>"'''|cff9d9d9d'''"</tt> &ndash; Colorizes the link with a medium grey color (Broken Fang is vendortrash)
* <tt>"'''|cff71d5ff'''"</tt> &ndash; 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> &ndash; "Hyperlink link data starts here"
* <tt>"'''|H'''"</tt> &ndash; "Hyperlink link data starts here"
* <tt>"'''spell:7073:0:0:0:0:0:0:0'''"</tt> &ndash; Read more at [[spellString]].
* <tt>"'''spell:10060'''"</tt> &ndash; Read more at [[spellString]].
* <tt>"'''|h'''"</tt> &ndash; "End of link, text follows"
* <tt>"'''|h'''"</tt> &ndash; "End of link, text follows"
* <tt>"'''[Broken Fang]'''"</tt> &ndash; The actual text displayed
* <tt>"'''[Power Infusion]'''"</tt> &ndash; The actual text displayed
* <tt>"'''|h'''"</tt> &ndash; "End of hyperlink"
* <tt>"'''|h'''"</tt> &ndash; "End of hyperlink"
* <tt>"'''|r'''"</tt> &ndash; Restores color to normal
* <tt>"'''|r'''"</tt> &ndash; Restores color to normal
Line 33: Line 30:
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 GetSpellInfo|GetSpellInfo]]();
  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.

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.
  • "|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.