Skillet-Classic

Skillet-Classic

445k Downloads

Possible Issue with Displaying Numbers and Colors

MySanaMyLife opened this issue · 23 comments

commented

I've been using it recently and came across a small issue.
Under normal circumstances, the display looks like this:
Image

However, after learning and applying a new method, I noticed that the display now looks like this:
Image

All the numbers and colors that should be shown have turned into 0.

Do you have any ideas on what might be causing this issue? Any insights would be greatly appreciated.

Thanks in advance!

commented

As I said before, Blizzard's API doesn't provide this data and I am at the mercy of those third-party addons or online databases to provide the data. If the update I provided didn't fix the issue, then I can't do anything about it.

There is no feedback from the /skillet initskilllevels as the function called by that command is normally called internally.

The "Notes" error is a separate issue.

commented

The skill level data is not exposed through the Blizzard API. The data is manually collected from a variety of sources like Wowhead, other addons, or https://wago.tools/db2/SkillLineAbility and used to populate Skillet-Classic's tables.

When Blizzard adds recipes, these other sources need to be updated and then the data needs to be captured and entered into Skillet-Classic's tables.

If Skillet-Classic can't find an entry in its tables, then the result is what you see, 0/0/0/0/.

Skillet-Classic maintains a table, Skillet.db.global.MissingSkillLevels which is populated with those entries which it could not find. You can find this table in your global saved variables file, Skillet-Classic.lua, or display it in game with /dump Skillet.db.global.MissingSkillLevels.

I will attempt to update the tables and publish a new release. In the mean time, if you wish to research and add entries yourself, let me know and I'll explain how.

commented

I have updated the tables for Classic Era and Cataclysm Classic. You can update your copy of Skillet-Classic with the contents of the attached zip file. In game, please type /skillet initskilllevels to update the tables. This only needs to be done once as the new tables will be saved when you logoff.

Let me know if this fixes (or not) the specific recipe you reported here.

SkillLevelData2.zip

commented

Thanks for providing the updated table! I followed your instructions and replaced SkillLevelData2.lua in the Skillet-Classic folder. After that, I launched the game and ran /skillet initskilllevels, but unfortunately, the issue still persists.

I also tried restarting the game and running the command again, but the missing data for the affected recipes didn’t get restored. Additionally, after entering /skillet initskilllevels, there was no message or confirmation in the chat window— is this expected behavior?

Moreover, I noticed that when I click on Notes for the affected enchanting recipes, the following error appears:

