plugins:
- removed warlords of draenor dungeon info plugin. - removed hellfire citadel raid info plugin. - remove calc leech plugin. - added emerald nightmare raid info plugin. - added the nighthold raid info plugin. hotfixes: - fix for total bar where sometimes it desappears. - fix for overall data reseting its elapsed time making dps and hps goes to millions. - fix for overall not reseting when entering in a new dungeon. - fix for trash cleanup on dungeons. - fix for item level detection on dungeons. - fix for artifact offhand always being counter as 750 item level. - fix for segments menu sometimes not opening at all after a dungeon boss. - fix for segments menu not showing the boss icon above the sub panel. - fix for the top left corner of the window be ignoring the 'hide icon' setting at a /reload.
This commit is contained in:
@@ -1,16 +1,14 @@
|
||||
move-folders:
|
||||
Details/plugins/Details_DmgRank: Details_DmgRank
|
||||
Details/plugins/Details_EncounterDetails: Details_EncounterDetails
|
||||
Details/plugins/Details_DungeonInfo-Pandaria: Details_DungeonInfo-Pandaria
|
||||
Details/plugins/Details_SpellDetails: Details_SpellDetails
|
||||
Details/plugins/Details_TimeAttack: Details_TimeAttack
|
||||
Details/plugins/Details_TinyThreat: Details_TinyThreat
|
||||
Details/plugins/Details_Vanguard: Details_Vanguard
|
||||
Details/plugins/Details_RaidInfo-HellfireCitadel: Details_RaidInfo-HellfireCitadel
|
||||
Details/plugins/Details_DataStorage: Details_DataStorage
|
||||
Details/plugins/Details_DungeonInfo-Warlords: Details_DungeonInfo-Warlords
|
||||
Details/plugins/Details_3DModelsPaths: Details_3DModelsPaths
|
||||
Details/plugins/Details_RaidCheck: Details_RaidCheck
|
||||
Details/plugins/Details_DpsTuning: Details_DpsTuning
|
||||
Details/plugins/Details_Streamer: Details_Streamer
|
||||
Details/plugins/Details_CalcLeech: Details_CalcLeech
|
||||
Details/plugins/Details_RaidInfo-EmeraldNightmare: Details_RaidInfo-EmeraldNightmare
|
||||
Details/plugins/Details_RaidInfo-Nighthold: Details_RaidInfo-Nighthold
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
|
||||
local dversion = 44
|
||||
local dversion = 45
|
||||
local major, minor = "DetailsFramework-1.0", dversion
|
||||
local DF, oldminor = LibStub:NewLibrary (major, minor)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--[[
|
||||
Name: LibGraph-2.0
|
||||
Revision: $Rev: 51 $
|
||||
Revision: $Rev: 54 $
|
||||
Author(s): Cryect (cryect@gmail.com), Xinhuan
|
||||
Website: http://www.wowace.com/
|
||||
Documentation: http://www.wowace.com/wiki/GraphLib
|
||||
@@ -11,7 +11,7 @@ Description: Allows for easy creation of graphs
|
||||
--Thanks to Nelson Minar for catching several errors where width was being used instead of height (damn copy and paste >_>)
|
||||
|
||||
local major = "LibGraph-2.0"
|
||||
local minor = 90000 + tonumber(("$Revision: 52 $"):match("(%d+)"))
|
||||
local minor = 90000 + tonumber(("$Revision: 54 $"):match("(%d+)"))
|
||||
|
||||
|
||||
--Search for just Addon\\ at the front since the interface part often gets trimmed
|
||||
@@ -267,7 +267,7 @@ end
|
||||
function lib:CreateGraphLine(name, parent, relative, relativeTo, offsetX, offsetY, Width, Height)
|
||||
local graph
|
||||
local i
|
||||
graph = CreateFrame("Frame",name, parent)
|
||||
graph = CreateFrame("Frame", name, parent)
|
||||
|
||||
|
||||
graph:SetPoint(relative, parent, relativeTo, offsetX, offsetY)
|
||||
@@ -1287,7 +1287,7 @@ function GraphFunctions:SetYLabels(Left, Right)
|
||||
self.YLabelsRight = Right
|
||||
end
|
||||
|
||||
function GraphFunctions:SetLineTexture (texture)
|
||||
function GraphFunctions:SetLineTexture(texture)
|
||||
if (type (texture) ~= "string") then
|
||||
return assert (false, "Parameter 1 for SetLineTexture must be a string")
|
||||
end
|
||||
@@ -1301,7 +1301,7 @@ function GraphFunctions:SetLineTexture (texture)
|
||||
end
|
||||
end
|
||||
|
||||
function GraphFunctions:SetBorderSize (border, size)
|
||||
function GraphFunctions:SetBorderSize(border, size)
|
||||
border = string.lower (border)
|
||||
|
||||
if (type (size) ~= "number") then
|
||||
@@ -1336,10 +1336,12 @@ function GraphFunctions:CreateGridlines()
|
||||
if self.YGridInterval then
|
||||
local LowerYGridLine, UpperYGridLine, TopSpace
|
||||
LowerYGridLine = self.YMin / self.YGridInterval
|
||||
LowerYGridLine = math_max(math_floor(LowerYGridLine),math_ceil(LowerYGridLine))
|
||||
LowerYGridLine = math_max(math_floor(LowerYGridLine), math_ceil(LowerYGridLine))
|
||||
UpperYGridLine = self.YMax / self.YGridInterval
|
||||
UpperYGridLine = math_min(math_floor(UpperYGridLine),math_ceil(UpperYGridLine))
|
||||
UpperYGridLine = math_min(math_floor(UpperYGridLine), math_ceil(UpperYGridLine))
|
||||
--UpperYGridLine = math_min(UpperYGridLine, self.YGridMax or 16)
|
||||
TopSpace = Height * (1 - (UpperYGridLine * self.YGridInterval - self.YMin) / (self.YMax - self.YMin))
|
||||
|
||||
for i = LowerYGridLine, UpperYGridLine do
|
||||
if i ~= 0 or not self.YAxisDrawn then
|
||||
local YPos, T
|
||||
@@ -1381,6 +1383,7 @@ function GraphFunctions:CreateGridlines()
|
||||
LowerXGridLine = math_max(math_floor(LowerXGridLine), math_ceil(LowerXGridLine))
|
||||
UpperXGridLine = self.XMax / self.XGridInterval
|
||||
UpperXGridLine = math_min(math_floor(UpperXGridLine), math_ceil(UpperXGridLine))
|
||||
--UpperXGridLine = math_min(UpperXGridLine, self.XGridMax or 16)
|
||||
|
||||
for i = LowerXGridLine, UpperXGridLine do
|
||||
if i ~= 0 or not self.XAxisDrawn then
|
||||
@@ -1650,6 +1653,15 @@ function GraphFunctions:OnUpdateGraphRealtime()
|
||||
if MaxY ~= 0 and math_abs(self.YMax - MaxY) > 0.01 then
|
||||
self.YMax = MaxY
|
||||
self.NeedsUpdate = true
|
||||
|
||||
local Spacing
|
||||
if self.YMax < 25 then
|
||||
Spacing = -1
|
||||
else
|
||||
Spacing = math.log(self.YMax / 100) / math.log(2)
|
||||
end
|
||||
|
||||
self.YGridInterval = 25 * math.pow(2, math.floor(Spacing))
|
||||
end
|
||||
end
|
||||
self:SetBars()
|
||||
@@ -1695,33 +1707,33 @@ function GraphFunctions:RefreshLineGraph()
|
||||
|
||||
if not self.LockOnXMin then
|
||||
if (self.CustomLeftBorder) then
|
||||
self.XMin=MinX+self.CustomLeftBorder --> custom size of left border
|
||||
self.XMin = MinX + self.CustomLeftBorder --> custom size of left border
|
||||
else
|
||||
self.XMin=MinX-XBorder
|
||||
self.XMin = MinX - XBorder
|
||||
end
|
||||
end
|
||||
|
||||
if not self.LockOnXMax then
|
||||
if (self.CustomRightBorder) then
|
||||
self.XMax=MaxX+self.CustomRightBorder --> custom size of right border
|
||||
self.XMax = MaxX + self.CustomRightBorder --> custom size of right border
|
||||
else
|
||||
self.XMax=MaxX+XBorder
|
||||
self.XMax = MaxX + XBorder
|
||||
end
|
||||
end
|
||||
|
||||
if not self.LockOnYMin then
|
||||
if (self.CustomBottomBorder) then
|
||||
self.YMin=MinY+self.CustomBottomBorder --> custom size of bottom border
|
||||
self.YMin = MinY + self.CustomBottomBorder --> custom size of bottom border
|
||||
else
|
||||
self.YMin=MinY-YBorder
|
||||
self.YMin = MinY - YBorder
|
||||
end
|
||||
end
|
||||
|
||||
if not self.LockOnYMax then
|
||||
if (self.CustomTopBorder) then
|
||||
self.YMax=MaxY+self.CustomTopBorder --> custom size of top border
|
||||
self.YMax = MaxY + self.CustomTopBorder --> custom size of top border
|
||||
else
|
||||
self.YMax=MaxY+YBorder
|
||||
self.YMax = MaxY + YBorder
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2052,7 +2064,7 @@ function lib:DrawBar(C, sx, sy, ex, ey, color, level)
|
||||
|
||||
if not Bar then
|
||||
Bar = C:CreateTexture(nil, "ARTWORK")
|
||||
Bar:SetTexture(1, 1, 1, 1)
|
||||
Bar:SetColorTexture(1, 1, 1, 1)
|
||||
|
||||
Tri = C:CreateTexture(nil, "ARTWORK")
|
||||
Tri:SetTexture(TextureDirectory.."triangle")
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
-- Returns an array with the set of unit ids for the current group.
|
||||
--]]
|
||||
|
||||
local MAJOR, MINOR = "LibGroupInSpecT-1.1", tonumber (("$Revision: 83 $"):match ("(%d+)") or 0)
|
||||
local MAJOR, MINOR = "LibGroupInSpecT-1.1", tonumber (("$Revision: 86 $"):match ("(%d+)") or 0)
|
||||
|
||||
if not LibStub then error(MAJOR.." requires LibStub") end
|
||||
local lib = LibStub:NewLibrary (MAJOR, MINOR)
|
||||
@@ -178,6 +178,9 @@ local global_spec_id_roles_detailed = {
|
||||
[250] = "tank", -- Blood
|
||||
[251] = "melee", -- Frost
|
||||
[252] = "melee", -- Unholy
|
||||
-- Demon Hunter
|
||||
[577] = "melee", -- Havoc
|
||||
[581] = "tank", -- Vengeance
|
||||
-- Druid
|
||||
[102] = "ranged", -- Balance
|
||||
[103] = "melee", -- Feral
|
||||
@@ -801,10 +804,8 @@ function lib:UNIT_AURA (unit)
|
||||
end
|
||||
|
||||
|
||||
local dual_spec_spells = {}
|
||||
for i, spellid in ipairs (TALENT_ACTIVATION_SPELLS) do dual_spec_spells[spellid] = true end
|
||||
function lib:UNIT_SPELLCAST_SUCCEEDED (unit, spellname, rank, lineid, spellid)
|
||||
if dual_spec_spells[spellid] then
|
||||
if spellid == 200749 then
|
||||
self:Query (unit) -- Definitely changed, so high prio refresh
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
_ = nil
|
||||
_detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0")
|
||||
_detalhes.build_counter = 2920 --it's 2885 for release
|
||||
_detalhes.userversion = "v7.0.3.2920"
|
||||
_detalhes.build_counter = 2941 --it's 2941 for release
|
||||
_detalhes.userversion = "v7.0.3.2941"
|
||||
_detalhes.realversion = 111 --core version
|
||||
_detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")"
|
||||
Details = _detalhes
|
||||
@@ -21,16 +21,21 @@ do
|
||||
local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" )
|
||||
|
||||
--[[
|
||||
|cFFFFFF00v5.17 (|cFFFFCC00August 19, 2016|r|cFFFFFF00)|r:\n\n
|
||||
|cFFFFFF00-|r Fixed a bug on tiny threat where it won't used the font set after a /reload.\n\n
|
||||
|cFFFFFF00-|r Bar spacing can now be set to -2 to 10 (from 0 to 10).\n\n
|
||||
|cFFFFFF00-|r Attempt to fix GBoM and Stormlash on dungeon boss fights.\n\n
|
||||
|
||||
|cFFFFFF00v7.0.3.2941 (|cFFFFCC00September 13th, 2016|r|cFFFFFF00)|r:\n\n
|
||||
|cFFFFFF00-|r fix for total bar where sometimes it desappears.\n\n
|
||||
|cFFFFFF00-|r fix for overall data reseting its elapsed time making dps and hps goes to millions.\n\n
|
||||
|cFFFFFF00-|r fix for overall not reseting when entering in a new dungeon.\n\n
|
||||
|cFFFFFF00-|r fix for trash cleanup on dungeons.\n\n
|
||||
|cFFFFFF00-|r fix for item level detection on dungeons.\n\n
|
||||
|cFFFFFF00-|r fix for artifact offhand always being counter as 750 item level.\n\n
|
||||
|cFFFFFF00-|r fix for segments menu sometimes not opening at all after a dungeon boss.\n\n
|
||||
|cFFFFFF00-|r fix for segments menu not showing the boss icon above the sub panel.\n\n
|
||||
|cFFFFFF00-|r fix for the top left corner of the window be ignoring the 'hide icon' setting at a /reload.\n\n
|
||||
|
||||
--]]
|
||||
--
|
||||
|
||||
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v7.0.3.2899 (|cFFFFCC00August 26, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a bug on tiny threat where it won't used the font set after a /reload.\n\n|cFFFFFF00-|r Bar spacing can now be set to -2 to 10 (from 0 to 10).\n\n|cFFFFFF00-|r Attempt to fix GBoM and Stormlash on dungeon boss fights.\n\n|cFFFFFF00v5.21 (|cFFFFCC00August 14, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for Monk's Soothing Mist on Streamer Plugin.\n\n|cFFFFFF00v5.20 (|cFFFFCC00August 13, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Warlock's Grimoire of Synergy buff uptime fix.\n\n|cFFFFFF00-|r Fix for the options panel background when using Classic panels.\n\n|cFFFFFF00-|r Tooltips are now slightly bigger.\n\n|cFFFFFF00-|r Fix for bookmark background where sometimes it has a light silver color.\n\n|cFFFFFF00-|r Fix for channel cast on Streamer Plugin.\n\n|cFFFFFF00-|r Legion followers fix.\n\n|cFFFFFF00-|r Boss detection for Legion dungeons.\n\n|cFFFFFF00-|r Priest spec detection review (thanks Yakumile-Azralon).\n\n|cFFFFFF00v5.15 (|cFFFFCC00August 5, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r fix for an error which happen sometimes during encounter start.\n\n|cFFFFFF00v5.14 (|cFFFFCC00August 2, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added outline option for bar's Left Text (experimental).\n\n|cFFFFFF00-|r 'Minimalistic' is once again the default skin for new windows, changed from the 'Safe Beta Skin'.\n\n|cFFFFFF00-|r Fixed some issues with spec detection and LibGroupInSpecT-1.1 has need enabled back again.\n\n|cFFFFFF00-|r Fixed an issue with micro displays not loading settings after a logon.\n\n|cFFFFFF00-|r Another wave of workarounds to prevent the client image cache bug.\n\n|cFFFFFF00-|r fixed the spam of 'segment not added to overall'.\n\n|cFFFFFF00-|r stormlash and blessing of might workarouds.\n\n|cFFFFFF00-|r warrior rampage fix.\n\n|cFFFFFF00-|r hunter throw axe fix.\n\n|cFFFFFF00v5.10c (|cFFFFCC00July 22, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Trying a workaround for the wow client's texture cache bug which causes FPS drops, please delete the file 'spec_icons_normal.TGA' from details/image folder.\n\n|cFFFFFF00v5.10b (|cFFFFCC00July 21, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed warlock's Soul Effigy.\n\n|cFFFFFF00v5.10a (|cFFFFCC00July 20, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with Calc Leech plugin.\n\n|cFFFFFF00v5.10 (|cFFFFCC00July 19, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Using .BLP format for images. If you have FPS drops caused by Details!, delete ALL .TGA files inside the folder Details/Images/\n\n|cFFFFFF00v5.8 (|cFFFFCC00July 11, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Big framework update. May have some bugs, please report to us if you find any.\n\n|cFFFFFF00v5.8 (|cFFFFCC00June 27, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Energy and Resources are working properly now.\n\n|cFFFFFF00-|r Added raid information for The Emerald Nightmare.\n\n|cFFFFFF00v5.7 (|cFFFFCC00June 16, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Most of the raid plugins got added on this version.\n\n|cFFFFFF00-|r Plugin 'Damage, The Game!' also got damage goals updated.\n\n|cFFFFFF00v5.5 (|cFFFFCC00June 03, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Default skin is now 'Safe Skin Legion Beta' which helps a little with the disabled texture issue.\n|cFFFFFF00-|r If you're using another skin, you may change at the options panel /details options > Skin Selection.\n|cFFFFFF00-|r You also can disable the class icons at Bars: General > Icon File."
|
||||
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v7.0.3.2941 (|cFFFFCC00September 13th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r fix for total bar where sometimes it desappears.\n\n|cFFFFFF00-|r fix for overall data reseting its elapsed time making dps and hps goes to millions.\n\n|cFFFFFF00-|r fix for overall not reseting when entering in a new dungeon.\n\n|cFFFFFF00-|r fix for trash cleanup on dungeons.\n\n|cFFFFFF00-|r fix for item level detection on dungeons.\n\n|cFFFFFF00-|r fix for artifact offhand always being counter as 750 item level.\n\n|cFFFFFF00-|r fix for segments menu sometimes not opening at all after a dungeon boss.\n\n|cFFFFFF00-|r fix for segments menu not showing the boss icon above the sub panel.\n\n|cFFFFFF00-|r fix for the top left corner of the window be ignoring the 'hide icon' setting at a /reload.\n\n|cFFFFFF00v7.0.3.2927 (|cFFFFCC00September 3rd, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Attempt to fix an issue with total bar hidding the latest bar shown.\n\n|cFFFFFF00v7.0.3.2899 (|cFFFFCC00August 26, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a bug on tiny threat where it won't used the font set after a /reload.\n\n|cFFFFFF00-|r Bar spacing can now be set to -2 to 10 (from 0 to 10).\n\n|cFFFFFF00-|r Attempt to fix GBoM and Stormlash on dungeon boss fights.\n\n|cFFFFFF00v5.21 (|cFFFFCC00August 14, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for Monk's Soothing Mist on Streamer Plugin.\n\n|cFFFFFF00v5.20 (|cFFFFCC00August 13, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Warlock's Grimoire of Synergy buff uptime fix.\n\n|cFFFFFF00-|r Fix for the options panel background when using Classic panels.\n\n|cFFFFFF00-|r Tooltips are now slightly bigger.\n\n|cFFFFFF00-|r Fix for bookmark background where sometimes it has a light silver color.\n\n|cFFFFFF00-|r Fix for channel cast on Streamer Plugin.\n\n|cFFFFFF00-|r Legion followers fix.\n\n|cFFFFFF00-|r Boss detection for Legion dungeons.\n\n|cFFFFFF00-|r Priest spec detection review (thanks Yakumile-Azralon).\n\n|cFFFFFF00v5.15 (|cFFFFCC00August 5, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r fix for an error which happen sometimes during encounter start.\n\n|cFFFFFF00v5.14 (|cFFFFCC00August 2, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added outline option for bar's Left Text (experimental).\n\n|cFFFFFF00-|r 'Minimalistic' is once again the default skin for new windows, changed from the 'Safe Beta Skin'.\n\n|cFFFFFF00-|r Fixed some issues with spec detection and LibGroupInSpecT-1.1 has need enabled back again.\n\n|cFFFFFF00-|r Fixed an issue with micro displays not loading settings after a logon.\n\n|cFFFFFF00-|r Another wave of workarounds to prevent the client image cache bug.\n\n|cFFFFFF00-|r fixed the spam of 'segment not added to overall'.\n\n|cFFFFFF00-|r stormlash and blessing of might workarouds.\n\n|cFFFFFF00-|r warrior rampage fix.\n\n|cFFFFFF00-|r hunter throw axe fix.\n\n|cFFFFFF00v5.10c (|cFFFFCC00July 22, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Trying a workaround for the wow client's texture cache bug which causes FPS drops, please delete the file 'spec_icons_normal.TGA' from details/image folder.\n\n|cFFFFFF00v5.10b (|cFFFFCC00July 21, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed warlock's Soul Effigy.\n\n|cFFFFFF00v5.10a (|cFFFFCC00July 20, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with Calc Leech plugin.\n\n|cFFFFFF00v5.10 (|cFFFFCC00July 19, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Using .BLP format for images. If you have FPS drops caused by Details!, delete ALL .TGA files inside the folder Details/Images/\n\n|cFFFFFF00v5.8 (|cFFFFCC00July 11, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Big framework update. May have some bugs, please report to us if you find any.\n\n|cFFFFFF00v5.8 (|cFFFFCC00June 27, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Energy and Resources are working properly now.\n\n|cFFFFFF00-|r Added raid information for The Emerald Nightmare.\n\n|cFFFFFF00v5.7 (|cFFFFCC00June 16, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Most of the raid plugins got added on this version.\n\n|cFFFFFF00-|r Plugin 'Damage, The Game!' also got damage goals updated.\n\n|cFFFFFF00v5.5 (|cFFFFCC00June 03, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Default skin is now 'Safe Skin Legion Beta' which helps a little with the disabled texture issue.\n|cFFFFFF00-|r If you're using another skin, you may change at the options panel /details options > Skin Selection.\n|cFFFFFF00-|r You also can disable the class icons at Bars: General > Icon File."
|
||||
|
||||
Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails!:|r "
|
||||
|
||||
|
||||
@@ -82,6 +82,10 @@
|
||||
return self.is_boss
|
||||
end
|
||||
|
||||
function combate:GetPhases()
|
||||
return self.PhaseData
|
||||
end
|
||||
|
||||
function combate:GetPvPInfo()
|
||||
return self.is_pvp
|
||||
end
|
||||
|
||||
@@ -2062,7 +2062,7 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
end
|
||||
|
||||
instancia:AtualizarScrollBar (amount)
|
||||
|
||||
|
||||
local qual_barra = 1
|
||||
local barras_container = instancia.barras
|
||||
local percentage_type = instancia.row_info.percent_type
|
||||
@@ -2118,10 +2118,12 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
instancia.player_top_dps_threshold = instancia.player_top_dps - (instancia.player_top_dps * 0.65)
|
||||
end
|
||||
|
||||
local totalBarIsShown
|
||||
|
||||
if (instancia.bars_sort_direction == 1) then --top to bottom
|
||||
|
||||
if (use_total_bar and instancia.barraS[1] == 1) then
|
||||
|
||||
|
||||
qual_barra = 2
|
||||
local iter_last = instancia.barraS[2]
|
||||
if (iter_last == instancia.rows_fit_in_window) then
|
||||
@@ -2141,6 +2143,7 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
row1.icone_classe:SetTexCoord (0.0625, 0.9375, 0.0625, 0.9375)
|
||||
|
||||
gump:Fade (row1, "out")
|
||||
totalBarIsShown = true
|
||||
|
||||
if (following and myPos and myPos > instancia.rows_fit_in_window and instancia.barraS[2] < myPos) then
|
||||
for i = instancia.barraS[1], iter_last-1, 1 do
|
||||
@@ -2205,6 +2208,7 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
row1.icone_classe:SetTexCoord (0.0625, 0.9375, 0.0625, 0.9375)
|
||||
|
||||
gump:Fade (row1, "out")
|
||||
totalBarIsShown = true
|
||||
|
||||
if (following and myPos and myPos > instancia.rows_fit_in_window and instancia.barraS[2] < myPos) then
|
||||
for i = iter_last-1, instancia.barraS[1], -1 do
|
||||
@@ -2248,6 +2252,12 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
|
||||
end
|
||||
|
||||
if (totalBarIsShown) then
|
||||
instancia:AtualizarScrollBar (amount + 1)
|
||||
else
|
||||
instancia:AtualizarScrollBar (amount)
|
||||
end
|
||||
|
||||
if (use_animations) then
|
||||
instancia:fazer_animacoes (qual_barra - 1)
|
||||
end
|
||||
@@ -3015,6 +3025,55 @@ function atributo_damage:ToolTip_DamageDone (instancia, numero, barra, keydown)
|
||||
|
||||
end
|
||||
|
||||
--> ~Phases
|
||||
local segment = instancia:GetShowingCombat()
|
||||
if (segment and self.grupo) then
|
||||
local bossInfo = segment:GetBossInfo()
|
||||
local phasesInfo = segment:GetPhases()
|
||||
if (bossInfo and phasesInfo) then
|
||||
if (#phasesInfo > 1) then
|
||||
|
||||
--_detalhes:AddTooltipSpellHeaderText ("Phases", headerColor, 1, [[Interface\Garrison\MobileAppIcons]], 2*130/1024, 3*130/1024, 5*130/1024, 6*130/1024)
|
||||
--_detalhes:AddTooltipSpellHeaderText ("Phases", headerColor, 1, [[Interface\Garrison\orderhall-missions-mechanic10]], 0, 1, 0, 1)
|
||||
_detalhes:AddTooltipSpellHeaderText ("Phases", headerColor, 1, [[Interface\Garrison\orderhall-missions-mechanic8]], 11/64, 53/64, 11/64, 53/64)
|
||||
--GameCooltip:AddIcon ([[Interface\AddOns\Details\images\key_shift]], 1, 2, _detalhes.tooltip_key_size_width, _detalhes.tooltip_key_size_height, 0, 1, 0, 0.640625, _detalhes.tooltip_key_overlay1)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
local playerPhases = {}
|
||||
local totalDamage = 0
|
||||
|
||||
for phase, playersTable in pairs (phasesInfo.damage) do --each phase
|
||||
|
||||
local allPlayers = {} --all players for this phase
|
||||
for playerName, amount in pairs (playersTable) do
|
||||
tinsert (allPlayers, {playerName, amount})
|
||||
totalDamage = totalDamage + amount
|
||||
end
|
||||
table.sort (allPlayers, function(a, b) return a[2] > b[2] end)
|
||||
|
||||
local myRank = 0
|
||||
for i = 1, #allPlayers do
|
||||
if (allPlayers [i] [1] == self.nome) then
|
||||
myRank = i
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
tinsert (playerPhases, {phase, playersTable [self.nome] or 0, myRank, playersTable [self.nome]/totalDamage*100})
|
||||
end
|
||||
|
||||
table.sort (playerPhases, function(a, b) return a[1] < b[1] end)
|
||||
|
||||
for i = 1, #playerPhases do
|
||||
--[1] Phase Number [2] Amount Done [3] Rank [4] Percent
|
||||
GameCooltip:AddLine ("|cFFF0F0F0Phase|r " .. playerPhases [i][1], FormatTooltipNumber (_, playerPhases [i][2]) .. " (|cFFFFFF00#" .. playerPhases [i][3] .. "|r, " .. _cstr ("%.1f", playerPhases [i][4]) .. "%)")
|
||||
GameCooltip:AddIcon ([[Interface\Garrison\orderhall-missions-mechanic9]], 1, 1, 14, 14, 11/64, 53/64, 11/64, 53/64)
|
||||
_detalhes:AddTooltipBackgroundStatusbar()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
+53
-2
@@ -1002,7 +1002,7 @@ end
|
||||
local background_heal_vs_absorbs = {value = 100, color = {1, 1, 0, .25}, specialSpark = false, texture = [[Interface\AddOns\Details\images\bar4_glass]]}
|
||||
|
||||
function atributo_heal:ToolTip_HealingDone (instancia, numero, barra, keydown)
|
||||
|
||||
|
||||
local owner = self.owner
|
||||
if (owner and owner.classe) then
|
||||
r, g, b = unpack (_detalhes.class_colors [owner.classe])
|
||||
@@ -1013,7 +1013,7 @@ function atributo_heal:ToolTip_HealingDone (instancia, numero, barra, keydown)
|
||||
local ActorHealingTable = {}
|
||||
local ActorHealingTargets = {}
|
||||
local ActorSkillsContainer = self.spells._ActorTable
|
||||
|
||||
|
||||
local actor_key, skill_key = "total", "total"
|
||||
if (instancia.sub_atributo == 3) then
|
||||
actor_key, skill_key = "totalover", "overheal"
|
||||
@@ -1225,6 +1225,57 @@ function atributo_heal:ToolTip_HealingDone (instancia, numero, barra, keydown)
|
||||
|
||||
end
|
||||
|
||||
|
||||
--> ~Phases
|
||||
local segment = instancia:GetShowingCombat()
|
||||
if (segment and self.grupo) then
|
||||
local bossInfo = segment:GetBossInfo()
|
||||
local phasesInfo = segment:GetPhases()
|
||||
if (bossInfo and phasesInfo) then
|
||||
if (#phasesInfo > 1) then
|
||||
|
||||
--_detalhes:AddTooltipSpellHeaderText ("Phases", headerColor, 1, [[Interface\Garrison\MobileAppIcons]], 2*130/1024, 3*130/1024, 5*130/1024, 6*130/1024)
|
||||
--_detalhes:AddTooltipSpellHeaderText ("Phases", headerColor, 1, [[Interface\Garrison\orderhall-missions-mechanic10]], 0, 1, 0, 1)
|
||||
_detalhes:AddTooltipSpellHeaderText ("Phases", headerColor, 1, [[Interface\Garrison\orderhall-missions-mechanic8]], 11/64, 53/64, 11/64, 53/64)
|
||||
--GameCooltip:AddIcon ([[Interface\AddOns\Details\images\key_shift]], 1, 2, _detalhes.tooltip_key_size_width, _detalhes.tooltip_key_size_height, 0, 1, 0, 0.640625, _detalhes.tooltip_key_overlay1)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
local playerPhases = {}
|
||||
local totalDamage = 0
|
||||
|
||||
for phase, playersTable in pairs (phasesInfo.heal) do --each phase
|
||||
|
||||
local allPlayers = {} --all players for this phase
|
||||
for playerName, amount in pairs (playersTable) do
|
||||
tinsert (allPlayers, {playerName, amount})
|
||||
totalDamage = totalDamage + amount
|
||||
end
|
||||
table.sort (allPlayers, function(a, b) return a[2] > b[2] end)
|
||||
|
||||
local myRank = 0
|
||||
for i = 1, #allPlayers do
|
||||
if (allPlayers [i] [1] == self.nome) then
|
||||
myRank = i
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
tinsert (playerPhases, {phase, playersTable [self.nome] or 0, myRank, playersTable [self.nome]/totalDamage*100})
|
||||
end
|
||||
|
||||
table.sort (playerPhases, function(a, b) return a[1] < b[1] end)
|
||||
|
||||
for i = 1, #playerPhases do
|
||||
--[1] Phase Number [2] Amount Done [3] Rank [4] Percent
|
||||
GameCooltip:AddLine ("|cFFF0F0F0Phase|r " .. playerPhases [i][1], FormatTooltipNumber (_, playerPhases [i][2]) .. " (|cFFFFFF00#" .. playerPhases [i][3] .. "|r, " .. _cstr ("%.1f", playerPhases [i][4]) .. "%)")
|
||||
GameCooltip:AddIcon ([[Interface\Garrison\orderhall-missions-mechanic9]], 1, 1, 14, 14, 11/64, 53/64, 11/64, 53/64)
|
||||
_detalhes:AddTooltipBackgroundStatusbar()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--> absorbs vs heal
|
||||
--[=[
|
||||
if (instancia.sub_atributo == 1 or instancia.sub_atributo == 2) then
|
||||
|
||||
@@ -22,7 +22,12 @@ function historico:NovoHistorico()
|
||||
end
|
||||
|
||||
function historico:adicionar_overall (tabela)
|
||||
if (tabela:GetCombatTime() <= 10) then
|
||||
return
|
||||
end
|
||||
|
||||
if (_detalhes.overall_clear_newboss) then
|
||||
--> only for raids
|
||||
if (tabela.instance_type == "raid" and tabela.is_boss) then
|
||||
if (_detalhes.last_encounter ~= _detalhes.last_encounter2) then
|
||||
for index, combat in ipairs (_detalhes.tabela_historico.tabelas) do
|
||||
@@ -53,18 +58,21 @@ function historico:adicionar_overall (tabela)
|
||||
end
|
||||
end
|
||||
|
||||
if (_detalhes.tabela_overall.start_time == 0) then
|
||||
_detalhes.tabela_overall:SetStartTime (tabela.start_time)
|
||||
_detalhes.tabela_overall:SetEndTime (tabela.end_time)
|
||||
else
|
||||
_detalhes.tabela_overall:SetStartTime (tabela.start_time - _detalhes.tabela_overall:GetCombatTime())
|
||||
_detalhes.tabela_overall:SetEndTime (tabela.end_time)
|
||||
end
|
||||
|
||||
if (_detalhes.tabela_overall.data_inicio == 0) then
|
||||
_detalhes.tabela_overall.data_inicio = _detalhes.tabela_vigente.data_inicio or 0
|
||||
end
|
||||
|
||||
--
|
||||
if (_detalhes.tabela_overall.start_time == 0) then
|
||||
--print ("start_time == 0 NO!")
|
||||
_detalhes.tabela_overall:SetStartTime (tabela.start_time)
|
||||
_detalhes.tabela_overall:SetEndTime (tabela.end_time)
|
||||
else
|
||||
--print ("start_time ~= 0 OKAY", tabela.start_time, _detalhes.tabela_overall:GetCombatTime(), tabela.start_time - _detalhes.tabela_overall:GetCombatTime())
|
||||
_detalhes.tabela_overall:SetStartTime (tabela.start_time - _detalhes.tabela_overall:GetCombatTime())
|
||||
_detalhes.tabela_overall:SetEndTime (tabela.end_time)
|
||||
end
|
||||
|
||||
if (_detalhes.tabela_overall.data_inicio == 0) then
|
||||
_detalhes.tabela_overall.data_inicio = _detalhes.tabela_vigente.data_inicio or 0
|
||||
end
|
||||
--
|
||||
_detalhes.tabela_overall:seta_data (_detalhes._detalhes_props.DATA_TYPE_END)
|
||||
|
||||
_detalhes:ClockPluginTickOnSegment()
|
||||
|
||||
+9
-4
@@ -545,9 +545,12 @@
|
||||
local in_instance = IsInInstance() --> garrison returns party as instance type.
|
||||
if ((InstanceType == "party" or InstanceType == "raid") and in_instance) then
|
||||
if (InstanceType == "party") then
|
||||
if (_detalhes:GetBossNames (_detalhes.zone_id)) then
|
||||
_detalhes.tabela_vigente.is_trash = true
|
||||
end
|
||||
--if (_detalhes:GetBossNames (_detalhes.zone_id)) then
|
||||
-- _detalhes.tabela_vigente.is_trash = true
|
||||
--end
|
||||
|
||||
--> is new dungeon?
|
||||
_detalhes.tabela_vigente.is_trash = true
|
||||
else
|
||||
_detalhes.tabela_vigente.is_trash = true
|
||||
end
|
||||
@@ -1412,6 +1415,7 @@
|
||||
--> primeira atualização após uma mudança de segmento --> verifica se há mais barras sendo mostradas do que o necessário
|
||||
--------------------
|
||||
if (instancia.v_barras) then
|
||||
--print ("mostrando", instancia.rows_showing, instancia.rows_created)
|
||||
for barra_numero = instancia.rows_showing+1, instancia.rows_created do
|
||||
_detalhes.gump:Fade (instancia.barras[barra_numero], "in")
|
||||
end
|
||||
@@ -1544,8 +1548,9 @@
|
||||
end
|
||||
|
||||
function _detalhes:CheckForAutoErase (mapid)
|
||||
|
||||
if (_detalhes.last_instance_id ~= mapid) then
|
||||
_detalhes.tabela_historico:resetar_overall()
|
||||
|
||||
if (_detalhes.segments_auto_erase == 2) then
|
||||
--ask
|
||||
_detalhes:ScheduleTimer ("AutoEraseConfirm", 1)
|
||||
|
||||
+41
-10
@@ -1067,9 +1067,29 @@ local two_hand = {
|
||||
}
|
||||
|
||||
local MAX_INSPECT_AMOUNT = 1
|
||||
local MIN_ILEVEL_TO_STORE = 580
|
||||
local MIN_ILEVEL_TO_STORE = 50
|
||||
local LOOP_TIME = 7
|
||||
|
||||
local artifact_offhands = {
|
||||
["133959"] = true, --mage fire
|
||||
["128293"] = true, --dk frost
|
||||
["127830"] = true, --dh havoc
|
||||
["128831"] = true, --dh vengeance
|
||||
["128859"] = true, --druid feral
|
||||
["128822"] = true, --druid guardian
|
||||
["133948"] = true, --monk ww
|
||||
["128866"] = true, --paladin prot
|
||||
["133958"] = true, --priest shadow
|
||||
["128869"] = true, --rogue assassination
|
||||
["134552"] = true, --rogue outlaw
|
||||
["128479"] = true, --rogue subtlety
|
||||
["128936"] = true, --shaman elemental
|
||||
["128873"] = true, --shaman en
|
||||
["128934"] = true, --shaman resto
|
||||
["137246"] = true, --warlock demo
|
||||
["128289"] = true, --warrior prot
|
||||
}
|
||||
|
||||
function _detalhes:IlvlFromNetwork (player, realm, core, ilvl)
|
||||
local guid = UnitGUID (player .. "-" .. realm)
|
||||
if (not guid) then
|
||||
@@ -1101,6 +1121,7 @@ function ilvl_core:CalcItemLevel (unitid, guid, shout)
|
||||
local failed = 0
|
||||
|
||||
for equip_id = 1, 17 do
|
||||
|
||||
if (equip_id ~= 4) then --shirt slot
|
||||
local item = GetInventoryItemLink (unitid, equip_id)
|
||||
if (item) then
|
||||
@@ -1108,9 +1129,17 @@ function ilvl_core:CalcItemLevel (unitid, guid, shout)
|
||||
if (iLevel) then
|
||||
|
||||
--local _, _, _, _, _, _, _, _, _, _, _, upgradeTypeID, _, numBonusIDs, bonusID1, bonusID2 = strsplit (":", item)
|
||||
|
||||
--> upgrades handle by LibItemUpgradeInfo-1.0
|
||||
--> http://www.wowace.com/addons/libitemupgradeinfo-1-0/
|
||||
|
||||
if (equip_id == 17) then
|
||||
local itemId = select (2, strsplit (":", item))
|
||||
if (artifact_offhands [itemId]) then
|
||||
item_amount = 15
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if (ItemUpgradeInfo) then
|
||||
local ilvl = ItemUpgradeInfo:GetUpgradedItemLevel (item)
|
||||
item_level = item_level + (ilvl or iLevel)
|
||||
@@ -1147,7 +1176,8 @@ function ilvl_core:CalcItemLevel (unitid, guid, shout)
|
||||
end
|
||||
|
||||
local average = item_level / item_amount
|
||||
|
||||
--print (UnitName (unitid), "ILVL:", average, unitid, "items:", item_amount)
|
||||
|
||||
--> register
|
||||
if (average > 0) then
|
||||
if (shout) then
|
||||
@@ -1259,14 +1289,15 @@ function ilvl_core:GetItemLevel (unitid, guid, is_forced, try_number)
|
||||
end
|
||||
|
||||
local NotifyInspectHook = function (unitid)
|
||||
if (IsInRaid() and _detalhes:GetZoneType() == "raid") then
|
||||
local unit = unitid:gsub ("%d+", "")
|
||||
|
||||
if ((IsInRaid() or IsInGroup()) and (_detalhes:GetZoneType() == "raid" or _detalhes:GetZoneType() == "party")) then
|
||||
local guid = UnitGUID (unitid)
|
||||
local name = _detalhes:GetCLName (unitid)
|
||||
|
||||
if (guid and name and not inspecting [guid]) then
|
||||
for i = 1, GetNumGroupMembers() do
|
||||
if (name == _detalhes:GetCLName ("raid" .. i)) then
|
||||
unitid = "raid" .. i
|
||||
if (name == _detalhes:GetCLName (unit .. i)) then
|
||||
unitid = unit .. i
|
||||
break
|
||||
end
|
||||
end
|
||||
@@ -1358,13 +1389,13 @@ function ilvl_core:Loop()
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
local guid = UnitGUID (unitid)
|
||||
if (not guid) then
|
||||
ilvl_core.raid_id = ilvl_core.raid_id + 1
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
if (inspecting [guid]) then
|
||||
return
|
||||
end
|
||||
@@ -1387,7 +1418,7 @@ function ilvl_core:EnterCombat()
|
||||
end
|
||||
|
||||
local can_start_loop = function()
|
||||
if (_detalhes:GetZoneType() ~= "raid" or ilvl_core.loop_process or _detalhes.in_combat or not _detalhes.track_item_level) then
|
||||
if ((_detalhes:GetZoneType() ~= "raid" and _detalhes:GetZoneType() ~= "party") or ilvl_core.loop_process or _detalhes.in_combat or not _detalhes.track_item_level) then
|
||||
return false
|
||||
end
|
||||
return true
|
||||
|
||||
@@ -122,6 +122,7 @@
|
||||
[1] = true, --0x1 star
|
||||
}
|
||||
|
||||
--> spellIds override
|
||||
local override_spellId = {
|
||||
[184707] = 218617, --warrior rampage
|
||||
[184709] = 218617, --warrior rampage
|
||||
|
||||
@@ -1045,6 +1045,90 @@ function SlashCmdList.DETAILS (msg, editbox)
|
||||
print ("total loot", total)
|
||||
_detalhes_global.ALOOT = r
|
||||
|
||||
elseif (msg == "ilvl2") then
|
||||
|
||||
local item_amount = 16
|
||||
local item_level = 0
|
||||
local failed = 0
|
||||
local unitid = "player"
|
||||
local two_hand = {
|
||||
["INVTYPE_2HWEAPON"] = true,
|
||||
["INVTYPE_RANGED"] = true,
|
||||
["INVTYPE_RANGEDRIGHT"] = true,
|
||||
}
|
||||
|
||||
for equip_id = 1, 17 do
|
||||
|
||||
if (equip_id ~= 4) then --shirt slot
|
||||
local item = GetInventoryItemLink (unitid, equip_id)
|
||||
if (item) then
|
||||
local iName, _, itemRarity, iLevel, _, _, _, _, equipSlot = GetItemInfo (item)
|
||||
if (iLevel) then
|
||||
|
||||
--local _, _, _, _, _, _, _, _, _, _, _, upgradeTypeID, _, numBonusIDs, bonusID1, bonusID2 = strsplit (":", item)
|
||||
--> upgrades handle by LibItemUpgradeInfo-1.0
|
||||
--> http://www.wowace.com/addons/libitemupgradeinfo-1-0/
|
||||
|
||||
local artifact_offhands = {
|
||||
["133959"] = true, --mage fire
|
||||
["128293"] = true, --dk frost
|
||||
["127830"] = true, --dh havoc
|
||||
["128831"] = true, --dh vengeance
|
||||
["128859"] = true, --druid feral
|
||||
["128822"] = true, --druid guardian
|
||||
["133948"] = true, --monk ww
|
||||
["128866"] = true, --paladin prot
|
||||
["133958"] = true, --priest shadow
|
||||
["128869"] = true, --rogue assassination
|
||||
["134552"] = true, --rogue outlaw
|
||||
["128479"] = true, --rogue subtlety
|
||||
["128936"] = true, --shaman elemental
|
||||
["128873"] = true, --shaman en
|
||||
["128934"] = true, --shaman resto
|
||||
["137246"] = true, --warlock demo
|
||||
["128289"] = true, --warrior prot
|
||||
}
|
||||
|
||||
|
||||
if (equip_id == 17) then
|
||||
local itemId = select (2, strsplit (":", item))
|
||||
if (artifact_offhands [itemId]) then
|
||||
item_amount = 15
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
local ItemUpgradeInfo = LibStub ("LibItemUpgradeInfo-1.0")
|
||||
if (ItemUpgradeInfo) then
|
||||
local ilvl = ItemUpgradeInfo:GetUpgradedItemLevel (item)
|
||||
item_level = item_level + (ilvl or iLevel)
|
||||
--print (iName, ilvl, iLevel)
|
||||
else
|
||||
item_level = item_level + iLevel
|
||||
--print (iName, iLevel)
|
||||
end
|
||||
|
||||
--> 16 = main hand 17 = off hand
|
||||
--> if using a two-hand, ignore the off hand slot
|
||||
if (equip_id == 16 and two_hand [equipSlot]) then
|
||||
item_amount = 15
|
||||
break
|
||||
end
|
||||
end
|
||||
else
|
||||
failed = failed + 1
|
||||
if (failed > 2) then
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local average = item_level / item_amount
|
||||
|
||||
print (item_level, item_amount, "ilvl:", average)
|
||||
|
||||
|
||||
elseif (msg == "ilvl") then
|
||||
|
||||
--
|
||||
|
||||
@@ -2627,6 +2627,11 @@ function gump:CriaJanelaInfo()
|
||||
spells_sorted [#spells_sorted+1] = {spelltable, spelltable.total}
|
||||
end
|
||||
table.sort (spells_sorted, _detalhes.Sort2)
|
||||
|
||||
--precisa pegar os pets do jogador aqui
|
||||
--for petGUID, _ in pairs ({}) do
|
||||
--
|
||||
--end
|
||||
|
||||
self.player = player:Name()
|
||||
|
||||
|
||||
@@ -5946,16 +5946,19 @@ local build_segment_list = function (self, elapsed)
|
||||
else
|
||||
local encounter_name = thisCombat.is_boss.encounter
|
||||
local instanceID = thisCombat.is_boss.ej_instance_id
|
||||
if (encounter_name and instanceID) then
|
||||
if (encounter_name and instanceID and instanceID ~= 0) then
|
||||
local index, name, description, encounterID, rootSectionID, link = _detalhes:GetEncounterInfoFromEncounterName (instanceID, encounter_name)
|
||||
if (index and name and encounterID) then
|
||||
local id, name, description, displayInfo, iconImage = EJ_GetCreatureInfo (index, encounterID)
|
||||
--EJ_SelectInstance (instanceID)
|
||||
--creature info pode ser sempre 1, não usar o index do boss
|
||||
local id, name, description, displayInfo, iconImage = EJ_GetCreatureInfo (1, encounterID)
|
||||
if (iconImage) then
|
||||
CoolTip:AddIcon (iconImage, 2, "top", 128, 64)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
CoolTip:AddIcon ([[Interface\AddOns\Details\images\icons]], "main", "left", 16, 16, 0.96875, 1, 0, 0.03125)
|
||||
|
||||
if (_detalhes.tooltip.submenu_wallpaper) then
|
||||
@@ -7250,7 +7253,14 @@ function _detalhes:ToolbarSide (side, only_update_anchors)
|
||||
self.baseframe.cabecalho.ball_point:SetPoint ("bottomleft", self.baseframe, "topleft", x, y)
|
||||
|
||||
--> ball
|
||||
self.baseframe.cabecalho.ball:SetTexCoord (unpack (COORDS_LEFT_BALL))
|
||||
if (self.hide_icon) then
|
||||
self.baseframe.cabecalho.ball:SetTexCoord (unpack (COORDS_LEFT_BALL_NO_ICON))
|
||||
self.baseframe.cabecalho.emenda:SetTexCoord (unpack (COORDS_LEFT_CONNECTOR_NO_ICON))
|
||||
else
|
||||
self.baseframe.cabecalho.ball:SetTexCoord (unpack (COORDS_LEFT_BALL))
|
||||
self.baseframe.cabecalho.emenda:SetTexCoord (unpack (COORDS_LEFT_CONNECTOR))
|
||||
end
|
||||
|
||||
self.baseframe.cabecalho.ball:ClearAllPoints()
|
||||
|
||||
local x, y = unpack (skin.left_corner_anchor)
|
||||
@@ -7266,7 +7276,6 @@ function _detalhes:ToolbarSide (side, only_update_anchors)
|
||||
self.baseframe.cabecalho.ball_r:SetPoint ("bottomright", self.baseframe, "topright", x, y)
|
||||
|
||||
--> tex coords
|
||||
self.baseframe.cabecalho.emenda:SetTexCoord (unpack (COORDS_LEFT_CONNECTOR))
|
||||
self.baseframe.cabecalho.top_bg:SetTexCoord (unpack (COORDS_TOP_BACKGROUND))
|
||||
|
||||
--> up frames
|
||||
@@ -7475,7 +7484,7 @@ function _detalhes:HideMainIcon (value)
|
||||
if (type (value) ~= "boolean") then
|
||||
value = self.hide_icon
|
||||
end
|
||||
|
||||
|
||||
if (value) then
|
||||
|
||||
self.hide_icon = true
|
||||
|
||||
@@ -1,196 +0,0 @@
|
||||
|
||||
do
|
||||
|
||||
local Details = Details
|
||||
if (not Details) then
|
||||
print ("Calc Leech cannot be installed: Details! not found.")
|
||||
return
|
||||
end
|
||||
|
||||
local _
|
||||
|
||||
--> minimal details version required to run this plugin
|
||||
local MINIMAL_DETAILS_VERSION_REQUIRED = 81
|
||||
local CLEECH_VERSION = "v1.2"
|
||||
|
||||
--> create a plugin object
|
||||
local calcLeech = Details:NewPluginObject ("Details_CalcLeech", DETAILSPLUGIN_ALWAYSENABLED)
|
||||
--> just localizing here the plugin's main frame
|
||||
local frame = calcLeech.Frame
|
||||
--> set the description
|
||||
calcLeech:SetPluginDescription ("Calculates the healing done by the trinket leech.")
|
||||
--> get the framework object
|
||||
local framework = calcLeech:GetFramework()
|
||||
|
||||
local CUSTOM_DISPLAY_VERSION = 3
|
||||
local CUSTOM_DISPLAY_NAME = "CalcLeech"
|
||||
|
||||
local create_custom_object = function()
|
||||
local new_object = {
|
||||
name = CUSTOM_DISPLAY_NAME,
|
||||
icon = [[Interface\ICONS\spell_shadow_lifedrain02]],
|
||||
attribute = false,
|
||||
spellid = false,
|
||||
author = "Details!",
|
||||
desc = "Calculates healing done from leech trinket.",
|
||||
source = false,
|
||||
target = false,
|
||||
script_version = CUSTOM_DISPLAY_VERSION,
|
||||
script = [[
|
||||
--get the parameters passed
|
||||
local Combat, CustomContainer, Instance = ...
|
||||
--declade the values to return
|
||||
local total, top, amount = 0, 0, 0
|
||||
|
||||
if (Combat.PlayerLeechTrinket) then
|
||||
for playerName, amount in pairs (Combat.PlayerLeechTrinket) do
|
||||
local healActor = Combat:GetActor (2, playerName)
|
||||
if (healActor) then
|
||||
CustomContainer:AddValue (healActor, amount)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--if not managed inside the loop, get the values of total, top and amount
|
||||
total, top = CustomContainer:GetTotalAndHighestValue()
|
||||
amount = CustomContainer:GetNumActors()
|
||||
|
||||
--return the values
|
||||
return total, top, amount
|
||||
]],
|
||||
tooltip = [[
|
||||
|
||||
]],
|
||||
}
|
||||
|
||||
calcLeech:InstallCustomObject (new_object)
|
||||
end
|
||||
|
||||
local rosterLeechAmount = {}
|
||||
|
||||
local f = CreateFrame ("frame")
|
||||
f:SetScript ("OnEvent", function (self, event, time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, spellid, spellname, spelltype, amount, overhealing, absorbed, critical, multistrike, is_shield)
|
||||
if (token == "SPELL_HEAL" and spellid == 143924) then --http://www.wowhead.com/spell=143924/leech
|
||||
|
||||
--> The next few lines of code is based on an aura for WeakAuras 2, I couldn't find who is the original author since this same code is used on many different versions of the aura.
|
||||
--> If you are the original author, please contact-me on curseforge so I can add the credits here.
|
||||
local healed = amount - overhealing
|
||||
if (healed > 0) then
|
||||
wipe (rosterLeechAmount)
|
||||
local total_leech = 0
|
||||
|
||||
for i = 1, 40 do
|
||||
local name, _, _, _, _, _, _, source, _, _, id, _, _, _, _, _, leech = UnitAura (target_name, i)
|
||||
if (type (leech) == "number") then
|
||||
if (name and id == 184671 and source) then
|
||||
rosterLeechAmount [UnitName (source)] = leech
|
||||
total_leech = total_leech + leech
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (total_leech > 0) then
|
||||
for from, leech_amount in pairs (rosterLeechAmount) do
|
||||
if (not calcLeech.combat.PlayerLeechTrinket [from]) then
|
||||
calcLeech.combat.PlayerLeechTrinket [from] = 0
|
||||
end
|
||||
calcLeech.combat.PlayerLeechTrinket [from] = calcLeech.combat.PlayerLeechTrinket [from] + (healed * (leech_amount / total_leech))
|
||||
end
|
||||
end
|
||||
end
|
||||
-------------
|
||||
|
||||
--elseif (token == "SPELL_AURA_APPLIED") then
|
||||
|
||||
--elseif (token == "SPELL_AURA_REMOVED") then
|
||||
|
||||
--elseif (token == "SPELL_AURA_REFRESH") then
|
||||
|
||||
end
|
||||
end)
|
||||
|
||||
--> when receiving an event from details, handle it here
|
||||
local player_has_trinket = function (combat)
|
||||
|
||||
calcLeech.combat = combat
|
||||
|
||||
--> check if exists a custom display to show the trinket leech
|
||||
local customObject = calcLeech:GetCustomObject (CUSTOM_DISPLAY_NAME)
|
||||
if (customObject) then
|
||||
if (customObject.script_version < CUSTOM_DISPLAY_VERSION) then
|
||||
calcLeech:RemoveCustomObject (CUSTOM_DISPLAY_NAME)
|
||||
create_custom_object()
|
||||
end
|
||||
else
|
||||
create_custom_object()
|
||||
end
|
||||
|
||||
calcLeech.combat.PlayerLeechTrinket = {}
|
||||
|
||||
f:RegisterEvent ("COMBAT_LOG_EVENT_UNFILTERED")
|
||||
|
||||
end
|
||||
|
||||
local handle_details_event = function (event, ...)
|
||||
|
||||
if (event == "COMBAT_PLAYER_ENTER") then
|
||||
if (true) then
|
||||
player_has_trinket (...)
|
||||
else
|
||||
local role = UnitGroupRolesAssigned ("player")
|
||||
if (role == "HEALER") then
|
||||
local trinket1 = GetInventoryItemLink ("player", 13)
|
||||
if (trinket1 and trinket1:find ("124234")) then
|
||||
player_has_trinket (...)
|
||||
end
|
||||
local trinket2 = GetInventoryItemLink ("player", 14)
|
||||
if (trinket2 and trinket2:find ("124234")) then
|
||||
player_has_trinket (...)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
elseif (event == "COMBAT_PLAYER_LEAVE") then
|
||||
--> details finished a segment
|
||||
f:UnregisterEvent ("COMBAT_LOG_EVENT_UNFILTERED")
|
||||
|
||||
elseif (event == "PLUGIN_DISABLED") then
|
||||
--> plugin has been disabled at the details options panel
|
||||
|
||||
elseif (event == "PLUGIN_ENABLED") then
|
||||
--> plugin has been enabled at the details options panel
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function calcLeech:OnEvent (_, event, ...)
|
||||
|
||||
if (event == "ADDON_LOADED") then
|
||||
local AddonName = select (1, ...)
|
||||
if (AddonName == "Details_CalcLeech") then
|
||||
|
||||
--> every plugin must have a OnDetailsEvent function
|
||||
function calcLeech:OnDetailsEvent (event, ...)
|
||||
return handle_details_event (event, ...)
|
||||
end
|
||||
|
||||
--> Install: install -> if successful installed; saveddata -> a table saved inside details db, used to save small amount of data like configs
|
||||
local install, saveddata = Details:InstallPlugin ("TOOLBAR", "Leech Trinket", "Interface\\Icons\\spell_shadow_lifedrain02", calcLeech, "DETAILS_PLUGIN_LEECH_TRINKET", MINIMAL_DETAILS_VERSION_REQUIRED, "Details! Team", CLEECH_VERSION)
|
||||
if (type (install) == "table" and install.error) then
|
||||
print (install.error)
|
||||
end
|
||||
|
||||
--> registering details events we need
|
||||
Details:RegisterEvent (calcLeech, "COMBAT_PLAYER_ENTER") --when details creates a new segment, not necessary the player entering in combat.
|
||||
Details:RegisterEvent (calcLeech, "COMBAT_PLAYER_LEAVE") --when details finishs a segment, not necessary the player leaving the combat.
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
## Interface: 70000
|
||||
## Title: Details Calc Leech
|
||||
## Notes: Plugin for Details
|
||||
## RequiredDeps: Details
|
||||
|
||||
Details_CalcLeech.lua
|
||||
@@ -1,394 +0,0 @@
|
||||
--Auchindoun
|
||||
--Bloodmaul Slag Mines
|
||||
--The Everbloom
|
||||
--GrimrailDepot
|
||||
--IronDocks
|
||||
--ShadowmoonBurialGrounds
|
||||
--Skyreach
|
||||
--UpperBlackrockSpire
|
||||
|
||||
local Auchindoun = {
|
||||
id = 1182, --mapid
|
||||
ej_id = 547, --encounter journal id
|
||||
|
||||
name = "Auchindoun",
|
||||
|
||||
boss_names = {
|
||||
"Vigilant Kaathar",
|
||||
"Soulbinder Nyami",
|
||||
"Azzakel",
|
||||
"Teron'gor",
|
||||
},
|
||||
|
||||
boss_ids = {
|
||||
[86217] = 1, --Vigilant Kaathar
|
||||
[75839] = 1, --Vigilant Kaathar
|
||||
[86218] = 2, --Soulbinder Nyami
|
||||
[76177] = 2, --Soulbinder Nyami
|
||||
[86219] = 3, --Azzakel
|
||||
[75927] = 3, --Azzakel
|
||||
[86220] = 4, --Teron'gor
|
||||
[77734] = 4, --Teron'gor
|
||||
},
|
||||
|
||||
encounters = {
|
||||
[1] = {
|
||||
boss = "Vigilant Kaathar",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Auchindoun Defense Construct]],
|
||||
},
|
||||
[2] = {
|
||||
boss = "Soulbinder Nyami",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Soulbinder Nyami]],
|
||||
},
|
||||
[3] = {
|
||||
boss = "Azzakel",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Azzakel Vanguard Of The Legion]],
|
||||
},
|
||||
[4] = {
|
||||
boss = "Teron'gor",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Terongor]],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
_detalhes:InstallEncounter (Auchindoun)
|
||||
|
||||
|
||||
local BloodmaulSlagMines = {
|
||||
id = 1175, --mapid
|
||||
ej_id = 385, --encounter journal id
|
||||
|
||||
name = "Bloodmaul Slag Mines",
|
||||
|
||||
boss_names = {
|
||||
"Slave Watcher Crushto",
|
||||
"Forgemaster Gog'duh",
|
||||
"Roltall",
|
||||
"Gug'rokk",
|
||||
},
|
||||
|
||||
boss_ids = {
|
||||
[86222] = 1, --Slave Watcher Crushto
|
||||
[74787] = 1, --Slave Watcher Crushto
|
||||
[74366] = 2, --Forgemaster Gog'duh
|
||||
[86223] = 3, --Roltall
|
||||
[75786] = 3, --Roltall
|
||||
[86224] = 4, --Gug'rokk
|
||||
[74790] = 4, --Gug'rokk
|
||||
},
|
||||
|
||||
encounters = {
|
||||
[1] = {
|
||||
boss = "Slave Watcher Crushto",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Slave Watcher Crushto]],
|
||||
},
|
||||
[2] = {
|
||||
boss = "Forgemaster Gog'duh",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Magmolatus]],
|
||||
},
|
||||
[3] = {
|
||||
boss = "Roltall",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Roltall]],
|
||||
},
|
||||
[4] = {
|
||||
boss = "Gug'rokk",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Gugrokk]],
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
_detalhes:InstallEncounter (BloodmaulSlagMines)
|
||||
|
||||
local TheEverbloom = {
|
||||
id = 1279, --mapid
|
||||
ej_id = 556, --encounter journal id
|
||||
|
||||
name = "The Everbloom",
|
||||
|
||||
boss_names = {
|
||||
"Witherbark",
|
||||
"Ancient Protectors",
|
||||
"Xeri'tac",
|
||||
"Archmage Sol",
|
||||
"Yalnu",
|
||||
},
|
||||
|
||||
boss_ids = {
|
||||
[81522] = 1, --Witherbark
|
||||
[86242] = 1, --Witherbark
|
||||
[83894] = 2, --Ancient Protectors
|
||||
[83893] = 2, --Ancient Protectors
|
||||
[83892] = 2, --Ancient Protectors
|
||||
[86244] = 2, --Ancient Protectors
|
||||
[86247] = 3, --Xeri'tac
|
||||
[86246] = 4, --Archmage Sol
|
||||
[82682] = 4, --Archmage Sol
|
||||
[86248] = 5, --Yalnu
|
||||
[84336] = 5, --Yalnu
|
||||
[83846] = 5, --Yalnu
|
||||
},
|
||||
|
||||
encounters = {
|
||||
[1] = {
|
||||
boss = "Witherbark",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Witherbark]],
|
||||
},
|
||||
[2] = {
|
||||
boss = "Ancient Protectors",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Dulhu]],
|
||||
},
|
||||
[3] = {
|
||||
boss = "Xeri'tac",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Xeritac]],
|
||||
},
|
||||
[4] = {
|
||||
boss = "Archmage Sol",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Archmage Sol]],
|
||||
},
|
||||
[5] = {
|
||||
boss = "Yalnu",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Yalnu]],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
_detalhes:InstallEncounter (TheEverbloom)
|
||||
|
||||
local GrimrailDepot = {
|
||||
id = 1208, --mapid
|
||||
ej_id = 536, --encounter journal id
|
||||
|
||||
name = "Grimrail Depot",
|
||||
|
||||
boss_names = {
|
||||
"Rocketspark and Borka",
|
||||
"Nitrogg Thundertower",
|
||||
"Skylord Tovra",
|
||||
},
|
||||
|
||||
boss_ids = {
|
||||
[86225] = 1, --Rocketspark and Borka
|
||||
[86226] = 1, --Rocketspark and Borka
|
||||
[79548] = 1, --Rocketspark and Borka
|
||||
[77816] = 1, --Rocketspark and Borka
|
||||
[86227] = 2, --Nitrogg Thundertower
|
||||
[79545] = 2, --Nitrogg Thundertower
|
||||
[86228] = 3, --Skylord Tovra
|
||||
[80005] = 3, --Skylord Tovra
|
||||
},
|
||||
|
||||
encounters = {
|
||||
[1] = {
|
||||
boss = "Rocketspark and Borka",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Pauli Rocketspark]],
|
||||
},
|
||||
[2] = {
|
||||
boss = "Nitrogg Thundertower",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Blackrock Assault Commander]],
|
||||
},
|
||||
[3] = {
|
||||
boss = "Skylord Tovra",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Thunderlord General]],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
_detalhes:InstallEncounter (GrimrailDepot)
|
||||
|
||||
local IronDocks = {
|
||||
id = 1195, --mapid
|
||||
ej_id = 558, --encounter journal id
|
||||
|
||||
name = "Iron Docks",
|
||||
|
||||
boss_names = {
|
||||
"Fleshrender Nok'gar",
|
||||
"Ahri'ok Dugru",
|
||||
"Oshir",
|
||||
"Skulloc",
|
||||
},
|
||||
|
||||
boss_ids = {
|
||||
[81297] = 1, --Dreadfang
|
||||
[81305] = 1, --Fleshrender Nok'gar
|
||||
[87451] = 1, --Fleshrender Nok'gar
|
||||
[87452] = 2, --Ahri'ok Dugru
|
||||
[86231] = 2, --Makogg Emberblade
|
||||
[80808] = 2, --Neesa Nox
|
||||
[86232] = 3, --Oshir
|
||||
[79852] = 3, --Oshir
|
||||
[86233] = 4, --Skulloc
|
||||
[83612] = 4, --Skulloc
|
||||
[83616] = 4, --Skulloc
|
||||
},
|
||||
|
||||
encounters = {
|
||||
[1] = {
|
||||
boss = "Fleshrender Nok'gar",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Warsong Battlemaster]],
|
||||
},
|
||||
[2] = {
|
||||
boss = "Ahri'ok Dugru",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Blood Shaman]],
|
||||
},
|
||||
[3] = {
|
||||
boss = "Oshir",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Oshir]],
|
||||
},
|
||||
[4] = {
|
||||
boss = "Skulloc",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Skulloc]],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
_detalhes:InstallEncounter (IronDocks)
|
||||
|
||||
local ShadowmoonBurialGrounds = {
|
||||
id = 1176, --mapid
|
||||
ej_id = 537, --encounter journal id
|
||||
|
||||
name = "Shadowmoon Burial Grounds",
|
||||
|
||||
boss_names = {
|
||||
"Sadana Bloodfury",
|
||||
"Bonemaw",
|
||||
"Ner'zhul",
|
||||
"Nhallish",
|
||||
},
|
||||
|
||||
boss_ids = {
|
||||
[86234] = 1, --Sadana Bloodfury
|
||||
[75509] = 1, --Sadana Bloodfury
|
||||
[86236] = 2, --Bonemaw
|
||||
[75452] = 2, --Bonemaw
|
||||
[76268] = 3, --Ner'zhul
|
||||
[76407] = 3, --Ner'zhul
|
||||
[75829] = 4, --Nhallish
|
||||
},
|
||||
|
||||
encounters = {
|
||||
[1] = {
|
||||
boss = "Sadana Bloodfury",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Sadana Bloodfury]],
|
||||
},
|
||||
[2] = {
|
||||
boss = "Bonemaw",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Bonemaw]],
|
||||
},
|
||||
[3] = {
|
||||
boss = "Ner'zhul",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Nerzhul]],
|
||||
},
|
||||
[4] = {
|
||||
boss = "Nhallish",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Nhallish Feaster of Souls]],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
_detalhes:InstallEncounter (ShadowmoonBurialGrounds)
|
||||
|
||||
local Skyreach = {
|
||||
id = 1209, --mapid
|
||||
ej_id = 476, --encounter journal id
|
||||
|
||||
name = "Skyreach",
|
||||
|
||||
boss_names = {
|
||||
"Ranjit",
|
||||
"Araknath",
|
||||
"Rukhran",
|
||||
"High Sage Viryx",
|
||||
},
|
||||
|
||||
boss_ids = {
|
||||
[86238] = 1, --Ranjit
|
||||
[75964] = 1, --Ranjit
|
||||
[86239] = 2, --Araknath
|
||||
[76141] = 2, --Araknath
|
||||
[76379] = 3, --Rukhran
|
||||
[76143] = 3, --Rukhran
|
||||
[86241] = 4, --High Sage Viryx
|
||||
[76266] = 4, --High Sage Viryx
|
||||
},
|
||||
|
||||
encounters = {
|
||||
[1] = {
|
||||
boss = "Ranjit",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Ranjit]],
|
||||
},
|
||||
[2] = {
|
||||
boss = "Araknath",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Araknath]],
|
||||
},
|
||||
[3] = {
|
||||
boss = "Rukhran",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Rukhran]],
|
||||
},
|
||||
[4] = {
|
||||
boss = "High Sage Viryx",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-High Sage Viryx]],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
_detalhes:InstallEncounter (Skyreach)
|
||||
|
||||
local UpperBlackrockSpire = {
|
||||
id = 1358, --mapid
|
||||
ej_id = 559, --encounter journal id
|
||||
|
||||
name = "Upper Blackrock Spire",
|
||||
|
||||
boss_names = {
|
||||
"Orebender Gor'ashan",
|
||||
"Kyrak",
|
||||
"Commander Tharbek",
|
||||
"Ragewing the Untamed",
|
||||
"Warlord Zaela",
|
||||
"The Lanticore",
|
||||
},
|
||||
|
||||
boss_ids = {
|
||||
[86249] = 1, --Orebender Gor'ashan
|
||||
[76413] = 1, --Orebender Gor'ashan
|
||||
[86250] = 2, --Kyrak
|
||||
[76021] = 2, --Kyrak
|
||||
[86251] = 3, --Commander Tharbek
|
||||
[79912] = 3, --Commander Tharbek
|
||||
[76585] = 4, --Ragewing the Untamed
|
||||
[77120] = 5, --Warlord Zaela
|
||||
[77081] = 6, --The Lanticore
|
||||
},
|
||||
|
||||
encounters = {
|
||||
[1] = {
|
||||
boss = "Orebender Gor'ashan",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Orebender Gorashan]],
|
||||
},
|
||||
[2] = {
|
||||
boss = "Kyrak",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Kyrak]],
|
||||
},
|
||||
[3] = {
|
||||
boss = "Commander Tharbek",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Ironmarch Commander Tharbek]],
|
||||
},
|
||||
[4] = {
|
||||
boss = "Ragewing the Untamed",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Ragewing the Untamed]],
|
||||
},
|
||||
[5] = {
|
||||
boss = "Warlord Zaela",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Warlord Zaela]],
|
||||
},
|
||||
[6] = {
|
||||
boss = "The Lanticore",
|
||||
portrait = [[Interface\EncounterJournal\UI-EJ-BOSS-Warlord Zaela]],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
_detalhes:InstallEncounter (UpperBlackrockSpire)
|
||||
@@ -1,6 +0,0 @@
|
||||
## Interface: 70000
|
||||
## Title: Details: Warlords of Draenor Dungeons
|
||||
## Notes: Plugin for Details
|
||||
## RequiredDeps: Details
|
||||
|
||||
Details_DungeonInfo-Warlords.lua
|
||||
@@ -1,399 +0,0 @@
|
||||
|
||||
do
|
||||
|
||||
function Details:InstallHellfireCitadelEncounter()
|
||||
|
||||
--load encounter journal
|
||||
if (not EJ_GetEncounterInfoByIndex (1, 669)) then
|
||||
EJ_SelectInstance (669)
|
||||
end
|
||||
EJ_SelectInstance (669)
|
||||
|
||||
local InstanceName = EJ_GetInstanceInfo (669)
|
||||
|
||||
local boss_1_name = EJ_GetEncounterInfoByIndex (1, 669)
|
||||
local boss_2_name = EJ_GetEncounterInfoByIndex (2, 669)
|
||||
local boss_3_name = EJ_GetEncounterInfoByIndex (3, 669)
|
||||
local boss_4_name = EJ_GetEncounterInfoByIndex (4, 669)
|
||||
local boss_5_name = EJ_GetEncounterInfoByIndex (5, 669)
|
||||
local boss_6_name = EJ_GetEncounterInfoByIndex (6, 669)
|
||||
local boss_7_name = EJ_GetEncounterInfoByIndex (7, 669)
|
||||
local boss_8_name = EJ_GetEncounterInfoByIndex (8, 669)
|
||||
local boss_9_name = EJ_GetEncounterInfoByIndex (9, 669)
|
||||
local boss_10_name = EJ_GetEncounterInfoByIndex (10, 669)
|
||||
local boss_11_name = EJ_GetEncounterInfoByIndex (11, 669)
|
||||
local boss_12_name = EJ_GetEncounterInfoByIndex (12, 669)
|
||||
local boss_13_name = EJ_GetEncounterInfoByIndex (13, 669)
|
||||
|
||||
_detalhes:InstallEncounter ({
|
||||
|
||||
id = 1448, --map id
|
||||
ej_id = 669, --encounter journal id
|
||||
name = InstanceName,
|
||||
icons = [[Interface\AddOns\Details_RaidInfo-HellfireCitadel\boss_faces]],
|
||||
icon = [[Interface\AddOns\Details_RaidInfo-HellfireCitadel\icon256x128]],
|
||||
is_raid = true,
|
||||
backgroundFile = {file = [[Interface\Glues\LOADINGSCREENS\LoadScreen_HellfireRaid]], coords = {0, 1, 296/1024, 880/1024}},
|
||||
backgroundEJ = [[Interface\EncounterJournal\UI-EJ-LOREBG-HellfireRaid]],
|
||||
--
|
||||
boss_names = {
|
||||
boss_1_name, --"Hellfire Assault"
|
||||
boss_2_name, --"Iron Reaver"
|
||||
boss_3_name, --"Kormrok"
|
||||
boss_4_name, --"Hellfire High Council"
|
||||
boss_5_name, --"Kilrogg Deadeye"
|
||||
boss_6_name, --"Gorefiend"
|
||||
boss_7_name, --"Shadow-Lord Iskar"
|
||||
boss_8_name, --"Socrethar the Eternal"
|
||||
boss_9_name, --"Fel Lord Zakuun"
|
||||
boss_10_name, --"Xhul'horac"
|
||||
boss_11_name, --"Tyrant Velhari"
|
||||
boss_12_name, --"Mannoroth"
|
||||
boss_13_name, --"Archimonde"
|
||||
},
|
||||
|
||||
encounter_ids = { --encounter journal encounter id
|
||||
1426,1425,1392,1432,1396,1372,1433,1427,1391,1447,1394,1395,1438,
|
||||
[1426] = 1,
|
||||
[1425] = 2,
|
||||
[1392] = 3,
|
||||
[1432] = 4,
|
||||
[1396] = 5,
|
||||
[1372] = 6,
|
||||
[1433] = 7,
|
||||
[1427] = 8,
|
||||
[1391] = 9,
|
||||
[1447] = 10,
|
||||
[1394] = 11,
|
||||
[1395] = 12,
|
||||
[1438] = 13,
|
||||
},
|
||||
|
||||
encounter_ids2 = { --combatlog encounter id
|
||||
[1778] = 1, --"Hellfire Assault"
|
||||
[1785] = 2, --"Iron Reaver"
|
||||
[1787] = 3, --"Kormrok"
|
||||
[1798] = 4, --"Hellfire High Council"
|
||||
[1786] = 5, --"Kilrogg Deadeye"
|
||||
[1783] = 6, --"Gorefiend"
|
||||
[1788] = 7, --"Shadow-Lord Iskar"
|
||||
[1794] = 8, --"Socrethar the Eternal"
|
||||
[1777] = 9, --"Fel Lord Zakuun"
|
||||
[1800] = 10, --"Xhul'horac"
|
||||
[1784] = 11, --"Tyrant Velhari"
|
||||
[1795] = 12, --"Mannoroth"
|
||||
[1799] = 13, --"Archimonde"
|
||||
},
|
||||
|
||||
boss_ids = { --npc ids
|
||||
|
||||
},
|
||||
encounters = {
|
||||
[1] = {
|
||||
boss = boss_1_name, --"Hellfire Assault"
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-hellfireassault]],
|
||||
},
|
||||
[2] = {
|
||||
boss = boss_2_name, --"Iron Reaver",
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-felreaver]],
|
||||
},
|
||||
[3] = {
|
||||
boss = boss_3_name, --"Kormrok",
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-kormok]],
|
||||
},
|
||||
[4] = {
|
||||
boss = boss_4_name, --"Hellfire High Council",
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-gurtoggbloodboil]],
|
||||
},
|
||||
[5] = {
|
||||
boss = boss_5_name, --"Kilrogg Deadeye",
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-kilroggdeadeye]],
|
||||
},
|
||||
[6] = {
|
||||
boss = boss_6_name, --"Gorefiend",
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-gorefiend]],
|
||||
},
|
||||
[7] = {
|
||||
boss = boss_7_name, --"Shadow-Lord Iskar",
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-shadowlordiskar]],
|
||||
},
|
||||
[8] = {
|
||||
boss = boss_8_name, --"Socrethar the Eternal",
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-soulboundconstruct]],
|
||||
},
|
||||
[9] = {
|
||||
boss = boss_9_name, --"Fel Lord Zakuun",
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-FelLordZakuun]],
|
||||
},
|
||||
[10] = {
|
||||
boss = boss_10_name, --"Xhul'horac",
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-xhulhorac]],
|
||||
},
|
||||
[11] = {
|
||||
boss = boss_11_name, --"Tyrant Velhari",
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-tyrantvelhari]],
|
||||
},
|
||||
[12] = {
|
||||
boss = boss_12_name, --"Mannoroth",
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-mannorothwod]],
|
||||
},
|
||||
[13] = {
|
||||
boss = boss_13_name, --"Archimonde",
|
||||
portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-archimondewod]],
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
Details.InstallHellfireCitadelEncounter = nil
|
||||
|
||||
end
|
||||
|
||||
Details:ScheduleTimer ("InstallHellfireCitadelEncounter", 2)
|
||||
|
||||
end
|
||||
|
||||
--> replacement for healing function:
|
||||
local Details = Details
|
||||
local _bit_band = bit.band
|
||||
local OBJECT_TYPE_PETS = 0x00003000
|
||||
local REACTION_FRIENDLY = 0x00000010
|
||||
local OBJECT_TYPE_ENEMY = 0x00000040
|
||||
local UnitDebuff = UnitDebuff
|
||||
local ptime = time
|
||||
|
||||
local Aura_of_Contempt = GetSpellInfo (179987)
|
||||
if (not Aura_of_Contempt) then
|
||||
return Detais:Msg ("Fail to get Aura of Contempt spellname from spell 179987.")
|
||||
end
|
||||
|
||||
local function parser_heal (_, token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, spelltype, amount, overhealing, absorbed, critical, multistrike, is_shield)
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
--> early checks and fixes
|
||||
|
||||
--> only capture heal if is in combat
|
||||
if (not Details.in_combat) then
|
||||
return
|
||||
end
|
||||
|
||||
--> check invalid serial against pets
|
||||
if (who_serial == "") then
|
||||
if (who_flags and _bit_band (who_flags, OBJECT_TYPE_PETS) ~= 0) then --> é um pet
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
--> no name, use spellname
|
||||
if (not who_name) then
|
||||
who_name = "[*] "..spellname
|
||||
end
|
||||
|
||||
--> no target, just ignore
|
||||
if (not alvo_name) then
|
||||
return
|
||||
end
|
||||
|
||||
--> spirit link toten
|
||||
if (spellid == 98021) then
|
||||
return Details.parser:SLT_healing (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, spelltype, amount, overhealing, absorbed, critical, multistrike, is_shield)
|
||||
end
|
||||
|
||||
local cura_efetiva
|
||||
local aura_of_contempt_overheal
|
||||
overhealing = overhealing or 0
|
||||
amount = amount or 0
|
||||
absorbed = absorbed or 0
|
||||
|
||||
if (is_shield) then
|
||||
cura_efetiva = amount
|
||||
else
|
||||
if (UnitDebuff (alvo_name, Aura_of_Contempt)) then
|
||||
cura_efetiva = amount
|
||||
aura_of_contempt_overheal = absorbed
|
||||
cura_efetiva = cura_efetiva - overhealing
|
||||
overhealing = overhealing + absorbed
|
||||
else
|
||||
cura_efetiva = absorbed
|
||||
cura_efetiva = cura_efetiva + amount - overhealing
|
||||
end
|
||||
end
|
||||
|
||||
Details.tabela_vigente[2].need_refresh = true
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> get actors
|
||||
|
||||
local este_jogador, meu_dono, who_name = Details.tabela_vigente[2]:PegarCombatente (who_serial, who_name, who_flags, true)
|
||||
local jogador_alvo, alvo_dono, alvo_name = Details.tabela_vigente[2]:PegarCombatente (alvo_serial, alvo_name, alvo_flags, true)
|
||||
|
||||
este_jogador.last_event = ptime()
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> an enemy healing enemy or an player actor healing a enemy
|
||||
|
||||
if (_bit_band (alvo_flags, REACTION_FRIENDLY) == 0 and not _detalhes.is_in_arena) then
|
||||
if (not este_jogador.heal_enemy [spellid]) then
|
||||
este_jogador.heal_enemy [spellid] = cura_efetiva
|
||||
else
|
||||
este_jogador.heal_enemy [spellid] = este_jogador.heal_enemy [spellid] + cura_efetiva
|
||||
end
|
||||
|
||||
este_jogador.heal_enemy_amt = este_jogador.heal_enemy_amt + cura_efetiva
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> group checks
|
||||
|
||||
if (este_jogador.grupo) then
|
||||
Details.tabela_vigente.totals_grupo [2] = Details.tabela_vigente.totals_grupo [2] + cura_efetiva
|
||||
end
|
||||
|
||||
if (jogador_alvo.grupo) then
|
||||
|
||||
local t = Details.tabela_vigente.player_last_events [alvo_name]
|
||||
|
||||
if (not t) then
|
||||
t = Details.tabela_vigente:CreateLastEventsTable (alvo_name)
|
||||
end
|
||||
|
||||
local i = t.n
|
||||
|
||||
local this_event = t [i]
|
||||
|
||||
this_event [1] = false --> 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 [4] = time --> parser time
|
||||
this_event [5] = UnitHealth (alvo_name) --> current unit heal
|
||||
this_event [6] = who_name --> source name
|
||||
this_event [7] = is_shield
|
||||
this_event [8] = absorbed
|
||||
|
||||
i = i + 1
|
||||
|
||||
if (i == Details.deadlog_events+1) then
|
||||
t.n = 1
|
||||
else
|
||||
t.n = i
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> timer
|
||||
|
||||
if (not este_jogador.iniciar_hps) then
|
||||
|
||||
este_jogador:Iniciar (true) --inicia o hps do jogador
|
||||
|
||||
if (meu_dono and not meu_dono.iniciar_hps) then
|
||||
meu_dono:Iniciar (true)
|
||||
if (meu_dono.end_time) then
|
||||
meu_dono.end_time = nil
|
||||
else
|
||||
meu_dono.start_time = ptime()
|
||||
end
|
||||
end
|
||||
|
||||
if (este_jogador.end_time) then --> o combate terminou, reabrir o tempo
|
||||
este_jogador.end_time = nil
|
||||
else
|
||||
este_jogador.start_time = ptime()
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> add amount
|
||||
|
||||
--> actor target
|
||||
|
||||
if (cura_efetiva > 0) then
|
||||
|
||||
--> combat total
|
||||
Details.tabela_vigente.totals [2] = Details.tabela_vigente.totals [2] + cura_efetiva
|
||||
|
||||
--> actor healing amount
|
||||
este_jogador.total = este_jogador.total + cura_efetiva
|
||||
este_jogador.total_without_pet = este_jogador.total_without_pet + cura_efetiva
|
||||
|
||||
if (aura_of_contempt_overheal) then
|
||||
este_jogador.aura_of_contempt_overheal = (este_jogador.aura_of_contempt_overheal or 0) + aura_of_contempt_overheal
|
||||
end
|
||||
|
||||
--> healing taken
|
||||
jogador_alvo.healing_taken = jogador_alvo.healing_taken + cura_efetiva --> adiciona o dano tomado
|
||||
if (not jogador_alvo.healing_from [who_name]) then --> adiciona a pool de dano tomado de quem
|
||||
jogador_alvo.healing_from [who_name] = true
|
||||
end
|
||||
|
||||
if (is_shield) then
|
||||
este_jogador.totalabsorb = este_jogador.totalabsorb + cura_efetiva
|
||||
este_jogador.targets_absorbs [alvo_name] = (este_jogador.targets_absorbs [alvo_name] or 0) + cura_efetiva
|
||||
end
|
||||
|
||||
--> pet
|
||||
if (meu_dono) then
|
||||
meu_dono.total = meu_dono.total + cura_efetiva --> heal do pet
|
||||
meu_dono.targets [alvo_name] = (meu_dono.targets [alvo_name] or 0) + amount
|
||||
end
|
||||
|
||||
--> target amount
|
||||
este_jogador.targets [alvo_name] = (este_jogador.targets [alvo_name] or 0) + amount
|
||||
end
|
||||
|
||||
if (meu_dono) then
|
||||
meu_dono.last_event = ptime()
|
||||
end
|
||||
|
||||
if (overhealing > 0) then
|
||||
este_jogador.totalover = este_jogador.totalover + overhealing
|
||||
este_jogador.targets_overheal [alvo_name] = (este_jogador.targets_overheal [alvo_name] or 0) + overhealing
|
||||
|
||||
if (meu_dono) then
|
||||
meu_dono.totalover = meu_dono.totalover + overhealing
|
||||
end
|
||||
end
|
||||
|
||||
--> actor spells table
|
||||
local spell = este_jogador.spells._ActorTable [spellid]
|
||||
if (not spell) then
|
||||
spell = este_jogador.spells:PegaHabilidade (spellid, true, token)
|
||||
if (is_shield) then
|
||||
spell.is_shield = true
|
||||
end
|
||||
if (Details.tabela_vigente.is_boss and who_flags and _bit_band (who_flags, OBJECT_TYPE_ENEMY) ~= 0) then
|
||||
_detalhes.spell_school_cache [spellname] = spelltype or school
|
||||
end
|
||||
end
|
||||
|
||||
if (is_shield) then
|
||||
--return spell:Add (alvo_serial, alvo_name, alvo_flags, cura_efetiva, who_name, 0, nil, overhealing, true)
|
||||
return _detalhes.habilidade_cura.Add (spell, alvo_serial, alvo_name, alvo_flags, cura_efetiva, who_name, 0, nil, overhealing, true, multistrike)
|
||||
else
|
||||
--return spell:Add (alvo_serial, alvo_name, alvo_flags, cura_efetiva, who_name, absorbed, critical, overhealing)
|
||||
return _detalhes.habilidade_cura.Add (spell, alvo_serial, alvo_name, alvo_flags, cura_efetiva, who_name, absorbed, critical, overhealing, nil, multistrike)
|
||||
end
|
||||
end
|
||||
|
||||
local listener = CreateFrame ("frame")
|
||||
listener:RegisterEvent ("ENCOUNTER_START")
|
||||
listener:RegisterEvent ("ENCOUNTER_END")
|
||||
|
||||
listener:SetScript ("OnEvent", function (self, event, ...)
|
||||
|
||||
local encounterID, encounterName, difficultyID, raidSize, endStatus = select (1, ...)
|
||||
|
||||
-- if (encounterID == 1721) then --kargath for testing
|
||||
if (encounterID == 1784) then--"Tyrant Velhari"
|
||||
if (event == "ENCOUNTER_START") then
|
||||
--> replacing the healing done func
|
||||
--Details.parser:SetParserFunction ("heal", parser_heal)
|
||||
else
|
||||
--> restoring the func
|
||||
--Details.parser:SetParserFunction ("heal", nil)
|
||||
end
|
||||
end
|
||||
|
||||
end)
|
||||
@@ -1,6 +0,0 @@
|
||||
## Interface: 70000
|
||||
## Title: Details: Hellfire Citadel
|
||||
## Notes: Plugin for Details
|
||||
## RequiredDeps: Details
|
||||
|
||||
Details_RaidInfo-HellfireCitadel.lua
|
||||
Binary file not shown.
Binary file not shown.
+1
-1
@@ -679,7 +679,7 @@ function _G._detalhes:Start()
|
||||
C_Timer.After (2, reset_player_detail_window)
|
||||
end
|
||||
|
||||
_detalhes.tooltip.tooltip_max_abilities = 8
|
||||
_detalhes.tooltip.tooltip_max_abilities = 5
|
||||
end
|
||||
|
||||
_detalhes.AddOnLoadFilesTime = GetTime()
|
||||
|
||||
Reference in New Issue
Block a user