From 1b07ba9276c4f5c12e2d47f96898ffea4ec1876a Mon Sep 17 00:00:00 2001 From: Tercio Date: Wed, 26 Jul 2017 10:14:37 -0300 Subject: [PATCH] - packpager, hello? --- .pkgmeta | 2 - boot.lua | 20 +- classes/classe_damage.lua | 101 ++++++++-- classes/classe_others.lua | 29 ++- classes/classe_others_habilidade.lua | 14 +- core/network.lua | 2 +- core/parser.lua | 112 ++++++++++- core/windows.lua | 282 +++++++++++++++++++++++++++ functions/profiles.lua | 73 ++++++- gumps/janela_info.lua | 221 ++++++++++++++++++++- 10 files changed, 815 insertions(+), 41 deletions(-) diff --git a/.pkgmeta b/.pkgmeta index 867b9d24..0b83102f 100644 --- a/.pkgmeta +++ b/.pkgmeta @@ -1,5 +1,3 @@ -package-as: Details - move-folders: Details/plugins/Details_DmgRank: Details_DmgRank Details/plugins/Details_EncounterDetails: Details_EncounterDetails diff --git a/boot.lua b/boot.lua index 8cc01d14..32d6613d 100644 --- a/boot.lua +++ b/boot.lua @@ -1,17 +1,17 @@ - ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> global name declaration _ = nil _detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0") - _detalhes.build_counter = 4245 + _detalhes.build_counter = 4349 _detalhes.userversion = "v7.2.5." .. _detalhes.build_counter - _detalhes.realversion = 122 --core version + _detalhes.realversion = 124 --core version _detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")" Details = _detalhes ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> initialization stuff - + do local _detalhes = _G._detalhes @@ -21,19 +21,17 @@ do local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" ) --[[ -|cFFFFFF00v7.2.5.4245.122 (|cFFFFCC00July 12th, 2017|r|cFFFFFF00)|r:\n\n -|cFFFFFF00-|r Fixed some issues with tooltiops popup when the user press SHIFT.\n\n -|cFFFFFF00-|r Now is possible to change the bar durating when selecting Cast Start trigger on Details! Forge.\n\n -|cFFFFFF00-|r Kil'Jaeden adds should be consolidated into only one actor instead of having one for each player targeted.\n\n - -|cFFFFFF00-|r .\n\n +|cFFFFFF00v7.2.5.4349.123 (|cFFFFCC00July 24th, 2017|r|cFFFFFF00)|r:\n\n +|cFFFFFF00-|r Details! can now track debuff applications and refreshes.\n\n +|cFFFFFF00-|r Added new tab on Player Detail Window called 'Auras', you can see your buffs and debuffs from there.\n\n +|cFFFFFF00-|r Death log now show debuff applications.\n\n --]] --|cFFFFFF00v7.2.5.4201.121 (|cFFFFCC00June 26th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Monk Stagger where it was only shown on the friendly fire and not under the Damage Taken display.\n\n|cFFFFFF00-|r Added Forge and Ranking options on the main menu (orange cogwheel).\n\n --|cFFFFFF00v7.2.5.4245.122 (|cFFFFCC00July 12th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed some issues with tooltiops popup when the user press SHIFT.\n\n|cFFFFFF00-|r Now is possible to change the bar durating when selecting Cast Start trigger on Details! Forge.\n\n|cFFFFFF00-|r Kil'Jaeden adds should be consolidated into only one actor instead of having one for each player targeted.\n\n - Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v7.2.5.4245.122 (|cFFFFCC00July 12th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed some issues with tooltiops popup when the user press SHIFT.\n\n|cFFFFFF00-|r Now is possible to change the bar durating when selecting Cast Start trigger on Details! Forge.\n\n|cFFFFFF00-|r Kil'Jaeden adds should be consolidated into only one actor instead of having one for each player targeted.\n\n|cFFFFFF00v7.2.5.4236.122 (|cFFFFCC00July 05th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r The alert to open the raid ranking after a boss kill, is now shown for 10 seconds (down from 40).\n\n|cFFFFFF00-|r Added a report button on the raid ranking panel and boss are sort alphabetically.\n\n|cFFFFFF00-|r Fixed some issues on the combatlog introduced on the wow patch 7.2.5 where sometimes the source of an event has no name.\n\n|cFFFFFF00-|r Ticket #209, fixed more issues with the comparison panel where are pets involved.\n\n|cFFFFFF00v7.2.5.4201.121 (|cFFFFCC00June 26th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Monk Stagger where it was only shown on the friendly fire and not under the Damage Taken display.\n\n|cFFFFFF00-|r Added Forge and Ranking options on the main menu (orange cogwheel).\n\n|cFFFFFF00v7.2.5.4102.121 (|cFFFFCC00June 22th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Details! Forge has updated and now is more usder friendly.\n\n|cFFFFFF00-|r Fixed an issue with player buff uptime where sometimes some buffs wans't showing in the tooltip.\n\n|cFFFFFF00v7.2.5.3968.120 (|cFFFFCC00June 20th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r New Death Recap implemented! replaces the default from Blizzard and can be configured at Options > Raid Tools.\n\n|cFFFFFF00-|r New Guild Damage and Heal rank on '/details ranking' panel.\n\n|cFFFFFF00-|r Added a Guild Sync button on the Details! Ranking Panel.\n\n|cFFFFFF00-|r Added Custom display 'Damage on Shields', useful for encounter like Maiden of Vigilance where there's big shields to be removed and you want to know who is doing more damage to it.\n\n|cFFFFFF00-|r Added Heal Absorbed display under Heal bracket.\n\nHeal Absorb are the heal denied by abilities such like DK's Necrotic Strike or raid boss Sisters of the Moon 'Embrace of the Eclipse' ability.\nThe tooltip of this display shows which players got heal denied, which abilities absorbed the heal, which abilities tried to heal but got the heal denied.\n\n|cFFFFFF00-|r Added Alternate Power display under Energy bracket, it shows the total of alternate power gain from each player, useful for encounters such as Demonic Inquisition.\n\n|cFFFFFF00-|r 'First Hit' message after pulling a boss, now also shows who the boss is targeting (almost always is who pulled).\n\n|cFFFFFF00-|r Raid Dps {rdps} and Hps {rhps} can now be used on the Broker Data Feed..\n\n|cFFFFFF00-|r Fixed an issue with Chromie from the scenario 'The Deaths of Chromie' where she wasn't being shown on the meter.\n\n|cFFFFFF00-|r Fixed Paladin 'Light of the Martyr' damage to self.\n\n|cFFFFFF00-|r Ticket #198 'Script Error' Fixed.\n\n|cFFFFFF00v7.2.0.3703.119 (|cFFFFCC00May 29th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an error while killing low level mobs with warrior class.\n\n|cFFFFFF00v7.2.0.3693.118 (|cFFFFCC00May 25th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fury Warrior shouldn't be assigned as Protection any more.\n\n|cFFFFFF00-|r Some parser fixes.\n\n|cFFFFFF00v7.2.0.3673.118 (|cFFFFCC00May 09th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Ticket #187: Fixed an issue when comparing hunter pets on the player detail window.\n\n|cFFFFFF00-|r Ticket #189 #186: Fixed a taint issue for some classes when using friendly nameplates on.\n\n|cFFFFFF00v7.2.0.3512.116 (|cFFFFCC00April 27th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Havoc Demon Hunter: your fury energy is being shown under Mana Restored (don't ask me why, the combat log is telling us it's mana).\n\n|cFFFFFF00-|r Pets now are shown on damage tooltips.\n\n|cFFFFFF00-|r Pets are now also shown on the comparison panel.\n\n|cFFFFFF00v7.2.0.3474.116 (|cFFFFCC00April 20th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Plugin: Raid Check > added some food buffs which wasn't being tracked.\n\n|cFFFFFF00v7.2.0.3467.116 (|cFFFFCC00April 07th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for the custom display window where apply and cancel buttons where over the edit window.\n\n|cFFFFFF00-|r Fix for an issue on editing a bookmark.\n\n|cFFFFFF00v7.1.5.3459.116 (|cFFFFCC00Mar 21th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue on dynamic overall data where it wasn't showing DPS.\n\n|cFFFFFF00-|r Fixed an issue with Apply, Save and Cancel buttons when editing a custom display.\n\n|cFFFFFF00-|r Removed the Damage and Healing presets for custom displays, now is only possible create custom displays by scripting them.\n\n|cFFFFFF00v7.1.5.3431.116 (|cFFFFCC00Mar 15th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with bar orientation right to left where fixed bar color isn't working.\n\n|cFFFFFF00-|r The nickname field now use FrizQuadrataTT font and shall be compatible with Cyrillic.\n\n|cFFFFFF00v7.1.5.3418.116 (|cFFFFCC00Mar 1st, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Ticket #167 fix: Light of the Martyr self-damage now does reduce the healing done (following WCL method).\n\n|cFFFFFF00-|r Ticket #169 fix: Damage Prevented is now working for new segments.\n\n|cFFFFFF00-|r Fixed an issue where sometimes BeastMaster's Hati pet wasn't detected correctly.\n\n|cFFFFFF00v7.1.5.3369.116 (|cFFFFCC00Feb 07th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added custom display 'Dynamic Overall Damage' for mythic dungeons.\n\n|cFFFFFF00-|r Fix for Ticket #168: 'Auto Hide While [Not] Inside Instance is broken'.\n\n|cFFFFFF00-|r The bar truncate frame 'DetailsLeftTextAntiTruncate' is now created on Details! load instead on demand.\n\n|cFFFFFF00v7.1.5.3315.116 (|cFFFFCC00Jan 23th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Ticket #162: 'no Monochrome font' available, added an experimental slash command: /run _detalhes:UseOutline ('MONOCHROME').\n\n|cFFFFFF00-|r Ticket #158: 'no elapsed time shown on report to chat', added the elapsed time when reporting a segment.\n\n|cFFFFFF00-|r Ticket #164: 'error when browsing segments', an attempt to fix the problem has been made.\n\n|cFFFFFF00v7.1.5.3305.116 (|cFFFFCC00Jan 15th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Another fix for mythic dungeons overall data reset (thanks Tharai @ Curseforge).\n\n|cFFFFFF00-|r Fix for spec detection on PvP Arenas (thanks Pas06 @ Curseforge).\n\n|cFFFFFF00v7.1.0.3276.115 (|cFFFFCC00Jan 08th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the overall data not reseting when starting a new mythic+ dungeon.\n\n|cFFFFFF00v7.1.0.3266.115 (|cFFFFCC00Dec 29th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with overall data not updating correctly at the end of the combat.\n\n|cFFFFFF00-|r Added a tutorial line on the window when the user access overall data.\n\n|cFFFFFF00v7.1.0.3236.115 (|cFFFFCC00Dec 19th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Integration with BigWigs should be working okay now.\n\n|cFFFFFF00v7.1.0.3231.115 (|cFFFFCC00Dec 15th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Disabled the link with BigWigs to avoid the 'RegisterMessage' error on every login.\n\n|cFFFFFF00v7.1.0.3229.115 (|cFFFFCC00Dec 09th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r When a window is locked, resize grips shouldn't be enabled messing with bar mouse over.\n\n|cFFFFFF00v7.0.3.3222.115 (|cFFFFCC00November 28th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Unstable Affliction to common spells with the same name.\n\n|cFFFFFF00-|r Fixed few issues with built-in plugins.\n\n|cFFFFFF00v7.0.3.3202.115 (|cFFFFCC00November 08th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Weakauras creator from the Encounter Details plugin and '/details forge' shall work correctly now with Trials of Valor.\n\n|cFFFFFF00-|r Raid history should now be recording your Trials of Valor kills.\n\n|cFFFFFF00-|r Added Trials of Valor raid info, good luck and have fun!.\n\n|cFFFFFF00v7.0.3.3201.115 (|cFFFFCC00November 04th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for Paladin holy icon.\n\n|cFFFFFF00-|r Fix for Rogue outlaw icon.\n\n|cFFFFFF00-|r Fixed misc displays with bar sorted by ascending order.\n\n|cFFFFFF00-|r Fix for '/details show' command while the window is on auto hide.\n\n|cFFFFFF00v7.0.3.3114.115 (|cFFFFCC00October 26th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Encounter Details (plugin): tooltip tutorial is now clamped to screen and its close button should be visible.\n\n|cFFFFFF00-|r Raid Check (plugin): now also works on dungeons.\n\n|cFFFFFF00-|r Added Potion of the Prolongued Power to the tracker.\n\n|cFFFFFF00v7.1.0.3097.115 (|cFFFFCC00October 25th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r renamed 'report history' to 'latest reports'.\n\n|cFFFFFF00-|r attempt to make all Details! users on the party or raid to track rogue's akaari's soul." + Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v7.2.5.4349.124 (|cFFFFCC00July 24th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Details! can now track debuff applications (stack) and refreshes.\n\n|cFFFFFF00-|r Added new tab on Player Detail Window called 'Auras', you can see your buffs and debuffs from there.\n\n|cFFFFFF00-|r Death log now show debuff applications.\n\n|cFFFFFF00v7.2.5.4275.123 (|cFFFFCC00July 18th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed some issues with tooltiops popup when the user press SHIFT.\n\n|cFFFFFF00-|r Now is possible to change the bar durating when selecting Cast Start trigger on Details! Forge.\n\n|cFFFFFF00-|r Kil'Jaeden adds should be consolidated into only one actor instead of having one for each player targeted.\n\n|cFFFFFF00v7.2.5.4236.122 (|cFFFFCC00July 05th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r The alert to open the raid ranking after a boss kill, is now shown for 10 seconds (down from 40).\n\n|cFFFFFF00-|r Added a report button on the raid ranking panel and boss are sort alphabetically.\n\n|cFFFFFF00-|r Fixed some issues on the combatlog introduced on the wow patch 7.2.5 where sometimes the source of an event has no name.\n\n|cFFFFFF00-|r Ticket #209, fixed more issues with the comparison panel where are pets involved.\n\n|cFFFFFF00v7.2.5.4201.121 (|cFFFFCC00June 26th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Monk Stagger where it was only shown on the friendly fire and not under the Damage Taken display.\n\n|cFFFFFF00-|r Added Forge and Ranking options on the main menu (orange cogwheel).\n\n|cFFFFFF00v7.2.5.4102.121 (|cFFFFCC00June 22th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Details! Forge has updated and now is more usder friendly.\n\n|cFFFFFF00-|r Fixed an issue with player buff uptime where sometimes some buffs wans't showing in the tooltip.\n\n|cFFFFFF00v7.2.5.3968.120 (|cFFFFCC00June 20th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r New Death Recap implemented! replaces the default from Blizzard and can be configured at Options > Raid Tools.\n\n|cFFFFFF00-|r New Guild Damage and Heal rank on '/details ranking' panel.\n\n|cFFFFFF00-|r Added a Guild Sync button on the Details! Ranking Panel.\n\n|cFFFFFF00-|r Added Custom display 'Damage on Shields', useful for encounter like Maiden of Vigilance where there's big shields to be removed and you want to know who is doing more damage to it.\n\n|cFFFFFF00-|r Added Heal Absorbed display under Heal bracket.\n\nHeal Absorb are the heal denied by abilities such like DK's Necrotic Strike or raid boss Sisters of the Moon 'Embrace of the Eclipse' ability.\nThe tooltip of this display shows which players got heal denied, which abilities absorbed the heal, which abilities tried to heal but got the heal denied.\n\n|cFFFFFF00-|r Added Alternate Power display under Energy bracket, it shows the total of alternate power gain from each player, useful for encounters such as Demonic Inquisition.\n\n|cFFFFFF00-|r 'First Hit' message after pulling a boss, now also shows who the boss is targeting (almost always is who pulled).\n\n|cFFFFFF00-|r Raid Dps {rdps} and Hps {rhps} can now be used on the Broker Data Feed..\n\n|cFFFFFF00-|r Fixed an issue with Chromie from the scenario 'The Deaths of Chromie' where she wasn't being shown on the meter.\n\n|cFFFFFF00-|r Fixed Paladin 'Light of the Martyr' damage to self.\n\n|cFFFFFF00-|r Ticket #198 'Script Error' Fixed.\n\n|cFFFFFF00v7.2.0.3703.119 (|cFFFFCC00May 29th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an error while killing low level mobs with warrior class.\n\n|cFFFFFF00v7.2.0.3693.118 (|cFFFFCC00May 25th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fury Warrior shouldn't be assigned as Protection any more.\n\n|cFFFFFF00-|r Some parser fixes.\n\n|cFFFFFF00v7.2.0.3673.118 (|cFFFFCC00May 09th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Ticket #187: Fixed an issue when comparing hunter pets on the player detail window.\n\n|cFFFFFF00-|r Ticket #189 #186: Fixed a taint issue for some classes when using friendly nameplates on.\n\n|cFFFFFF00v7.2.0.3512.116 (|cFFFFCC00April 27th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Havoc Demon Hunter: your fury energy is being shown under Mana Restored (don't ask me why, the combat log is telling us it's mana).\n\n|cFFFFFF00-|r Pets now are shown on damage tooltips.\n\n|cFFFFFF00-|r Pets are now also shown on the comparison panel.\n\n|cFFFFFF00v7.2.0.3474.116 (|cFFFFCC00April 20th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Plugin: Raid Check > added some food buffs which wasn't being tracked.\n\n|cFFFFFF00v7.2.0.3467.116 (|cFFFFCC00April 07th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for the custom display window where apply and cancel buttons where over the edit window.\n\n|cFFFFFF00-|r Fix for an issue on editing a bookmark.\n\n|cFFFFFF00v7.1.5.3459.116 (|cFFFFCC00Mar 21th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue on dynamic overall data where it wasn't showing DPS.\n\n|cFFFFFF00-|r Fixed an issue with Apply, Save and Cancel buttons when editing a custom display.\n\n|cFFFFFF00-|r Removed the Damage and Healing presets for custom displays, now is only possible create custom displays by scripting them.\n\n|cFFFFFF00v7.1.5.3431.116 (|cFFFFCC00Mar 15th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with bar orientation right to left where fixed bar color isn't working.\n\n|cFFFFFF00-|r The nickname field now use FrizQuadrataTT font and shall be compatible with Cyrillic.\n\n|cFFFFFF00v7.1.5.3418.116 (|cFFFFCC00Mar 1st, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Ticket #167 fix: Light of the Martyr self-damage now does reduce the healing done (following WCL method).\n\n|cFFFFFF00-|r Ticket #169 fix: Damage Prevented is now working for new segments.\n\n|cFFFFFF00-|r Fixed an issue where sometimes BeastMaster's Hati pet wasn't detected correctly.\n\n|cFFFFFF00v7.1.5.3369.116 (|cFFFFCC00Feb 07th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added custom display 'Dynamic Overall Damage' for mythic dungeons.\n\n|cFFFFFF00-|r Fix for Ticket #168: 'Auto Hide While [Not] Inside Instance is broken'.\n\n|cFFFFFF00-|r The bar truncate frame 'DetailsLeftTextAntiTruncate' is now created on Details! load instead on demand.\n\n|cFFFFFF00v7.1.5.3315.116 (|cFFFFCC00Jan 23th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Ticket #162: 'no Monochrome font' available, added an experimental slash command: /run _detalhes:UseOutline ('MONOCHROME').\n\n|cFFFFFF00-|r Ticket #158: 'no elapsed time shown on report to chat', added the elapsed time when reporting a segment.\n\n|cFFFFFF00-|r Ticket #164: 'error when browsing segments', an attempt to fix the problem has been made.\n\n|cFFFFFF00v7.1.5.3305.116 (|cFFFFCC00Jan 15th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Another fix for mythic dungeons overall data reset (thanks Tharai @ Curseforge).\n\n|cFFFFFF00-|r Fix for spec detection on PvP Arenas (thanks Pas06 @ Curseforge).\n\n|cFFFFFF00v7.1.0.3276.115 (|cFFFFCC00Jan 08th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the overall data not reseting when starting a new mythic+ dungeon.\n\n|cFFFFFF00v7.1.0.3266.115 (|cFFFFCC00Dec 29th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with overall data not updating correctly at the end of the combat.\n\n|cFFFFFF00-|r Added a tutorial line on the window when the user access overall data.\n\n|cFFFFFF00v7.1.0.3236.115 (|cFFFFCC00Dec 19th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Integration with BigWigs should be working okay now.\n\n|cFFFFFF00v7.1.0.3231.115 (|cFFFFCC00Dec 15th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Disabled the link with BigWigs to avoid the 'RegisterMessage' error on every login.\n\n|cFFFFFF00v7.1.0.3229.115 (|cFFFFCC00Dec 09th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r When a window is locked, resize grips shouldn't be enabled messing with bar mouse over.\n\n|cFFFFFF00v7.0.3.3222.115 (|cFFFFCC00November 28th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Unstable Affliction to common spells with the same name.\n\n|cFFFFFF00-|r Fixed few issues with built-in plugins.\n\n|cFFFFFF00v7.0.3.3202.115 (|cFFFFCC00November 08th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Weakauras creator from the Encounter Details plugin and '/details forge' shall work correctly now with Trials of Valor.\n\n|cFFFFFF00-|r Raid history should now be recording your Trials of Valor kills.\n\n|cFFFFFF00-|r Added Trials of Valor raid info, good luck and have fun!.\n\n|cFFFFFF00v7.0.3.3201.115 (|cFFFFCC00November 04th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for Paladin holy icon.\n\n|cFFFFFF00-|r Fix for Rogue outlaw icon.\n\n|cFFFFFF00-|r Fixed misc displays with bar sorted by ascending order.\n\n|cFFFFFF00-|r Fix for '/details show' command while the window is on auto hide.\n\n|cFFFFFF00v7.0.3.3114.115 (|cFFFFCC00October 26th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Encounter Details (plugin): tooltip tutorial is now clamped to screen and its close button should be visible.\n\n|cFFFFFF00-|r Raid Check (plugin): now also works on dungeons.\n\n|cFFFFFF00-|r Added Potion of the Prolongued Power to the tracker.\n\n|cFFFFFF00v7.1.0.3097.115 (|cFFFFCC00October 25th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r renamed 'report history' to 'latest reports'.\n\n|cFFFFFF00-|r attempt to make all Details! users on the party or raid to track rogue's akaari's soul." Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails!:|r " diff --git a/classes/classe_damage.lua b/classes/classe_damage.lua index f32d0074..84a6c9a7 100644 --- a/classes/classe_damage.lua +++ b/classes/classe_damage.lua @@ -3594,18 +3594,18 @@ function atributo_damage:MontaInfo() end ---------> DETALHES bloco da direita BIFURCAÇÃO -function atributo_damage:MontaDetalhes (spellid, barra) +function atributo_damage:MontaDetalhes (spellid, barra, instancia) if (info.sub_atributo == 1 or info.sub_atributo == 2) then - return self:MontaDetalhesDamageDone (spellid, barra) + return self:MontaDetalhesDamageDone (spellid, barra, instancia) elseif (info.sub_atributo == 3) then - return self:MontaDetalhesDamageTaken (spellid, barra) + return self:MontaDetalhesDamageTaken (spellid, barra, instancia) elseif (info.sub_atributo == 4) then - return self:MontaDetalhesFriendlyFire (spellid, barra) + return self:MontaDetalhesFriendlyFire (spellid, barra, instancia) elseif (info.sub_atributo == 6) then if (_bit_band (self.flag_original, 0x00000400) ~= 0) then --é um jogador - return self:MontaDetalhesDamageDone (spellid, barra) + return self:MontaDetalhesDamageDone (spellid, barra, instancia) end - return self:MontaDetalhesEnemy (spellid, barra) + return self:MontaDetalhesEnemy (spellid, barra, instancia) --return self:MontaDetalhesDamageDone (spellid, barra) end end @@ -3705,7 +3705,7 @@ function atributo_damage:MontaInfoFriendlyFire() barra:Show() if (self.detalhes and self.detalhes == barra.show) then - self:MontaDetalhes (self.detalhes, barra) + self:MontaDetalhes (self.detalhes, barra, instancia) end end @@ -3815,10 +3815,17 @@ end row.textura:SetValue (value/max*100) end - row.texto_esquerdo:SetText (index .. ". " .. name) + if (type (index) == "number") then + row.texto_esquerdo:SetText (index .. ". " .. name) + else + row.texto_esquerdo:SetText (name) + end + row.texto_esquerdo.text = row.texto_esquerdo:GetText() - row.texto_direita:SetText (value_formated .. " (" .. _cstr ("%.1f", percent) .."%)") + if (value_formated) then + row.texto_direita:SetText (value_formated .. " (" .. _cstr ("%.1f", percent) .."%)") + end row.texto_esquerdo:SetSize (row:GetWidth() - row.texto_direita:GetStringWidth() - 40, 15) @@ -3937,12 +3944,27 @@ function atributo_damage:MontaInfoDamageDone() _table_sort (ActorSkillsSortTable, _detalhes.Sort2) - gump:JI_AtualizaContainerBarras (#ActorSkillsSortTable) + gump:JI_AtualizaContainerBarras (#ActorSkillsSortTable + 1) local max_ = ActorSkillsSortTable[1] and ActorSkillsSortTable[1][2] or 0 --> dano que a primeiro magia vez local barra + + --aura bar + if (false) then --> disabled for now + barra = barras [1] + if (not barra) then + barra = gump:CriaNovaBarraInfo1 (instancia, 1) + end + self:UpdadeInfoBar (barra, "", -51, "Auras", max_, false, max_, 100, [[Interface\BUTTONS\UI-GroupLoot-DE-Up]], true, nil, nil) + barra.textura:SetStatusBarColor (_detalhes.gump:ParseColors ("purple")) + end + + --spell bars for index, tabela in _ipairs (ActorSkillsSortTable) do + + --index = index + 1 --with the aura bar + index = index barra = barras [index] if (not barra) then barra = gump:CriaNovaBarraInfo1 (instancia, index) @@ -3954,14 +3976,13 @@ function atributo_damage:MontaInfoDamageDone() if (info.sub_atributo == 2) then local formated_value = SelectedToKFunction (_, _math_floor (tabela[2]/meu_tempo)) - self:UpdadeInfoBar (barra, index, tabela[1], name, tabela[2], formated_value, max_, tabela[3], tabela[5], true, nil, tabela [7]) + self:UpdadeInfoBar (barra, index-1, tabela[1], name, tabela[2], formated_value, max_, tabela[3], tabela[5], true, nil, tabela [7]) else local formated_value = SelectedToKFunction (_, _math_floor (tabela[2])) - self:UpdadeInfoBar (barra, index, tabela[1], name, tabela[2], formated_value, max_, tabela[3], tabela[5], true, nil, tabela [7]) + self:UpdadeInfoBar (barra, index-1, tabela[1], name, tabela[2], formated_value, max_, tabela[3], tabela[5], true, nil, tabela [7]) end self:FocusLock (barra, tabela[1]) - end --> TOP INIMIGOS @@ -4374,6 +4395,56 @@ local critical_table = {c = {1, 1, 1, 0.5}, p = 0} local data_table = {} local t1, t2, t3, t4 = {}, {}, {}, {} +local function FormatSpellString(str) + return (string.gsub(str, "%d+", function(spellID) + local name, _, icon = GetSpellInfo (spellID); + return string.format("|T%s:16|t", icon); + end)); +end + + +local MontaDetalhesBuffProcs = function (actor, row, instance) + + instance = instance or info.instancia + + local spec = actor.spec + if (spec) then + local mainAuras = _detalhes.important_auras [spec] + if (mainAuras) then + local miscActor = instance:GetShowingCombat():GetActor (4, actor:name()) + if (miscActor and miscActor.buff_uptime_spells) then + --> get the auras + local added = 0 + for i = 1, #mainAuras do + local spellID = mainAuras [i] + local spellObject = miscActor.buff_uptime_spells._ActorTable [spellID] + if (spellObject) then + local spellName, spellIcon = GetSpellInfo (spellID) + local spellUptime = spellObject.uptime + local spellApplies = spellObject.appliedamt + local spellRefreshes = spellObject.refreshamt + + gump:SetaDetalheInfoTexto (i, 100, FormatSpellString ("" .. spellID .. " " .. spellName), "Activations: " .. spellApplies, " ", "Refreshes: " .. spellRefreshes, " ", "Uptime: " .. spellUptime .. "s") + added = added + 1 + end + end + + for i = added + 1, 5 do + gump:HidaDetalheInfo (i) + end + + return + end + end + end + + for i = 1, 5 do + gump:HidaDetalheInfo (i) + end +end + + + function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia) local esta_magia @@ -4383,6 +4454,10 @@ function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia) esta_magia = self.spells._ActorTable [spellid] end + if (spellid == -51) then + return MontaDetalhesBuffProcs (self, barra, instancia) + end + if (not esta_magia) then return end diff --git a/classes/classe_others.lua b/classes/classe_others.lua index 85c533da..3c29d7ac 100644 --- a/classes/classe_others.lua +++ b/classes/classe_others.lua @@ -162,6 +162,8 @@ function atributo_misc:CreateBuffTargetObject() uptime = 0, actived = false, activedamt = 0, + refreshamt = 0, + appliedamt = 0, } end @@ -248,7 +250,12 @@ function _detalhes:ToolTipDead (instancia, morte, esta_barra, keydown) elseif (evtype == 3) then --> last cooldown used lastcooldown = event - + + elseif (evtype == 4) then + GameCooltip:AddLine ("" .. _cstr ("%.1f", time - hora_da_morte) .. "s [x" .. amount .. "] " .. spellname .. " (" .. source .. ")", "debuff (" .. hp .. "%)", 1, "white", "white") + GameCooltip:AddIcon (spellicon) + GameCooltip:AddStatusBar (100, 1, "purple", true) + end end end @@ -399,6 +406,20 @@ function atributo_misc:ReportSingleDeadLine (morte, instancia) else tinsert (report_array, {elapsed .. " ", spellname, " (" .. source .. ")", "+" .. _detalhes:ToK (amount) .. " (" .. hp .. "%) "}) end + + elseif (type (evento [1]) == "number" and evento [1] == 4) then --> debuff + + local elapsed = _cstr ("%.1f", evento [4] - time_of_death) .."s" + local spelllink = GetSpellLink (evento [2]) + local source = _detalhes:GetOnlyName (evento [6]) + local spellname, _, spellicon = _GetSpellInfo (evento [2]) + local stacks = evento [3] + local hp = _math_floor (evento [5] / max_health * 100) + if (hp > 100) then + hp = 100 + end + + tinsert (report_array, {elapsed .. " ", "x" .. stacks .. "" .. spelllink, " (" .. source .. ")", "(" .. hp .. "%) "}) end end @@ -2495,6 +2516,8 @@ function atributo_misc:r_connect_shadow (actor, no_refresh) end t.uptime = t.uptime + amount.uptime t.activedamt = t.activedamt + amount.activedamt + t.refreshamt = t.refreshamt + amount.refreshamt + t.appliedamt = t.appliedamt + amount.appliedamt else shadow.debuff_uptime_targets [target_name] = (shadow.debuff_uptime_targets [target_name] or 0) + amount end @@ -2881,6 +2904,8 @@ atributo_misc.__add = function (tabela1, tabela2) end t.uptime = t.uptime + amount.uptime t.activedamt = t.activedamt + amount.activedamt + t.refreshamt = t.refreshamt + amount.refreshamt + t.appliedamt = t.appliedamt + amount.appliedamt else tabela1.debuff_uptime_targets [target_name] = (tabela1.debuff_uptime_targets [target_name] or 0) + amount end @@ -3115,6 +3140,8 @@ atributo_misc.__sub = function (tabela1, tabela2) end t.uptime = t.uptime - amount.uptime t.activedamt = t.activedamt - amount.activedamt + t.refreshamt = t.refreshamt - amount.refreshamt + t.appliedamt = t.appliedamt - amount.appliedamt else tabela2.debuff_uptime_targets [target_name] = (tabela2.debuff_uptime_targets [target_name] or 0) - amount end diff --git a/classes/classe_others_habilidade.lua b/classes/classe_others_habilidade.lua index 8bcd7268..912a6ad9 100644 --- a/classes/classe_others_habilidade.lua +++ b/classes/classe_others_habilidade.lua @@ -32,13 +32,19 @@ if (token == "BUFF_UPTIME" or token == "DEBUFF_UPTIME") then _newMiscSpell.uptime = 0 _newMiscSpell.actived = false - _newMiscSpell.activedamt = 0 + _newMiscSpell.activedamt = 0 --são quantos estao ativados no momento + _newMiscSpell.refreshamt = 0 + _newMiscSpell.appliedamt = 0 + elseif (token == "SPELL_INTERRUPT") then _newMiscSpell.interrompeu_oque = {} + elseif (token == "SPELL_DISPEL" or token == "SPELL_STOLEN") then _newMiscSpell.dispell_oque = {} + elseif (token == "SPELL_AURA_BROKEN" or token == "SPELL_AURA_BROKEN_SPELL") then _newMiscSpell.cc_break_oque = {} + end return _newMiscSpell @@ -46,6 +52,8 @@ function habilidade_misc:Add (serial, nome, flag, who_nome, token, spellID, spellName) + --print (self.id, GetSpellInfo (self.id)) + if (spellID == "BUFF_OR_DEBUFF") then if (spellName == "COOLDOWN") then @@ -56,8 +64,8 @@ elseif (spellName == "BUFF_UPTIME_REFRESH") then if (self.actived_at and self.actived) then self.uptime = self.uptime + _detalhes._tempo - self.actived_at + self.refreshamt = self.refreshamt + 1 token.buff_uptime = token.buff_uptime + _detalhes._tempo - self.actived_at --> token = actor misc object - end self.actived_at = _detalhes._tempo self.actived = true @@ -73,6 +81,7 @@ elseif (spellName == "BUFF_UPTIME_IN" or spellName == "DEBUFF_UPTIME_IN") then self.actived = true self.activedamt = self.activedamt + 1 + self.appliedamt = self.appliedamt + 1 if (self.actived_at and self.actived and spellName == "DEBUFF_UPTIME_IN") then --> ja esta ativo em outro mob e jogou num novo @@ -85,6 +94,7 @@ elseif (spellName == "DEBUFF_UPTIME_REFRESH") then if (self.actived_at and self.actived) then self.uptime = self.uptime + _detalhes._tempo - self.actived_at + self.refreshamt = self.refreshamt + 1 token.debuff_uptime = token.debuff_uptime + _detalhes._tempo - self.actived_at end self.actived_at = _detalhes._tempo diff --git a/core/network.lua b/core/network.lua index af3d8a9b..e7d7277a 100644 --- a/core/network.lua +++ b/core/network.lua @@ -97,7 +97,7 @@ if (lower_instance) then lower_instance = _detalhes:GetInstance (lower_instance) if (lower_instance) then - lower_instance:InstanceAlert ("Update Available!", {[[Interface\GossipFrame\AvailableQuestIcon]], 16, 16, false}, 360, {_detalhes.OpenUpdateWindow}) + lower_instance:InstanceAlert ("Update Available!", {[[Interface\GossipFrame\AvailableQuestIcon]], 16, 16, false}, _detalhes.update_warning_timeout, {_detalhes.OpenUpdateWindow}) end end _detalhes.lastUpdateWarning = time() diff --git a/core/parser.lua b/core/parser.lua index 9cd109ff..b9690491 100644 --- a/core/parser.lua +++ b/core/parser.lua @@ -194,6 +194,7 @@ --> kil jaeden encounter: --> REMOVE THIS ON 7.3 RELEASE local _encounter_kiljaeden_eruptingreflection_loc = "Erupting Reflection" + local _encounter_kiljaeden_wailingreflection_loc = "Wailing Reflection" ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> internal functions @@ -284,6 +285,21 @@ --Erupting Reflection on kiljaeden encounter on ToS --REMOVE THIS ON 7.3 RELEASE if (_current_encounter_id == 2051) then --2051 = kiljaeden + + --tank add + if (alvo_serial:match ("^Creature%-0%-%d+%-%d+%-%d+%-119107%-%w+$")) then + if (_encounter_kiljaeden_wailingreflection_loc == "Wailing Reflection") then + _encounter_kiljaeden_wailingreflection_loc = GetSpellInfo (236378) + end + alvo_name = _encounter_kiljaeden_wailingreflection_loc + elseif (who_serial:match ("^Creature%-0%-%d+%-%d+%-%d+%-119107%-%w+$")) then + if (_encounter_kiljaeden_wailingreflection_loc == "Wailing Reflection") then + _encounter_kiljaeden_wailingreflection_loc = GetSpellInfo (236378) + end + who_name = _encounter_kiljaeden_wailingreflection_loc + end + + --dps add if (alvo_serial:match ("^Creature%-0%-%d+%-%d+%-%d+%-119206%-%w+$")) then if (_encounter_kiljaeden_eruptingreflection_loc == "Erupting Reflection") then _encounter_kiljaeden_eruptingreflection_loc = GetSpellInfo (236710) @@ -1767,7 +1783,7 @@ ameHealer: Bombad ThisDebuff = {} SoloDebuffPower [spellid] = ThisDebuff end - + local ThisDebuffOnTarget = ThisDebuff [alvo_serial] local base, posBuff, negBuff = UnitAttackPower ("player") @@ -1962,7 +1978,7 @@ ameHealer: Bombad --> recording debuffs applied by player elseif (tipo == "DEBUFF") then - + --print ("debuff - ", token, spellname) if (_in_combat) then ------------------------------------------------------------------------------------------------ --> buff uptime @@ -1971,7 +1987,7 @@ ameHealer: Bombad --> call record debuffs uptime parser:add_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, "DEBUFF_UPTIME_REFRESH") elseif (raid_members_cache [alvo_serial] and not raid_members_cache [who_serial]) then --> alvo é da raide e o caster é inimigo - parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, "DEBUFF_UPTIME_REFRESH") + parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, "DEBUFF_UPTIME_REFRESH", amount) end end @@ -2162,7 +2178,7 @@ ameHealer: Bombad --> MISC search key: ~buffuptime ~buffsuptime | ----------------------------------------------------------------------------------------------------------------------------------------- - function parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, in_out) + function parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, in_out, stack_amount) if (not alvo_name) then --> no target name, just quit @@ -2216,6 +2232,43 @@ ameHealer: Bombad end este_alvo.actived_at = _tempo + --death log + --> record death log + local t = last_events_cache [alvo_name] + + if (not t) then + t = _current_combat:CreateLastEventsTable (alvo_name) + end + + local i = t.n + + local this_event = t [i] + + if (not this_event) then + return print ("Parser Event Error -> Set to 16 DeathLogs and /reload", i, _death_event_amt) + end + + --print ("DebuffIN", ">", "Added to the DeathLog") + + this_event [1] = 4 --> 4 = debuff aplication + this_event [2] = spellid --> spellid + this_event [3] = 1 + this_event [4] = time --> parser time + this_event [5] = _UnitHealth (alvo_name) --> current unit heal + this_event [6] = who_name --> source name + this_event [7] = false + this_event [8] = false + this_event [9] = false + this_event [10] = false + + i = i + 1 + + if (i == _death_event_amt+1) then + t.n = 1 + else + t.n = i + end + elseif (in_out == "DEBUFF_UPTIME_REFRESH") then if (este_alvo.actived_at and este_alvo.actived) then este_alvo.uptime = este_alvo.uptime + _tempo - este_alvo.actived_at @@ -2224,6 +2277,50 @@ ameHealer: Bombad este_alvo.actived_at = _tempo este_alvo.actived = true + --death log + + --local name, rank, texture, count, debuffType, duration, expirationTime, caster, canStealOrPurge, nameplateShowPersonal, spellId = UnitAura (alvo_name, spellname, nil, "HARMFUL") + --UnitAura ("Kastfall", "Gulp Frog Toxin", nil, "HARMFUL") + --print ("Hello World", spellname, name) + + --if (name) then + --> record death log + local t = last_events_cache [alvo_name] + + if (not t) then + t = _current_combat:CreateLastEventsTable (alvo_name) + end + + local i = t.n + + local this_event = t [i] + + if (not this_event) then + return print ("Parser Event Error -> Set to 16 DeathLogs and /reload", i, _death_event_amt) + end + + --print ("DebuffRefresh", ">", "Added to the DeathLog", stack_amount) + + this_event [1] = 4 --> 4 = debuff aplication + this_event [2] = spellid --> spellid + this_event [3] = stack_amount or 1 + this_event [4] = time --> parser time + this_event [5] = _UnitHealth (alvo_name) --> current unit heal + this_event [6] = who_name --> source name + this_event [7] = false + this_event [8] = false + this_event [9] = false + this_event [10] = false + + i = i + 1 + + if (i == _death_event_amt+1) then + t.n = 1 + else + t.n = i + end + --end + elseif (in_out == "DEBUFF_UPTIME_OUT") then if (este_alvo.actived_at and este_alvo.actived) then este_alvo.uptime = este_alvo.uptime + _detalhes._tempo - este_alvo.actived_at @@ -3570,6 +3667,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 token_list ["SPELL_AURA_APPLIED"] = parser.buff token_list ["SPELL_AURA_REMOVED"] = parser.unbuff token_list ["SPELL_AURA_REFRESH"] = parser.buff_refresh + token_list ["SPELL_AURA_APPLIED_DOSE"] = parser.buff_refresh _recording_buffs_and_debuffs = false elseif (capture_type == "energy") then @@ -3636,6 +3734,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 token_list ["SPELL_AURA_APPLIED"] = parser.buff token_list ["SPELL_AURA_REMOVED"] = parser.unbuff token_list ["SPELL_AURA_REFRESH"] = parser.buff_refresh + token_list ["SPELL_AURA_APPLIED_DOSE"] = parser.buff_refresh _recording_buffs_and_debuffs = true elseif (capture_type == "energy") then @@ -3724,7 +3823,8 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 ["SPELL_AURA_APPLIED"] = "buff", ["SPELL_AURA_REMOVED"] = "unbuff", - ["SPELL_AURA_REFRESH"] = "buff_refresh", + ["SPELL_AURA_REFRESH"] = "buff_refresh", + ["SPELL_AURA_APPLIED_DOSE"] = "buff_refresh", ["SPELL_ENERGIZE"] = "energize", ["SPELL_PERIODIC_ENERGIZE"] = "energize", @@ -3952,7 +4052,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 return end - if (not _detalhes.WhoAggroTimer) then + if (not _detalhes.WhoAggroTimer and _detalhes.announce_firsthit.enabled) then _detalhes.WhoAggroTimer = C_Timer.NewTimer (0.5, who_aggro) end diff --git a/core/windows.lua b/core/windows.lua index 915a3a2a..a3da4314 100644 --- a/core/windows.lua +++ b/core/windows.lua @@ -4160,6 +4160,288 @@ this is automatically performed when the search script runs. DetailsAPIPanel:Show() end + +function Details.OpenDpsBenchmark() + + --main frame + + local DF = _detalhes.gump + local _ = nil + + --declaration + local f = CreateFrame ("frame", "DetailsBenchmark", UIParent) + f:SetSize (800, 600) + f:SetPoint ("left", UIParent, "left") + f:SetFrameStrata ("LOW") + f:EnableMouse (true) + f:SetMovable (true) + f:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) + f:SetBackdropColor (0, 0, 0, 0.9) + f:SetBackdropBorderColor (0, 0, 0, 1) + + --register to libwindow + local LibWindow = LibStub ("LibWindow-1.1") + LibWindow.RegisterConfig (f, _detalhes.benchmark_db.frame) + LibWindow.RestorePosition (f) + LibWindow.MakeDraggable (f) + LibWindow.SavePosition (f) + + --titlebar + f.TitleBar = CreateFrame ("frame", "$parentTitleBar", f) + f.TitleBar:SetPoint ("topleft", f, "topleft", 2, -3) + f.TitleBar:SetPoint ("topright", f, "topright", -2, -3) + f.TitleBar:SetHeight (20) + f.TitleBar:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) + f.TitleBar:SetBackdropColor (.2, .2, .2, 1) + f.TitleBar:SetBackdropBorderColor (0, 0, 0, 1) + + --close button + f.Close = CreateFrame ("button", "$parentCloseButton", f) + f.Close:SetPoint ("right", f.TitleBar, "right", -2, 0) + f.Close:SetSize (16, 16) + f.Close:SetNormalTexture (_detalhes.gump.folder .. "icons") + f.Close:SetHighlightTexture (_detalhes.gump.folder .. "icons") + f.Close:SetPushedTexture (_detalhes.gump.folder .. "icons") + f.Close:GetNormalTexture():SetTexCoord (0, 16/128, 0, 1) + f.Close:GetHighlightTexture():SetTexCoord (0, 16/128, 0, 1) + f.Close:GetPushedTexture():SetTexCoord (0, 16/128, 0, 1) + f.Close:SetAlpha (0.7) + f.Close:SetScript ("OnClick", function() f:Hide() end) + + --title + f.Title = f.TitleBar:CreateFontString ("$parentTitle", "overlay", "GameFontNormal") + f.Title:SetPoint ("center", f.TitleBar, "center") + f.Title:SetTextColor (.8, .8, .8, 1) + f.Title:SetText ("Details! Benchmark") + + DF:InstallTemplate ("font", "DETAILS_BENCHMARK_NORMAL", {color = "white", size = 10, font = "Friz Quadrata TT"}) + + function f.CreateCombatObject() + local t = {} + + return t + end + + function f.StartNewBenchmark() + + end + + function f.StopCurrentBenchmark() + + end + + + f.OnTickInterval = 0 + function f.UpdateOnTick (self, deltaTime) + f.OnTickInterval = f.OnTickInterval + deltaTime + if (f.OnTickInterval >= 0.024) then + --do the update + + --reset the interval + f.OnTickInterval = 0 + end + end + function f.StartUpdateOnTick() + f:SetScript ("OnUpdate", f.UpdateOnTick) + end + + --events + f:RegisterEvent ("PLAYER_REGEN_DISABLED") + f:RegisterEvent ("PLAYER_REGEN_ENABLED") + + f:SetScript ("OnEvent", function (self, event, ...) + if (event == "PLAYER_REGEN_DISABLED") then + f.StartNewBenchmark() + + elseif (event == "PLAYER_REGEN_ENABLED") then + f.StopCurrentBenchmark() + + end + end) + + local normal_text_template = DF:GetTemplate ("font", "DETAILS_BENCHMARK_NORMAL") + local options_dropdown_template = DF:GetTemplate ("dropdown", "OPTIONS_DROPDOWN_TEMPLATE") + local options_switch_template = DF:GetTemplate ("switch", "OPTIONS_CHECKBOX_TEMPLATE") + local options_slider_template = DF:GetTemplate ("slider", "OPTIONS_SLIDER_TEMPLATE") + local options_button_template = DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE") + + --locations + f.FrameLocations = { + summary = {10, -30}, + auras = {10, -120}, + spells = {10, -180}, + history = {10, -280}, + } + f.FrameSizes = { + default = {300, 200}, + } + + --summary block + + --declaration + local summaryFrame = CreateFrame ("frame", "$parentSummaryFrame", f) + summaryFrame:SetPoint ("topleft", f, "topleft", unpack (f.FrameLocations.summary)) + summaryFrame:SetSize (unpack (f.FrameSizes.default)) + summaryFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) + summaryFrame:SetBackdropColor (0, 0, 0, 0.9) + summaryFrame:SetBackdropBorderColor (0, 0, 0, 1) + + --time to test string and dropdown + local build_time_list = function() + local t = { + {value = 40, label = "40 seconds"}, + {value = 60, label = "60 seconds"}, + {value = 90, label = "90 seconds"}, + {value = 120, label = "2 minutes"}, + {value = 180, label = "3 minutes"}, + {value = 300, label = "5 minutes"}, + } + return t + end + + summaryFrame.TimeToTestLabel = DF:CreateLabel (summaryFrame, "Amount of Time", normal_text_template) + summaryFrame.TimeToTestDropdown = DF:CreateDropDown (summaryFrame, build_time_list, default, 150, 20, _, _, options_dropdown_template) + + --description string and text entry + summaryFrame.DescriptionLabel = DF:CreateLabel (summaryFrame, "Description", normal_text_template) + summaryFrame.DescriptionEntry = DF:CreateTextEntry (summaryFrame, function()end, 120, 20, nil, _, nil, options_dropdown_template) + + --DPS Amount string + summaryFrame.DPSLabel = DF:CreateLabel (summaryFrame, "100K", normal_text_template) + + --TIME ELAPSED string + summaryFrame.TimeElapsedLabel = DF:CreateLabel (summaryFrame, "01:00", normal_text_template) + + --boss simulation string and dropdown + local build_bosssimulation_list, default = function() + local t = { + {value = "patchwerk", label = "Patchwerk"}, + } + return t + end + summaryFrame.BossSimulationLabel = DF:CreateLabel (summaryFrame, "Boss Simulation", normal_text_template) + summaryFrame.BossSimulationDropdown = DF:CreateDropDown (summaryFrame, build_bosssimulation_list, default, 150, 20, _, _, options_dropdown_template) + + --boss records line with a tooltip importing data from the storage + summaryFrame.BossRecordsFrame = CreateFrame ("frame", nil, summaryFrame) + summaryFrame.BossRecordsFrame:SetSize (f.FrameSizes.default[1]-20, 20) + summaryFrame.BossRecordsFrame:SetBackdropColor (0, 0, 0, 0.3) + summaryFrame.BossRecordsFrame:SetScript ("OnEnter", function() + + end) + summaryFrame.BossRecordsFrame:SetScript ("OnLeave", function() + + end) + + --set the points + do + local x, y = 10, -10 + summaryFrame.TimeToTestLabel:SetPoint ("topleft", summaryFrame, "topleft", x, y) + summaryFrame.TimeToTestDropdown:SetPoint ("topleft", summaryFrame.TimeToTestLabel, "bottomleft", 0, -2) + + --y = y - 40 + summaryFrame.DescriptionLabel:SetPoint ("topleft", summaryFrame, "topleft", x+160, y) + summaryFrame.DescriptionEntry:SetPoint ("topleft", summaryFrame.DescriptionLabel, "bottomleft", 0, -2) + + y = y - 40 + summaryFrame.DPSLabel:SetPoint ("topleft", summaryFrame, "topleft", x, y) + summaryFrame.TimeElapsedLabel:SetPoint ("topleft", summaryFrame, "topleft", x + 100, y) + + y = y - 40 + summaryFrame.BossSimulationLabel:SetPoint ("topleft", summaryFrame, "topleft", x, y) + summaryFrame.BossSimulationDropdown:SetPoint ("topleft", summaryFrame.BossSimulationLabel, "bottomleft", 0, -2) + + y = y - 40 + summaryFrame.BossRecordsFrame:SetPoint ("topleft", summaryFrame, "topleft", 0, 0) + end + + + + + --spells block + + --declaration + local spellsFrame = CreateFrame ("frame", "$parentSpellsFrame", f) + spellsFrame:SetPoint ("topleft", f, "topleft", unpack (f.FrameLocations.spells)) + spellsFrame:SetSize (unpack (f.FrameSizes.default)) + spellsFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) + spellsFrame:SetBackdropColor (0, 0, 0, 0.9) + spellsFrame:SetBackdropBorderColor (0, 0, 0, 1) + + --header with the string titles: + --Spell Icon | DPS | Damage | Casts | Criticals | Highest Damage + + --scrollpanel + --each line with: + --Texture for the icon + --5 strings for the data + --hover over scripts + + --auras block + + --declaration + local aurasFrame = CreateFrame ("frame", "$parentAurasFrame", f) + aurasFrame:SetPoint ("topleft", f, "topleft", unpack (f.FrameLocations.auras)) + aurasFrame:SetSize (unpack (f.FrameSizes.default)) + aurasFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) + aurasFrame:SetBackdropColor (0, 0, 0, 0.9) + aurasFrame:SetBackdropBorderColor (0, 0, 0, 1) + + --will be 9 blocks? + + --each block with: + --Texture for the icon + --3 strings for Total Update, Applications and Refreshes + + + --history block + + --declaration + local historyFrame = CreateFrame ("frame", "$parentHistoryFrame", f) + historyFrame:SetPoint ("topleft", f, "topleft", unpack (f.FrameLocations.history)) + historyFrame:SetSize (unpack (f.FrameSizes.default)) + historyFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) + historyFrame:SetBackdropColor (0, 0, 0, 0.9) + historyFrame:SetBackdropBorderColor (0, 0, 0, 1) + + --header with the string titles: + --Spec | ILevel | DPS | Time | Talents | Crit | Haste | Versatility | Mastery | Int | Description + + --scrollpanel + --each line with: + --7 Textures for talent icons + --10 strings for the data + --hover over scripts + + + + --mechanics + + --to open the window + --on target a training dummy + --need to be on a specific map / sanctuary + + --on start a new combat: + --start the timer + --start the boss script if not patchwerk + --create the graphic tables for *player total damage and *spell damage + --create aura tables / grab auras already applied to the player / auras with no duration wont be added + + --on tick: + --*check if the time is gone *update the time string *update the graphic *update the spells *upate the auras + + + --on finishes: + --stop the timer and check if the elapsed time is done + --create a new benchmark object to store the test + --export the data to this new object + --add this new object to the benchmark storage table + --update the history scrollbar + + +end + + --old versions dialog --[[ --print ("Last Version:", _detalhes_database.last_version, "Last Interval Version:", _detalhes_database.last_realversion) diff --git a/functions/profiles.lua b/functions/profiles.lua index 8cb139bc..a3065db0 100644 --- a/functions/profiles.lua +++ b/functions/profiles.lua @@ -1121,7 +1121,11 @@ local default_player_data = { enabled = true, channel = "SELF", }, - + --> benchmark + benchmark_db = { + frame = {}, + + }, } _detalhes.default_player_data = default_player_data @@ -1139,6 +1143,7 @@ local default_global_data = { savedCustomSpells = {}, savedTimeCaptures = {}, lastUpdateWarning = 0, + update_warning_timeout = 30, report_where = "SAY", realm_sync = true, spell_school_cache = {}, @@ -1190,6 +1195,72 @@ local default_global_data = { }, spell_pool = {}, encounter_spell_pool = {}, + + -- important auras + --[=[ + important_auras = { + [577] = {}, -- Havoc Demon Hunter + [581] = {}, -- Vengeance Demon Hunter + + [252] = {}, -- Unholy Death Knight + [251] = {}, -- Frost Death Knight + [250] = {}, -- Blood Death Knight + + [102] = {}, -- Balance Druid + [103] = {}, -- Feral Druid + [104] = {}, -- Guardian Druid + [105] = {}, -- Restoration Druid + + [253] = {}, -- Beast Mastery Hunter + [254] = {}, -- Marksmanship Hunter + [255] = {}, -- Survival Hunter + + [62] = { -- Arcane Mage + + }, + [63] = { -- Fire Mage + 157644, --Enhanced Pyrotechnics + 48107, --Heating Up + 48108, --Hot Streak! + 194329, --Pyretic Incantation + + }, + [64] = { -- Frost Mage + 44544, --fingers of frost + 195418, --chain reaction + 190446, --brain freeze + 12472, --icyveins + }, + + [268] = {}, -- Brewmaster Monk + [269] = {}, -- Windwalker Monk + [270] = {}, -- Mistweaver Monk + + [65] = {}, -- Holy Paladin + [66] = {}, -- Protection Paladin + [70] = {}, -- Retribution Paladin + + [256] = {}, -- Discipline Priest + [257] = {}, -- Holy Priest + [258] = {}, -- Shadow Priest + + [259] = {}, -- Assassination Rogue + [260] = {}, -- Outlaw Rogue + [261] = {}, -- Subtlety Rogue + + [262] = {}, -- Elemental Shaman + [263] = {}, -- Enhancement Shaman + [264] = {}, -- Restoration Shaman + + [265] = {}, -- Affliction Warlock + [266] = {}, -- Demonology Warlock + [267] = {}, -- Destruction Warlock + + [71] = {}, -- Arms Warrior + [72] = {}, -- Fury Warrior + [73] = {}, -- Protection Warrior + }, + --]=] } _detalhes.default_global_data = default_global_data diff --git a/gumps/janela_info.lua b/gumps/janela_info.lua index ad96c143..e73102fe 100644 --- a/gumps/janela_info.lua +++ b/gumps/janela_info.lua @@ -1659,7 +1659,7 @@ function gump:CriaJanelaInfo() --> tabs: --> tab default - _detalhes:CreatePlayerDetailsTab ("Summary", Loc ["STRING_INFO_TAB_SUMMARY"], --[1] tab name [2] localized name + _detalhes:CreatePlayerDetailsTab ("Summary", Loc ["STRING_SPELLS"], --[1] tab name [2] localized name function (tabOBject, playerObject) --[2] condition if (playerObject) then return true @@ -2332,8 +2332,195 @@ function gump:CriaJanelaInfo() nil, --[4] onclick avoidance_create --[5] oncreate - ) + ) +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +--> ~auras + + local auras_tab_create = function (tab, frame) + local DF = _detalhes.gump + local scroll_line_amount = 17 + local scroll_line_height = 19 + local scroll_width = 350 + local scroll_line_height = 19 + local text_size = 9 + + local line_onenter = function (self) + GameTooltip:SetOwner (self, "ANCHOR_TOPRIGHT") + _detalhes:GameTooltipSetSpellByID (self.spellID) + GameTooltip:Show() + self:SetBackdropColor (1, 1, 1, .2) + end + + local line_onleave = function (self) + GameTooltip:Hide() + self:SetBackdropColor (unpack (self.BackgroundColor)) + end + + local line_onclick = function (self) + + end + + --buff scroll + --icon - name - applications - refreshes - uptime + -- + + local scroll_createline = function (self, index) + local line = CreateFrame ("button", "$parentLine" .. index, self) + line:SetPoint ("topleft", self, "topleft", 0, -((index-1)*(scroll_line_height+1))) + line:SetSize (scroll_width, scroll_line_height) + line:SetScript ("OnEnter", line_onenter) + line:SetScript ("OnLeave", line_onleave) + line:SetScript ("OnClick", line_onclick) + + line:SetBackdrop ({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) + line:SetBackdropColor (0, 0, 0, 0.2) + + local icon = line:CreateTexture ("$parentIcon", "overlay") + icon:SetSize (scroll_line_height, scroll_line_height) + local name = line:CreateFontString ("$parentName", "overlay", "GameFontNormal") + local uptime = line:CreateFontString ("$parentName", "overlay", "GameFontNormal") + local apply = line:CreateFontString ("$parentName", "overlay", "GameFontNormal") + local refresh = line:CreateFontString ("$parentName", "overlay", "GameFontNormal") + DF:SetFontSize (name, text_size) + DF:SetFontSize (uptime, text_size) + DF:SetFontSize (apply, text_size) + DF:SetFontSize (refresh, text_size) + + icon:SetPoint ("left", line, "left", 2, 0) + name:SetPoint ("left", icon, "right", 2, 0) + uptime:SetPoint ("left", line, "left", 186, 0) + apply:SetPoint ("left", line, "left", 260, 0) + refresh:SetPoint ("left", line, "left", 310, 0) + + line.Icon = icon + line.Name = name + line.Uptime = uptime + line.Apply = apply + line.Refresh = refresh + + name:SetJustifyH ("left") + uptime:SetJustifyH ("left") + apply:SetJustifyH ("left") + refresh:SetJustifyH ("left") + + return line + end + + local line_bg_color = {{1, 1, 1, .1}, {1, 1, 1, 0}} + + local scroll_buff_refresh = function (self, data, offset, total_lines) + for i = 1, total_lines do + local index = i + offset + local aura = data [index] + + if (aura) then + local line = self:GetLine (i) + line.spellID = aura.spellID + line.Icon:SetTexture (aura [1]) + line.Name:SetText (aura [2]) + line.Uptime:SetText (DF:IntegerToTimer (aura [3]) .. " (|cFFBBAAAA" .. floor (aura [6]) .. "%|r)") + line.Apply:SetText (aura [4]) + line.Refresh:SetText (aura [5]) + + if (i%2 == 0) then + line:SetBackdropColor (unpack (line_bg_color [1])) + line.BackgroundColor = line_bg_color [1] + else + line:SetBackdropColor (unpack (line_bg_color [2])) + line.BackgroundColor = line_bg_color [2] + end + end + end + end + + local buffLabel = DF:CreateLabel (frame, "Buff Name") + buffLabel:SetPoint (6, -10) + local uptimeLabel = DF:CreateLabel (frame, "Uptime") + uptimeLabel:SetPoint (200, -10) + local appliedLabel = DF:CreateLabel (frame, "Applied") + appliedLabel:SetPoint (250, -10) + local refreshedLabel = DF:CreateLabel (frame, "Refreshed") + refreshedLabel:SetPoint (300, -10) + + local buffScroll = DF:CreateScrollBox (frame, "$parentBuffUptimeScroll", scroll_buff_refresh, {}, scroll_width, 340, scroll_line_amount, scroll_line_height) + buffScroll:SetPoint ("topleft", frame, "topleft", 5, -30) + for i = 1, scroll_line_amount do + buffScroll:CreateLine (scroll_createline) + end + buffScroll:SetBackdrop ({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16}) + buffScroll:SetBackdropColor (0, 0, 0, .4) + + tab.BuffScroll = buffScroll + + --debuff scroll + --icon - name - applications - refreshes - uptime + -- + local debuffLabel = DF:CreateLabel (frame, "Debuff Name") + debuffLabel:SetPoint (406, -10) + local uptimeLabel2 = DF:CreateLabel (frame, "Uptime") + uptimeLabel2:SetPoint (600, -10) + local appliedLabel2 = DF:CreateLabel (frame, "Applied") + appliedLabel2:SetPoint (650, -10) + local refreshedLabel2 = DF:CreateLabel (frame, "Refreshed") + refreshedLabel2:SetPoint (700, -10) + + local debuffScroll = DF:CreateScrollBox (frame, "$parentDebuffUptimeScroll", scroll_buff_refresh, {}, scroll_width, 340, scroll_line_amount, scroll_line_height) + debuffScroll:SetPoint ("topleft", frame, "topleft", 405, -30) + for i = 1, scroll_line_amount do + debuffScroll:CreateLine (scroll_createline) + end + debuffScroll:SetBackdrop ({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16}) + debuffScroll:SetBackdropColor (0, 0, 0, .4) + + tab.DebuffScroll = debuffScroll + end + + local auras_tab_fill = function (tab, player, combat) + + local miscActor = combat:GetActor (4, player:name()) + local combatTime = combat:GetCombatTime() + + do --buffs + local newAuraTable = {} + if (miscActor and miscActor.buff_uptime_spells) then + for spellID, spellObject in pairs (miscActor.buff_uptime_spells._ActorTable) do + local spellName, _, spellIcon = GetSpellInfo (spellID) + tinsert (newAuraTable, {spellIcon, spellName, spellObject.uptime, spellObject.appliedamt, spellObject.refreshamt, spellObject.uptime/combatTime*100, spellID = spellID}) + end + end + table.sort (newAuraTable, _detalhes.Sort3) + tab.BuffScroll:SetData (newAuraTable) + tab.BuffScroll:Refresh() + end + + do --debuffs + local newAuraTable = {} + if (miscActor and miscActor.debuff_uptime_spells) then + for spellID, spellObject in pairs (miscActor.debuff_uptime_spells._ActorTable) do + local spellName, _, spellIcon = GetSpellInfo (spellID) + tinsert (newAuraTable, {spellIcon, spellName, spellObject.uptime, spellObject.appliedamt, spellObject.refreshamt, spellObject.uptime/combatTime*100, spellID = spellID}) + end + end + table.sort (newAuraTable, _detalhes.Sort3) + tab.DebuffScroll:SetData (newAuraTable) + tab.DebuffScroll:Refresh() + end + end + + _detalhes:CreatePlayerDetailsTab ("Auras", "Auras", --[1] tab name [2] localized name + function (tabOBject, playerObject) --[2] condition + return true + end, + + auras_tab_fill, --[3] fill function + + nil, --[4] onclick + + auras_tab_create --[5] oncreate + ) + + ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> ~compare @@ -2342,7 +2529,7 @@ function gump:CriaJanelaInfo() local plus = red .. "-" local minor = green .. "+" - + local bar_color = {.5, .5, .5, .4} -- bar of the second and 3rd player local bar_color_on_enter = {.9, .9, .9, .9} @@ -2379,6 +2566,7 @@ function gump:CriaJanelaInfo() bar [2].righttext:SetText ("") bar [2].righttext2:SetText ("") bar [2]:SetValue (0) + bar [2]:SetBackdropColor (1, 1, 1, 0) bar [3][4] = nil bar_2 [1]:SetTexture (nil) bar_2 [2].lefttext:SetText (empty_text) @@ -2386,6 +2574,7 @@ function gump:CriaJanelaInfo() bar_2 [2].righttext:SetText ("") bar_2 [2].righttext2:SetText ("") bar_2 [2]:SetValue (0) + bar_2 [2]:SetBackdropColor (1, 1, 1, 0) bar_2 [3][4] = nil bar_3 [1]:SetTexture (nil) bar_3 [2].lefttext:SetText (empty_text) @@ -2393,6 +2582,7 @@ function gump:CriaJanelaInfo() bar_3 [2].righttext:SetText ("") bar_3 [2].righttext2:SetText ("") bar_3 [2]:SetValue (0) + bar_3 [2]:SetBackdropColor (1, 1, 1, 0) bar_3 [3][4] = nil end @@ -2522,6 +2712,7 @@ function gump:CriaJanelaInfo() bar_2 [2].righttext:SetText ("") bar_2 [2].righttext2:SetText ("") bar_2 [2]:SetValue (0) + bar_2 [2]:SetBackdropColor (1, 1, 1, 0) bar_2 [3][4] = nil end else @@ -2531,6 +2722,7 @@ function gump:CriaJanelaInfo() bar_2 [2].righttext:SetText ("") bar_2 [2].righttext2:SetText ("") bar_2 [2]:SetValue (0) + bar_2 [2]:SetBackdropColor (1, 1, 1, 0) bar_2 [3][4] = nil end @@ -2591,6 +2783,7 @@ function gump:CriaJanelaInfo() bar_3 [2].righttext:SetText ("") bar_3 [2].righttext2:SetText ("") bar_3 [2]:SetValue (0) + bar_3 [2]:SetBackdropColor (1, 1, 1, 0) bar_3 [3][4] = nil end else @@ -2600,6 +2793,7 @@ function gump:CriaJanelaInfo() bar_3 [2].righttext:SetText ("") bar_3 [2].righttext2:SetText ("") bar_3 [2]:SetValue (0) + bar_3 [2]:SetBackdropColor (1, 1, 1, 0) bar_3 [3][4] = nil end @@ -2610,6 +2804,7 @@ function gump:CriaJanelaInfo() bar [2].righttext:SetText ("") bar [2].righttext2:SetText ("") bar [2]:SetValue (0) + bar [2]:SetBackdropColor (1, 1, 1, 0) bar [3][4] = nil bar_2 [1]:SetTexture (nil) bar_2 [2].lefttext:SetText (empty_text) @@ -2617,6 +2812,7 @@ function gump:CriaJanelaInfo() bar_2 [2].righttext:SetText ("") bar_2 [2].righttext2:SetText ("") bar_2 [2]:SetValue (0) + bar_2 [2]:SetBackdropColor (1, 1, 1, 0) bar_2 [3][4] = nil bar_3 [1]:SetTexture (nil) bar_3 [2].lefttext:SetText (empty_text) @@ -2624,6 +2820,7 @@ function gump:CriaJanelaInfo() bar_3 [2].righttext:SetText ("") bar_3 [2].righttext2:SetText ("") bar_3 [2]:SetValue (0) + bar_3 [2]:SetBackdropColor (1, 1, 1, 0) bar_3 [3][4] = nil end end @@ -2749,6 +2946,8 @@ function gump:CriaJanelaInfo() bar [1]:SetTexture (icon) --bar[1] = spellicon bar[2] = statusbar bar [1]:SetTexCoord (unpack (IconTexCoord)) --bar[1] = spellicon bar[2] = statusbar + + bar [2]:SetBackdropColor (1, 1, 1, 0.1) if (petName) then bar [2].lefttext:SetText (index .. ". " .. name .. " (|cFFCCBBBB" .. petName:gsub (" <.*", "") .. "|r)") @@ -2787,6 +2986,7 @@ function gump:CriaJanelaInfo() bar_2 [2].lefttext:SetText (player_2_spell_info [spellid] .. ". " .. name) bar_2 [2].lefttext:SetTextColor (1, 1, 1, 1) bar_2 [2]:SetStatusBarColor (unpack (bar_color)) + bar_2 [2]:SetBackdropColor (1, 1, 1, 0.1) if (spell.total == 0 and data [2] == 0) then bar_2 [2].righttext2:SetText ("0") @@ -2828,6 +3028,7 @@ function gump:CriaJanelaInfo() bar_2 [3][1] = spell.counter --tooltip hits bar_2 [3][2] = spell.total / spell.counter --tooltip average bar_2 [3][3] = _math_floor (spell.c_amt / spell.counter * 100) --tooltip critical + bar_2 [2]:SetBackdropColor (1, 1, 1, 0) else bar_2 [1]:SetTexture (nil) bar_2 [2].lefttext:SetText (empty_text) @@ -2835,6 +3036,7 @@ function gump:CriaJanelaInfo() bar_2 [2].righttext:SetText ("") bar_2 [2].righttext2:SetText ("") bar_2 [2]:SetValue (0) + bar_2 [2]:SetBackdropColor (1, 1, 1, 0) end --player 3 @@ -2861,6 +3063,7 @@ function gump:CriaJanelaInfo() bar_3 [2].lefttext:SetText (player_3_spell_info [spellid] .. ". " .. name) bar_3 [2].lefttext:SetTextColor (1, 1, 1, 1) bar_3 [2]:SetStatusBarColor (unpack (bar_color)) + bar_3 [2]:SetBackdropColor (1, 1, 1, 0.1) if (spell.total == 0 and data [2] == 0) then bar_3 [2].righttext2:SetText ("0") @@ -2908,6 +3111,7 @@ function gump:CriaJanelaInfo() bar_3 [2].righttext:SetText ("") bar_3 [2].righttext2:SetText ("") bar_3 [2]:SetValue (0) + bar_3 [2]:SetBackdropColor (1, 1, 1, 0) end else bar_3 [1]:SetTexture (nil) @@ -2916,6 +3120,7 @@ function gump:CriaJanelaInfo() bar_3 [2].righttext:SetText ("") bar_3 [2].righttext2:SetText ("") bar_3 [2]:SetValue (0) + bar_3 [2]:SetBackdropColor (1, 1, 1, 0) end else bar [1]:SetTexture (nil) @@ -2923,6 +3128,7 @@ function gump:CriaJanelaInfo() bar [2].lefttext:SetTextColor (.5, .5, .5, 1) bar [2].righttext:SetText ("") bar [2]:SetValue (0) + bar [2]:SetBackdropColor (1, 1, 1, 0) local bar_2 = frame2.bars [i] bar_2 [1]:SetTexture (nil) bar_2 [2].lefttext:SetText (empty_text) @@ -2930,6 +3136,7 @@ function gump:CriaJanelaInfo() bar_2 [2].righttext:SetText ("") bar_2 [2].righttext2:SetText ("") bar_2 [2]:SetValue (0) + bar_2 [2]:SetBackdropColor (1, 1, 1, 0) local bar_3 = frame3.bars [i] bar_3 [1]:SetTexture (nil) bar_3 [2].lefttext:SetText (empty_text) @@ -2937,6 +3144,7 @@ function gump:CriaJanelaInfo() bar_3 [2].righttext:SetText ("") bar_3 [2].righttext2:SetText ("") bar_3 [2]:SetValue (0) + bar_3 [2]:SetBackdropColor (1, 1, 1, 0) end end @@ -3765,6 +3973,10 @@ function gump:CriaJanelaInfo() bar:SetPoint ("topright", parent, "topright", -4, y) bar:SetStatusBarTexture ([[Interface\AddOns\Details\images\bar_serenity]]) bar:SetStatusBarColor (.5, .5, .5, 1) + + bar:SetBackdrop ({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) + bar:SetBackdropColor (1, 1, 1, 0.1) + bar:SetMinMaxValues (0, 100) bar:SetValue (100) bar:SetHeight (14) @@ -4252,7 +4464,7 @@ function gump:CriaJanelaInfo() compare_create --[5] oncreate ) - -- ~tab + -- ~tab ~tabs function este_gump:ShowTabs() local amt_positive = 0 @@ -4291,6 +4503,7 @@ function gump:CriaJanelaInfo() tab:Show() amt_positive = amt_positive + 1 tab:SetPoint ("BOTTOMLEFT", info.container_barras, "TOPLEFT", 490 - (94 * (amt_positive-1)), 1) + tab:SetAlpha (0.8) else tab.frame:Hide() tab:Hide()