4x bad argument #2 to '?' (Usage: self:SetNormalTexture(asset))
[string "=[C]"]: in function `SetNormalTexture'
[string "@Skillet-Classic/UI/RecipeNotes.lua"]:184: in function `UpdateNotesWindow'
[string "@Skillet-Classic/UI/RecipeNotes.lua"]:56: in function `ShowRecipeNotes'
[string "*MainFrame.xml:1994_OnClick"]:2: in function <[string "*MainFrame.xml:1994_OnClick"]:1>

Locals:
(*temporary) = "bad argument #2 to '?' (Usage: self:SetNormalTexture(asset))"

I’m not sure if this is related to the missing skill level data, but I thought it might help with debugging. Let me know if there’s anything else I can try to help diagnose the issue.

Thanks again for your time!

commented

The reason I suspect this bug might be related is that when I first started using Skillet-Classic, my enchanting skill level was quite low, and everything worked fine—including the Notes feature, which didn’t trigger any errors.

It was only recently that I started encountering this issue. What's even more puzzling is that when I went back to check the old enchanting recipes I had previously learned, they also now display as 0/0/0/0.

This seems quite strange to me. Let me know if there's anything else I can test to help narrow down the issue.

Thanks!

commented

The "Notes" error is because Blizzard has been changing the API and Skillet-Classic hasn't kept up with the changes as "Notes" is a seldom used feature. I have reworked the code and you can preview the changes by updating your copy with:

RecipeNotes.zip

Enchanting recipes showing 0/0/0/0 is another bug I'm working on. Note that this is a display bug only. Skillet-Classic still functions.

commented

Thanks for the fix! The Notes feature is now working properly after applying the .zip file. Really appreciate it!

As for the 0/0/0/0 issue—here’s an example:
I found an enchanting recipe 7793 in the game, which corresponds to Enchant 2H Weapon - Lesser Intellect. I checked both SkilletData.lua and SkilletData2.lua, and the recipe exists in both files.

In SkillLevelData.lua, I couldn't find 7793, but in SkillLevelData2.lua, I found the entry:
[7793] = '1/130/150/170'

However, in-game, it still displays as 0/0/0/0, so it seems to match what you mentioned about it being a display bug. I’m not familiar with the underlying mechanics, so I guess I’ll just have to wait for your fix. Thanks for your hard work!

commented

First, you need the right data in the right table. Then you need the code to correctly get the data out of the table.

Skillet-Classic-2.10-alpha1 hopefully contains the correct code.

SkilletData.lua (and SkilletData2.lua) contain tables that map each enchant to a scroll (vellum) with that enchant. Another "missing from the Blizzard API" work around. You have yet to find any errors in this code 😁.

SkillLevelData.lua is the code responsible for populating the SkillLevel display. Originally it also contained the tables but they were moved to SkillLevelData2.lua. The code in SkillLevelData.lua was just plain wrong when enchants were involved and I have done a major rewrite that hopefully fixes enchanting without breaking all the other professions.

The Notes feature is also fixed along with some minor formatting adjustments.

Let me know if it works as you expect.

commented
commented

Thanks!

I deleted the original Skillet-Classic folder, extracted Skillet-Classic-2.10-alpha2, and placed it in the correct location. Everything looks great now!

Both previously learned recipes and newly learned ones are working correctly, and the Notes feature is also functioning without any issues.

I really appreciate your quick fix! This issue had been bothering me for a while, but since I hadn’t seen other users reporting similar problems, I thought it might be something on my end and was hesitant to ask. I’m really glad I finally did!

commented

I'd rather you report problems you see immediately rather than wait for someone else. If it's your end I'll let you know 😁.

There will be an alpha3 in a little bit as I found a bug on Classic Era that didn't show on Cataclysm Classic.

commented

Opps...a bit of an awkward situation... After my enchanting skill level exceeded 425, the 0/0/0/0 issue happened again. 😆

commented

Congratulations! My enchanter is only level 35 with a max skill of 300.

I assume you are on Cataclysm Classic, 4.4.2. What is your locale (/dump GetLocale()?

Are you getting zeros everywhere or just on those recipes you have learned after 425?
When you mouseover or select a recipe, the tooltip has two values at the bottom. These are not localized so I'll be able to read them. If you haven't learned too many recipes, please post the bottom line of the ones that fail here.

Use /skillet printskilllevels itemID spellID (use 0 for the itemID if it's not listed) on the highest recipe that works and on some of the recipes that fail and post (use the code tag '<>`) results here. We may have to turn on Skillet-Classic's debugging if I don't find something from this.

commented

I see entries in SkillLevelData2.lua that go above 425 so I'm confused at the moment.

commented

My game locale is zhTW.
Only the recipes learned after level 425 are showing 0/0/0/0.
My enchanting skill just reached 426, and the affected recipes are those learned after that.
There are four affected recipes, and their spellIDs are:
74189
74191
74132
60619
The last working recipe's spellID is 60668.

I think I might have misunderstood the command.
Since the tooltip for enchanting recipes only shows spellID and scrollID but no itemID,
I set all itemID values to 0 in the command you provided.
However, regardless of whether I used 60668 or 74189, I got the following error message:

