Mercurial > wow > askmrrobot
comparison AskMrRobot-Serializer/AskMrRobot-Serializer.lua @ 191:4aeedce4c995 v93
Added better identification of duplicate items.
| author | yellowfive | 
|---|---|
| date | Fri, 30 Oct 2020 21:14:57 -0700 | 
| parents | 21a69c63fee8 | 
| children | cb7eb9b9cc24 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 190:4232d073a90b | 191:4aeedce4c995 | 
|---|---|
| 1 -- AskMrRobot-Serializer will serialize and communicate character data between users. | 1 -- AskMrRobot-Serializer will serialize and communicate character data between users. | 
| 2 | 2 | 
| 3 local MAJOR, MINOR = "AskMrRobot-Serializer", 92 | 3 local MAJOR, MINOR = "AskMrRobot-Serializer", 93 | 
| 4 local Amr, oldminor = LibStub:NewLibrary(MAJOR, MINOR) | 4 local Amr, oldminor = LibStub:NewLibrary(MAJOR, MINOR) | 
| 5 | 5 | 
| 6 if not Amr then return end -- already loaded by something else | 6 if not Amr then return end -- already loaded by something else | 
| 7 | 7 | 
| 8 -- event and comm used for player snapshotting on entering combat | 8 -- event and comm used for player snapshotting on entering combat | 
| 427 ]] | 427 ]] | 
| 428 | 428 | 
| 429 -- get currently equipped items, store with currently active spec | 429 -- get currently equipped items, store with currently active spec | 
| 430 local function readEquippedItems(ret) | 430 local function readEquippedItems(ret) | 
| 431 local equippedItems = {}; | 431 local equippedItems = {}; | 
| 432 local loc = ItemLocation.CreateEmpty() | 432 --local loc = ItemLocation.CreateEmpty() | 
| 433 local item | |
| 433 for slotNum = 1, #Amr.SlotIds do | 434 for slotNum = 1, #Amr.SlotIds do | 
| 434 local slotId = Amr.SlotIds[slotNum] | 435 local slotId = Amr.SlotIds[slotNum] | 
| 435 local itemLink = GetInventoryItemLink("player", slotId) | 436 local itemLink = GetInventoryItemLink("player", slotId) | 
| 436 if itemLink then | 437 if itemLink then | 
| 437 local itemData = Amr.ParseItemLink(itemLink) | 438 local itemData = Amr.ParseItemLink(itemLink) | 
| 438 if itemData then | 439 if itemData then | 
| 440 item = Item:CreateFromEquipmentSlot(slotId) | |
| 441 | |
| 442 -- seems to be of the form Item-1147-0-4000000XXXXXXXXX, so we take just the last 9 digits | |
| 443 itemData.guid = item:GetItemGUID() | |
| 444 if itemData.guid and strlen(itemData.guid) > 9 then | |
| 445 itemData.guid = strsub(itemData.guid, -9) | |
| 446 end | |
| 447 | |
| 439 --[[ | 448 --[[ | 
| 440 -- see if this is an azerite item and read azerite power ids | 449 -- see if this is an azerite item and read azerite power ids | 
| 441 loc:SetEquipmentSlot(slotId) | 450 loc:SetEquipmentSlot(slotId) | 
| 442 if C_AzeriteEmpoweredItem.IsAzeriteEmpoweredItem(loc) then | 451 if C_AzeriteEmpoweredItem.IsAzeriteEmpoweredItem(loc) then | 
| 443 local powers = Amr.ReadAzeritePowers(loc) | 452 local powers = Amr.ReadAzeritePowers(loc) | 
| 571 local prevUpgradeId = 0 | 580 local prevUpgradeId = 0 | 
| 572 local prevBonusId = 0 | 581 local prevBonusId = 0 | 
| 573 local prevLevel = 0 | 582 local prevLevel = 0 | 
| 574 --local prevAzeriteId = 0 | 583 --local prevAzeriteId = 0 | 
| 575 local prevRelicBonusId = 0 | 584 local prevRelicBonusId = 0 | 
| 585 | |
| 576 for i, itemData in ipairs(itemObjects) do | 586 for i, itemData in ipairs(itemObjects) do | 
| 577 local itemParts = {} | 587 local itemParts = {} | 
| 578 | 588 | 
| 579 table.insert(itemParts, itemData.id - prevItemId) | 589 table.insert(itemParts, itemData.id - prevItemId) | 
| 580 prevItemId = itemData.id | 590 prevItemId = itemData.id | 
| 640 if itemData.relicBonusIds and itemData.relicBonusIds[3] ~= nil then | 650 if itemData.relicBonusIds and itemData.relicBonusIds[3] ~= nil then | 
| 641 for bIndex, bValue in ipairs(itemData.relicBonusIds[3]) do | 651 for bIndex, bValue in ipairs(itemData.relicBonusIds[3]) do | 
| 642 table.insert(itemParts, "r" .. (bValue - prevRelicBonusId)) | 652 table.insert(itemParts, "r" .. (bValue - prevRelicBonusId)) | 
| 643 prevRelicBonusId = bValue | 653 prevRelicBonusId = bValue | 
| 644 end | 654 end | 
| 655 end | |
| 656 | |
| 657 if itemData.guid then | |
| 658 table.insert(itemParts, "!" .. itemData.guid) | |
| 645 end | 659 end | 
| 646 | 660 | 
| 647 table.insert(fields, table.concat(itemParts, "")) | 661 table.insert(fields, table.concat(itemParts, "")) | 
| 648 end | 662 end | 
| 649 end | 663 end | 
