Mercurial > wow > wowdb-profiler
comparison Main.lua @ 395:930da8078de7 6.0.3-1
Increased reliability of chat-based loot data and fixed two critical bugs with bonus ID parsing.
author | MMOSimca <MMOSimca@gmail.com> |
---|---|
date | Fri, 19 Dec 2014 15:54:50 -0500 |
parents | 7d0ad2573092 |
children | 792320b3fc4d |
comparison
equal
deleted
inserted
replaced
394:a30c251ad382 | 395:930da8078de7 |
---|---|
591 current_action.target_type = AF.ITEM | 591 current_action.target_type = AF.ITEM |
592 current_action.identifier = item_id | 592 current_action.identifier = item_id |
593 current_action.loot_label = "contains" | 593 current_action.loot_label = "contains" |
594 | 594 |
595 -- For items that open instantly with no spell cast | 595 -- For items that open instantly with no spell cast |
596 if private.CONTAINER_ITEM_ID_LIST[item_id] == true then | 596 if (not _G.GetNumLootItems()) and (private.CONTAINER_ITEM_ID_LIST[item_id] == true) then |
597 ClearChatLootData() | 597 ClearChatLootData() |
598 Debug("HandleItemUse: Beginning chat-based loot timer for item with ID %d.", item_id) | 598 Debug("HandleItemUse: Beginning chat-based loot timer for item with ID %d.", item_id) |
599 chat_loot_timer_handle = C_Timer.NewTimer(1, ClearChatLootData) | 599 chat_loot_timer_handle = C_Timer.NewTimer(1, ClearChatLootData) |
600 InitializeCurrentLoot() | 600 InitializeCurrentLoot() |
601 end | 601 end |
1105 else | 1105 else |
1106 sorted_bonus_string = sorted_bonus_string .. ":" .. tostring(min_bonus_id) | 1106 sorted_bonus_string = sorted_bonus_string .. ":" .. tostring(min_bonus_id) |
1107 end | 1107 end |
1108 end | 1108 end |
1109 | 1109 |
1110 item.seen_bonuses[sorted_bonus_string] = true | |
1110 Debug("RecordItemData: Recorded bonus IDs %s for item %d.", sorted_bonus_string, item_id) | 1111 Debug("RecordItemData: Recorded bonus IDs %s for item %d.", sorted_bonus_string, item_id) |
1111 else | 1112 else |
1112 Debug("RecordItemData: num_bonus_ids is supposed to be 0 or positive, instead it was %d.", num_bonus_ids) | 1113 Debug("RecordItemData: num_bonus_ids is supposed to be 0 or positive, instead it was %d.", num_bonus_ids) |
1113 end | 1114 end |
1114 if upgrade_id and upgrade_id ~= 0 then | 1115 if upgrade_id and upgrade_id ~= 0 then |
1590 category = AF.NPC | 1591 category = AF.NPC |
1591 elseif chat_loot_timer_handle then | 1592 elseif chat_loot_timer_handle then |
1592 category = AF.ITEM | 1593 category = AF.ITEM |
1593 end | 1594 end |
1594 | 1595 |
1596 -- We still want to record the item's data, even if it doesn't need its drop location recorded | |
1597 RecordItemData(item_id, item_link, true) | |
1598 | |
1595 -- Take action based on update category | 1599 -- Take action based on update category |
1596 local update_func = CHAT_MSG_LOOT_UPDATE_FUNCS[category] | 1600 local update_func = CHAT_MSG_LOOT_UPDATE_FUNCS[category] |
1597 if not category or not update_func then | 1601 if not category or not update_func then |
1598 -- We still want to record the item's data, even if it doesn't need its drop location recorded | |
1599 RecordItemData(item_id, item_link, true) | |
1600 return | 1602 return |
1601 end | 1603 end |
1602 update_func(item_id, quantity) | 1604 update_func(item_id, quantity) |
1603 end | 1605 end |
1604 end | 1606 end |
2026 -- Prevent opening the same loot window multiple times from recording data multiple times. | 2028 -- Prevent opening the same loot window multiple times from recording data multiple times. |
2027 local loot_guid_registry = {} | 2029 local loot_guid_registry = {} |
2028 | 2030 |
2029 | 2031 |
2030 function WDP:LOOT_CLOSED(event_name) | 2032 function WDP:LOOT_CLOSED(event_name) |
2033 if chat_loot_timer_handle then | |
2034 ClearChatLootData() | |
2035 end | |
2031 current_loot = nil | 2036 current_loot = nil |
2032 table.wipe(current_action) | 2037 table.wipe(current_action) |
2033 end | 2038 end |
2034 | 2039 |
2035 | 2040 |