[Addon] Warforged Tracker [1.01 Bugfixes]

Dragpz

Grandfathered
Warforged Tracker

Pretty late into the expac, but been getting pretty bored, so decided to tinker a bit with an addon to keep track of all the warforged gear automatically, and display some helpful statistics. Mildly bugtested so most of the functionality should be working, but would appreciate any error message screenshots. This only works for items from WoD.

Usage Guide:

- /wft list - Gives a list of all items obtained.
- /wft totals - Gives a list of all items by slot type.
- /wft upgrades - Gives a breakdown of all upgraded items obtained, as well as a percentage for upgrades. (*Note: Socketed % is calculated out of socketable items (Head,Neck,Finger,Wrist,Waist) and the specific Tertiaries are calculated out of all Tertiary items.)

Databases are stored per character and will persist through a /reload. To reset the database, you can run "/wft reset" and that should clear the database.

It's a pretty basic text-based addon, mostly to reduce the amount of time it takes for manual data entry and spreadsheeting for keeping track of Warforged/upgraded drops. Not sure if I really want to add new features atm, I'm getting bored of WoW, but I am willing to fix any bugs you guys might find.

Previous versions also hosted on CurseForge: https://www.curseforge.com/wow/addons/warforged-tracker

upload_2023-1-25_3-21-3.png

upload_2023-1-25_3-22-47.png


Version 1.01 Bugfixes
- No longer counts WoD/Apexis rares.
- Fixed an issue with saving non-equippable and non-dungeon gear.
- Updated text commands for addon clarity.
- Optimization fixes.

Version 1.00
- Initial Release

To manually insert item links into the database for testing, you can run the WoWLua Addon (found here).
This code will let you insert whichever item is held in your cursor:
Code:
local _,_,itemLink = GetCursorInfo()

amount = 1
name,link,qualityRating,iLevel,a5,a6,a7,a8,a9,a10,a11,itemType,a13,a14,expacLevel = GetItemInfo(itemLink)    

print(expacLevel)
if string.find(link,"6710") and (expacLevel==5) and (itemType==2 or itemType==4) then
   
   id = link:match("item:(%d+):")
   
   subString = string.sub(link,string.find(link,"6710"),-30)
   id = id..subString
   
   if WFT_lootDatabase[id] == nil then
      itemIndex = C_Item.GetItemInventoryTypeByID(link)    
      WFT_lootDatabase[id] = {}
      WFT_lootDatabase[id]["count"] = 0
      WFT_lootDatabase[id]["index"] = itemIndex
      WFT_lootDatabase[id]["name"] = link
   end
   
   WFT_lootDatabase[id]["count"] = WFT_lootDatabase[id]["count"]+amount
   if WFT_SHOW_NOTIFICATIONS then
      print("WFTracker: "..link.." item acquired!")
   end
end
To manually insert your own links, you can replace line 1 with something like this (item link from WoWhead):
itemLink ="\124cff0070dd\124Hitem:109951::::::::20:255::1:3:6710:41:8810:2:9:20:28:2216:::::\124h[Fireblade Collar]\124h\124r"

(credit goes to Farmcount addon for some of the logic for core functionality)
 

Attachments

  • WFTracker101.zip
    11.3 KB · Views: 39
Last edited:
That's awesome. One of my addons hasn't worked properly since 10.0. Still waiting on a fix with the API from Blizzard...if that ever comes.
 
I put a mention of this in the "stat display" addons section of the Tier list.

Thanks Mate! Such good work!

Sorry to hear your getting bored!

Thanks for the mention! yea I think alot of ppl feel the same way, but I think you are helping the community greatly with all your posts and speedrunning efforts

That's awesome. One of my addons hasn't worked properly since 10.0. Still waiting on a fix with the API from Blizzard...if that ever comes.

Yea SL saw alot of API changes, quite a few in DF too, but not as much as SL. If you give me the name or send me the files i can see if i can fix them for you
 
Thanks for the mention! yea I think alot of ppl feel the same way, but I think you are helping the community greatly with all your posts and speedrunning efforts



Yea SL saw alot of API changes, quite a few in DF too, but not as much as SL. If you give me the name or send me the files i can see if i can fix them for you

Sure if you want to. That would be great. I have put in a bug to Blizzard on the bug report forum.

Well, the issue is that the OnEvent function variable "language" is now blank when it never used to be. It used to return "Gnomish," "Dwarvish," etc. My code still works in Classic and Wrath Classic...and it worked in Shadowlands. It's called Khadgar's Junk Drawer. and it's on curse. See the KhadgarsJunkDrawer_OnEvent function.

