changeset 326:66b136635f6b 5.4.7-1

Fixes for "Disguise" and tradeskill spells.
author James D. Callahan III <jcallahan@curse.com>
date Thu, 27 Mar 2014 14:55:46 -0500
parents 30bf6ac91bca
children c191c8a521fb
files Constants.lua Main.lua
diffstat 2 files changed, 25 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/Constants.lua	Wed Jan 22 08:25:50 2014 -0600
+++ b/Constants.lua	Thu Mar 27 14:55:46 2014 -0500
@@ -52,6 +52,22 @@
 end
 
 
+private.EXTRAPOLATION_BANNED_SPELL_IDS = {
+    [13262] = "DISENCHANT",
+    [4036] = "ENGINEERING",
+    [30427] = "EXTRACT_GAS",
+    [131476] = "FISHING",
+    [2366] = "HERB_GATHERING",
+    [51005] = "MILLING",
+    [605] = "MIND_CONTROL",
+    [2575] = "MINING",
+    [921] = "PICK_POCKET",
+    [31252] = "PROSPECTING",
+    [73979] = "SEARCHING_FOR_ARTIFACTS",
+    [8613] = "SKINNING",
+}
+
+
 private.SPELL_LABELS_BY_NAME = {
     [_G.GetSpellInfo(13262)] = "DISENCHANT",
     [_G.GetSpellInfo(4036)] = "ENGINEERING",
@@ -280,7 +296,6 @@
     [145922] = 71865, -- Garrosh Hellscream Bonus (Garrosh Hellscream)
 }
 
-
 private.WORLD_BOSS_BONUS_SPELL_ID_TO_NPC_ID_MAP = {
     [132205] = 60491, -- Sha of Anger Bonus (Sha of Anger)
     [132206] = 62346, -- Galleon Bonus (Galleon)
--- a/Main.lua	Wed Jan 22 08:25:50 2014 -0600
+++ b/Main.lua	Thu Mar 27 14:55:46 2014 -0500
@@ -47,6 +47,8 @@
 local PLAYER_NAME = _G.UnitName("player")
 local PLAYER_RACE = _G.select(2, _G.UnitRace("player"))
 
+local SPELL_ID_DISGUISE = 121308
+
 local ALLOWED_LOCALES = {
     enUS = true,
     enGB = true,
@@ -1432,7 +1434,7 @@
     local FLAGS_NPC_CONTROL = bit.bor(_G.COMBATLOG_OBJECT_AFFILIATION_OUTSIDER, _G.COMBATLOG_OBJECT_CONTROL_NPC)
 
     local function RecordNPCSpell(sub_event, source_guid, source_name, source_flags, dest_guid, dest_name, dest_flags, spell_id, spell_name)
-        if not spell_id then
+        if not spell_id or spell_id == SPELL_ID_DISGUISE then
             return
         end
         local source_type, source_id = ParseGUID(source_guid)
@@ -1819,6 +1821,12 @@
             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
         local num_itemcontainers = 0