3x ...c/Libs/LibPeriodicTable-3.1-90669/LibPeriodicTable-3.1.lua:308: Invalid arg1: invalid item.
[string "=[C]"]: ?
[string "@Skillet-Classic/Libs/LibPeriodicTable-3.1-90669/LibPeriodicTable-3.1.lua"]:308: in function ItemInSet'
[string "@Skillet-Classic/SkillLevelData.lua"]:269: in function GetTradeSkillLevels'
[string "@Skillet-Classic/SkillLevelData.lua"]:409: in function PrintTradeSkillLevels'
[string "@Skillet-Classic/SkilletOptions.lua"]:1049: in function <Skillet-Classic/SkilletOptions.lua:1044>
[string "=(tail call)"]: ?
[string "@!Ace3/AceConfig-3.0-3/AceConfigCmd-3.0-14/AceConfigCmd-3.0.lua"]:136: in function <.../AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua:126>
[string "@!Ace3/AceConfig-3.0-3/AceConfigCmd-3.0-14/AceConfigCmd-3.0.lua"]:417: in function <.../AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua:327>
[string "=(tail call)"]: ?
[string "@!Ace3/AceConfig-3.0-3/AceConfigCmd-3.0-14/AceConfigCmd-3.0.lua"]:762: in function HandleCommand'
[string "@!Ace3/AceConfig-3.0-3/AceConfigCmd-3.0-14/AceConfigCmd-3.0.lua"]:774: in function ?'
[string "@Blizzard_ChatFrameBase/Classic/ChatFrame.lua"]:5053: in function <Blizzard_ChatFrameBase/Classic/ChatFrame.lua:4999>
[string "=[C]"]: in function ChatEdit_ParseText'
[string "@Blizzard_ChatFrameBase/Classic/ChatFrame.lua"]:4705: in function ChatEdit_SendText'
[string "@Blizzard_ChatFrameBase/Classic/ChatFrame.lua"]:4741: in function ChatEdit_OnEnterPressed'
[string "*ChatFrame.xml:120_OnEnterPressed"]:1: in function <[string "*ChatFrame.xml:120_OnEnterPressed"]:1>

Locals:
(*temporary) = false
(*temporary) = "Invalid arg1: invalid item."

Later, I had an idea and tried using the scrollID as the itemID, and that worked.
But strangely, even for 60668, which displays correctly, the output still shows 0/0/0/0.
Here are the results for 74189 and 60668:

Skillet-Classic: PrintTradeSkillLevels: altskilllevels= nil
Skillet-Classic: PrintTradeSkillLevels: baseskilllevel= nil
Skillet-Classic: PrintTradeSkillLevels: #SkillLevels= 3496
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_era= 1598
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_cata= 4372
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_retail= 0
Skillet-Classic: PrintTradeSkillLevels: itemID= 52743, spellID= 74189
Skillet-Classic: PrintTradeSkillLevels: index= nil, source= 7
Skillet-Classic: PrintTradeSkillLevels: levels= 0/0/0/0
Skillet-Classic: PrintTradeSkillLevels: altskilllevels= nil
Skillet-Classic: PrintTradeSkillLevels: baseskilllevel= nil
Skillet-Classic: PrintTradeSkillLevels: #SkillLevels= 3496
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_era= 1598
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_cata= 4372
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_retail= 0
Skillet-Classic: PrintTradeSkillLevels: itemID= 44458, spellID= 60668
Skillet-Classic: PrintTradeSkillLevels: index= nil, source= 7
Skillet-Classic: PrintTradeSkillLevels: levels= 0/0/0/0
commented

Using 60668 and 74189 on my system shows:

Search "60668|74189" (3 hits in 1 file of 1 searched) [RegEx: Case]
  D:\World of Warcraft\_classic_\Interface\AddOns\Skillet-Classic\SkillLevelData2.lua (3 hits)
	Line 1113: [-60668] = "425/435/445/455",
	Line 8275: [60668] = '1/435/445/455',
	Line 8776: [74189] = '1/440/450/460',

Since there are multiple external sources for the data, the code attempts to find the data from as many sources as are available. Obviously, it isn't finding 74189 when it should. Using the scrollID for the itemID doesn't work for the same reason. I'll have another go at fixing the code.

