diff --git a/boot.lua b/boot.lua index 7488793d..70dadf89 100644 --- a/boot.lua +++ b/boot.lua @@ -3,9 +3,9 @@ _ = nil _detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0") - _detalhes.build_counter = 311 --it's 311 for release - _detalhes.userversion = "v3.6.8" - _detalhes.realversion = 53 --core version + _detalhes.build_counter = 319 --it's 319 for release + _detalhes.userversion = "v3.6.10" + _detalhes.realversion = 54 --core version _detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")" ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -19,6 +19,14 @@ do --[[ +|cFFFFFF00v3.6.10 (|cFFFFCC00Dec 27, 2014|r|cFFFFFF00)|r:\n\n +|cFFFFFF00-|r Damage Taken by Spell won't show pets in its tooltip any more.\n\n +|cFFFFFF00-|r Enemies display won't show any more mirror images and spirit link totems.\n\n +|cFFFFFF00-|r Enemies's tooltip now only show players and show all players instead of only 6.\n\n +|cFFFFFF00-|r Added overkill on death's tooltip.\n\n +|cFFFFFF00-|r Fixed dispell tagets on dispell's tooltip.\n\n +|cFFFFFF00-|r Few cooldowns shown as raid wide now shows as personal cooldowns.\n\n + |cFFFFFF00v3.6.7 (|cFFFFCC00Dec 24, 2014|r|cFFFFFF00)|r:\n\n |cFFFFFF00-|r Added Fast Dps/Hps Updates, enable in on Rows: Advanced -> Fast Updates.\n\n |cFFFFFF00-|r Added custom spell for Mirror Images Fireball and Frostbolt.\n\n @@ -36,7 +44,7 @@ do |cFFFFFF00-|r Fixed bugs on sending messages to chat for Raid Tools.\n\n --]] - Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v3.6.8 (|cFFFFCC00Dec 24, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Fast (i mean, really fast) Dps/Hps update rate, its option is under Rows: Advanced -> Fast Updates.\n\n|cFFFFFF00-|r Created a custom spell for Mirror Image's Fireball and Frostbolt, with that Player Detail window distinguishes spells from the player and images.\n\n|cFFFFFF00-|r Added new skin: 'ElvUI Style II'.\n\n|cFFFFFF00-|r Added Observer mode for Raid Tools: report cooldown/interrupt/death of entire raid only to you in your chat window.\n\n|cFFFFFF00-|r Added new plugin 'Raid Check': tracks raid members checking food, flask and pre-potions usage.\n\n|cFFFFFF00-|r Changed DPS display, now it shows onyl the player's Dps and the Dps difference between him and the top ranked.\n\n|cFFFFFF00-|r Changed Overheal display, now its percentage shows the player's overheal percent.\n\n|cFFFFFF00-|r Player Detail Window now shows the amount of multistrike on normal and critical hits.\n\n|cFFFFFF00-|r Removed skin: 'ElvUI Frame Style BW'.\n\n|cFFFFFF00-|r The tooltip for Scale option under options panel, now shows the real value for the scale.\n\n|cFFFFFF00-|r Fixed Imperator Mar'gok's adds damage taken.\n\n|cFFFFFF00-|r Fixed a problem where multistrike was counting towards critical strike amount.\n\n|cFFFFFF00-|r Fixed death display's report where it was't showing any death.\n\n|cFFFFFF00-|r Fixed a small issue with Encounter Details plugin where sometimes gets a error right after a boss encounter.\n\n|cFFFFFF00-|r Fixed bugs on sending messages to chat for Raid Tools.\n\n\n\n|cFFFFFF00v3.5.1 (|cFFFFCC00Dec 16, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed few accuracy on miss spells.\n\n|cFFFFFF00v3.5.0 (|cFFFFCC00Dec 14, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed tooltip for Auras and Voidzones, now shows sorted by damage and time.\n\n|cFFFFFF00-|r More fixes for Korgath encounter on Highmaul.\n\n|cFFFFFF00-|r Added slash commands: 'reset' 'config'.\n\n|cFFFFFF00-|r Spell bars on Player Details Window now is painted with the spell spellschool color.\n\n|cFFFFFF00-|r Multistrike doesn't count any more for spell's Minimal Damage.\n\n|cFFFFFF00-|r Resource display got an tooltip which shows what resource is and resource gained per minute.\n\n|cFFFFFF00-|r Clicking on report button when the report window is already open, make it close.\n\n|cFFFFFF00v3.4.7 (|cFFFFCC00Dec 11, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Advanced Death Logs plugin got updates on Endurance Player Value and few bug fixes.\n\n|cFFFFFF00-|r Max Window Amount options can new be set to 1, before the minimum was 3.\n\n|cFFFFFF00-|r Fixed a problem with friendly fire tooltip where sometimes it wasn't showing up.\n\n|cFFFFFF00-|r Fixed cooldowns tooltip which wasn't showing rounded numbers (49.99 instead of 50).\n\n|cFFFFFF00-|r Fixed Warrior's Shield Block which wasn't being count as a cooldown.\n\n|cFFFFFF00-|r Fixed a problem where sometimes when a hunter pull and reset the boss right after, was causing segments to merge.\n\n|cFFFFFF00v3.4.4 (|cFFFFCC00Dec 05, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a issue with Ko'Ragh boss on Highmaul raid.\n\n|cFFFFFF00-|r Few changes on Bookmark panel.\n\n|cFFFFFF00v3.4.3 (|cFFFFCC00Dec 02, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Removed 'Simple Gray' skin.\n\n|cFFFFFF00-|r Addde new skin: 'Forced Square'.\n\n|cFFFFFF00-|r 'Default Skin' got renamed to 'WoW Interface'.\n\n|cFFFFFF00v3.4.2 (|cFFFFCC00Dec 01, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a bug with menu desaturation where erase and close buttons stay colored after clicking on it.\n\n|cFFFFFF00-|r Fixed stretch where sometimes after release the window, all exceeded bars shows up and fade in again.\n\n|cFFFFFF00-|r Fixed a bug with the +- buttons on the window's scale option.\n\n|cFFFFFF00-|r Fixed the border for sub menus on mode menu.\n\n|cFFFFFF00v3.4.0 (|cFFFFCC00Nov 29, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed custom displays ignoring 'target' setted.\n\n|cFFFFFF00-|r Fixed plugins showing its icon even when auto hide menus is enabled.\n\n|cFFFFFF00-|r .Updates slash command 'worldboss' now it shows Draenor bosses.\n\n|cFFFFFF00v3.3.0 (|cFFFFCC00Nov 25, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added 3D models for the bars in the window. The options are at Appearance -> Rows: Advanced.\n\n|cFFFFFF00-|r Now when showing custom displays, clicking on a bar report what is shown on bar's tooltip.\n\n|cFFFFFF00-|r More fixes for dungeon bosses identification.\n\n|cFFFFFF00-|r Fixed a tooltip bug with Debuff Uptime and Aura & Voidzone displays.\n\n|cFFFFFF00-|r Fixed Player Details Window for friendly fire and damage taken.\n\n|cFFFFFF00-|r Fixed Molten Core Raid Finder version where all bosses was considered trash segments.\n\n|cFFFFFF00v3.2.4 (|cFFFFCC00Nov 19, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r More fixes for dungeon bosses recognition.\n\n|cFFFFFF00-|r Fixes for few errors during combat parser.\n\n|cFFFFFF00v3.2.3 (|cFFFFCC00Nov 18, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Monk's Stagger ability which was counting as damage done.\n\n|cFFFFFF00-|r Added WoD dungeon information, this fixes dungeon bosses being assigned as 'trash cleanup'.\n\n|cFFFFFF00-|r Added more information on API.txt document (is in Details! root folder).\n\n|cFFFFFF00v3.2.1 (|cFFFFCC00Nov 14, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Custom Displays updated to track WoD potions.\n\n|cFFFFFF00-|r Added Feedback panel at options panel.\n\n|cFFFFFF00v3.2.0 (|cFFFFCC00Nov 11, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Major changes on the way Details! store information, these changes saves up to 40% memory and 4% cpu usage.\n\n|cFFFFFF00-|r Fixed problem with pet's healing messing with the owner activity time.\n\n|cFFFFFF00-|r Added Energy -> Resources.\n\n|cFFFFFF00-|r Fixed combat initialization when the player start casting a Dot spell.\n\n|cFFFFFF00-|r Added new custom display: Damage Taken By Spell.\n\n|cFFFFFF00v2.2.3 (|cFFFFCC00Oct 26, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the healing done problem with Priest's Spirit of Redemption.\n\n|cFFFFFF00-|r Fixed avoidance by absorb when the hit missed was a multistrike hit.\n\n|cFFFFFF00-|r Fixed a script time out problem when erasing data while in combat.\n\n|cFFFFFF00-|r Fixed bug with interrupt tooltip when the player have a pet.\n\n|cFFFFFF00v2.2.1 (|cFFFFCC00Oct 22, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the gap between the button and its menu which sometimes traveling the mouse between them was activating tooltips from window's bars.\n\n|cFFFFFF00-|r Fixed an annoying menu blink when the window was near the right side of the screen.\n\n|cFFFFFF00-|r Fixed the stretch grab which was over other windows even with the 'stretch always on top' option disabled.\n\n|cFFFFFF00-|r Few fixes on healing done from absorbs.\n\n|cFFFFFF00v2.1.6 (|cFFFFCC00Oct 21, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed death's tooltip which wasn't respecting tooltip's configuration set on options panel.\n\n|cFFFFFF00-|r Now when the window is close to the top of the screen, menus will anchor on bottom side of the menu icons.\n\n|cFFFFFF00-|r Added micro displays options on Window Settings bracket.\n\n|cFFFFFF00-|r Fixed the problem with bar's custom texts." + Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v3.6.10 (|cFFFFCC00Dec 27, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Damage Taken by Spell won't show pets in its tooltip any more.\n\n|cFFFFFF00-|r Enemies display won't show any more mirror images and spirit link totems.\n\n|cFFFFFF00-|r Enemies's tooltip now only show players and show all players instead of only 6.\n\n|cFFFFFF00-|r Added overkill on death's tooltip.\n\n|cFFFFFF00-|r Fixed dispell tagets on dispell's tooltip.\n\n|cFFFFFF00-|r Few cooldowns shown as raid wide now shows as personal cooldowns.\n\n|cFFFFFF00v3.6.8 (|cFFFFCC00Dec 24, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Fast (i mean, really fast) Dps/Hps update rate, its option is under Rows: Advanced -> Fast Updates.\n\n|cFFFFFF00-|r Created a custom spell for Mirror Image's Fireball and Frostbolt, with that Player Detail window distinguishes spells from the player and images.\n\n|cFFFFFF00-|r Added new skin: 'ElvUI Style II'.\n\n|cFFFFFF00-|r Added Observer mode for Raid Tools: report cooldown/interrupt/death of entire raid only to you in your chat window.\n\n|cFFFFFF00-|r Added new plugin 'Raid Check': tracks raid members checking food, flask and pre-potions usage.\n\n|cFFFFFF00-|r Changed DPS display, now it shows onyl the player's Dps and the Dps difference between him and the top ranked.\n\n|cFFFFFF00-|r Changed Overheal display, now its percentage shows the player's overheal percent.\n\n|cFFFFFF00-|r Player Detail Window now shows the amount of multistrike on normal and critical hits.\n\n|cFFFFFF00-|r Removed skin: 'ElvUI Frame Style BW'.\n\n|cFFFFFF00-|r The tooltip for Scale option under options panel, now shows the real value for the scale.\n\n|cFFFFFF00-|r Fixed Imperator Mar'gok's adds damage taken.\n\n|cFFFFFF00-|r Fixed a problem where multistrike was counting towards critical strike amount.\n\n|cFFFFFF00-|r Fixed death display's report where it was't showing any death.\n\n|cFFFFFF00-|r Fixed a small issue with Encounter Details plugin where sometimes gets a error right after a boss encounter.\n\n|cFFFFFF00-|r Fixed bugs on sending messages to chat for Raid Tools.\n\n\n\n|cFFFFFF00v3.5.1 (|cFFFFCC00Dec 16, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed few accuracy on miss spells.\n\n|cFFFFFF00v3.5.0 (|cFFFFCC00Dec 14, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed tooltip for Auras and Voidzones, now shows sorted by damage and time.\n\n|cFFFFFF00-|r More fixes for Korgath encounter on Highmaul.\n\n|cFFFFFF00-|r Added slash commands: 'reset' 'config'.\n\n|cFFFFFF00-|r Spell bars on Player Details Window now is painted with the spell spellschool color.\n\n|cFFFFFF00-|r Multistrike doesn't count any more for spell's Minimal Damage.\n\n|cFFFFFF00-|r Resource display got an tooltip which shows what resource is and resource gained per minute.\n\n|cFFFFFF00-|r Clicking on report button when the report window is already open, make it close.\n\n|cFFFFFF00v3.4.7 (|cFFFFCC00Dec 11, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Advanced Death Logs plugin got updates on Endurance Player Value and few bug fixes.\n\n|cFFFFFF00-|r Max Window Amount options can new be set to 1, before the minimum was 3.\n\n|cFFFFFF00-|r Fixed a problem with friendly fire tooltip where sometimes it wasn't showing up.\n\n|cFFFFFF00-|r Fixed cooldowns tooltip which wasn't showing rounded numbers (49.99 instead of 50).\n\n|cFFFFFF00-|r Fixed Warrior's Shield Block which wasn't being count as a cooldown.\n\n|cFFFFFF00-|r Fixed a problem where sometimes when a hunter pull and reset the boss right after, was causing segments to merge.\n\n|cFFFFFF00v3.4.4 (|cFFFFCC00Dec 05, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a issue with Ko'Ragh boss on Highmaul raid.\n\n|cFFFFFF00-|r Few changes on Bookmark panel.\n\n|cFFFFFF00v3.4.3 (|cFFFFCC00Dec 02, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Removed 'Simple Gray' skin.\n\n|cFFFFFF00-|r Addde new skin: 'Forced Square'.\n\n|cFFFFFF00-|r 'Default Skin' got renamed to 'WoW Interface'.\n\n|cFFFFFF00v3.4.2 (|cFFFFCC00Dec 01, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a bug with menu desaturation where erase and close buttons stay colored after clicking on it.\n\n|cFFFFFF00-|r Fixed stretch where sometimes after release the window, all exceeded bars shows up and fade in again.\n\n|cFFFFFF00-|r Fixed a bug with the +- buttons on the window's scale option.\n\n|cFFFFFF00-|r Fixed the border for sub menus on mode menu.\n\n|cFFFFFF00v3.4.0 (|cFFFFCC00Nov 29, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed custom displays ignoring 'target' setted.\n\n|cFFFFFF00-|r Fixed plugins showing its icon even when auto hide menus is enabled.\n\n|cFFFFFF00-|r .Updates slash command 'worldboss' now it shows Draenor bosses.\n\n|cFFFFFF00v3.3.0 (|cFFFFCC00Nov 25, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added 3D models for the bars in the window. The options are at Appearance -> Rows: Advanced.\n\n|cFFFFFF00-|r Now when showing custom displays, clicking on a bar report what is shown on bar's tooltip.\n\n|cFFFFFF00-|r More fixes for dungeon bosses identification.\n\n|cFFFFFF00-|r Fixed a tooltip bug with Debuff Uptime and Aura & Voidzone displays.\n\n|cFFFFFF00-|r Fixed Player Details Window for friendly fire and damage taken.\n\n|cFFFFFF00-|r Fixed Molten Core Raid Finder version where all bosses was considered trash segments.\n\n|cFFFFFF00v3.2.4 (|cFFFFCC00Nov 19, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r More fixes for dungeon bosses recognition.\n\n|cFFFFFF00-|r Fixes for few errors during combat parser.\n\n|cFFFFFF00v3.2.3 (|cFFFFCC00Nov 18, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Monk's Stagger ability which was counting as damage done.\n\n|cFFFFFF00-|r Added WoD dungeon information, this fixes dungeon bosses being assigned as 'trash cleanup'.\n\n|cFFFFFF00-|r Added more information on API.txt document (is in Details! root folder).\n\n|cFFFFFF00v3.2.1 (|cFFFFCC00Nov 14, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Custom Displays updated to track WoD potions.\n\n|cFFFFFF00-|r Added Feedback panel at options panel.\n\n|cFFFFFF00v3.2.0 (|cFFFFCC00Nov 11, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Major changes on the way Details! store information, these changes saves up to 40% memory and 4% cpu usage.\n\n|cFFFFFF00-|r Fixed problem with pet's healing messing with the owner activity time.\n\n|cFFFFFF00-|r Added Energy -> Resources.\n\n|cFFFFFF00-|r Fixed combat initialization when the player start casting a Dot spell.\n\n|cFFFFFF00-|r Added new custom display: Damage Taken By Spell.\n\n|cFFFFFF00v2.2.3 (|cFFFFCC00Oct 26, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the healing done problem with Priest's Spirit of Redemption.\n\n|cFFFFFF00-|r Fixed avoidance by absorb when the hit missed was a multistrike hit.\n\n|cFFFFFF00-|r Fixed a script time out problem when erasing data while in combat.\n\n|cFFFFFF00-|r Fixed bug with interrupt tooltip when the player have a pet.\n\n|cFFFFFF00v2.2.1 (|cFFFFCC00Oct 22, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the gap between the button and its menu which sometimes traveling the mouse between them was activating tooltips from window's bars." Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails!:|r " diff --git a/classes/classe_custom.lua b/classes/classe_custom.lua index 572db9e6..d2e63496 100644 --- a/classes/classe_custom.lua +++ b/classes/classe_custom.lua @@ -1018,6 +1018,7 @@ desc = Loc ["STRING_CUSTOM_POT_DEFAULT_DESC"], source = false, target = false, + script_version = 1, script = [[ --init: local combat, instance_container, instance = ... @@ -1223,12 +1224,17 @@ local have = false for _, custom in ipairs (self.custom) do - if (custom.name == Loc ["STRING_CUSTOM_POT_DEFAULT"]) then + if (custom.name == Loc ["STRING_CUSTOM_POT_DEFAULT"] and (custom.script_version and custom.script_version >= PotionUsed.script_version) ) then have = true break end end if (not have) then + for i, custom in ipairs (self.custom) do + if (custom.name == Loc ["STRING_CUSTOM_POT_DEFAULT"]) then + table.remove (self.custom, i) + end + end setmetatable (PotionUsed, _detalhes.atributo_custom) PotionUsed.__index = _detalhes.atributo_custom self.custom [#self.custom+1] = PotionUsed @@ -1244,17 +1250,23 @@ source = "[raid]", target = "[raid]", script = false, - tooltip = false + tooltip = false, + script_version = 1, } local have = false for _, custom in ipairs (self.custom) do - if (custom.name == Loc ["STRING_CUSTOM_HEALTHSTONE_DEFAULT"]) then + if (custom.name == Loc ["STRING_CUSTOM_HEALTHSTONE_DEFAULT"] and (custom.script_version and custom.script_version >= Healthstone.script_version) ) then have = true break end end if (not have) then + for i, custom in ipairs (self.custom) do + if (custom.name == Loc ["STRING_CUSTOM_HEALTHSTONE_DEFAULT"]) then + table.remove (self.custom, i) + end + end setmetatable (Healthstone, _detalhes.atributo_custom) Healthstone.__index = _detalhes.atributo_custom self.custom [#self.custom+1] = Healthstone @@ -1271,6 +1283,7 @@ desc = Loc ["STRING_CUSTOM_ACTIVITY_DPS_DESC"], source = false, target = false, + script_version = 1, total_script = [[ local value, top, total, combat, instance = ... local minutos, segundos = math.floor (value/60), math.floor (value%60) @@ -1306,15 +1319,20 @@ ]], } - + local have = false for _, custom in ipairs (self.custom) do - if (custom.name == Loc ["STRING_CUSTOM_ACTIVITY_DPS"]) then + if (custom.name == Loc ["STRING_CUSTOM_ACTIVITY_DPS"] and (custom.script_version and custom.script_version >= DamageActivityTime.script_version) ) then have = true break end end if (not have) then + for i, custom in ipairs (self.custom) do + if (custom.name == Loc ["STRING_CUSTOM_ACTIVITY_DPS"]) then + table.remove (self.custom, i) + end + end setmetatable (DamageActivityTime, _detalhes.atributo_custom) DamageActivityTime.__index = _detalhes.atributo_custom self.custom [#self.custom+1] = DamageActivityTime @@ -1329,6 +1347,7 @@ desc = Loc ["STRING_CUSTOM_ACTIVITY_HPS_DESC"], source = false, target = false, + script_version = 1, total_script = [[ local value, top, total, combat, instance = ... local minutos, segundos = math.floor (value/60), math.floor (value%60) @@ -1364,15 +1383,20 @@ ]], } - + local have = false for _, custom in ipairs (self.custom) do - if (custom.name == Loc ["STRING_CUSTOM_ACTIVITY_HPS"]) then + if (custom.name == Loc ["STRING_CUSTOM_ACTIVITY_HPS"] and (custom.script_version and custom.script_version >= HealActivityTime.script_version) ) then have = true break end end if (not have) then + for i, custom in ipairs (self.custom) do + if (custom.name == Loc ["STRING_CUSTOM_ACTIVITY_HPS"]) then + table.remove (self.custom, i) + end + end setmetatable (HealActivityTime, _detalhes.atributo_custom) HealActivityTime.__index = _detalhes.atributo_custom self.custom [#self.custom+1] = HealActivityTime @@ -1389,6 +1413,7 @@ desc = Loc ["STRING_CUSTOM_DTBS_DESC"], source = false, target = false, + script_version = 7, script = [[ --> get the parameters passed local combat, instance_container, instance = ... @@ -1438,6 +1463,8 @@ --get the parameters passed local actor, combat, instance = ... + local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" ) + --get the cooltip object (we do not use the convencional GameTooltip here) local GameCooltip = GameCooltip @@ -1459,15 +1486,32 @@ if (spellid == from_spell) then for targetname, amount in pairs (spell.targets) do local got = false - for index, t in ipairs (Targets) do - if (t[1] == targetname) then - t[2] = t[2] + amount - got = true - break + + local damage_actor = combat (1, targetname) + local heal_actor = combat (2, targetname) + + if ( (damage_actor or heal_actor) and ( (damage_actor and damage_actor:IsPlayer()) or (heal_actor and heal_actor:IsPlayer()) ) ) then + for index, t in ipairs (Targets) do + if (t[1] == targetname) then + t[2] = t[2] + amount + got = true + break + end + end + if (not got) then + Targets [#Targets+1] = {targetname, amount} + end + else + for index, t in ipairs (Targets) do + if (t[1] == Loc ["STRING_TARGETS_OTHER1"]) then + t[2] = t[2] + amount + got = true + break + end + end + if (not got) then + Targets [#Targets+1] = {Loc ["STRING_TARGETS_OTHER1"], amount} end - end - if (not got) then - Targets [#Targets+1] = {targetname, amount} end end end @@ -1483,20 +1527,27 @@ local class = _detalhes:GetClass (t[1]) if (class) then local texture, l, r, t, b = _detalhes:GetClassIcon (class) - GameCooltip:AddIcon (texture, 1, 1, 14, 14, l, r, t, b) + GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small_alpha", 1, 1, 14, 14, l, r, t, b) + elseif (t[1] == Loc ["STRING_TARGETS_OTHER1"]) then + GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small_alpha", 1, 1, 14, 14, 0.25, 0.49609375, 0.75, 1) end end ]], } - + local have = false for _, custom in ipairs (self.custom) do - if (custom.name == Loc ["STRING_CUSTOM_DTBS"]) then + if (custom.name == Loc ["STRING_CUSTOM_DTBS"] and (custom.script_version and custom.script_version >= DamageTakenBySpell.script_version) ) then have = true break end end if (not have) then + for i, custom in ipairs (self.custom) do + if (custom.name == Loc ["STRING_CUSTOM_DTBS"]) then + table.remove (self.custom, i) + end + end setmetatable (DamageTakenBySpell, _detalhes.atributo_custom) DamageTakenBySpell.__index = _detalhes.atributo_custom self.custom [#self.custom+1] = DamageTakenBySpell diff --git a/classes/classe_damage.lua b/classes/classe_damage.lua index 6eaf4fe7..9c0bf3c9 100644 --- a/classes/classe_damage.lua +++ b/classes/classe_damage.lua @@ -152,10 +152,22 @@ end return false end + + local ignored_enemy_npcs = { + [31216] = true, --mirror image + [53006] = true, --spirit link totem + [2] = true, + } + + -- Night-Twisted Brute - Creature-0-3024-1228-19402-85241-00001E2097 --[[ exported]] function _detalhes:IsNeutralOrEnemy() if (self.flag_original) then if (_bit_band (self.flag_original, 0x00000060) ~= 0) then + local npcid1 = _detalhes:GetNpcIdFromGuid (self.serial) + if (ignored_enemy_npcs [npcid1]) then + return false + end return true end end @@ -165,6 +177,10 @@ --[[ exported]] function _detalhes:IsEnemy() if (self.flag_original) then if (_bit_band (self.flag_original, 0x00000060) ~= 0) then + local npcid1 = _detalhes:GetNpcIdFromGuid (self.serial) + if (ignored_enemy_npcs [npcid1]) then + return false + end return true end end @@ -174,14 +190,26 @@ --[[ exported]] function _detalhes:GetSpellList() return self.spells._ActorTable end - + -- enemies (sort function) local sortEnemies = function (t1, t2) local a = _bit_band (t1.flag_original, 0x00000060) local b = _bit_band (t2.flag_original, 0x00000060) if (a ~= 0 and b ~= 0) then - return t1.total > t2.total + local npcid1 = _detalhes:GetNpcIdFromGuid (t1.serial) + local npcid2 = _detalhes:GetNpcIdFromGuid (t2.serial) + + if (not ignored_enemy_npcs [npcid1] and not ignored_enemy_npcs [npcid2]) then + return t1.total > t2.total + elseif (ignored_enemy_npcs [npcid1] and not ignored_enemy_npcs [npcid2]) then + return false + elseif (not ignored_enemy_npcs [npcid1] and ignored_enemy_npcs [npcid2]) then + return true + else + return t1.total > t2.total + end + elseif (a ~= 0 and b == 0) then return true elseif (a == 0 and b ~= 0) then @@ -200,7 +228,9 @@ local total = 0 for index, player in _ipairs (container) do - if (_bit_band (player.flag_original, 0x00000060) ~= 0) then --> é um inimigo + local npcid1 = _detalhes:GetNpcIdFromGuid (player.serial) + --p rint (player.nome, npcid1, ignored_enemy_npcs [npcid1]) + if (_bit_band (player.flag_original, 0x00000060) ~= 0 and not ignored_enemy_npcs [npcid1]) then --> é um inimigo total = total + player [keyName] else amount = index-1 @@ -1254,6 +1284,7 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex conteudo[myPos]:AtualizaBarra (instancia, barras_container, qual_barra, myPos, total, sub_atributo, forcar, keyName, combat_time, percentage_type, use_animations) --> instância, index, total, valor da 1º barra qual_barra = qual_barra+1 else + for i = instancia.barraS[2], instancia.barraS[1], -1 do --> vai atualizar só o range que esta sendo mostrado conteudo[i]:AtualizaBarra (instancia, barras_container, qual_barra, i, total, sub_atributo, forcar, keyName, combat_time, percentage_type, use_animations) --> instância, index, total, valor da 1º barra qual_barra = qual_barra+1 @@ -1466,6 +1497,7 @@ end --> primeiro colocado if (esta_barra.colocacao == 1) then + if (not tabela_anterior or tabela_anterior ~= esta_barra.minha_tabela or forcar) then esta_barra:SetValue (100) @@ -1659,7 +1691,7 @@ end ---------> TOOLTIPS BIFURCAÇÃO - +-- ~tooltip function atributo_damage:ToolTip (instancia, numero, barra, keydown) --> seria possivel aqui colocar o icone da classe dele? @@ -1692,7 +1724,7 @@ function atributo_damage:ToolTip_DamageDone (instancia, numero, barra, keydown) else r, g, b = unpack (_detalhes.class_colors [self.classe]) end - + do --> TOP HABILIDADES @@ -1936,13 +1968,50 @@ function atributo_damage:ToolTip_DamageTaken (instancia, numero, barra, keydown) local meus_agressores = {} - for nome, _ in _pairs (agressores) do --> agressores seria a lista de nomes - local este_agressor = showing._ActorTable[showing._NameIndexTable[nome]] - if (este_agressor) then --> checagem por causa do total e do garbage collector que não limpa os nomes que deram dano - local alvos = este_agressor.targets - local este_alvo = alvos [self.nome] - if (este_alvo) then - meus_agressores [#meus_agressores+1] = {nome, este_alvo, este_agressor.classe} + if (instancia.sub_atributo == 6) then + for nome, _ in _pairs (agressores) do --> agressores seria a lista de nomes + local este_agressor = showing._ActorTable [showing._NameIndexTable [nome]] + if (este_agressor) then --> checagem por causa do total e do garbage collector que não limpa os nomes que deram dano + + local name = nome + local damage_amount = este_agressor.targets [self.nome] + + if (damage_amount) then + + if (este_agressor:IsPlayer()) then + meus_agressores [#meus_agressores+1] = {name, damage_amount, este_agressor.classe} + end + --[[ + if (not este_agressor:IsPlayer()) then + name = Loc ["STRING_TARGETS_OTHER1"] + local got + for i, t in _ipairs (meus_agressores) do + if (t[1] == name) then + t[2] = t[2] + damage_amount + got = true + break + end + end + if (not got) then + meus_agressores [#meus_agressores+1] = {name, damage_amount, este_agressor.classe} + end + else + meus_agressores [#meus_agressores+1] = {name, damage_amount, este_agressor.classe} + end + --]] + end + + end + end + else + for nome, _ in _pairs (agressores) do --> agressores seria a lista de nomes + local este_agressor = showing._ActorTable [showing._NameIndexTable [nome]] + if (este_agressor) then --> checagem por causa do total e do garbage collector que não limpa os nomes que deram dano + local alvos = este_agressor.targets + local este_alvo = alvos [self.nome] + if (este_alvo) then + meus_agressores [#meus_agressores+1] = {nome, este_alvo, este_agressor.classe} + end end end end @@ -1955,7 +2024,7 @@ function atributo_damage:ToolTip_DamageTaken (instancia, numero, barra, keydown) end local ismaximized = false - if (keydown == "shift" or TooltipMaximizedMethod == 2 or TooltipMaximizedMethod == 3) then + if (keydown == "shift" or TooltipMaximizedMethod == 2 or TooltipMaximizedMethod == 3 or instancia.sub_atributo == 6) then max = #meus_agressores ismaximized = true end @@ -2009,9 +2078,9 @@ function atributo_damage:ToolTip_DamageTaken (instancia, numero, barra, keydown) if (instancia.sub_atributo == 6) then GameCooltip:AddLine (" ") GameCooltip:AddLine (Loc ["STRING_LEFTCLICK_DAMAGETAKEN"]) - --GameCooltip:AddIcon ([[Interface\TUTORIALFRAME\UI-TUTORIAL-FRAME]], 1, 1, 12, 16, 8/512, 70/512, 224/512, 306/512) + GameCooltip:AddStatusBar (100, 1, 0, 0, 0, 0.7) GameCooltip:AddLine (Loc ["STRING_MIDDLECLICK_DAMAGETAKEN"]) - --GameCooltip:AddIcon ([[Interface\TUTORIALFRAME\UI-TUTORIAL-FRAME]], 1, 1, 10, 14, 14/512, 64/512, 127/512, 204/512) + GameCooltip:AddStatusBar (100, 1, 0, 0, 0, 0.7) end return true diff --git a/classes/classe_others.lua b/classes/classe_others.lua index bc441558..852d86d0 100644 --- a/classes/classe_others.lua +++ b/classes/classe_others.lua @@ -202,7 +202,15 @@ function _detalhes:ToolTipDead (instancia, morte, esta_barra, keydown) --> is damage or heal if (evtype) then --> damage - GameCooltip:AddLine ("" .. _cstr ("%.1f", time - hora_da_morte) .. "s " .. spellname .. " (" .. source .. ")", "-" .. _detalhes:ToK (amount) .. " (" .. hp .. "%)", 1, "white", "white") + + local overkill = event [10] + if (overkill > 0) then + overkill = " (" .. _detalhes:ToK (overkill) .. " |cFFFF8800overkill|r)" + else + overkill = "" + end + + GameCooltip:AddLine ("" .. _cstr ("%.1f", time - hora_da_morte) .. "s " .. spellname .. " (" .. source .. ")", "-" .. _detalhes:ToK (amount) .. overkill .. " (" .. hp .. "%)", 1, "white", "white") GameCooltip:AddIcon (spellicon) if (event [9]) then @@ -1048,13 +1056,13 @@ function atributo_misc:ToolTipDispell (instancia, numero, barra) r, g, b = unpack (_detalhes.class_colors [self.classe]) end - local meu_total = self ["dispell"] + local meu_total = _math_floor (self ["dispell"]) local habilidades = self.dispell_spells._ActorTable --> habilidade usada para dispelar local meus_dispells = {} for _spellid, _tabela in _pairs (habilidades) do - meus_dispells [#meus_dispells+1] = {_spellid, _tabela.dispell} + meus_dispells [#meus_dispells+1] = {_spellid, _math_floor (_tabela.dispell)} end _table_sort (meus_dispells, _detalhes.Sort2) @@ -1096,10 +1104,12 @@ function atributo_misc:ToolTipDispell (instancia, numero, barra) GameCooltip:AddStatusBar (100, 1, .1, .1, .1, .3) end end + +--> alvos dispelados local alvos_dispelados = {} - for target_name, amount in _ipairs (self.dispell_targets) do - alvos_dispelados [#alvos_dispelados + 1] = {target_name, amount, amount / meu_total * 100} + for target_name, amount in _pairs (self.dispell_targets) do + alvos_dispelados [#alvos_dispelados + 1] = {target_name, _math_floor (amount), amount / meu_total * 100} end _table_sort (alvos_dispelados, _detalhes.Sort2) diff --git a/classes/custom_damage_done.lua b/classes/custom_damage_done.lua index 377955e1..fdf08aa0 100644 --- a/classes/custom_damage_done.lua +++ b/classes/custom_damage_done.lua @@ -119,6 +119,7 @@ local on_me = spell.targets [targetname] if (on_me) then GameCooltip:AddLine (aggressor.nome, FormatTooltipNumber (_, on_me)) + _detalhes:AddTooltipBackgroundStatusbar() end end end @@ -166,6 +167,7 @@ if (roster [t[1]]) then GameCooltip:AddLine (t[1], FormatTooltipNumber (_, t[2])) + _detalhes:AddTooltipBackgroundStatusbar() end end @@ -173,12 +175,12 @@ local target_amount = actor.targets [_detalhes.playername] if (target_amount) then GameCooltip:AddLine (targetactor.nome, FormatTooltipNumber (_, target_amount)) + _detalhes:AddTooltipBackgroundStatusbar() end else SortOrder (actor.spells._ActorTable, spells_used_func, target) for i = 1, #temp_table do - local t = temp_table [i] if (t[2] < 1) then @@ -187,8 +189,13 @@ local name, _, icon = _GetSpellInfo (t[1]) GameCooltip:AddLine (name, FormatTooltipNumber (_, t[2])) + _detalhes:AddTooltipBackgroundStatusbar() GameCooltip:AddIcon (icon, 1, 1, 14, 14) end + + --for index, pet_name in ipairs (actor.pets) do + + --end end else diff --git a/core/control.lua b/core/control.lua index ad598023..56f98d8a 100644 --- a/core/control.lua +++ b/core/control.lua @@ -503,7 +503,14 @@ local bossFunction, bossFunctionType = _detalhes:GetBossFunction (_detalhes.tabela_vigente.is_boss.mapid or 0, _detalhes.tabela_vigente.is_boss.index or 0) if (bossFunction) then if (_bit_band (bossFunctionType, 0x2) ~= 0) then --end of combat - bossFunction() + if (not InCombatLockdown() and not UnitAffectingCombat ("player") and not _detalhes.logoff_saving_data) then + local successful, errortext = pcall (bossFunction, _detalhes.tabela_vigente) + if (not successful) then + _detalhes:Msg ("error occurred on Encounter Boss Function:", errortext) + end + else + _detalhes.schedule_boss_function_run = bossFunction + end end end diff --git a/core/parser.lua b/core/parser.lua index 3fd8dab8..21f007a9 100644 --- a/core/parser.lua +++ b/core/parser.lua @@ -138,6 +138,8 @@ --spellid, spellname, spelltype end +-- /run local f=CreateFrame("frame");f:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");f:SetScript("OnEvent", function(self, ...)print (...);end) + function parser:spell_dmg (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, spelltype, amount, overkill, school, resisted, blocked, absorbed, critical, glacing, crushing, isoffhand, multistrike) ------------------------------------------------------------------------------------------------ @@ -302,12 +304,14 @@ this_event [1] = true --> true if this is a damage || false for healing this_event [2] = spellid --> spellid || false if this is a battle ress line - this_event [3] = amount --> amount of damage or healing + this_event [3] = amount - overkill --> amount of damage or healing 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] = absorbed this_event [8] = school + this_event [9] = false + this_event [10] = overkill i = i + 1 @@ -431,13 +435,14 @@ this_event [1] = true --> true if this is a damage || false for healing this_event [2] = spellid --> spellid || false if this is a battle ress line - this_event [3] = amount --> amount of damage or healing + this_event [3] = amount - overkill --> amount of damage or healing 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] = absorbed this_event [8] = school this_event [9] = true + this_event [10] = overkill i = i + 1 if (i == 17) then @@ -2286,7 +2291,7 @@ spelid = 8 end - return parser:spell_dmg (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spelid or 1, env_type, 00000003, amount) --> localize-me + return parser:spell_dmg (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spelid or 1, env_type, 00000003, amount, -1, 1) --> localize-me end ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -2751,6 +2756,16 @@ _detalhes.schedule_store_boss_encounter = nil end + if (_detalhes.schedule_boss_function_run) then + if (not _detalhes.logoff_saving_data) then + local successful, errortext = pcall (_detalhes.schedule_boss_function_run, _detalhes.tabela_vigente) + if (not successful) then + _detalhes:Msg ("error occurred on Encounter Boss Function:", errortext) + end + end + _detalhes.schedule_boss_function_run = nil + end + if (_detalhes.schedule_hard_garbage_collect) then if (_detalhes.debug) then _detalhes:Msg ("(debug) found schedule collectgarbage().") @@ -2938,6 +2953,7 @@ for id, instance in _detalhes:ListInstances() do if (instance.baseframe) then instance.baseframe:SetUserPlaced (false) + instance.baseframe:SetDontSavePosition (true) end end end diff --git a/functions/spells.lua b/functions/spells.lua index 2ac121b8..44075c3d 100644 --- a/functions/spells.lua +++ b/functions/spells.lua @@ -1179,19 +1179,19 @@ do --["MAGE"] = {}, [159916] = {120, 6}, -- "Amplify Magic" - [157913] = {45, 3}, -- "Evanesce" + [157913] = {45, 3, 1}, -- "Evanesce" --["MONK"] = {}, [115295] = {30, 30, 1}, -- Guard [116849] = {120, 12, 0}, -- Life Cocoon (a) [115310] = {180, 0, 0}, -- Revival - [119582] = {60, 0, 0}, -- Purifying Brew + [119582] = {60, 0, 1}, -- Purifying Brew [116844] = {45, 8, 0}, --Ring of Peace - [115308] = {0, 6, 0}, --Elusive Brew + [115308] = {0, 6, 1}, --Elusive Brew [122783] = {90, 6}, -- Diffuse Magic [122278] = {90, 45}, -- Dampen Harm - [115176] = {180, 8}, -- Zen Meditation - [115203] = {180, 20}, -- Fortifying Brew + [115176] = {180, 8, 1}, -- Zen Meditation + [115203] = {180, 20, 1}, -- Fortifying Brew [157535] = {90, 10}, -- "Breath of the Serpent" --["PALADIN"] = {}, @@ -1224,7 +1224,13 @@ do --[114203] = {180, 15}, -- Demoralizing Banner [114028] = {60, 5}, -- Mass Spell Reflection [97462] = {180, 10}, -- Rallying Cry - [2565] = {12, 6}, -- Shield Block + [2565] = {12, 6, 1}, -- Shield Block + [871] = {180, 12, 1}, -- Shield Wall + [12975] = {180, 20, 1}, -- Last Stand + [23920] = {25, 5, 1}, -- Spell Reflection + [114030] = {120, 12}, -- Vigilance + [118038] = {120, 8, 1}, -- Die by the Sword + [112048] = {90, 6, 1}, -- Shield Barrier } _detalhes.DefensiveCooldownSpells = { diff --git a/gumps/janela_principal.lua b/gumps/janela_principal.lua index 8c2e913e..c342938e 100644 --- a/gumps/janela_principal.lua +++ b/gumps/janela_principal.lua @@ -861,7 +861,7 @@ local function move_janela (baseframe, iniciando, instancia) --baseframe:SetClampRectInsets (unpack (_detalhes.window_clamp)) - if (instancia_alvo) then + if (instancia_alvo and not instancia.do_not_snap and not instancia_alvo.do_not_snap) then instancia:AtualizaPontos() local esquerda, baixo, direita, cima @@ -2754,6 +2754,7 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando) baseframe:SetMovable (true) baseframe:SetResizable (true) baseframe:SetUserPlaced (false) + baseframe:SetDontSavePosition (true) baseframe.instance = instancia baseframe:SetFrameStrata (baseframe_strata) @@ -3576,6 +3577,7 @@ local fast_ps_func = function (self) end end +-- ~dps ~hps --> check if can start or need to stop function _detalhes:CheckPsUpdate() diff --git a/gumps/janela_welcome.lua b/gumps/janela_welcome.lua index 00ce3899..9751b6df 100644 --- a/gumps/janela_welcome.lua +++ b/gumps/janela_welcome.lua @@ -979,7 +979,18 @@ local window_openned_at = time() end window.animateSlider.tooltip = Loc ["STRING_WELCOME_17"] - + --------------- Fast Hps/Dps Updates + --[[ + g:NewLabel (window, _, "$parentDpsHpsLabel", "DpsHpsLabel", "Fast Dps/Hps Update" .. ":") + window.DpsHpsLabel:SetPoint (31, -190) + -- + g:NewSwitch (window, _, "$parentDpsHpsSlider", "DpsHpsSlider", 60, 20, _, _, _detalhes:GetInstance(1).row_info.fast_ps_update) -- ltext, rtext, defaultv + window.DpsHpsSlider:SetPoint ("left",window.DpsHpsLabel, "right", 2, 0) + window.DpsHpsSlider.OnSwitch = function (self, _, value) --> slider, fixedValue, sliderValue (false, true) + _detalhes:GetInstance(1):FastPSUpdate (value) + end + window.DpsHpsSlider.tooltip = "When enabled, the Dps and Hps shown is updated faster them total damage or healing." + --]] --------------- Max Segments g:NewLabel (window, _, "$parentSliderLabel", "segmentsLabel", Loc ["STRING_WELCOME_21"] .. ":") window.segmentsLabel:SetPoint (31, -190) @@ -1016,10 +1027,12 @@ local window_openned_at = time() update_frame_alert:SetScript ("OnShow", function() _detalhes:StartTestBarUpdate() + --_detalhes.in_combat = true end) update_frame_alert:SetScript ("OnHide", function() _detalhes:StopTestBarUpdate() + --_detalhes.in_combat = false end) ---------------- @@ -1032,6 +1045,7 @@ local window_openned_at = time() -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> page 6 +-- stretcher local bg6 = window:CreateTexture (nil, "overlay") bg6:SetTexture ([[Interface\MainMenuBar\UI-MainMenuBar-EndCap-Human]]) @@ -1047,7 +1061,7 @@ local window_openned_at = time() local texto_stretch = window:CreateFontString (nil, "overlay", "GameFontNormal") texto_stretch:SetPoint ("topleft", window, "topleft", 181, -105) - texto_stretch:SetText (Loc ["STRING_WELCOME_27"]) + texto_stretch:SetText ("The highlighted button is the Stretcher. |cFFFFFF00Click|r and |cFFFFFF00drag up!|r.\n\n\nIf the window is locked, the entire title bar becomes a stretch button.") texto_stretch:SetWidth (310) texto_stretch:SetHeight (100) texto_stretch:SetJustifyH ("left") @@ -1062,6 +1076,9 @@ local window_openned_at = time() stretch_image:SetTexCoord (0.716796875, 1, 0.876953125, 1) local stretch_frame_alert = CreateFrame ("frame", nil, window) + stretch_frame_alert:SetScript ("OnHide", function() + _detalhes:StopPlayStretchAlert() + end) stretch_frame_alert:SetScript ("OnShow", function() local instance = _detalhes:GetInstance (1) _detalhes.OnEnterMainWindow (instance) @@ -1074,7 +1091,7 @@ local window_openned_at = time() if (_detalhes.stopwelcomealert) then _detalhes:CancelTimer (_detalhes.stopwelcomealert) end - _detalhes.stopwelcomealert = _detalhes:ScheduleTimer ("StopPlayStretchAlert", 5) + _detalhes.stopwelcomealert = _detalhes:ScheduleTimer ("StopPlayStretchAlert", 30) end) @@ -1086,6 +1103,7 @@ local window_openned_at = time() -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> page 7 +-- window button local bg6 = window:CreateTexture (nil, "overlay") bg6:SetTexture ([[Interface\MainMenuBar\UI-MainMenuBar-EndCap-Human]]) @@ -1110,12 +1128,15 @@ local window_openned_at = time() local instance_button_image = window:CreateTexture (nil, "overlay") instance_button_image:SetTexture ([[Interface\Addons\Details\images\icons]]) - instance_button_image:SetPoint ("topright", window, "topright", -12, -70) - instance_button_image:SetWidth (204) + instance_button_image:SetPoint ("topright", window, "topright", -16, -70) + instance_button_image:SetWidth (198) instance_button_image:SetHeight (141) - instance_button_image:SetTexCoord (0.31640625, 0.71484375, 0.724609375, 1) + instance_button_image:SetTexCoord (0.328125, 0.71484375, 0.724609375, 1) local instance_frame_alert = CreateFrame ("frame", nil, window) + instance_frame_alert:SetScript ("OnHide", function() + _detalhes:StopPlayStretchAlert() + end) instance_frame_alert:SetScript ("OnShow", function() local instance = _detalhes:GetInstance (1) @@ -1127,7 +1148,7 @@ local window_openned_at = time() if (_detalhes.stopwelcomealert) then _detalhes:CancelTimer (_detalhes.stopwelcomealert) end - _detalhes.stopwelcomealert = _detalhes:ScheduleTimer ("StopPlayStretchAlert", 5) + _detalhes.stopwelcomealert = _detalhes:ScheduleTimer ("StopPlayStretchAlert", 30) end) pages [#pages+1] = {bg6, texto6, instance_button_image, texto_instance_button, instance_frame_alert} @@ -1138,6 +1159,7 @@ local window_openned_at = time() -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> page 8 +-- bookmark local bg7 = window:CreateTexture (nil, "overlay") bg7:SetTexture ([[Interface\MainMenuBar\UI-MainMenuBar-EndCap-Human]]) @@ -1153,28 +1175,21 @@ local window_openned_at = time() local texto_shortcut = window:CreateFontString (nil, "overlay", "GameFontNormal") texto_shortcut:SetPoint ("topleft", window, "topleft", 25, -110) - texto_shortcut:SetText (Loc ["STRING_WELCOME_31"]) + texto_shortcut:SetText ("|cFFFFFF00Right clicking|r anywhere in the window shows the |cFFFFAA00Bookmark|r panel.\n\n|cFFFFFF00Right click again|r closes the panel or chooses another display if clicked on a icon.\n\n|cFFFFFF00Left click|r selects the display.") texto_shortcut:SetWidth (320) texto_shortcut:SetHeight (90) texto_shortcut:SetJustifyH ("left") texto_shortcut:SetJustifyV ("top") texto_shortcut:SetTextColor (1, 1, 1, 1) - local shortcut_image1 = window:CreateTexture (nil, "overlay") - shortcut_image1:SetTexture ([[Interface\Addons\Details\images\icons]]) - shortcut_image1:SetPoint ("topright", window, "topright", -12, -20) - shortcut_image1:SetWidth (160) - shortcut_image1:SetHeight (91) - shortcut_image1:SetTexCoord (0, 0.31250, 0.82421875, 1) - local shortcut_image2 = window:CreateTexture (nil, "overlay") shortcut_image2:SetTexture ([[Interface\Addons\Details\images\icons]]) - shortcut_image2:SetPoint ("topright", window, "topright", -12, -110) - shortcut_image2:SetWidth (160) - shortcut_image2:SetHeight (106) - shortcut_image2:SetTexCoord (0, 0.31250, 0.59375, 0.80078125) - - pages [#pages+1] = {bg7, texto7, shortcut_image1, shortcut_image2, texto_shortcut} + shortcut_image2:SetPoint ("topright", window, "topright", -22, -87) + shortcut_image2:SetWidth (165) + shortcut_image2:SetHeight (119) + shortcut_image2:SetTexCoord (2/512, 167/512, 306/512, 425/512) + + pages [#pages+1] = {bg7, texto7, shortcut_image2, texto_shortcut} for _, widget in ipairs (pages[#pages]) do widget:Hide() @@ -1182,6 +1197,7 @@ local window_openned_at = time() -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> page 9 +-- group windows local bg77 = window:CreateTexture (nil, "overlay") bg77:SetTexture ([[Interface\MainMenuBar\UI-MainMenuBar-EndCap-Human]]) @@ -1197,7 +1213,7 @@ local window_openned_at = time() local texto_snap = window:CreateFontString (nil, "overlay", "GameFontNormal") texto_snap:SetPoint ("topleft", window, "topleft", 25, -101) - texto_snap:SetText (Loc ["STRING_WELCOME_33"]) + texto_snap:SetText ("Drag a window near other to create a group.\n\nGrouped windows stretch and resize together.\n\nThey also live happier as a couple,") texto_snap:SetWidth (160) texto_snap:SetHeight (110) texto_snap:SetJustifyH ("left") @@ -1209,12 +1225,16 @@ local window_openned_at = time() local snap_image1 = window:CreateTexture (nil, "overlay") snap_image1:SetTexture ([[Interface\Addons\Details\images\icons]]) snap_image1:SetPoint ("topright", window, "topright", -12, -95) - snap_image1:SetWidth (308) - snap_image1:SetHeight (121) - snap_image1:SetTexCoord (0, 0.6015625, 0.353515625, 0.58984375) + snap_image1:SetWidth (310) + snap_image1:SetHeight (102) + snap_image1:SetTexCoord (0, 0.60546875, 191/512, 293/512) + local group_frame_alert = CreateFrame ("frame", nil, window) + group_frame_alert:SetScript ("OnShow", function() + _detalhes.tabela_historico:resetar() + end) - pages [#pages+1] = {bg77, texto77, snap_image1, texto_snap} + pages [#pages+1] = {bg77, texto77, snap_image1, texto_snap, group_frame_alert} for _, widget in ipairs (pages[#pages]) do widget:Hide() @@ -1222,6 +1242,7 @@ local window_openned_at = time() -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> page 10 +-- tooltip shift alt ctrl local bg88 = window:CreateTexture (nil, "overlay") bg88:SetTexture ([[Interface\MainMenuBar\UI-MainMenuBar-EndCap-Human]]) @@ -1234,24 +1255,22 @@ local window_openned_at = time() local texto88 = window:CreateFontString (nil, "overlay", "GameFontNormal") texto88:SetPoint ("topleft", window, "topleft", 20, -80) texto88:SetText (Loc ["STRING_WELCOME_34"]) - --|cFFFFFF00 + local texto_micro_display = window:CreateFontString (nil, "overlay", "GameFontNormal") texto_micro_display:SetPoint ("topleft", window, "topleft", 25, -101) - texto_micro_display:SetText (Loc ["STRING_WELCOME_35"]) - texto_micro_display:SetWidth (160) + texto_micro_display:SetText ("Press shift to expand player's tooltip to show all spells used.\n\nCtrl for targets and Alt for Pets.") + texto_micro_display:SetWidth (300) texto_micro_display:SetHeight (110) texto_micro_display:SetJustifyH ("left") texto_micro_display:SetJustifyV ("top") texto_micro_display:SetTextColor (1, 1, 1, 1) - --local fonte, _, flags = texto_micro_display:GetFont() - --texto_micro_display:SetFont (fonte, 11, flags) local micro_image1 = window:CreateTexture (nil, "overlay") micro_image1:SetTexture ([[Interface\Addons\Details\images\icons]]) - micro_image1:SetPoint ("topright", window, "topright", -12, -95) - micro_image1:SetWidth (303) - micro_image1:SetHeight (128) - micro_image1:SetTexCoord (0.408203125, 1, 0.09375, 0.341796875) + micro_image1:SetPoint ("topright", window, "topright", -15, -95) + micro_image1:SetWidth (136) + micro_image1:SetHeight (83) + micro_image1:SetTexCoord (0, 136/512, 429/512, 1) pages [#pages+1] = {bg88, texto88, micro_image1, texto_micro_display} diff --git a/images/icons.tga b/images/icons.tga index 9e494c08..cd3ef55c 100644 Binary files a/images/icons.tga and b/images/icons.tga differ diff --git a/plugins/Details_EncounterDetails/Details_EncounterDetails.lua b/plugins/Details_EncounterDetails/Details_EncounterDetails.lua index a2d125f9..e7e4d498 100644 --- a/plugins/Details_EncounterDetails/Details_EncounterDetails.lua +++ b/plugins/Details_EncounterDetails/Details_EncounterDetails.lua @@ -369,12 +369,20 @@ end local amount = event [3] local time = event [4] local source = event [6] + local overkill = event [10] if (type (evtype) == "boolean") then --> is damage or heal if (evtype) then --> damage - GameCooltip:AddLine ("" .. _cstr ("%.1f", time - hora_da_morte) .. "s " .. spellname .. " (" .. source .. ")", "-" .. _detalhes:ToK (amount) .. " (" .. hp .. "%)", 1, "white", "white") + + if (overkill > 0) then + overkill = " (" .. _detalhes:ToK (overkill) .. " |cFFFF8800overkill|r)" + else + overkill = "" + end + + GameCooltip:AddLine ("" .. _cstr ("%.1f", time - hora_da_morte) .. "s " .. spellname .. " (" .. source .. ")", "-" .. _detalhes:ToK (amount) .. overkill .. " (" .. hp .. "%)", 1, "white", "white") GameCooltip:AddIcon (spellicon) if (event [9]) then diff --git a/startup.lua b/startup.lua index b6cb42b7..8a1e6e40 100644 --- a/startup.lua +++ b/startup.lua @@ -178,8 +178,11 @@ function _G._detalhes:Start() --vardump (instance.snap) --print ("===============") + instance.do_not_snap = true self.move_janela_func (instance.baseframe, true, instance) self.move_janela_func (instance.baseframe, false, instance) + instance.do_not_snap = false + end end self.CheckWallpaperAfterStartup = nil @@ -443,12 +446,12 @@ function _G._detalhes:Start() if (self.is_first_run) then _detalhes:OpenWelcomeWindow() end + --_detalhes:OpenWelcomeWindow() --debug _detalhes:BrokerTick() -- test dbm callbacks - if (_G.DBM) then local dbm_callback_phase = function (event, msg) @@ -483,36 +486,7 @@ function _G._detalhes:Start() DBM:RegisterCallback ("pull", dbm_callback_pull) end - --test realtime dps - --[[ - local floor = floor - local real_time_frame = CreateFrame ("frame", nil, UIParent) - local instance = _detalhes:GetInstance (1) - real_time_frame:SetScript ("OnUpdate", function (self, elapsed) - if (_detalhes.in_combat and instance.atributo == 1 and instance.sub_atributo == 1) then - for i = 1, instance:GetNumRows() do - local row = instance:GetRow (i) - if (row and row:IsShown()) then - - local actor = row.minha_tabela - if (actor) then - local dps_text = row.ps_text - if (dps_text) then - local new_dps = floor (actor.total / instance.showing:GetCombatTime()) - local formated_dps = _detalhes.ToKFunctions [_detalhes.ps_abbreviation] (_, new_dps) - - row.texto_direita:SetText (row.texto_direita:GetText():gsub (dps_text, formated_dps)) - row.ps_text = formated_dps - end - end - end - end - end - end) - --]] - - --> register molten core - + --> register molten core local molten_core = { id = 409,