- Chart Viewer (plugin): has been revamped and now it's less complicated to use.
- Time Line (plugin): added options to change the background color and scale. - Raid Check (plugin): its window is now 'always on top'. - Accuracy adjustments on overheal of Divine Aegis and Illuminated Healing. - Removed healthstone from cooldown list, added Nature's Vigil. - Enemies display now shows damage taken instead of damage done. - Tooltip for enemies display now also show damage and healing done by the enemy. - Added an option under miscellaneous to show neutral and hostile creatures on damage taken display. - Added an option to ignore nicknames and always use character names. - Enabling the display icon on title bar now makes the title text automatically move slightly to right. - Fixed issue with skin changing when the window has the statusbar enabled.
This commit is contained in:
+40
-46
@@ -498,11 +498,17 @@
|
||||
-- update tooltip function--
|
||||
|
||||
if (self.id) then
|
||||
|
||||
--if (self.id == 1) then
|
||||
-- self.classe = 1
|
||||
--end
|
||||
|
||||
local school_color = _detalhes.school_colors [self.classe]
|
||||
if (not school_color) then
|
||||
school_color = _detalhes.school_colors ["unknown"]
|
||||
end
|
||||
actor_class_color_r, actor_class_color_g, actor_class_color_b = _unpack (school_color)
|
||||
|
||||
else
|
||||
actor_class_color_r, actor_class_color_g, actor_class_color_b = self:GetBarColor()
|
||||
end
|
||||
@@ -1501,7 +1507,12 @@
|
||||
desc = Loc ["STRING_CUSTOM_DTBS_DESC"],
|
||||
source = false,
|
||||
target = false,
|
||||
script_version = 13,
|
||||
script_version = 20,
|
||||
on_shift_click = [[
|
||||
local row, object, instance = ...
|
||||
local spellname, _, spellicon = _detalhes.GetSpellInfo (object.id)
|
||||
_detalhes:OpenAuraPanel (object.id, spellname, spellicon)
|
||||
]],
|
||||
script = [[
|
||||
--> get the parameters passed
|
||||
local combat, instance_container, instance = ...
|
||||
@@ -1527,52 +1538,29 @@
|
||||
|
||||
if (source) then
|
||||
|
||||
local AllSpells = source:GetSpellList()
|
||||
for spellid, spell in pairs (AllSpells) do
|
||||
local on_player = spell.targets [character.nome]
|
||||
if (not source:IsPlayer()) then
|
||||
|
||||
local AllSpells = source:GetSpellList()
|
||||
for spellid, spell in pairs (AllSpells) do
|
||||
local on_player = spell.targets [character.nome]
|
||||
|
||||
if (on_player and on_player >= 1) then
|
||||
instance_container:AddValue (spell, on_player)
|
||||
total = total + on_player
|
||||
local value = instance_container:GetValue (spell)
|
||||
if (value > top) then
|
||||
top = value
|
||||
end
|
||||
if (not NoRepeat [spellid]) then
|
||||
amount = amount + 1
|
||||
NoRepeat [spellid] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
else -------------
|
||||
|
||||
if (on_player and on_player >= 1) then
|
||||
instance_container:AddValue (spell, on_player)
|
||||
total = total + on_player
|
||||
local value = instance_container:GetValue (spell)
|
||||
if (value > top) then
|
||||
top = value
|
||||
end
|
||||
if (not NoRepeat [spellid]) then
|
||||
amount = amount + 1
|
||||
NoRepeat [spellid] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-------------
|
||||
|
||||
local friendlyfire = source.friendlyfire [character.nome]
|
||||
if (friendlyfire and friendlyfire.total >= 1) then
|
||||
for _spellid, _on_player in pairs (friendlyfire.spells) do
|
||||
local _spellname = GetSpellInfo (_spellid)
|
||||
local _object
|
||||
local _index = instance_container._NameIndexTable [_spellname]
|
||||
if (_index) then
|
||||
_object = instance_container._ActorTable [_index]
|
||||
else
|
||||
_object = {id = _spellid, spellschool = 1}
|
||||
end
|
||||
|
||||
instance_container:AddValue (_object, _on_player)
|
||||
total = total + _on_player
|
||||
local _value = instance_container:GetValue (_object)
|
||||
if (_value > top) then
|
||||
top = _value
|
||||
end
|
||||
if (not NoRepeat [_spellid]) then
|
||||
amount = amount + 1
|
||||
NoRepeat [_spellid] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------------
|
||||
end -----------
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1660,6 +1648,12 @@
|
||||
GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small_alpha", 1, 1, 14, 14, 0.25, 0.49609375, 0.75, 1)
|
||||
end
|
||||
end
|
||||
|
||||
if (WeakAuras) then
|
||||
GameCooltip:AddLine (" ")
|
||||
GameCooltip:AddLine ("Shift Click: Create WeakAura")
|
||||
GameCooltip:AddStatusBar (100, 1, 0, 0, 0, 0.6, true, bar_background)
|
||||
end
|
||||
]],
|
||||
}
|
||||
|
||||
|
||||
+32
-10
@@ -157,6 +157,7 @@
|
||||
[31216] = true, --mirror image
|
||||
[53006] = true, --spirit link totem
|
||||
[63508] = true, --xuen
|
||||
[73967] = true, --xuen
|
||||
}
|
||||
|
||||
-- Night-Twisted Brute - Creature-0-3024-1228-19402-85241-00001E2097
|
||||
@@ -473,12 +474,13 @@
|
||||
function atributo_damage:ReportSingleFragsLine (frag, instancia)
|
||||
local barra = instancia.barras [frag.minha_barra]
|
||||
|
||||
local reportar = {"Details! " .. Loc ["STRING_ATTRIBUTE_DAMAGE_TAKEN"].. ": " .. frag [1]} --> localize-me
|
||||
for i = 1, GameCooltip:GetNumLines() do
|
||||
local reportar = {"Details!: " .. frag [1] .. " - " .. Loc ["STRING_ATTRIBUTE_DAMAGE_TAKEN"]}
|
||||
|
||||
for i = 2, GameCooltip:GetNumLines()-2 do
|
||||
local texto_left, texto_right = GameCooltip:GetText (i)
|
||||
if (texto_left and texto_right) then
|
||||
texto_left = texto_left:gsub (("|T(.*)|t "), "")
|
||||
reportar [#reportar+1] = ""..texto_left.." "..texto_right..""
|
||||
reportar [#reportar+1] = "" .. texto_left .. " ....... " .. texto_right
|
||||
end
|
||||
end
|
||||
|
||||
@@ -575,12 +577,12 @@
|
||||
function atributo_damage:ReportSingleVoidZoneLine (actor, instancia)
|
||||
local barra = instancia.barras [actor.minha_barra]
|
||||
|
||||
local reportar = {"Details! " .. Loc ["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"] .. ": " .. actor.nome} --> localize-me
|
||||
for i = 1, GameCooltip:GetNumLines() do
|
||||
local reportar = {"Details!: " .. actor.nome .. " - " .. Loc ["STRING_ATTRIBUTE_DAMAGE_DEBUFFS_REPORT"]}
|
||||
for i = 2, GameCooltip:GetNumLines()-2 do
|
||||
local texto_left, texto_right = GameCooltip:GetText (i)
|
||||
if (texto_left and texto_right) then
|
||||
texto_left = texto_left:gsub (("|T(.*)|t "), "")
|
||||
reportar [#reportar+1] = ""..texto_left.." "..texto_right..""
|
||||
reportar [#reportar+1] = "" .. texto_left .. " ..... " .. texto_right
|
||||
end
|
||||
end
|
||||
|
||||
@@ -830,6 +832,9 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
keyName = "last_dps"
|
||||
elseif (sub_atributo == 3) then --> TAMAGE TAKEN
|
||||
keyName = "damage_taken"
|
||||
if (_detalhes.damage_taken_everything) then
|
||||
modo = modo_ALL
|
||||
end
|
||||
elseif (sub_atributo == 4) then --> FRIENDLY FIRE
|
||||
keyName = "friendlyfire_total"
|
||||
elseif (sub_atributo == 5) then --> FRAGS
|
||||
@@ -1027,7 +1032,7 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
total = index
|
||||
|
||||
if (exportar) then
|
||||
return vtable
|
||||
return voidzone_damage_total, "damage", instancia.top, total, vtable
|
||||
end
|
||||
|
||||
if (total < 1) then
|
||||
@@ -2350,6 +2355,7 @@ function atributo_damage:MontaDetalhes (spellid, barra)
|
||||
return self:MontaDetalhesDamageDone (spellid, barra)
|
||||
end
|
||||
return self:MontaDetalhesEnemy (spellid, barra)
|
||||
--return self:MontaDetalhesDamageDone (spellid, barra)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2557,11 +2563,13 @@ end
|
||||
row.textura:SetValue (value/max*100)
|
||||
end
|
||||
|
||||
--end
|
||||
row.texto_esquerdo:SetText (index .. ". " .. name)
|
||||
--> seta o texto da direita
|
||||
row.texto_esquerdo.text = row.texto_esquerdo:GetText()
|
||||
|
||||
row.texto_direita:SetText (value_formated .. " (" .. _cstr ("%.1f", percent) .."%)")
|
||||
|
||||
row.texto_esquerdo:SetSize (row:GetWidth() - row.texto_direita:GetStringWidth() - 40, 15)
|
||||
|
||||
--> seta o icone
|
||||
if (icon) then
|
||||
row.icone:SetTexture (icon)
|
||||
@@ -2691,7 +2699,7 @@ function atributo_damage:MontaInfoDamageDone()
|
||||
end
|
||||
|
||||
self:FocusLock (barra, tabela[1])
|
||||
|
||||
|
||||
end
|
||||
|
||||
--> TOP INIMIGOS
|
||||
@@ -2927,6 +2935,20 @@ function atributo_damage:MontaDetalhesEnemy (spellid, barra)
|
||||
local container = info.instancia.showing[1]
|
||||
local barras = info.barras3
|
||||
local instancia = info.instancia
|
||||
|
||||
local other_actor = barra.other_actor
|
||||
if (other_actor) then
|
||||
self = other_actor
|
||||
end
|
||||
|
||||
if (barra.texto_esquerdo:IsTruncated()) then
|
||||
_detalhes:CooltipPreset (2)
|
||||
GameCooltip:SetOption ("FixedWidth", nil)
|
||||
GameCooltip:AddLine (barra.texto_esquerdo.text)
|
||||
GameCooltip:SetOwner (barra, "bottomleft", "topleft", 5, -10)
|
||||
GameCooltip:ShowCooltip()
|
||||
end
|
||||
|
||||
local spell = self.spells:PegaHabilidade (spellid)
|
||||
|
||||
local targets = spell.targets
|
||||
|
||||
@@ -182,8 +182,8 @@ end
|
||||
function atributo_heal:ReportSingleDamagePreventedLine (actor, instancia)
|
||||
local barra = instancia.barras [actor.minha_barra]
|
||||
|
||||
local reportar = {"Details! " .. Loc ["STRING_ATTRIBUTE_HEAL_PREVENT"].. ": " .. actor.nome} --> localize-me
|
||||
for i = 1, GameCooltip:GetNumLines() do
|
||||
local reportar = {"Details!: " .. actor.nome .. " - " .. Loc ["STRING_ATTRIBUTE_HEAL_PREVENT"]}
|
||||
for i = 2, GameCooltip:GetNumLines()-2 do
|
||||
local texto_left, texto_right = GameCooltip:GetText (i)
|
||||
if (texto_left and texto_right) then
|
||||
texto_left = texto_left:gsub (("|T(.*)|t "), "")
|
||||
|
||||
@@ -2705,9 +2705,8 @@ function _detalhes:monta_relatorio (este_relatorio, custom)
|
||||
local atributo = self.atributo
|
||||
local container = self.showing [atributo]._ActorTable
|
||||
|
||||
--print ("amt: ",#container)
|
||||
|
||||
if (atributo == 1) then --> damage
|
||||
|
||||
if (self.sub_atributo == 5) then --> frags
|
||||
local frags = self.showing.frags
|
||||
local reportarFrags = {}
|
||||
@@ -2716,7 +2715,14 @@ function _detalhes:monta_relatorio (este_relatorio, custom)
|
||||
reportarFrags [#reportarFrags+1] = {frag = tostring (amount), nome = name}
|
||||
end
|
||||
container = reportarFrags
|
||||
container_amount = #reportarFrags
|
||||
keyName = "frag"
|
||||
|
||||
elseif (self.sub_atributo == 7) then --> auras e voidzones
|
||||
|
||||
total, keyName, first, container_amount, container = _detalhes.atributo_damage:RefreshWindow (self, self.showing, true, true)
|
||||
|
||||
|
||||
else
|
||||
total, keyName, first, container_amount = _detalhes.atributo_damage:RefreshWindow (self, self.showing, true, true)
|
||||
if (self.sub_atributo == 1) then
|
||||
|
||||
+52
-39
@@ -207,11 +207,12 @@ function _detalhes:ToolTipDead (instancia, morte, esta_barra, keydown)
|
||||
if (overkill > 0) then
|
||||
amount = amount - overkill
|
||||
overkill = " (" .. _detalhes:ToK (overkill) .. " |cFFFF8800overkill|r)"
|
||||
GameCooltip:AddLine ("" .. _cstr ("%.1f", time - hora_da_morte) .. "s |cFFFFFF00" .. spellname .. "|r (|cFFC6B0D9" .. source .. "|r)", "-" .. _detalhes:ToK (amount) .. overkill .. " (" .. hp .. "%)", 1, "white", "white")
|
||||
else
|
||||
overkill = ""
|
||||
GameCooltip:AddLine ("" .. _cstr ("%.1f", time - hora_da_morte) .. "s " .. spellname .. " (|cFFC6B0D9" .. source .. "|r)", "-" .. _detalhes:ToK (amount) .. overkill .. " (" .. hp .. "%)", 1, "white", "white")
|
||||
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
|
||||
@@ -223,7 +224,7 @@ function _detalhes:ToolTipDead (instancia, morte, esta_barra, keydown)
|
||||
end
|
||||
else
|
||||
--> heal
|
||||
GameCooltip:AddLine ("" .. _cstr ("%.1f", time - hora_da_morte) .. "s " .. spellname .. " (" .. source .. ")", "+" .. _detalhes:ToK (amount) .. " (" .. hp .. "%)", 1, "white", "white")
|
||||
GameCooltip:AddLine ("" .. _cstr ("%.1f", time - hora_da_morte) .. "s " .. spellname .. " (|cFFC6B0D9" .. source .. "|r)", "+" .. _detalhes:ToK (amount) .. " (" .. hp .. "%)", 1, "white", "white")
|
||||
GameCooltip:AddIcon (spellicon)
|
||||
GameCooltip:AddStatusBar (hp, 1, "green", true)
|
||||
|
||||
@@ -381,41 +382,50 @@ end
|
||||
|
||||
function atributo_misc:ReportSingleCooldownLine (misc_actor, instancia)
|
||||
|
||||
local barra = misc_actor.minha_barra
|
||||
|
||||
local reportar = {"Details! " .. Loc ["STRING_REPORT_SINGLE_COOLDOWN"] .. " " .. barra.texto_esquerdo:GetText()} --> localize-me
|
||||
reportar [#reportar+1] = "> " .. Loc ["STRING_SPELLS"] .. ":"
|
||||
local reportar = {"Details!: " .. misc_actor.nome .. " - " .. Loc ["STRING_ATTRIBUTE_MISC_DEFENSIVE_COOLDOWNS"]}
|
||||
|
||||
for i = 1, GameCooltip:GetNumLines() do
|
||||
local texto_left, texto_right = GameCooltip:GetText (i)
|
||||
local meu_total = _math_floor (misc_actor.cooldowns_defensive)
|
||||
local cooldowns = misc_actor.cooldowns_defensive_spells._ActorTable
|
||||
local cooldowns_used = {}
|
||||
|
||||
for spellid, spell in _pairs (cooldowns) do
|
||||
cooldowns_used [#cooldowns_used+1] = {spellid, spell.counter, spell}
|
||||
end
|
||||
_table_sort (cooldowns_used, _detalhes.Sort2)
|
||||
|
||||
for i, spell in _ipairs (cooldowns_used) do
|
||||
|
||||
if (texto_left and texto_right) then
|
||||
texto_left = texto_left:gsub (("|T(.*)|t "), "")
|
||||
reportar [#reportar+1] = " "..texto_left.." "..texto_right..""
|
||||
elseif (i ~= 1) then
|
||||
reportar [#reportar+1] = "> " .. Loc ["STRING_TARGETS"] .. ":"
|
||||
local spelllink = GetSpellLink (spell [1])
|
||||
reportar [#reportar+1] = spelllink .. ": " .. spell [2]
|
||||
|
||||
for target_name, amount in _pairs (spell[3].targets) do
|
||||
if (target_name ~= misc_actor.nome and target_name ~= Loc ["STRING_RAID_WIDE"] and amount > 0) then
|
||||
reportar [#reportar+1] = " -" .. target_name .. ": " .. amount
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
return _detalhes:Reportar (reportar, {_no_current = true, _no_inverse = true, _custom = true})
|
||||
end
|
||||
|
||||
function atributo_misc:ReportSingleBuffUptimeLine (misc_actor, instancia)
|
||||
|
||||
local barra = misc_actor.minha_barra
|
||||
|
||||
local reportar = {"Details! " .. Loc ["STRING_REPORT_SINGLE_BUFFUPTIME"] .. " " .. barra.texto_esquerdo:GetText()} --> localize-me
|
||||
reportar [#reportar+1] = "> " .. Loc ["STRING_SPELLS"] .. ":"
|
||||
local reportar = {"Details!: " .. misc_actor.nome .. " - " .. Loc ["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"]}
|
||||
|
||||
for i = 1, GameCooltip:GetNumLines() do
|
||||
local texto_left, texto_right = GameCooltip:GetText (i)
|
||||
local buffs = {}
|
||||
local combat_time = instancia.showing:GetCombatTime()
|
||||
|
||||
for spellid, spell in _pairs (misc_actor.buff_uptime_spells._ActorTable) do
|
||||
buffs [#buffs+1] = {spellid, spell.uptime, spell}
|
||||
end
|
||||
|
||||
_table_sort (buffs, _detalhes.Sort2)
|
||||
|
||||
for i, spell in _ipairs (buffs) do
|
||||
local spelllink = GetSpellLink (spell [1])
|
||||
local m, s = _math_floor (spell [2] / 60), _math_floor (spell [2] % 60)
|
||||
|
||||
if (texto_left and texto_right) then
|
||||
texto_left = texto_left:gsub (("|T(.*)|t "), "")
|
||||
reportar [#reportar+1] = " "..texto_left.." "..texto_right..""
|
||||
elseif (i ~= 1) then
|
||||
reportar [#reportar+1] = "> " .. Loc ["STRING_TARGETS"] .. ":"
|
||||
end
|
||||
reportar [#reportar+1] = spelllink .. ": " .. m .. "m " .. s .. "s (" .. _cstr ("%.1f", spell [2] / combat_time * 100) .. "%)"
|
||||
end
|
||||
|
||||
return _detalhes:Reportar (reportar, {_no_current = true, _no_inverse = true, _custom = true})
|
||||
@@ -423,23 +433,26 @@ end
|
||||
|
||||
function atributo_misc:ReportSingleDebuffUptimeLine (misc_actor, instancia)
|
||||
|
||||
local barra = misc_actor.minha_barra
|
||||
local reportar = {"Details!: " .. misc_actor.nome .. " - " .. Loc ["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"]}
|
||||
|
||||
local reportar = {"Details! " .. Loc ["STRING_REPORT_SINGLE_DEBUFFUPTIME"] .. " " .. barra.texto_esquerdo:GetText()} --> localize-me
|
||||
reportar [#reportar+1] = "> " .. Loc ["STRING_SPELLS"] .. ":"
|
||||
local debuffs = {}
|
||||
local combat_time = instancia.showing:GetCombatTime()
|
||||
|
||||
for i = 1, GameCooltip:GetNumLines() do
|
||||
local texto_left, texto_right = GameCooltip:GetText (i)
|
||||
|
||||
if (texto_left and texto_right) then
|
||||
texto_left = texto_left:gsub (("|T(.*)|t "), "")
|
||||
reportar [#reportar+1] = " "..texto_left.." "..texto_right..""
|
||||
elseif (i ~= 1) then
|
||||
reportar [#reportar+1] = "> " .. Loc ["STRING_TARGETS"] .. ":"
|
||||
end
|
||||
for spellid, spell in _pairs (misc_actor.debuff_uptime_spells._ActorTable) do
|
||||
debuffs [#debuffs+1] = {spellid, spell.uptime, spell}
|
||||
end
|
||||
|
||||
return _detalhes:Reportar (reportar, {_no_current = true, _no_inverse = true, _custom = true})
|
||||
_table_sort (debuffs, _detalhes.Sort2)
|
||||
|
||||
for i, spell in _ipairs (debuffs) do
|
||||
local spelllink = GetSpellLink (spell [1])
|
||||
local m, s = _math_floor (spell [2] / 60), _math_floor (spell [2] % 60)
|
||||
|
||||
reportar [#reportar+1] = spelllink .. ": " .. m .. "m " .. s .. "s (" .. _cstr ("%.1f", spell [2] / combat_time * 100) .. "%)"
|
||||
end
|
||||
|
||||
return _detalhes:Reportar (reportar, {_no_current = true, _no_inverse = true, _custom = true})
|
||||
|
||||
end
|
||||
|
||||
function atributo_misc:DeadAtualizarBarra (morte, qual_barra, colocacao, instancia)
|
||||
|
||||
+27
-25
@@ -421,32 +421,34 @@
|
||||
) then
|
||||
|
||||
--> record death log
|
||||
local t = last_events_cache [alvo_name]
|
||||
|
||||
if (not t) then
|
||||
t = _current_combat:CreateLastEventsTable (alvo_name)
|
||||
end
|
||||
|
||||
local i = t.n
|
||||
if (este_jogador.grupo) then --> se tiver ele não adiciona o evento lá em cima
|
||||
local t = last_events_cache [alvo_name]
|
||||
|
||||
if (not t) then
|
||||
t = _current_combat:CreateLastEventsTable (alvo_name)
|
||||
end
|
||||
|
||||
local i = t.n
|
||||
|
||||
local this_event = t [i]
|
||||
|
||||
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 [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
|
||||
t.n = 1
|
||||
else
|
||||
t.n = i
|
||||
local this_event = t [i]
|
||||
|
||||
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 [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
|
||||
t.n = 1
|
||||
else
|
||||
t.n = i
|
||||
end
|
||||
end
|
||||
|
||||
--> faz a adição do friendly fire
|
||||
|
||||
+301
-32
@@ -1,45 +1,314 @@
|
||||
--[[ Link actor with his twin shadow ]]
|
||||
|
||||
do
|
||||
local _detalhes = _G._detalhes
|
||||
|
||||
local _rawget = rawget
|
||||
local _setmetatable = setmetatable
|
||||
local _ipairs = ipairs
|
||||
|
||||
--> default weaktable
|
||||
_detalhes.weaktable = {__mode = "v"}
|
||||
|
||||
--> create link between two tables
|
||||
function _detalhes:FazLinkagem (objeto)
|
||||
local meus_links = _rawget (self, "links")
|
||||
if (not meus_links) then
|
||||
meus_links = _setmetatable ({}, _detalhes.weaktable)
|
||||
self.links = meus_links
|
||||
end
|
||||
meus_links [#meus_links+1] = objeto
|
||||
end
|
||||
|
||||
--> check if there is a link between tables
|
||||
function _detalhes:EstaoLinkados (objeto)
|
||||
local meus_links = _rawget (self, "links")
|
||||
if (not meus_links) then
|
||||
return false
|
||||
end
|
||||
for index, actor in _ipairs (meus_links) do
|
||||
if (actor == objeto) then
|
||||
return true
|
||||
end
|
||||
--weak auras
|
||||
local group_prototype = {
|
||||
["xOffset"] = -678.999450683594,
|
||||
["yOffset"] = 212.765991210938,
|
||||
["id"] = "Details! Aura Group",
|
||||
["grow"] = "RIGHT",
|
||||
["controlledChildren"] = {},
|
||||
["animate"] = true,
|
||||
["border"] = "None",
|
||||
["anchorPoint"] = "CENTER",
|
||||
["regionType"] = "dynamicgroup",
|
||||
["sort"] = "none",
|
||||
["actions"] = {},
|
||||
["space"] = 0,
|
||||
["background"] = "None",
|
||||
["expanded"] = true,
|
||||
["constantFactor"] = "RADIUS",
|
||||
["trigger"] = {
|
||||
["type"] = "aura",
|
||||
["spellIds"] = {},
|
||||
["unit"] = "player",
|
||||
["debuffType"] = "HELPFUL",
|
||||
["names"] = {},
|
||||
},
|
||||
["borderOffset"] = 16,
|
||||
|
||||
["animation"] = {
|
||||
["start"] = {
|
||||
["type"] = "none",
|
||||
["duration_type"] = "seconds",
|
||||
},
|
||||
["main"] = {
|
||||
["type"] = "none",
|
||||
["duration_type"] = "seconds",
|
||||
},
|
||||
["finish"] = {
|
||||
["type"] = "none",
|
||||
["duration_type"] = "seconds",
|
||||
},
|
||||
},
|
||||
["align"] = "CENTER",
|
||||
["rotation"] = 0,
|
||||
["frameStrata"] = 1,
|
||||
["width"] = 199.999969482422,
|
||||
["height"] = 20,
|
||||
["stagger"] = 0,
|
||||
["radius"] = 200,
|
||||
["numTriggers"] = 1,
|
||||
["backgroundInset"] = 0,
|
||||
["selfPoint"] = "LEFT",
|
||||
["load"] = {
|
||||
["use_combat"] = true,
|
||||
["race"] = {
|
||||
["multi"] = {},
|
||||
},
|
||||
["talent"] = {
|
||||
["multi"] = {},
|
||||
},
|
||||
["role"] = {
|
||||
["multi"] = {},
|
||||
},
|
||||
["spec"] = {
|
||||
["multi"] = {},
|
||||
},
|
||||
["class"] = {
|
||||
["multi"] = {},
|
||||
},
|
||||
["size"] = {
|
||||
["multi"] = {},
|
||||
},
|
||||
},
|
||||
["untrigger"] = {},
|
||||
}
|
||||
|
||||
local icon_prototype = {
|
||||
["yOffset"] = -10.08984375,
|
||||
["xOffset"] = -3.2294921875,
|
||||
["fontSize"] = 14,
|
||||
["displayStacks"] = "%s",
|
||||
["parent"] = "Details! Aura Group",
|
||||
["color"] = {1, 1, 1, 1},
|
||||
["stacksPoint"] = "BOTTOMRIGHT",
|
||||
["regionType"] = "icon",
|
||||
["untrigger"] = {},
|
||||
["anchorPoint"] = "CENTER",
|
||||
["icon"] = true,
|
||||
["numTriggers"] = 1,
|
||||
["customTextUpdate"] = "update",
|
||||
["id"] = "UNNAMED",
|
||||
["actions"] = {},
|
||||
["fontFlags"] = "OUTLINE",
|
||||
["stacksContainment"] = "INSIDE",
|
||||
["zoom"] = 0,
|
||||
["auto"] = false,
|
||||
["animation"] = {
|
||||
["start"] = {
|
||||
["duration_type"] = "seconds",
|
||||
["type"] = "preset",
|
||||
["preset"] = "grow",
|
||||
},
|
||||
["main"] = {
|
||||
["duration_type"] = "seconds",
|
||||
["type"] = "preset",
|
||||
["preset"] = "pulse",
|
||||
},
|
||||
["finish"] = {
|
||||
["duration_type"] = "seconds",
|
||||
["type"] = "none",
|
||||
},
|
||||
},
|
||||
["trigger"] = {
|
||||
["type"] = "aura",
|
||||
["spellId"] = "0",
|
||||
["subeventSuffix"] = "_CAST_START",
|
||||
["custom_hide"] = "timed",
|
||||
["event"] = "Health",
|
||||
["subeventPrefix"] = "SPELL",
|
||||
["debuffClass"] = "magic",
|
||||
["use_spellId"] = true,
|
||||
["spellIds"] = {},
|
||||
["name_operator"] = "==",
|
||||
["fullscan"] = true,
|
||||
["unit"] = "player",
|
||||
["names"] = {
|
||||
"", -- [1]
|
||||
},
|
||||
["debuffType"] = "HARMFUL",
|
||||
},
|
||||
["desaturate"] = false,
|
||||
["frameStrata"] = 1,
|
||||
["stickyDuration"] = false,
|
||||
["width"] = 192,
|
||||
["font"] = "Friz Quadrata TT",
|
||||
["inverse"] = false,
|
||||
["selfPoint"] = "CENTER",
|
||||
["height"] = 192,
|
||||
["displayIcon"] = "Interface\\Icons\\Spell_Holiday_ToW_SpiceCloud",
|
||||
["load"] = {
|
||||
["use_combat"] = true,
|
||||
["race"] = {
|
||||
["multi"] = {
|
||||
},
|
||||
},
|
||||
["talent"] = {
|
||||
["multi"] = {
|
||||
},
|
||||
},
|
||||
["role"] = {
|
||||
["multi"] = {
|
||||
},
|
||||
},
|
||||
["spec"] = {
|
||||
["multi"] = {
|
||||
},
|
||||
},
|
||||
["class"] = {
|
||||
["multi"] = {
|
||||
},
|
||||
},
|
||||
["size"] = {
|
||||
["multi"] = {
|
||||
},
|
||||
},
|
||||
},
|
||||
["textColor"] = {
|
||||
1, -- [1]
|
||||
1, -- [2]
|
||||
1, -- [3]
|
||||
1, -- [4]
|
||||
},
|
||||
}
|
||||
|
||||
local actions_prototype = {
|
||||
["start"] = {
|
||||
["do_glow"] = true,
|
||||
["glow_action"] = "show",
|
||||
["do_sound"] = true,
|
||||
["glow_frame"] = "WeakAuras:Crystalline Barrage Step",
|
||||
["sound"] = "Interface\\AddOns\\WeakAuras\\Media\\Sounds\\WaterDrop.ogg",
|
||||
["sound_channel"] = "Master",
|
||||
},
|
||||
["finish"] = {},
|
||||
}
|
||||
|
||||
function _detalhes:CreateWeakAura (spellid, name, icon_texture, glow, sound)
|
||||
if (not WeakAuras or not WeakAurasSaved) then
|
||||
return
|
||||
end
|
||||
|
||||
return false
|
||||
if (not WeakAurasSaved.displays ["Details! Aura Group"]) then
|
||||
local group = _detalhes.table.copy ({}, group_prototype)
|
||||
WeakAuras.Add (group)
|
||||
end
|
||||
|
||||
local icon = _detalhes.table.copy ({}, icon_prototype)
|
||||
|
||||
icon.id = name
|
||||
icon.displayIcon = icon_texture
|
||||
icon.trigger.spellId = spellid
|
||||
|
||||
tinsert (icon.trigger.spellIds, spellid)
|
||||
|
||||
WeakAuras.Add (icon)
|
||||
|
||||
tinsert (WeakAurasSaved.displays ["Details! Aura Group"].controlledChildren, name)
|
||||
|
||||
local options_frame = WeakAuras.OptionsFrame and WeakAuras.OptionsFrame()
|
||||
if (options_frame and options_frame:IsShown()) then
|
||||
WeakAuras.ToggleOptions()
|
||||
WeakAuras.ToggleOptions()
|
||||
else
|
||||
WeakAuras.OpenOptions()
|
||||
end
|
||||
end
|
||||
|
||||
function _detalhes:OpenAuraPanel (spellid, spellname, spellicon)
|
||||
|
||||
if (not DetailsAuraPanel) then
|
||||
|
||||
local f = CreateFrame ("frame", "DetailsAuraPanel", UIParent, "ButtonFrameTemplate")
|
||||
f:SetSize (300, 250)
|
||||
f:SetPoint ("center", UIParent, "center")
|
||||
f:SetFrameStrata ("HIGH")
|
||||
f:SetToplevel (true)
|
||||
f:SetMovable (true)
|
||||
|
||||
tinsert (UISpecialFrames, "DetailsAuraPanel")
|
||||
|
||||
f:SetScript ("OnMouseDown", function(self, button)
|
||||
if (self.isMoving) then
|
||||
return
|
||||
end
|
||||
if (button == "RightButton") then
|
||||
self:Hide()
|
||||
else
|
||||
self:StartMoving()
|
||||
self.isMoving = true
|
||||
end
|
||||
end)
|
||||
f:SetScript ("OnMouseUp", function(self, button)
|
||||
if (self.isMoving and button == "LeftButton") then
|
||||
self:StopMovingOrSizing()
|
||||
self.isMoving = nil
|
||||
end
|
||||
end)
|
||||
|
||||
f.TitleText:SetText ("Create Aura")
|
||||
f.portrait:SetTexture ([[Interface\CHARACTERFRAME\TEMPORARYPORTRAIT-FEMALE-BLOODELF]])
|
||||
|
||||
local fw = _detalhes:GetFramework()
|
||||
|
||||
--aura name
|
||||
local name_label = fw:CreateLabel (f, "Name: ", nil, nil, "GameFontNormal")
|
||||
local name_textentry = fw:CreateTextEntry (f, _detalhes.empty_function, 150, 20)
|
||||
name_textentry:SetPoint ("left", name_label, "right", 2, 0)
|
||||
f.name = name_textentry
|
||||
|
||||
--aura icon
|
||||
local icon_label = fw:CreateLabel (f, "Icon: ", nil, nil, "GameFontNormal")
|
||||
local icon_button_func = function (texture)
|
||||
f.IconButton.icon.texture = texture
|
||||
end
|
||||
local icon_pick_button = fw:NewButton (f, nil, "$parentIconButton", "IconButton", 20, 20, function() fw:IconPick (icon_button_func, true) end)
|
||||
local icon_button_icon = fw:NewImage (icon_pick_button, [[Interface\ICONS\TEMP]], 19, 19, "background", nil, "icon", "$parentIcon")
|
||||
icon_pick_button:InstallCustomTexture()
|
||||
|
||||
icon_pick_button:SetPoint ("left", icon_label, "right", 2, 0)
|
||||
icon_button_icon:SetPoint ("left", icon_label, "right", 2, 0)
|
||||
|
||||
f.icon = icon_button_icon
|
||||
|
||||
--create
|
||||
local create_func = function()
|
||||
|
||||
_detalhes:CreateWeakAura (f.spellid, f.name.text, DetailsAuraPanel.icon.texture, nil, nil)
|
||||
|
||||
f:Hide()
|
||||
end
|
||||
local create_button = fw:CreateButton (f, create_func, 106, 16, "Create Aura")
|
||||
create_button:InstallCustomTexture()
|
||||
|
||||
local cancel_button = fw:CreateButton (f, function() name_textentry:ClearFocus(); f:Hide() end, 106, 16, "Cancel")
|
||||
cancel_button:InstallCustomTexture()
|
||||
|
||||
create_button:SetIcon ([[Interface\Buttons\UI-CheckBox-Check]], nil, nil, nil, {0.125, 0.875, 0.125, 0.875}, nil, 4, 2)
|
||||
cancel_button:SetIcon ([[Interface\Buttons\UI-GroupLoot-Pass-Down]], nil, nil, nil, {0.125, 0.875, 0.125, 0.875}, nil, 4, 2)
|
||||
|
||||
local x_start = 20
|
||||
local y_start = 20
|
||||
|
||||
name_label:SetPoint ("topleft", f, "topleft", x_start, ((y_start*1) + (50)) * -1)
|
||||
icon_label:SetPoint ("topleft", f, "topleft", x_start, ((y_start*2) + (50)) * -1)
|
||||
|
||||
--> create the link
|
||||
function _detalhes:CriaLink (link)
|
||||
--> se tiver a tabela no overall
|
||||
--if (link) then
|
||||
-- link:FazLinkagem (self)
|
||||
--end
|
||||
create_button:SetPoint ("topleft", f, "topleft", x_start, ((y_start*4) + (50)) * -1)
|
||||
cancel_button:SetPoint ("left", create_button, "right", 20, 0)
|
||||
|
||||
end
|
||||
|
||||
DetailsAuraPanel.spellid = spellid
|
||||
|
||||
DetailsAuraPanel.name.text = spellname
|
||||
DetailsAuraPanel.icon.texture = spellicon
|
||||
|
||||
DetailsAuraPanel:Show()
|
||||
end
|
||||
|
||||
end
|
||||
+1
-1
@@ -891,7 +891,7 @@ function SlashCmdList.DETAILS (msg, editbox)
|
||||
local _, _, flags = barra.texto_esquerdo:GetFont()
|
||||
print ("outline:",flags)
|
||||
end
|
||||
|
||||
|
||||
else
|
||||
|
||||
--if (_detalhes.opened_windows < 1) then
|
||||
|
||||
+17
-2
@@ -3064,14 +3064,27 @@ function _detalhes.janela_info:monta_relatorio (botao)
|
||||
local report_lines
|
||||
|
||||
if (botao == 1) then --> botão da esquerda
|
||||
report_lines = {"Details! " .. Loc ["STRING_ACTORFRAME_SPELLSOF"] .. " " .. player.nome .. " (" .. _detalhes.sub_atributos [atributo].lista [sub_atributo] .. ")"}
|
||||
|
||||
|
||||
if (atributo == 1 and sub_atributo == 4) then --> friendly fire
|
||||
report_lines = {"Details!: " .. player.nome .. " " .. Loc ["STRING_ATTRIBUTE_DAMAGE_FRIENDLYFIRE"] .. ":"}
|
||||
|
||||
elseif (atributo == 1 and sub_atributo == 3) then --> damage taken
|
||||
report_lines = {"Details!: " .. player.nome .. " " .. Loc ["STRING_ATTRIBUTE_DAMAGE_TAKEN"] .. ":"}
|
||||
|
||||
else
|
||||
-- report_lines = {"Details! " .. Loc ["STRING_ACTORFRAME_SPELLSOF"] .. " " .. player.nome .. " (" .. _detalhes.sub_atributos [atributo].lista [sub_atributo] .. ")"}
|
||||
report_lines = {"Details!: " .. player.nome .. " - " .. _detalhes.sub_atributos [atributo].lista [sub_atributo] .. ""}
|
||||
|
||||
end
|
||||
|
||||
for index, barra in _ipairs (info.barras1) do
|
||||
if (barra:IsShown()) then
|
||||
local spellid = barra.show
|
||||
if (atributo == 1 and sub_atributo == 4) then --> friendly fire
|
||||
report_lines [#report_lines+1] = barra.texto_esquerdo:GetText() .. ": " .. barra.texto_direita:GetText()
|
||||
|
||||
elseif (spellid > 10) then
|
||||
elseif (type (spellid) == "number" and spellid > 10) then
|
||||
local link = GetSpellLink (spellid)
|
||||
report_lines [#report_lines+1] = index .. ". " .. link .. ": " .. barra.texto_direita:GetText()
|
||||
else
|
||||
@@ -3329,6 +3342,8 @@ local row_on_leave = function (self)
|
||||
|
||||
GameTooltip:Hide()
|
||||
|
||||
GameCooltip:Hide()
|
||||
|
||||
if (self.isMain) then
|
||||
--> retira o zoom no icone
|
||||
self.icone:SetWidth (14)
|
||||
|
||||
@@ -1899,6 +1899,26 @@ local barra_scripts_onmouseup = function (self, button)
|
||||
if (self.button == "LeftButton" or self.button == "MiddleButton") then
|
||||
if (self._instance.atributo == 5 or _IsShiftKeyDown()) then
|
||||
--> report
|
||||
if (self._instance.atributo == 5 and _IsShiftKeyDown()) then
|
||||
local custom = self._instance:GetCustomObject()
|
||||
if (custom and custom.on_shift_click) then
|
||||
local func = loadstring (custom.on_shift_click)
|
||||
if (func) then
|
||||
|
||||
local successful, errortext = pcall (func, self, self.minha_tabela, self._instance)
|
||||
if (not successful) then
|
||||
_detalhes:Msg ("error occurred custom script shift+click:", errortext)
|
||||
end
|
||||
|
||||
--local spellname, _, spellicon = _detalhes.getspellinfo (self.minha_tabela.id)
|
||||
--_detalhes:OpenAuraPanel (self.minha_tabela.id, spellname, spellicon)
|
||||
|
||||
--func (object.id, spellname, spellicon)
|
||||
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
return _detalhes:ReportSingleLine (self._instance, self)
|
||||
end
|
||||
self._instance:AbreJanelaInfo (self.minha_tabela)
|
||||
|
||||
@@ -529,7 +529,7 @@ General/Trade: 255 189 192
|
||||
|
||||
local este_gump = _CreateFrame ("Frame", "DetailsReportWindow", _UIParent)
|
||||
este_gump:SetPoint ("CENTER", UIParent, "CENTER")
|
||||
este_gump:SetFrameStrata ("HIGH")
|
||||
este_gump:SetFrameStrata ("DIALOG")
|
||||
|
||||
este_gump:SetScript ("OnShow", function (self)
|
||||
local dropdown = este_gump.select.MyObject
|
||||
|
||||
Reference in New Issue
Block a user