My other addon also broke, but I ended up retiring it. It was called Skip Shadowlands...it auto-deleted the "shadowy summons" quest automatically whenever it got added from 47-49 so you could still do Chromie Time.

By the way, I tried your tracker and it works...I even got a drop and it updated. I looked at your code, and I may try handling the events like you do.
 
Last edited:
Sure if you want to. That would be great. I have put in a bug to Blizzard on the bug report forum.

Well, the issue is that the OnEvent function variable "language" is now blank when it never used to be. It used to return "Gnomish," "Dwarvish," etc. My code still works in Classic and Wrath Classic...and it worked in Shadowlands. It's called Khadgar's Junk Drawer. and it's on curse. See the KhadgarsJunkDrawer_OnEvent function.

My other addon also broke, but I ended up retiring it. It was called Skip Shadowlands...it auto-deleted the "shadowy summons" quest automatically whenever it got added from 47-49 so you could still do Chromie Time.

By the way, I tried your tracker and it works...I even got a drop and it updated. I looked at your code, and I may try handling the events like you do.

Thanks, glossed over the Shadowlands addon, and the main thing that I saw was that the function that was being declared inside the If statement was not firing at some point and throwing errors. You could replace lines 88 and 91 to reflect how Ketho handles TalkingHeadEvents (https://www.curseforge.com/wow/addons/hidetalkinghead) This will fix the Lua errors, but won't stop the quest from being auto-accepted on loop.

Code:
hooksecurefunc(TalkingHeadFrame, "PlayCurrent", function(self)
                    local displayInfo, cameraID, vo, duration, lineNumber, numLines, name, text, isNewTalkingHead, textureKit = C_TalkingHead.GetCurrentLineInfo()
                if((vo==NCS_TALKINGHEAD_VO_ALLIANCE) or (vo==NCS_TALKINGHEAD_VO_HORDE)) then
                    self:Hide()
                end
            end)

As for the Translator/Junk Drawer addon, I'll try and take a closer look. Yea, I think at some point they broke Language addons and even broke their translating potion fix, Elixir of Tongues, but ill see if there's a workaround
 
Thanks for taking a look. The junk drawer addon only has the one problem, that variable from the OnEvent function signature. It used to contain the language of the chat event, but not anymore. Don't worry about the Skip Shadowlands addon...it really doesn't apply anymore.
 
Hope it's OK to post what seems to be a bug. There are a few items that cause problems with /wft totals (line 227) and/or /wft upgrades (line 142) e.g.:

Code:
WFT_lootDatabase = {
    ["113082"] = {
        ["name"] = "|cff0070dd|Hitem:113082::::::::10:266:::1:6691:2:9:10:28:63:::::|h[Precious Bloodthorn Loop]|h|r",
        ["index"] = 11,
        ["count"] = 1,
    },
    ["138806"] = {
        ["count"] = 1,
        ["name"] = "|cff0070dd|Hitem:138806::::::::10:270::1::1:28:2216:::::|h[Illusion: Mark of Shadowmoon]|h|r",
        ["index"] = 0,
    },
    ["116438"] = {
        ["name"] = "|cff0070dd|Hitem:116438::::::::10:270:::::::::|h[Burned-Out Hand Cannon]|h|r",
        ["index"] = 0,
        ["count"] = 1,
    },
}

Deleting them from the character's WFTracker.lua is a workaround
 
I had to put several workarounds in to get WFTracker to work. I've attached my modified file but these are just my amateur fixes. I'd recommend cleaning out your WFTracker.lua to remove offending items as well.

Edit: of course I had a huge bug *facepalm*
 
Last edited:
I had to put several workarounds in to get WFTracker to work. I've attached my modified file but these are just my amateur fixes. I'd recommend cleaning out your WFTracker.lua to remove offending items as well.

Honestly, that's probably good enough. I'll update this addon with 1.01 for bugfixes and some flavor text changes, but I haven't tested it too much. This should fix the aforementioned bugs with those items, but it will pretty much remove all non-dungeon WoD gear (such as WoD/Apexis rares). I personally think that's okay, but let me know if that's an issue.

Version 1.01 Bugfixes
- No longer counts WoD/Apexis rares.
- Fixed an issue with saving non-equippable and non-dungeon gear.
- Updated text commands for addon clarity.
- Optimization fixes.
 

Attachments

  • WFTracker101.zip
    11.3 KB · Views: 38

Users who are viewing this thread

Top