this is my exact code for exporting talents and glyphs for both specs from ingame to a lua file
Code:
unit = "player";
local numTabs,numPts,state,petName;
local numSpecs = GetNumSpecializations(false, "player");
local structTalent={};
local structTalents={};
xstat["Talents"] = {};
numSpecGroups = GetNumSpecGroups(false, "player");
state = "Talents";
local tabName,iconTexture,pointsSpent,background;
local cnt=0;
local nameTalent,iconTexture,tier,column,currentRank,maxRank,isExceptional,meetsPrereq;
for i = 1, numSpecGroups do
tindex = i;
structTalent[tindex]={};
if (GetActiveSpecGroup(false, "player") == i) then
Act = true;
else
Act = false;
end
local id, sname, description, sicon, background= GetSpecializationInfo(i);
local role = GetSpecializationRole(i);
structTalent[tindex]={
Icon = frame.scanIcon(sicon),
Background = frame.scanIcon(background),
Name = sname,
Desc = description,
Active = Act,
Role = role,
};
structTalent[tindex]["Talents"] = {};
for talentIndex=1,18 do
--name, iconTexture, tier, column, selected, available = GetTalentInfo(talentIndex ,null, "player", i)
name, iconTexture, tier, column, selected, available = GetTalentInfo(talentIndex, "player", i, false, frame.UnitClass("player"));
if( name ) then
structTalent[tindex]["Talents"][name]={
Location = strjoin(":", tier,column),
Texture = frame.scanIcon(iconTexture),
Selected = selected,
Available = available,
Name = name,
};
end
end
local structGlyphs={};
structTalent[tindex]["Glyphs"] = {};
for index=1, GetNumGlyphSockets() do
local enabled, glyphType, glyphTooltipIndex, glyphSpell, icon = GetGlyphSocketInfo(index,i);
if(enabled == 1 and glyphSpell) then
name, rank, icon, powerCost, isFunnel, powerType, castingTime, minRange, maxRange = GetSpellInfo(glyphSpell)
structGlyphs[index] = {
Name = name,
Type = glyphType,
Icon = frame.scanIcon(icon),
};
else
structGlyphs[index] = nil;
end
end
structTalent[tindex]["Glyphs"] = structGlyphs;
end