Script for checking which Shaman Weapon Illusions have been learned

I have been using the following script to check which of the Shaman weapon illusions I have learned.

/run for q,i in pairs({["Earthliving"]=42941,
        ["Flametongue"]=42942,
        ["Frostbrand"]=42943,
        ["Rockbiter"]=42944,
        ["Windfury"]=42945}) do
    print((C_QuestLog.IsQuestFlaggedCompleted(i) and '\124cff00ff00' or '\124cffff0000')..q..'\124r')
end

I have finally learned all of them but, for some reason, the script still says I’m missing Frostbrand and Rockbiter. Does anyone know why those two aren’t working properly and/or how to fix it?

Double check the spell IDs

I’m using the id’s listed on wowhead:

https://www.wowhead.com/quest=42943/illusion-frostbrand
https://www.wowhead.com/quest=42944/illusion-rockbiter

So I’m not sure why they aren’t working. Especially when the other three are.

UPDATE: I have figured out a way to get it to work. I had to use the C_TransmogCollection.GetIllusionInfo(illusionID) function with the sourceIDs from the list found on the WeaponEnchantID page of Wowpedia. The working script is:

/run for q,i in pairs({["Earthliving"]=5871,
        ["Flametongue"]=5872,
        ["Frostbrand"]=5873,
        ["Rockbiter"]=5874,
        ["Windfury"]=5875}) do
    print((C_TransmogCollection.GetIllusionInfo(i).isCollected and '\124cff00ff00' or '\124cffff0000')..q..'\124r')
end

or for a default macro-friendly version (I use an addon to run the above script, so it is too long to put in a macro):

/run for q,i in pairs({["Earthliving"]=5871, ["Flametongue"]=5872, ["Frostbrand"]=5873, ["Rockbiter"]=5874, ["Windfury"]=5875}) do print((C_TransmogCollection.GetIllusionInfo(i).isCollected and '\124cff00ff00' or '\124cffff0000')..q..'\124r') end

Hopefully this helps others!

1 Like