Mercurial > wow > askmrrobot
comparison AskMrRobot-Serializer/AskMrRobot-Serializer.lua @ 69:69db1c3025ac v27
fixed some bugs with 6.2 item link format changes, added bib overwolf support
| author | yellowfive |
|---|---|
| date | Mon, 06 Jul 2015 17:39:57 -0700 |
| parents | 932885bb1a6f |
| children | 6abc0858b45e |
comparison
equal
deleted
inserted
replaced
| 68:6c523f147709 | 69:69db1c3025ac |
|---|---|
| 1 -- AskMrRobot-Serializer will serialize and communicate character data between users. | 1 -- AskMrRobot-Serializer will serialize and communicate character data between users. |
| 2 -- This is used primarily to associate character information to logs uploaded to askmrrobot.com. | 2 -- This is used primarily to associate character information to logs uploaded to askmrrobot.com. |
| 3 | 3 |
| 4 local MAJOR, MINOR = "AskMrRobot-Serializer", 26 | 4 local MAJOR, MINOR = "AskMrRobot-Serializer", 27 |
| 5 local Amr, oldminor = LibStub:NewLibrary(MAJOR, MINOR) | 5 local Amr, oldminor = LibStub:NewLibrary(MAJOR, MINOR) |
| 6 | 6 |
| 7 if not Amr then return end -- already loaded by something else | 7 if not Amr then return end -- already loaded by something else |
| 8 | 8 |
| 9 -- event and comm used for player snapshotting on entering combat | 9 -- event and comm used for player snapshotting on entering combat |
| 577 | 577 |
| 578 ---------------------------------------------------------------------------------------- | 578 ---------------------------------------------------------------------------------------- |
| 579 -- Public Utility Methods | 579 -- Public Utility Methods |
| 580 ---------------------------------------------------------------------------------------- | 580 ---------------------------------------------------------------------------------------- |
| 581 | 581 |
| 582 -- item link format: |cffa335ee|Hitem:itemID:enchant:gem1:gem2:gem3:gem4:suffixID:uniqueID:level:unknown:upgradeId:instanceDifficultyID:numBonusIDs:bonusID1:bonusID2...|h[item name]|h|r | 582 -- item link format: |cffa335ee|Hitem:itemID:enchant:gem1:gem2:gem3:gem4:suffixID:uniqueID:level:unknown:unknown:instanceDifficultyID:numBonusIDs:bonusID1:bonusID2...|h[item name]|h|r |
| 583 -- get an object with all of the parts of the item link format that we care about | 583 -- get an object with all of the parts of the item link format that we care about |
| 584 function Amr.ParseItemLink(itemLink) | 584 function Amr.ParseItemLink(itemLink) |
| 585 if not itemLink then return nil end | 585 if not itemLink then return nil end |
| 586 | 586 |
| 587 local str = string.match(itemLink, "|Hitem:([\-%d:]+)|") | 587 local str = string.match(itemLink, "|Hitem:([\-%d:]+)|") |
| 595 item.gemIds = { tonumber(parts[3]), tonumber(parts[4]), tonumber(parts[5]), tonumber(parts[6]) } | 595 item.gemIds = { tonumber(parts[3]), tonumber(parts[4]), tonumber(parts[5]), tonumber(parts[6]) } |
| 596 item.suffixId = math.abs(tonumber(parts[7])) -- convert suffix to positive number, that's what we use in our code | 596 item.suffixId = math.abs(tonumber(parts[7])) -- convert suffix to positive number, that's what we use in our code |
| 597 --item.uniqueId = tonumber(parts[8]) | 597 --item.uniqueId = tonumber(parts[8]) |
| 598 --item.level = tonumber(parts[9]) | 598 --item.level = tonumber(parts[9]) |
| 599 -- part 10 is unknown atm | 599 -- part 10 is unknown atm |
| 600 item.upgradeId = tonumber(parts[11]) | 600 -- part 11 is unknown atm |
| 601 --item.difficultyId = tonumber(parts[12]) | 601 --item.difficultyId = tonumber(parts[12]) |
| 602 | 602 |
| 603 local numBonuses = tonumber(parts[13]) | 603 local numBonuses = tonumber(parts[13]) |
| 604 if numBonuses and numBonuses > 0 then | 604 if numBonuses and numBonuses > 0 then |
| 605 item.bonusIds = {} | 605 item.bonusIds = {} |
| 606 for i = 14, 13 + numBonuses do | 606 for i = 14, 13 + numBonuses do |
| 607 table.insert(item.bonusIds, tonumber(parts[i])) | 607 table.insert(item.bonusIds, tonumber(parts[i])) |
| 608 end | 608 end |
| 609 table.sort(item.bonusIds) | 609 table.sort(item.bonusIds) |
| 610 end | 610 end |
| 611 | |
| 612 -- if numBonuses is 0 and there is a number after it, that is the upgrade id for old items now I guess? | |
| 613 if numBonuses == 0 then | |
| 614 local upgradeId = tonumber(parts[14]) | |
| 615 item.upgradeId = upgradeId and upgradeId or 0 | |
| 616 else | |
| 617 item.upgradeId = 0 | |
| 618 end | |
| 611 | 619 |
| 612 return item | 620 return item |
| 613 end | 621 end |
| 614 | 622 |
| 615 -- returns true if this is an instance that AskMrRobot supports for logging | 623 -- returns true if this is an instance that AskMrRobot supports for logging |
