18 - Item set matching fails on sets that ignore slots
What steps will reproduce the problem?
1. Create a partial item set (e.g. tabard and shirt slots are ignored)
2. Reload the UI
What is the expected output? What do you see instead?
The LDB broker displays "ClosetGnome" instead of the equipped item set name as detection failed
What version of the product are you using?
r614
Do you have an error log of what happened?
n/a
Please provide any additional information below.
The item set detection routine is trying to match an item to a slot, even if that slot is ignored in the item set currently being checked.
My suggestion is to add the following code to increment slotMatches when the location is EQUIPMENT_SET_IGNORED_SLOT
local function guessEquippedSet() local currentSlotCount, currentName = 0, nil for i = 1, GetNumEquipmentSets() do local name = GetEquipmentSetInfo(i) local locations = GetEquipmentSetLocations(name) if locations then local slotCount, slotMatches = 0, 0 for slot = INVSLOT_FIRST_EQUIPPED, INVSLOT_LAST_EQUIPPED do local location = locations[slot] if location then slotCount = slotCount + 1 if location == EQUIPMENT_SET_EMPTY_SLOT then if not GetInventoryItemID("player", slot) then slotMatches = slotMatches + 1 end + elseif location == EQUIPMENT_SET_IGNORED_SLOT then + slotMatches = slotMatches + 1 elseif location ~= EQUIPMENT_SET_ITEM_MISSING then local player, bank, bags, actualSlot = EquipmentManager_UnpackLocation(location) if player and not bank and not bags and slot == actualSlot then slotMatches = slotMatches + 1 end end end end if slotMatches == slotCount and slotCount > currentSlotCount then currentName, currentSlotCount = name, slotCount end end end return currentName end
| User | When | Change |
|---|---|---|
| yj589794 | Sun, 29 Nov 2009 08:34:33 | Create |