Mercurial > wow > wowdb-profiler
diff Main.lua @ 344:7bca9a0f9382 WoD
Fixed loot extrapolation restrictions. Fixed Blizzard bug with Trainer filters not using boolean values.
author | MMOSimca <MMOSimca@gmail.com> |
---|---|
date | Fri, 03 Oct 2014 15:09:44 -0400 |
parents | 2149753132a1 |
children | 61a9520b5337 |
line wrap: on
line diff
--- a/Main.lua Fri Oct 03 15:07:30 2014 -0400 +++ b/Main.lua Fri Oct 03 15:09:44 2014 -0400 @@ -1810,6 +1810,13 @@ local extrapolated_guid_registry = {} local num_guids = 0 + -- Loot extrapolation cannot handle objects that need special spell labels (like HERBALISM or MINING) (MIND_CONTROL is okay) + if SPELL_FLAGS_BY_LABEL[current_action.spell_label] and not NON_LOOT_SPELL_LABELS[current_action.spell_label] then + Debug("%s: Problematic spell label %s found. Loot extrapolation for this set of loot would have run an increased risk of introducing bad data into the system.", log_source, private.previous_spell_id) + table.wipe(current_action) + return false + end + table.wipe(current_action) for loot_slot = 1, _G.GetNumLootItems() do @@ -1840,10 +1847,6 @@ Debug("%s: No GUIDs found in loot. Blank loot window?", log_source) return false end - if private.previous_spell_id and private.EXTRAPOLATION_BANNED_SPELL_IDS[private.previous_spell_id] then - Debug("%s: Problematic spell id %s found. Loot extrapolation for this set of loot would have run an increased risk of introducing bad data into the system.", log_source, private.previous_spell_id) - return false - end local num_npcs = 0 local num_objects = 0 @@ -2374,14 +2377,14 @@ private.trainer_shown = true -- Get the initial trainer filters - local available = _G.GetTrainerServiceTypeFilter("available") - local unavailable = _G.GetTrainerServiceTypeFilter("unavailable") - local used = _G.GetTrainerServiceTypeFilter("used") + local available = _G.GetTrainerServiceTypeFilter("available") and 1 or 0 + local unavailable = _G.GetTrainerServiceTypeFilter("unavailable") and 1 or 0 + local used = _G.GetTrainerServiceTypeFilter("used") and 1 or 0 -- Clear the trainer filters - _G.SetTrainerServiceTypeFilter("available", true) - _G.SetTrainerServiceTypeFilter("unavailable", true) - _G.SetTrainerServiceTypeFilter("used", true) + _G.SetTrainerServiceTypeFilter("available", 1) + _G.SetTrainerServiceTypeFilter("unavailable", 1) + _G.SetTrainerServiceTypeFilter("used", 1) for index = 1, _G.GetNumTrainerServices(), 1 do local spell_name, rank_name, _, _, required_level = _G.GetTrainerServiceInfo(index) @@ -2413,9 +2416,9 @@ end end -- Reset the filters to what they were before - _G.SetTrainerServiceTypeFilter("available", available or false) - _G.SetTrainerServiceTypeFilter("unavailable", unavailable or false) - _G.SetTrainerServiceTypeFilter("used", used or false) + _G.SetTrainerServiceTypeFilter("available", available or 0) + _G.SetTrainerServiceTypeFilter("unavailable", unavailable or 0) + _G.SetTrainerServiceTypeFilter("used", used or 0) end