As for the Invalid arg1: invalid item error, you might try /skillet printskilllevels 60668 60668 and /skillet printskilllevels 74189 74189. I'll also fix the code so that an itemID of 0 doesn't blow up (an itemID of 1 works). Here are my results:

[07:18:06] Skillet-Classic: PrintTradeSkillLevels: altskilllevels= nil
[07:18:06] Skillet-Classic: PrintTradeSkillLevels: baseskilllevel= nil
[07:18:06] Skillet-Classic: PrintTradeSkillLevels: #SkillLevels= 3496
[07:18:06] Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_era= 1598
[07:18:06] Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_cata= 4372
[07:18:06] Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_retail= 0
[07:18:06] Skillet-Classic: PrintTradeSkillLevels: itemID= 60668, spellID= 60668
[07:18:06] Skillet-Classic: PrintTradeSkillLevels: index= nil, source= 2
[07:18:06] Skillet-Classic: PrintTradeSkillLevels: levels= 425/435/445/455

[07:18:47] Skillet-Classic: PrintTradeSkillLevels: altskilllevels= nil
[07:18:47] Skillet-Classic: PrintTradeSkillLevels: baseskilllevel= nil
[07:18:47] Skillet-Classic: PrintTradeSkillLevels: #SkillLevels= 3496
[07:18:47] Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_era= 1598
[07:18:47] Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_cata= 4372
[07:18:47] Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_retail= 0
[07:18:47] Skillet-Classic: PrintTradeSkillLevels: itemID= 74189, spellID= 74189
[07:18:47] Skillet-Classic: PrintTradeSkillLevels: index= nil, source= 4
[07:18:47] Skillet-Classic: PrintTradeSkillLevels: levels= 425/440/450/460
commented

That's strange. I executed the commands you provided separately and received similar feedback:

Skillet-Classic: PrintTradeSkillLevels: altskilllevels= nil
Skillet-Classic: PrintTradeSkillLevels: baseskilllevel= nil
Skillet-Classic: PrintTradeSkillLevels: #SkillLevels= 3496
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_era= 1598
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_cata= 4372
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_retail= 0
Skillet-Classic: PrintTradeSkillLevels: itemID= 60668, spellID= 60668
Skillet-Classic: PrintTradeSkillLevels: index= nil, source= 4
Skillet-Classic: PrintTradeSkillLevels: levels= 435/445/455/465
Skillet-Classic: PrintTradeSkillLevels: altskilllevels= nil
Skillet-Classic: PrintTradeSkillLevels: baseskilllevel= nil
Skillet-Classic: PrintTradeSkillLevels: #SkillLevels= 3496
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_era= 1598
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_cata= 4372
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_retail= 0
Skillet-Classic: PrintTradeSkillLevels: itemID= 74189, spellID= 74189
Skillet-Classic: PrintTradeSkillLevels: index= nil, source= 4
Skillet-Classic: PrintTradeSkillLevels: levels= 425/440/450/460

However, there is an issue with the display, as shown in the images.

Image

Image

commented

Let's try Skillet-Classic-2.10-alpha9. I have changed the packaging to load different data on Cataclysm Classic and Classic Era so we may need to cleanup your saved variables file after we get everything working.

After installing, please type /skillet initskilllevels and then /skillet printskilllevels and post the output here.

