From aac7ef6e35d7b7eb051ed504015efeea4c0eeefe Mon Sep 17 00:00:00 2001 From: andrew6180 <16847730+andrew6180@users.noreply.github.com> Date: Sun, 26 May 2024 20:34:24 -0700 Subject: [PATCH] fix item level inspect --- core/gears.lua | 47 +++++++++++------------------------------- frames/window_main.lua | 4 ++-- 2 files changed, 14 insertions(+), 37 deletions(-) diff --git a/core/gears.lua b/core/gears.lua index da831b94..2687b96b 100644 --- a/core/gears.lua +++ b/core/gears.lua @@ -1862,7 +1862,7 @@ function ilvl_core:HasQueuedInspec (unitName) end local inspect_frame = CreateFrame("frame") -inspect_frame:RegisterEvent("INSPECT_READY") +inspect_frame:RegisterEvent("INSPECT_TALENT_READY") local two_hand = { ["INVTYPE_2HWEAPON"] = true, @@ -1871,7 +1871,7 @@ local two_hand = { } local MAX_INSPECT_AMOUNT = 1 -local MIN_ILEVEL_TO_STORE = 50 +local MIN_ILEVEL_TO_STORE = 1 local LOOP_TIME = 7 function _detalhes:IlvlFromNetwork (player, realm, core, serialNumber, itemLevel, talentsSelected, currentSpec) @@ -1929,7 +1929,6 @@ end --/run wipe(_detalhes.item_level_pool) function ilvl_core:CalcItemLevel (unitid, guid, shout) - if (type(unitid) == "table") then shout = unitid [3] guid = unitid [2] @@ -1938,37 +1937,7 @@ function ilvl_core:CalcItemLevel (unitid, guid, shout) --disable due to changes to CheckInteractDistance() if (not InCombatLockdown() and unitid and UnitPlayerControlled(unitid) and CheckInteractDistance(unitid, CONST_INSPECT_ACHIEVEMENT_DISTANCE) and CanInspect(unitid)) then - - --16 = all itens including main and off hand - local item_amount = 16 - local item_level = 0 - local failed = 0 - - for equip_id = 1, 17 do - if (equip_id ~= 4) then --shirt slot - local item = GetInventoryItemLink (unitid, equip_id) - if (item) then - local _, _, itemRarity, iLevel, _, _, _, _, equipSlot = GetItemInfo (item) - if (iLevel) then - item_level = item_level + iLevel - - --16 = main hand 17 = off hand - -- if using a two-hand, ignore the off hand slot - if (equip_id == 16 and two_hand [equipSlot]) then - item_amount = 15 - break - end - end - else - failed = failed + 1 - if (failed > 2) then - break - end - end - end - end - - local average = item_level / item_amount + local average = UnitAverageItemLevel(unitid) --register if (average > 0) then @@ -2002,7 +1971,15 @@ end _detalhes.ilevel.CalcItemLevel = ilvl_core.CalcItemLevel inspect_frame:SetScript("OnEvent", function(self, event, ...) - local guid = select(1, ...) + local guid + for queue_guid in pairs(inspecting) do -- get first guid + guid = queue_guid + break + end + + if not guid or guild == "" then + return + end if (inspecting [guid]) then local unitid, cancel_tread = inspecting [guid] [1], inspecting [guid] [2] diff --git a/frames/window_main.lua b/frames/window_main.lua index 8c189bc5..d29bd49e 100644 --- a/frames/window_main.lua +++ b/frames/window_main.lua @@ -2102,12 +2102,12 @@ local iconFrame_OnEnter = function(self) local gotInfo local localizedItemLevelString = _G.AVERAGE_ITEM_LEVEL_S if (ilvl) then - GameCooltip:AddLine(format(localizedItemLevelString, ilvl) and "|T:" .. 24 .. ":" .. 24 ..":0:0:64:64:4:60:4:60|t" .. floor(ilvl.ilvl) or "|T:" .. 24 .. ":" .. 24 ..":0:0:64:64:4:60:4:60|t ??") --Loc from GlobalStrings.lua + GameCooltip:AddLine(format(localizedItemLevelString, floor(ilvl.ilvl))) GameCooltip:AddIcon([[]], 1, 1, 1, 20) Details:AddTooltipBackgroundStatusbar() gotInfo = true else - GameCooltip:AddLine(format(localizedItemLevelString, 0)) + GameCooltip:AddLine(format(localizedItemLevelString, "??")) GameCooltip:AddIcon([[]], 1, 1, 1, 20) Details:AddTooltipBackgroundStatusbar() gotInfo = false