Hopefully, the code should display the levels for your new skills (and the errors in /skillet printskilllevels should be gone. Please post another screen shot if it does not work.

commented

I've been testing edge cases on both Cataclysm Classic (4.4.2) and Classic Era (1.15.6) and both should now be working with Skillet-Classic-2.10-alpha9.

commented

The issue with /skillet printskilllevels has indeed been resolved. Here is the output:

Skillet-Classic: PrintTradeSkillLevels: altskilllevels= nil
Skillet-Classic: PrintTradeSkillLevels: baseskilllevel= nil
Skillet-Classic: PrintTradeSkillLevels: #SkillLevels= 3496
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_era= 1373
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_cata= 4296
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_retail= 0
Skillet-Classic: PrintTradeSkillLevels: itemID= , spellID= nil
Skillet-Classic: PrintTradeSkillLevels: index= nil, source= 5
Skillet-Classic: PrintTradeSkillLevels: levels= 0/0/0/0

However, the issue with 0/0/0/0 still persists and has actually increased.
Many recipes from the previous version (before Enchanting skill level 425) have also turned into 0/0/0/0.

Did I do something wrong? Should I not have deleted the folder and replaced it with yours directly? Should I have overwritten it instead?

commented

I do not believe you have installed alpha9 correctly as your output is from an earlier version. I'm guessing that your ...\Interface\Addons\Skillet-Classic folder contains another Skillet-Classic folder.

...\Interface\Addons should contain the Skillet-Classic folder. In that folder should be multiple files and folders including three files with the .toc extension, Skillet-Classic.toc, Skillet-Classic_Cata.toc, and Skillet-Classic_Vanilla.toc.

The title bar should have 2.10-alpha9 in it. The last screenshot you posted shows 2.10-alpha2

Image

Once you have the correct version installed. You will need to type /skillet initskilllevels and then /skillet printskilllevels. The output should look like:

[07:26:21] Skillet-Classic: 2.10-alpha9, 40402, 4, enUS
[07:26:21] Skillet-Classic: PrintTradeSkillLevels: altskilllevels= nil
[07:26:21] Skillet-Classic: PrintTradeSkillLevels: baseskilllevel= nil
[07:26:21] Skillet-Classic: PrintTradeSkillLevels: #SkillLevels= 3496
[07:26:21] Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_era= 0
[07:26:21] Skillet-Classic: PrintTradeSkillLevels: #NameToSpellID= 0
[07:26:21] Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_cata= 4372
[07:26:21] Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_retail= 0
[07:26:21] Skillet-Classic: GetTradeSkillLevels(0, 0)
[07:26:21] Skillet-Classic: PrintTradeSkillLevels: itemID= 0, spellID= 0
[07:26:21] Skillet-Classic: PrintTradeSkillLevels: source= 7
[07:26:21] Skillet-Classic: PrintTradeSkillLevels: levels= 0/0/0/0

The important values for Cataclysm Classic are #SkillLevels= 3496 and #SkillLineAbility_cata= 4372.

Thank you for enduring my multiple alpha versions path to the correct solution. Your input has been crucial as the alternative would have been to level my enchanter from 35-85 and enchanting from 300-426. When all the other Skillet-Classic users go from 2.09 to 2.10, they should not encounter the problem of stale information in the saved variables.

commented

Oops... After your explanation, I realized that I extracted the wrong folder. Maybe I should delete the old zip files in the future. I'm really sorry for the trouble I caused. Here is the output:

Skillet-Classic: 2.10-alpha9, 40402, 4, zhTW
Skillet-Classic: PrintTradeSkillLevels: altskilllevels= nil
Skillet-Classic: PrintTradeSkillLevels: baseskilllevel= nil
Skillet-Classic: PrintTradeSkillLevels: #SkillLevels= 3496
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_era= 0
Skillet-Classic: PrintTradeSkillLevels: #NameToSpellID= 0
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_cata= 4372
Skillet-Classic: PrintTradeSkillLevels: #SkillLineAbility_retail= 0
Skillet-Classic: PrintTradeSkillLevels: itemID= 0, spellID= 0
Skillet-Classic: PrintTradeSkillLevels: source= 7
Skillet-Classic: PrintTradeSkillLevels: levels= 0/0/0/0

Everything is working fine now. I will continue leveling my Enchanting to 525, and if no display bugs appear by the end, I will close this issue.

Would that be okay for you?

Edit:
Never mind. I just rushed to 515 and have learned all the recipes available from vendors. Everything seems to be working fine.
If you check and everything looks good, please go ahead and close the issue. Thank you so much for your help!!

commented

I'll close it after I do a bit more testing on Classic Era. Thank you for your help as well!!