- added support to skins, change over options panel.

This commit is contained in:
Tercio
2013-12-03 01:33:43 -02:00
parent 2de7f3aaa5
commit 3cd5a901df
30 changed files with 538 additions and 227 deletions
+27 -1
View File
@@ -8,7 +8,7 @@
_ = nil
_detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0")
_detalhes.userversion = "v1.6.5"
_detalhes.userversion = "v1.6.7"
_detalhes.version = "Alpha 010"
_detalhes.realversion = 10
@@ -59,6 +59,32 @@ do
--> ignored pets
_detalhes.pets_ignored = {}
_detalhes.pets_no_owner = {}
--> armazena as skins disponíveis para as janelas
_detalhes.skins = {["Default Skin"] = {file = "default_skin", author = "Details!", version = "1.0", site = "unknown", desc = "default skin for Details!", can_change_alpha_head = false, icon_anchor_main = {-1, 1}, icon_anchor_plugins = {-9, -7}, icon_plugins_size = {19, 19}}}
_detalhes.skin_path = "Interface\\AddOns\\Details\\images\\skins\\"
-- temporariamente aqui, precisa migrar para um arquivo separado
function _detalhes:InstallSkin (skin_name, skin_table)
if (not skin_name) then
return false -- sem nome
elseif (_detalhes.skins [skin_name]) then
return false -- ja existe
end
if (not skin_table.file) then
return false -- sem arquivo
end
skin_table.author = skin_table.author or ""
skin_table.version = skin_table.version or ""
skin_table.site = skin_table.site or ""
skin_table.desc = skin_table.desc or ""
_detalhes.skins [skin_name] = skin_table
return true
end
_detalhes:InstallSkin ("Flat Color", {file = "flat_skin", author = "Details!", version = "1.0", site = "unknown", desc = "a flat skin", can_change_alpha_head = true, icon_anchor_main = {-1, -5}, icon_anchor_plugins = {-7, -13}, icon_plugins_size = {19, 18}})
--> Plugins
--> raid -------------------------------------------------------------------
+43 -36
View File
@@ -445,8 +445,8 @@ function _detalhes:agrupar_janelas (lados)
self.snap [4] = esta_instancia.meu_id
esta_instancia.snap [2] = self.meu_id
esta_instancia.baseframe.rodape.StatusBarLeftAnchor:SetPoint ("left", esta_instancia.baseframe.rodape.top_bg, "left", 25, 10)
esta_instancia.baseframe.rodape.StatusBarCenterAnchor:SetPoint ("center", esta_instancia.baseframe.rodape.top_bg, "center", 20, 10)
esta_instancia.baseframe.rodape.StatusBarLeftAnchor:SetPoint ("left", esta_instancia.baseframe.rodape.top_bg, "left", 25, 58)
esta_instancia.baseframe.rodape.StatusBarCenterAnchor:SetPoint ("center", esta_instancia.baseframe.rodape.top_bg, "center", 20, 58)
esta_instancia.baseframe.rodape.esquerdo:SetTexture ("Interface\\AddOns\\Details\\images\\bar_down_left_snap")
esta_instancia.baseframe.rodape.esquerdo.have_snap = true
@@ -476,9 +476,9 @@ function _detalhes:agrupar_janelas (lados)
self.snap [2] = esta_instancia.meu_id
esta_instancia.snap [4] = self.meu_id
self.baseframe.rodape.StatusBarLeftAnchor:SetPoint ("left", self.baseframe.rodape.top_bg, "left", 25, 10)
self.baseframe.rodape.StatusBarCenterAnchor:SetPoint ("center", self.baseframe.rodape.top_bg, "center", 20, 10)
self.baseframe.rodape.esquerdo:SetTexture ("Interface\\AddOns\\Details\\images\\bar_down_left_snap")
self.baseframe.rodape.StatusBarLeftAnchor:SetPoint ("left", self.baseframe.rodape.top_bg, "left", 25, 58)
self.baseframe.rodape.StatusBarCenterAnchor:SetPoint ("center", self.baseframe.rodape.top_bg, "center", 20, 58)
self.baseframe.rodape.esquerdo:SetTexture ([[Interface\AddOns\Details\images\bar_down_left_snap]])
self.baseframe.rodape.esquerdo.have_snap = true
end
@@ -558,8 +558,8 @@ function _detalhes:Desagrupar (instancia, lado)
end
if (index == 2) then -- index é o codigo do snap
esta_instancia.baseframe.rodape.StatusBarLeftAnchor:SetPoint ("left", esta_instancia.baseframe.rodape.top_bg, "left", 5, 10)
esta_instancia.baseframe.rodape.StatusBarCenterAnchor:SetPoint ("center", esta_instancia.baseframe.rodape.top_bg, "center", 0, 10)
esta_instancia.baseframe.rodape.StatusBarLeftAnchor:SetPoint ("left", esta_instancia.baseframe.rodape.top_bg, "left", 5, 58)
esta_instancia.baseframe.rodape.StatusBarCenterAnchor:SetPoint ("center", esta_instancia.baseframe.rodape.top_bg, "center", 0, 58)
esta_instancia.baseframe.rodape.esquerdo:SetTexture ("Interface\\AddOns\\Details\\images\\bar_down_left")
esta_instancia.baseframe.rodape.esquerdo.have_snap = nil
end
@@ -569,6 +569,7 @@ function _detalhes:Desagrupar (instancia, lado)
end
gump:Fade (instancia.botao_separar, 1)
instancia.verticalSnap = false
instancia.horizontalSnap = false
return
@@ -635,6 +636,8 @@ end
nova_instancia.meu_id = ID
nova_instancia.skin = "Default Skin"
nova_instancia.barras = {} --container que irá armazenar todas as barras
nova_instancia.barraS = {nil, nil} --de x até x são as barras que estão sendo mostradas na tela
nova_instancia.rolagem = false --barra de rolagem não esta sendo mostrada
@@ -785,6 +788,8 @@ end
--> search key: ~restaura
function _detalhes:RestauraJanela (index, temp)
self.skin = self.skin or "Default Skin"
self.bg_alpha = self.bg_alpha or _detalhes.default_bg_alpha
self.bg_r = self.bg_r or _detalhes.default_bg_color
self.bg_g = self.bg_g or _detalhes.default_bg_color
@@ -954,6 +959,8 @@ function _detalhes:RestauraJanela (index, temp)
self.iniciada = true
self:AtivarInstancia (temp)
self:ChangeSkin()
end
------------------------------------------------------------------------------------------------------------------------
@@ -1506,53 +1513,53 @@ end
-- o modo é apenas afetado na hora de mostrar o que na tabela
function _detalhes:ChangeIcon (icon)
local skin = _detalhes.skins [self.skin]
if (icon) then
--> plugin chamou uma troca de icone
self.baseframe.cabecalho.atributo_icon:SetTexture (icon)
self.baseframe.cabecalho.atributo_icon:SetTexCoord (5/64, 60/64, 3/64, 62/64)
self.baseframe.cabecalho.atributo_icon:SetWidth (19)
self.baseframe.cabecalho.atributo_icon:SetHeight (20)
self.baseframe.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", self.baseframe.cabecalho.ball_point, "TOPRIGHT", -11, -6)
local icon_size = skin.icon_plugins_size
self.baseframe.cabecalho.atributo_icon:SetWidth (icon_size[1])
self.baseframe.cabecalho.atributo_icon:SetHeight (icon_size[2])
local icon_anchor = skin.icon_anchor_plugins
self.baseframe.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", self.baseframe.cabecalho.ball_point, "TOPRIGHT", icon_anchor[1], icon_anchor[2])
elseif (self.modo == modo_alone) then --> solo
-- o icone é alterado pelo próprio plugin
--[[
self.baseframe.cabecalho.atributo_icon:SetTexture ("Interface\\AddOns\\Details\\images\\icon_mainwindow2")
self.baseframe.cabecalho.atributo_icon:SetTexCoord (32/256 * (1-1), 32/256 * 1, 0, 1) --> solo é o primeiro icone
self.baseframe.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", self.baseframe.cabecalho.ball_point, "TOPRIGHT", -1, 1)
self.baseframe.cabecalho.atributo_icon:SetWidth (30)
self.baseframe.cabecalho.atributo_icon:SetHeight (30)
--]]
--print ("Icon Changed 1")
--_detalhes.SoloTables.Menu [INDEX] [2]
elseif (self.modo == modo_grupo or self.modo == modo_all) then --> grupo
if (self.atributo == 5) then
--> custom
local icon = _detalhes.custom [self.sub_atributo].icon
self.baseframe.cabecalho.atributo_icon:SetTexture (icon)
self.baseframe.cabecalho.atributo_icon:SetTexCoord (5/64, 60/64, 3/64, 62/64)
self.baseframe.cabecalho.atributo_icon:SetWidth (20)
self.baseframe.cabecalho.atributo_icon:SetHeight (20)
self.baseframe.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", self.baseframe.cabecalho.ball_point, "TOPRIGHT", -10, -5)
local icon_size = skin.icon_plugins_size
self.baseframe.cabecalho.atributo_icon:SetWidth (icon_size[1])
self.baseframe.cabecalho.atributo_icon:SetHeight (icon_size[2])
local icon_anchor = skin.icon_anchor_plugins
self.baseframe.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", self.baseframe.cabecalho.ball_point, "TOPRIGHT", icon_anchor[1], icon_anchor[2])
else
self.baseframe.cabecalho.atributo_icon:SetTexture ("Interface\\AddOns\\Details\\images\\icon_mainwindow")
self.baseframe.cabecalho.atributo_icon:SetTexCoord (32/256 * (self.atributo-1), 32/256 * self.atributo, 0, 1)
self.baseframe.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", self.baseframe.cabecalho.ball_point, "TOPRIGHT", -1, 1)
self.baseframe.cabecalho.atributo_icon:SetWidth (30)
self.baseframe.cabecalho.atributo_icon:SetHeight (30)
--> normal
local half = 0.00048828125
local size = 0.03125
self.baseframe.cabecalho.atributo_icon:SetTexture (_detalhes.skin_path .. skin.file)
self.baseframe.cabecalho.atributo_icon:SetTexCoord ( (0.03125 * (self.atributo-1)) + half, (0.03125 * self.atributo) - half, 0.35693359375, 0.38720703125)
local icon_anchor = skin.icon_anchor_main
self.baseframe.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", self.baseframe.cabecalho.ball_point, "TOPRIGHT", icon_anchor[1], icon_anchor[2])
self.baseframe.cabecalho.atributo_icon:SetWidth (32)
self.baseframe.cabecalho.atributo_icon:SetHeight (32)
end
elseif (self.modo == modo_raid) then --> raid
--[[
self.baseframe.cabecalho.atributo_icon:SetTexture ("Interface\\AddOns\\Details\\images\\icon_mainwindow2")
self.baseframe.cabecalho.atributo_icon:SetTexCoord (32/256 * (2-1), 32/256 * 2, 0, 1) --> solo é o primeiro icone
self.baseframe.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", self.baseframe.cabecalho.ball_point, "TOPRIGHT", -1, 1)
self.baseframe.cabecalho.atributo_icon:SetWidth (30)
self.baseframe.cabecalho.atributo_icon:SetHeight (30)
--]]
-- o icone é alterado pelo próprio plugin
end
end
+40 -4
View File
@@ -977,6 +977,26 @@ end
local UnitReaction = UnitReaction
function _detalhes:CloseEnemyDebuffsUptime()
local combat = _detalhes.tabela_vigente
local misc_container = combat [4]._ActorTable
for _, actor in _ipairs (misc_container) do
if (actor.boss_debuff) then
for index, target in _ipairs (actor.debuff_uptime_targets._ActorTable) do
if (target.actived and target.actived_at) then
target.uptime = target.uptime + _detalhes._tempo - target.actived_at
actor.debuff_uptime = actor.debuff_uptime + _detalhes._tempo - target.actived_at
target.actived = false
target.actived_at = nil
end
end
end
end
return
end
function _detalhes:CatchRaidDebuffUptime (in_or_out) -- "DEBUFF_UPTIME_IN"
if (in_or_out == "DEBUFF_UPTIME_OUT") then
@@ -988,7 +1008,7 @@ function _detalhes:CatchRaidDebuffUptime (in_or_out) -- "DEBUFF_UPTIME_IN"
for spellid, spell in _pairs (actor.debuff_uptime_spell_tables._ActorTable) do
if (spell.actived and spell.actived_at) then
spell.uptime = spell.uptime + _detalhes._tempo - spell.actived_at
actor.debuff_uptime = actor.debuff_uptime + _detalhes._tempo - spell.actived_at --> token = actor misc object
actor.debuff_uptime = actor.debuff_uptime + _detalhes._tempo - spell.actived_at
spell.actived = false
spell.actived_at = nil
end
@@ -1030,7 +1050,8 @@ function _detalhes:CatchRaidDebuffUptime (in_or_out) -- "DEBUFF_UPTIME_IN"
for raidIndex = 1, _GetNumGroupMembers()-1 do
local his_target = _UnitGUID ("party"..raidIndex.."target")
if (his_target and not checked [his_target] and UnitReaction ("party"..raidIndex.."target", "player") <= 4) then
local rect = UnitReaction ("party"..raidIndex.."target", "player")
if (his_target and not checked [his_target] and rect and rect <= 4) then
checked [his_target] = true
@@ -1049,8 +1070,8 @@ function _detalhes:CatchRaidDebuffUptime (in_or_out) -- "DEBUFF_UPTIME_IN"
end
local his_target = _UnitGUID ("playertarget")
if (his_target and not checked [his_target] and UnitReaction ("playertarget", "player") <= 4) then
local rect = UnitReaction ("playertarget", "player")
if (his_target and not checked [his_target] and rect and rect <= 4) then
for debuffIndex = 1, 40 do
local name, _, _, _, _, _, _, unitCaster, _, _, spellid = UnitDebuff ("playertarget", debuffIndex)
if (name and unitCaster) then
@@ -1862,6 +1883,10 @@ local sub_list = {"cc_break", "ress", "interrupt", "cooldowns_defensive", "dispe
--> cria e soma o valor do total
local alvo_shadow = shadow [container]:PegarCombatente (nil, alvo.nome, nil, true)
alvo_shadow.total = alvo_shadow.total + alvo.total
if (alvo.uptime) then --> boss debuff
alvo_shadow.uptime = alvo_shadow.uptime + alvo.uptime
alvo_shadow.activedamt = alvo_shadow.activedamt + alvo.activedamt
end
--> refresh no alvo
_detalhes.refresh:r_alvo_da_habilidade (alvo, shadow [container])
end
@@ -1916,6 +1941,9 @@ local sub_list = {"cc_break", "ress", "interrupt", "cooldowns_defensive", "dispe
--> soma o total (captura de dados)
shadow.debuff_uptime = shadow.debuff_uptime + actor.debuff_uptime
--> copia o container de alvos (captura de dados)
if (actor.boss_debuff) then
actor.debuff_uptime_targets.tipo = _detalhes.container_type.CONTAINER_ENEMYDEBUFFTARGET_CLASS
end
somar_alvos ("debuff_uptime_targets", shadow)
--> copia o container de habilidades (captura de dados)
somar_habilidades ("debuff_uptime_spell_tables", shadow)
@@ -2306,6 +2334,10 @@ atributo_misc.__add = function (tabela1, tabela2)
for index, alvo in _ipairs (tabela2.debuff_uptime_targets._ActorTable) do
local alvo_tabela1 = tabela1.debuff_uptime_targets:PegarCombatente (nil, alvo.nome, nil, true)
alvo_tabela1.total = alvo_tabela1.total + alvo.total
if (alvo.uptime) then --> boss debuff
alvo_tabela1.uptime = alvo_tabela1.uptime + alvo.uptime
alvo_tabela1.activedamt = alvo_tabela1.activedamt + alvo.activedamt
end
end
for spellid, habilidade in _pairs (tabela2.debuff_uptime_spell_tables._ActorTable) do
@@ -2557,6 +2589,10 @@ atributo_misc.__sub = function (tabela1, tabela2)
for index, alvo in _ipairs (tabela2.debuff_uptime_targets._ActorTable) do
local alvo_tabela1 = tabela1.debuff_uptime_targets:PegarCombatente (nil, alvo.nome, nil, true)
alvo_tabela1.total = alvo_tabela1.total - alvo.total
if (alvo.uptime) then --> boss debuff
alvo_tabela1.uptime = alvo_tabela1.uptime - alvo.uptime
alvo_tabela1.activedamt = alvo_tabela1.activedamt - alvo.activedamt
end
end
for spellid, habilidade in _pairs (tabela2.debuff_uptime_spell_tables._ActorTable) do
+14 -1
View File
@@ -19,6 +19,7 @@ local container_energy = _detalhes.container_type.CONTAINER_ENERGY_CLASS
local container_energy_target = _detalhes.container_type.CONTAINER_ENERGYTARGET_CLASS
local container_misc = _detalhes.container_type.CONTAINER_MISC_CLASS
local container_misc_target = _detalhes.container_type.CONTAINER_MISCTARGET_CLASS
local container_enemydebufftarget_target = _detalhes.container_type.CONTAINER_ENEMYDEBUFFTARGET_CLASS
--api locals
local _UnitClass = UnitClass
@@ -386,7 +387,16 @@ function container_combatentes:PegarCombatente (serial, nome, flag, criar, isOwn
if (shadow_objeto) then
novo_objeto.shadow = shadow_objeto
--shadow_objeto.flag = details_flag
end
elseif (self.tipo == container_enemydebufftarget_target) then
novo_objeto.uptime = 0
novo_objeto.actived = false
novo_objeto.activedamt = 0
if (shadow_objeto) then
novo_objeto.shadow = shadow_objeto
end
elseif (self.tipo == container_misc_target) then --> CONTAINER ALVOS DO MISC
@@ -447,6 +457,9 @@ function container_combatentes:FuncaoDeCriacao (tipo)
elseif (tipo == container_friendlyfire) then
return atributo_damage.FF_funcao_de_criacao
elseif (tipo == container_enemydebufftarget_target) then
return alvo_da_habilidade.NovaTabela
elseif (tipo == container_energy) then
return atributo_energy.NovaTabela
+1
View File
@@ -296,6 +296,7 @@
_detalhes:CatchRaidBuffUptime ("BUFF_UPTIME_OUT")
_detalhes:CatchRaidDebuffUptime ("DEBUFF_UPTIME_OUT")
--_detalhes:CloseEnemyDebuffsUptime()
--> pega a zona do jogador e vê se foi uma luta contra um Boss -- identifica se a luta foi com um boss
if (not _detalhes.tabela_vigente.is_boss) then
+141 -1
View File
@@ -86,7 +86,8 @@
local container_damage_target = _detalhes.container_type.CONTAINER_DAMAGETARGET_CLASS
local container_misc = _detalhes.container_type.CONTAINER_MISC_CLASS
local container_enemydebufftarget_target = _detalhes.container_type.CONTAINER_ENEMYDEBUFFTARGET_CLASS
local OBJECT_TYPE_PLAYER = 0x00000400
local OBJECT_TYPE_PETS = 0x00003000
local AFFILIATION_GROUP = 0x00000007
@@ -744,6 +745,9 @@
if (raid_members_cache [who_serial]) then
--> call record debuffs uptime
--[[not tail call, need to fix this]] parser:add_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, "DEBUFF_UPTIME_IN")
--elseif (raid_members_cache [alvo_serial] and _bit_band (who_flags, 0x00000040) ~= 0) then --> alvo é da raide e o caster é inimigo
--[[not tail call, need to fix this]] --parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, "DEBUFF_UPTIME_IN")
end
end
@@ -886,6 +890,8 @@
if (raid_members_cache [who_serial]) then
--> call record debuffs uptime
--[[not tail call, need to fix this]] parser:add_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, "DEBUFF_UPTIME_REFRESH")
--elseif (raid_members_cache [alvo_serial] and _bit_band (who_flags, 0x00000040) ~= 0) then --> alvo é da raide e o caster é inimigo
--[[not tail call, need to fix this]] --parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, "DEBUFF_UPTIME_REFRESH")
end
end
@@ -1007,6 +1013,8 @@
if (raid_members_cache [who_serial]) then
--> call record debuffs uptime
--[[not tail call, need to fix this]] parser:add_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, "DEBUFF_UPTIME_OUT")
--elseif (raid_members_cache [alvo_serial] and _bit_band (who_flags, 0x00000040) ~= 0) then --> alvo é da raide e o caster é inimigo
--[[not tail call, need to fix this]] --parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, "DEBUFF_UPTIME_OUT")
end
end
@@ -1051,6 +1059,138 @@
--> MISC search key: ~buffuptime ~buffsuptime |
-----------------------------------------------------------------------------------------------------------------------------------------
function parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, in_out)
if (not alvo_name) then
--> no target name, just quit
return
elseif (not who_name) then
--> no actor name, use spell name instead
who_name = "[*] "..spellname
end
------------------------------------------------------------------------------------------------
--> get actors
--> nome do debuff será usado para armazenar o nome do ator
local este_jogador = misc_cache [spellname]
if (not este_jogador) then --> pode ser um desconhecido ou um pet
este_jogador = _current_misc_container:PegarCombatente (who_serial, spellname, who_flags, true)
misc_cache [spellname] = este_jogador
end
local shadow = este_jogador.shadow
------------------------------------------------------------------------------------------------
--> build containers on the fly
if (not este_jogador.debuff_uptime) then
este_jogador.boss_debuff = true
este_jogador.owner = who_name
este_jogador.debuff_uptime = 0
este_jogador.debuff_uptime_spell_tables = container_habilidades:NovoContainer (container_misc)
este_jogador.debuff_uptime_targets = container_combatentes:NovoContainer (container_enemydebufftarget_target)
if (not shadow.debuff_uptime_targets) then
shadow.boss_debuff = true
shadow.owner = who_name
shadow.debuff_uptime = 0
shadow.debuff_uptime_spell_tables = container_habilidades:NovoContainer (container_misc)
shadow.debuff_uptime_targets = container_combatentes:NovoContainer (container_enemydebufftarget_target)
end
este_jogador.debuff_uptime_targets.shadow = shadow.debuff_uptime_targets
este_jogador.debuff_uptime_spell_tables.shadow = shadow.debuff_uptime_spell_tables
end
------------------------------------------------------------------------------------------------
--> add amount
--> update last event
este_jogador.last_event = _tempo
--> actor target
local este_alvo = este_jogador.debuff_uptime_targets._NameIndexTable [alvo_name]
if (not este_alvo) then
este_alvo = este_jogador.debuff_uptime_targets:PegarCombatente (alvo_serial, alvo_name, alvo_flags, true)
else
este_alvo = este_jogador.debuff_uptime_targets._ActorTable [este_alvo]
end
if (in_out == "DEBUFF_UPTIME_IN") then
este_alvo.actived = true
este_alvo.activedamt = este_alvo.activedamt + 1
if (este_alvo.actived_at and este_alvo.actived) then
este_alvo.uptime = este_alvo.uptime + _tempo - este_alvo.actived_at
este_jogador.debuff_uptime = este_jogador.debuff_uptime + _tempo - este_alvo.actived_at
end
este_alvo.actived_at = _tempo
--> shadows
este_alvo = este_alvo.shadow
este_jogador = este_jogador.shadow
este_alvo.actived = true
este_alvo.activedamt = este_alvo.activedamt + 1
if (este_alvo.actived_at and este_alvo.actived) then
este_alvo.uptime = este_alvo.uptime + _tempo - este_alvo.actived_at
este_jogador.debuff_uptime = este_jogador.debuff_uptime + _tempo - este_alvo.actived_at
end
este_alvo.actived_at = _tempo
elseif (in_out == "DEBUFF_UPTIME_REFRESH") then
if (este_alvo.actived_at and este_alvo.actived) then
este_alvo.uptime = este_alvo.uptime + _tempo - este_alvo.actived_at
este_jogador.debuff_uptime = este_jogador.debuff_uptime + _tempo - este_alvo.actived_at
end
este_alvo.actived_at = _tempo
este_alvo.actived = true
--> shadows
este_alvo = este_alvo.shadow
este_jogador = este_jogador.shadow
if (este_alvo.actived_at and este_alvo.actived) then
este_alvo.uptime = este_alvo.uptime + _tempo - este_alvo.actived_at
este_jogador.debuff_uptime = este_jogador.debuff_uptime + _tempo - este_alvo.actived_at
end
este_alvo.actived_at = _tempo
este_alvo.actived = true
elseif (in_out == "DEBUFF_UPTIME_OUT") then
if (este_alvo.actived_at and este_alvo.actived) then
este_alvo.uptime = este_alvo.uptime + _detalhes._tempo - este_alvo.actived_at
este_jogador.debuff_uptime = este_jogador.debuff_uptime + _tempo - este_alvo.actived_at --> token = actor misc object
end
este_alvo.activedamt = este_alvo.activedamt - 1
if (este_alvo.activedamt == 0) then
este_alvo.actived = false
este_alvo.actived_at = nil
else
este_alvo.actived_at = _tempo
end
--> shadows
este_alvo = este_alvo.shadow
este_jogador = este_jogador.shadow
if (este_alvo.actived_at and este_alvo.actived) then
este_alvo.uptime = este_alvo.uptime + _detalhes._tempo - este_alvo.actived_at
este_jogador.debuff_uptime = este_jogador.debuff_uptime + _tempo - este_alvo.actived_at --> token = actor misc object
end
este_alvo.activedamt = este_alvo.activedamt - 1
if (este_alvo.activedamt == 0) then
este_alvo.actived = false
este_alvo.actived_at = nil
else
este_alvo.actived_at = _tempo
end
end
end
function parser:add_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, in_out)
------------------------------------------------------------------------------------------------
--> early checks and fixes
+2 -1
View File
@@ -96,6 +96,7 @@ do
CONTAINER_ENERGY_CLASS = 7,
CONTAINER_ENERGYTARGET_CLASS = 8,
CONTAINER_MISC_CLASS = 9,
CONTAINER_MISCTARGET_CLASS = 10
CONTAINER_MISCTARGET_CLASS = 10,
CONTAINER_ENEMYDEBUFFTARGET_CLASS = 11
}
end
+22
View File
@@ -1351,12 +1351,34 @@ function _detalhes:OpenOptionsWindow (instance)
_detalhes.remove_realm_from_name = value
end
--------SKINS
g:NewLabel (window, _, "$parentSkinLabel", "skinLabel", "select skin")
window.skinLabel:SetPoint (510, -100)
--
local onSelectSkin = function (_, instance, skin_name)
instance:ChangeSkin (skin_name)
end
local buildSkinMenu = function()
local skinOptions = {}
for skin_name, skin_table in pairs (_detalhes.skins) do
skinOptions [#skinOptions+1] = {value = skin_name, label = skin_name, onclick = onSelectSkin, icon = "Interface\\GossipFrame\\TabardGossipIcon", desc = skin_table.desc}
end
return skinOptions
end
g:NewDropDown (window, _, "$parentSkinDropdown", "skinDropdown", 120, 20, buildSkinMenu, 1) -- func, default
window.skinDropdown:SetPoint ("left", window.skinLabel, "right", 2)
end
----------------------------------------------------------------------------------------
--> Show
_G.DetailsOptionsWindowSkinDropdown.MyObject:SetFixedParameter (instance)
_G.DetailsOptionsWindowSkinDropdown.MyObject:Select (instance.skin)
_G.DetailsOptionsWindowTextureDropdown.MyObject:SetFixedParameter (instance)
_G.DetailsOptionsWindowRowBackgroundTextureDropdown.MyObject:SetFixedParameter (instance)
_G.DetailsOptionsWindowTextureDropdown.MyObject:Select (instance.barrasInfo.textureName)
+246 -181
View File
@@ -35,7 +35,6 @@ local modo_grupo = _detalhes._detalhes_props["MODO_GROUP"]
local modo_all = _detalhes._detalhes_props["MODO_ALL"]
local gump_fundo_backdrop = {
--bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16,
bgFile = "Interface\\AddOns\\Details\\images\\background", tile = true, tileSize = 16,
insets = {left = 0, right = 0, top = 0, bottom = 0}}
@@ -52,6 +51,36 @@ function _detalhes:ScheduleUpdate (instancia)
instancia.showing [instancia.atributo].need_refresh = true
end
end
--> skins TCoords
-- 0.00048828125
local DEFAULT_SKIN = _detalhes.skin_path .. _detalhes.skins ["Default Skin"].file
local COORDS_LEFT_BALL = {0.15673828125, 0.28076171875, 0.08251953125, 0.20654296875} -- x1 160 y1 84 x2 288 y2 212
local COORDS_LEFT_CONNECTOR = {0.29541015625, 0.30224609375, 0.08251953125, 0.20654296875} --302 84 310 212
local COORDS_TOP_BACKGROUND = {0.15673828125, 0.65576171875, 0.22314453125, 0.34716796875} -- 160 228 672 356
local COORDS_RIGHT_BALL = {0.31591796875, 0.43994140625, 0.08251953125, 0.20654296875} --324 84 452 212
local COORDS_LEFT_SIDE_BAR = {0.76611328125, 0.82861328125, 0.00244140625, 0.50244140625} -- 784 2 849 515
local COORDS_RIGHT_SIDE_BAR = {0.70068359375, 0.76318359375, 0.00244140625, 0.50244140625} -- 717 2 782 515
local COORDS_SLIDER_TOP = {0.00146484375, 0.03173828125, 0.00244140625, 0.03271484375} -- 1 2 33 34
local COORDS_SLIDER_MIDDLE = {0.00146484375, 0.03173828125, 0.03955078125, 0.10107421875} -- 1 40 33 104
local COORDS_SLIDER_DOWN = {0.00146484375, 0.03173828125, 0.11767578125, 0.14794921875} -- 1 120 33 152
local COORDS_STRETCH = {0.00146484375, 0.03173828125, 0.21435546875, 0.22900390625} -- 1 219 33 235
local COORDS_RESIZE_RIGHT = {0.00146484375, 0.01611328125, 0.24560546875, 0.26025390625} -- 1 251 17 267
local COORDS_RESIZE_LEFT = {0.02001953125, 0.03271484375, 0.24560546875, 0.26025390625} -- 20 251 34 267
local COORDS_UNLOCK_BUTTON = {0.00146484375, 0.01611328125, 0.27197265625, 0.28662109375} -- 1 278 17 294
local COORDS_BOTTOM_BACKGROUND = {0.15673828125, 0.65576171875, 0.35400390625, 0.47802734375} -- 160 362 672 490
local COORDS_PIN_LEFT = {0.00146484375, 0.03173828125, 0.30126953125, 0.33154296875} -- 1 308 33 340
local COORDS_PIN_RIGHT = {0.03564453125, 0.06591796875, 0.30126953125, 0.33154296875} -- 36 308 68 340
-- icones: 365 = 0.35693359375 // 397 = 0.38720703125
function _detalhes:AtualizarScrollBar (x)
@@ -260,6 +289,9 @@ local function resize_fade (instancia, modo)
if (_string_lower (modo) == "out") then
for _, instancia_id in _pairs (instancia.snap) do
if (instancia_id) then
instancia.botao_separar.texture:Show()
instancia.botao_separar.texture:SetTexCoord (unpack (COORDS_UNLOCK_BUTTON))
gump:Fade (instancia.botao_separar.texture, modo, 1.0)
gump:Fade (instancia.botao_separar, modo, 1.0)
break
end
@@ -349,7 +381,7 @@ local movement_onupdate = function (self, elapsed)
tempo_movendo = 1
else
BaseFrame:SetScript ("OnUpdate", nil)
self:SetScript ("OnUpdate", nil)
tempo_movendo = 1
end
@@ -1028,6 +1060,7 @@ local function resize_scripts (resizer, instancia, ScrollBar, side, baseframe)
resizer:SetScript ("OnEnter", function(self)
if (instancia.modo ~= _detalhes._detalhes_props["MODO_ALONE"] and not instancia.baseframe.isLocked) then
gump:Fade (self, "out", 0.1)
self.texture:SetBlendMode ("ADD")
self.mostrando = true
_G.GameCooltip:Reset()
@@ -1039,12 +1072,13 @@ local function resize_scripts (resizer, instancia, ScrollBar, side, baseframe)
end
end)
resizer:SetScript ("OnLeave", function(self)
if (not self.movendo) then
gump:Fade (self, -1, 3.0)
end
self.texture:SetBlendMode ("BLEND")
_detalhes.popup:ShowMe (false)
self.mostrando = false
@@ -1722,35 +1756,39 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
SwitchButton:SetFrameLevel (BackGroundDisplay:GetFrameLevel()+1)
local ScrollBar = _CreateFrame ("Slider", "Details_ScrollBar"..ID, BackGroundDisplay) --> scroll
--ScrollBar:SetFrameLevel (BaseFrame:GetFrameLevel()+5)
-- textura da scroll bar
-------------------------------------------------------------------------------------------------------------------------------------------------
--> scroll image-node up
BaseFrame.scroll_up = BackGroundDisplay:CreateTexture (nil, "BACKGROUND")
BaseFrame.scroll_up:SetPoint ("TOPLEFT", BackGroundDisplay, "TOPRIGHT", 0, 0)
--BaseFrame.scroll_up:SetTexture ("Interface\\AddOns\\Details\\images\\scroll_up")
BaseFrame.scroll_up:SetTexture ("Interface\\AddOns\\Details\\images\\scrollbar")
BaseFrame.scroll_up:SetTexture (DEFAULT_SKIN)
BaseFrame.scroll_up:SetTexCoord (unpack (COORDS_SLIDER_TOP))
BaseFrame.scroll_up:SetWidth (32)
BaseFrame.scroll_up:SetHeight (32)
BaseFrame.scroll_up:SetTexCoord (0, 1, 0, 0.25)
--BaseFrame.scroll_up:SetTexture ("Interface\\AddOns\\Details\\images\\scrollbar")
--BaseFrame.scroll_up:SetTexCoord (0, 1, 0, 0.25)
--> scroll image-node down
BaseFrame.scroll_down = BackGroundDisplay:CreateTexture (nil, "BACKGROUND")
BaseFrame.scroll_down:SetPoint ("BOTTOMLEFT", BackGroundDisplay, "BOTTOMRIGHT", 0, 0)
BaseFrame.scroll_down:SetTexture ("Interface\\AddOns\\Details\\images\\scrollbar")
BaseFrame.scroll_down:SetTexture (DEFAULT_SKIN)
BaseFrame.scroll_down:SetTexCoord (unpack (COORDS_SLIDER_DOWN))
BaseFrame.scroll_down:SetWidth (32)
BaseFrame.scroll_down:SetHeight (32)
BaseFrame.scroll_down:SetTexCoord (0, 1, 0.751, 1)
--BaseFrame.scroll_down:SetTexture ("Interface\\AddOns\\Details\\images\\scrollbar")
--BaseFrame.scroll_down:SetTexCoord (0, 1, 0.751, 1)
--> scroll image-node middle
BaseFrame.scroll_middle = BackGroundDisplay:CreateTexture (nil, "BACKGROUND")
BaseFrame.scroll_middle:SetPoint ("TOP", BaseFrame.scroll_up, "BOTTOM", 0, 8)
BaseFrame.scroll_middle:SetPoint ("BOTTOM", BaseFrame.scroll_down, "TOP", 0, -11)
BaseFrame.scroll_middle:SetTexture ("Interface\\AddOns\\Details\\images\\scrollbar")
BaseFrame.scroll_middle:SetTexture (DEFAULT_SKIN)
BaseFrame.scroll_middle:SetTexCoord (unpack (COORDS_SLIDER_MIDDLE))
BaseFrame.scroll_middle:SetWidth (32)
BaseFrame.scroll_middle:SetHeight (64)
BaseFrame.scroll_middle:SetTexCoord (0, 1, 0.251, 0.75)
--BaseFrame.scroll_middle:SetTexCoord (0, 1, 0.251, 0.75)
--BaseFrame.scroll_middle:SetTexture ("Interface\\AddOns\\Details\\images\\scrollbar")
--> três botões scroll up, down, window strech
BaseFrame.button_up = _CreateFrame ("Button", nil, BackGroundDisplay)
@@ -1761,11 +1799,16 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
BaseFrame.button_stretch:SetPoint ("RIGHT", BaseFrame, "RIGHT", -27, 0)
BaseFrame.button_stretch:SetFrameStrata ("FULLSCREEN")
local stretch_texture = BaseFrame.button_stretch:CreateTexture (nil, "overlay")
stretch_texture:SetTexture (DEFAULT_SKIN)
stretch_texture:SetTexCoord (unpack (COORDS_STRETCH))
stretch_texture:SetWidth (32)
stretch_texture:SetHeight (16)
stretch_texture:SetAllPoints (BaseFrame.button_stretch)
BaseFrame.button_stretch.texture = stretch_texture
BaseFrame.button_stretch:SetWidth (32)
BaseFrame.button_stretch:SetHeight (16)
BaseFrame.button_stretch:SetNormalTexture ("Interface\\AddOns\\Details\\images\\grab")
BaseFrame.button_stretch:SetPushedTexture ("Interface\\AddOns\\Details\\images\\grab_over")
BaseFrame.button_stretch:SetDisabledTexture ("Interface\\AddOns\\Details\\images\\grab")
gump:Fade (BaseFrame.button_stretch, -1)
BaseFrame.button_stretch:Show()
@@ -1832,7 +1875,6 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
BaseFrame:SetBackdrop (gump_fundo_backdrop)
BaseFrame:SetBackdropColor (instancia.bg_r, instancia.bg_g, instancia.bg_b, instancia.bg_alpha)
--BaseFrame:SetBackdropColor (0, 0, 0, 1)
-- fundo
-------------------------------------------------------------------------------------------------------------------------------------------------
@@ -1879,8 +1921,15 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
------------------------------------------------------------------------------------------------------------------------------------------------------------
BaseFrame.resize_direita = _CreateFrame ("Button", "Details_Resize_Direita"..ID, BaseFrame)
BaseFrame.resize_direita:SetNormalTexture ("Interface\\AddOns\\Details\\images\\ResizeGripD")
BaseFrame.resize_direita:SetHighlightTexture ("Interface\\AddOns\\Details\\images\\ResizeGripD")
local resize_direita_texture = BaseFrame.resize_direita:CreateTexture (nil, "overlay")
resize_direita_texture:SetWidth (16)
resize_direita_texture:SetHeight (16)
resize_direita_texture:SetTexture (DEFAULT_SKIN)
resize_direita_texture:SetTexCoord (unpack (COORDS_RESIZE_RIGHT))
resize_direita_texture:SetAllPoints (BaseFrame.resize_direita)
BaseFrame.resize_direita.texture = resize_direita_texture
BaseFrame.resize_direita:SetWidth (16)
BaseFrame.resize_direita:SetHeight (16)
BaseFrame.resize_direita:SetPoint ("BOTTOMRIGHT", BaseFrame, "BOTTOMRIGHT", 0, 0)
@@ -1918,8 +1967,17 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
--]]
BaseFrame.resize_esquerda = _CreateFrame ("Button", "Details_Resize_Esquerda"..ID, BaseFrame)
BaseFrame.resize_esquerda:SetNormalTexture ("Interface\\AddOns\\Details\\images\\ResizeGripL")
BaseFrame.resize_esquerda:SetHighlightTexture ("Interface\\AddOns\\Details\\images\\ResizeGripL")
local resize_esquerda_texture = BaseFrame.resize_esquerda:CreateTexture (nil, "overlay")
resize_esquerda_texture:SetWidth (16)
resize_esquerda_texture:SetHeight (16)
resize_esquerda_texture:SetTexture (DEFAULT_SKIN)
resize_esquerda_texture:SetTexCoord (unpack (COORDS_RESIZE_LEFT))
resize_esquerda_texture:SetAllPoints (BaseFrame.resize_esquerda)
BaseFrame.resize_esquerda.texture = resize_esquerda_texture
--BaseFrame.resize_esquerda:SetNormalTexture ("Interface\\AddOns\\Details\\images\\ResizeGripL")
--BaseFrame.resize_esquerda:SetHighlightTexture ("Interface\\AddOns\\Details\\images\\ResizeGripL")
BaseFrame.resize_esquerda:SetWidth (16)
BaseFrame.resize_esquerda:SetHeight (16)
BaseFrame.resize_esquerda:SetPoint ("BOTTOMLEFT", BaseFrame, "BOTTOMLEFT", 0, 0)
@@ -1969,18 +2027,24 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
--> barra borda esquerda lateral
BaseFrame.barra_esquerda = BaseFrame.cabecalho.fechar:CreateTexture (nil, "ARTWORK")
BaseFrame.barra_esquerda:SetTexture ("Interface\\AddOns\\Details\\images\\bar_main_leftright")
BaseFrame.barra_esquerda:SetTexCoord (0.5, 1, 0, 1)
BaseFrame.barra_esquerda:SetWidth (16)
BaseFrame.barra_esquerda:SetPoint ("TOPLEFT", BaseFrame, "TOPLEFT", -8, 0)
BaseFrame.barra_esquerda:SetPoint ("BOTTOMLEFT", BaseFrame, "BOTTOMLEFT", -8, -14)
--BaseFrame.barra_esquerda:SetTexture ("Interface\\AddOns\\Details\\images\\bar_main_leftright")
--BaseFrame.barra_esquerda:SetTexCoord (0.5, 1, 0, 1)
BaseFrame.barra_esquerda:SetTexture (DEFAULT_SKIN)
BaseFrame.barra_esquerda:SetTexCoord (unpack (COORDS_LEFT_SIDE_BAR))
BaseFrame.barra_esquerda:SetWidth (64)
BaseFrame.barra_esquerda:SetHeight (512)
BaseFrame.barra_esquerda:SetPoint ("TOPLEFT", BaseFrame, "TOPLEFT", -56, 0)
BaseFrame.barra_esquerda:SetPoint ("BOTTOMLEFT", BaseFrame, "BOTTOMLEFT", -56, -14)
BaseFrame.barra_direita = BaseFrame.cabecalho.fechar:CreateTexture (nil, "ARTWORK")
BaseFrame.barra_direita:SetTexture ("Interface\\AddOns\\Details\\images\\bar_main_leftright")
BaseFrame.barra_direita:SetTexCoord (0, 0.5, 0, 1)
BaseFrame.barra_direita:SetWidth (16)
BaseFrame.barra_direita:SetPoint ("TOPRIGHT", BaseFrame, "TOPRIGHT", 8, 0)
BaseFrame.barra_direita:SetPoint ("BOTTOMRIGHT", BaseFrame, "BOTTOMRIGHT", 8, -14)
--BaseFrame.barra_direita:SetTexture ("Interface\\AddOns\\Details\\images\\bar_main_leftright")
--BaseFrame.barra_direita:SetTexCoord (0, 0.5, 0, 1)
BaseFrame.barra_direita:SetTexture (DEFAULT_SKIN)
BaseFrame.barra_direita:SetTexCoord (unpack (COORDS_RIGHT_SIDE_BAR))
BaseFrame.barra_direita:SetWidth (64)
BaseFrame.barra_direita:SetHeight (512)
BaseFrame.barra_direita:SetPoint ("TOPRIGHT", BaseFrame, "TOPRIGHT", 56, 0)
BaseFrame.barra_direita:SetPoint ("BOTTOMRIGHT", BaseFrame, "BOTTOMRIGHT", 56, -14)
--chama função para criar o rodapé
@@ -1991,11 +2055,17 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
------------------------------------------------------------------------------------------------------------------------------------------------------------
-- BETA -- botão de separar as instâncias que estão agrupadas
instancia.botao_separar = gump:NewDetailsButton (BaseFrame.cabecalho.fechar, _, instancia, instancia.Desagrupar, instancia, -1, 13, 13,
"Interface\\AddOns\\Details\\images\\cadeado", "Interface\\AddOns\\Details\\images\\cadeado", "Interface\\AddOns\\Details\\images\\cadeado", "Interface\\AddOns\\Details\\images\\cadeado")
instancia.botao_separar = gump:NewDetailsButton (BaseFrame.cabecalho.fechar, _, instancia, instancia.Desagrupar, instancia, -1, 13, 13)
instancia.botao_separar:SetPoint ("BOTTOM", BaseFrame.resize_direita, "TOP", -1, 0)
instancia.botao_separar:SetFrameLevel (BaseFrame:GetFrameLevel() + 5)
local cadeado_texture = instancia.botao_separar:CreateTexture (nil, "overlay")
cadeado_texture:SetTexture (DEFAULT_SKIN)
cadeado_texture:SetTexCoord (unpack (COORDS_UNLOCK_BUTTON))
cadeado_texture:SetAllPoints (instancia.botao_separar)
instancia.botao_separar.texture = cadeado_texture
BaseFrame.unlock_texture = cadeado_texture
gump:Fade (instancia.botao_separar, "in", 3.0)
resize_scripts (BaseFrame.resize_direita, instancia, ScrollBar, ">", BaseFrame)
@@ -2015,7 +2085,8 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
instancia.h_cima:SetTexture ("Interface\\AddOns\\Details\\images\\highlight_updown")
instancia.h_cima:SetTexCoord (0, 1, 0.5, 1)
instancia.h_cima:SetPoint ("topleft", BaseFrame.cabecalho.top_bg, "bottomleft", -10, 37)
instancia.h_cima:SetPoint ("topright", BaseFrame.cabecalho.ball_r, "bottomright", -33, 37)
--instancia.h_cima:SetPoint ("topright", BaseFrame.cabecalho.ball_r, "bottomright", -33, 37)
instancia.h_cima:SetPoint ("topright", BaseFrame.cabecalho.ball_r, "bottomright", -97, 37)
--instancia.h_cima:Hide()
instancia.h_cima = fcima
--
@@ -2042,8 +2113,8 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
instancia.h_esquerda = fesquerda:CreateTexture (nil, "OVERLAY")
instancia.h_esquerda:SetTexture ("Interface\\AddOns\\Details\\images\\highlight_leftright")
instancia.h_esquerda:SetTexCoord (0.5, 1, 0, 1)
instancia.h_esquerda:SetPoint ("topleft", BaseFrame.barra_esquerda, "topleft", -8, 0)
instancia.h_esquerda:SetPoint ("bottomleft", BaseFrame.barra_esquerda, "bottomleft", -8, 0)
instancia.h_esquerda:SetPoint ("topleft", BaseFrame.barra_esquerda, "topleft", 40, 0)
instancia.h_esquerda:SetPoint ("bottomleft", BaseFrame.barra_esquerda, "bottomleft", 40, 0)
--instancia.h_esquerda:Hide()
instancia.h_esquerda = fesquerda
--
@@ -2077,99 +2148,10 @@ function gump:CriaJanelaPrincipal (ID, instancia, criando)
instancia.locs = CProps
end
--> background shadow color debug
--[[
local white_frame = _CreateFrame ("Frame", "DetailsWhiteFrame", _UIParent)
white_frame:SetFrameStrata ("LOW")
white_frame:SetFrameLevel (0)
white_frame:SetSize (400, 250)
white_frame:SetPoint ("topleft", BaseFrame.cabecalho.ball, "topleft")
white_frame:SetBackdrop({
bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
tile = true, tileSize = 16,
insets = {left = 1, right = 1, top = 0, bottom = 1},})
white_frame:SetBackdropColor (255/255, 255/255, 255/255, 1)
local white_texture = white_frame:CreateTexture (nil, "artwork")
white_texture:SetAllPoints (white_frame)
white_texture:SetTexture (1, 1, 1, 1)
white_frame:Show()
--]]
return BaseFrame, BackGroundFrame, BackGroundDisplay, ScrollBar
end
function gump:CreateSplitBars (barra, instancia)
barra.split = {}
local size = barra:GetHeight()
--> barra superior
barra.split.barra = _CreateFrame ("StatusBar", nil, barra)
barra.split.barra:SetFrameLevel (barra.statusbar:GetFrameLevel()+2)
barra.split.barra:SetAllPoints (barra)
barra.split.barra:SetMinMaxValues (0, 100)
barra.split.barra:SetValue (100)
barra.split.barra.textura = barra.split.barra:CreateTexture (nil, "ARTWORK")
barra.split.barra.textura:SetHorizTile (false)
barra.split.barra.textura:SetVertTile (false)
barra.split.barra.textura:SetTexture ([[Interface\PaperDollInfoFrame\UI-Character-Skills-Bar]])
barra.split.barra:SetStatusBarColor (1, 1, 1, 1)
barra.split.barra:SetStatusBarTexture (barra.split.barra.textura)
barra.split.barra.icone = barra.split.barra:CreateTexture (nil, "OVERLAY")
barra.split.barra.icone:SetPoint ("left", barra.split.barra, "left")
barra.split.barra.icone:SetHeight (size)
barra.split.barra.icone:SetWidth (size)
barra.split.barra.icone:SetTexture ("Interface\\AddOns\\Details\\images\\classes_small")
barra.split.barra.icone:SetTexCoord (.75, 1, .75, 1)
barra.split.barra.texto = barra.split.barra:CreateFontString (nil, "OVERLAY", "GameFontHighlight")
barra.split.barra.texto:SetPoint ("left", barra.split.barra.icone, "right", 3, 0)
barra.split.barra.texto:SetJustifyH ("left")
barra.split.barra.texto:SetNonSpaceWrap (true)
instancia:SetFontSize (barra.split.barra.texto, size*0.75)
_detalhes.font_pool:add (barra.split.barra.texto)
--> barra inferior
barra.split.background = _CreateFrame ("StatusBar", nil, barra)
barra.split.background:SetAllPoints (barra)
barra.split.background:SetFrameLevel (barra.statusbar:GetFrameLevel()+1)
barra.split.background:SetMinMaxValues (0, 100)
barra.split.background:SetValue (100)
barra.split.background.textura = barra.split.background:CreateTexture (nil, "ARTWORK")
barra.split.background.textura:SetHorizTile (false)
barra.split.background.textura:SetVertTile (false)
barra.split.background.textura:SetTexture ([[Interface\PaperDollInfoFrame\UI-Character-Skills-Bar]])
barra.split.background:SetStatusBarColor (1, 1, 1, 1)
barra.split.background:SetStatusBarTexture (barra.split.background.textura)
barra.split.background.icone = barra.split.barra:CreateTexture (nil, "OVERLAY")
barra.split.background.icone:SetPoint ("right", barra.split.background, "right")
barra.split.background.icone:SetHeight (size)
barra.split.background.icone:SetWidth (size)
barra.split.background.icone:SetTexture ("Interface\\AddOns\\Details\\images\\classes_small")
barra.split.background.icone:SetTexCoord (.75, 1, .75, 1)
barra.split.background.texto = barra.split.barra:CreateFontString (nil, "OVERLAY", "GameFontHighlight")
barra.split.background.texto:SetPoint ("right", barra.split.background.icone, "left", -3, 0)
barra.split.background.texto:SetJustifyH ("right")
barra.split.background.texto:SetNonSpaceWrap (true)
instancia:SetFontSize (barra.split.background.texto, size*0.75)
_detalhes.font_pool:add (barra.split.background.texto)
barra.split.div = barra.split.barra:CreateTexture (nil, "OVERLAY")
barra.split.div:SetTexture ("Interface\\AddOns\\Details\\images\\bar_detalhes2_end")
barra.split.div:SetHeight (size)
barra.split.div:SetWidth (10)
end
--> Alias
function gump:NewRow (instancia, index)
return gump:CriaNovaBarra (instancia, index)
@@ -2185,6 +2167,7 @@ function gump:CriaNovaBarra (instancia, index)
y = y*-1
esta_barra:SetPoint ("TOPLEFT", BaseFrame, "TOPLEFT", instancia.barrasInfo.espaco.esquerda, y)
esta_barra:SetHeight (instancia.barrasInfo.altura) --> altura determinada pela instância
esta_barra:SetWidth (BaseFrame:GetWidth()+instancia.barrasInfo.espaco.direita)
@@ -2441,6 +2424,8 @@ function _detalhes:InstanceColor (red, green, blue, alpha)
red, green, blue, alpha = gump:ParseColors (red)
end
local skin = _detalhes.skins [self.skin]
self.baseframe.rodape.esquerdo:SetVertexColor (red, green, blue)
self.baseframe.rodape.esquerdo:SetAlpha (alpha)
self.baseframe.rodape.direita:SetVertexColor (red, green, blue)
@@ -2451,7 +2436,9 @@ function _detalhes:InstanceColor (red, green, blue, alpha)
self.baseframe.cabecalho.ball_r:SetVertexColor (red, green, blue)
self.baseframe.cabecalho.ball_r:SetAlpha (alpha)
self.baseframe.cabecalho.ball:SetVertexColor (red, green, blue)
self.baseframe.cabecalho.ball:SetAlpha (alpha)
if (skin.can_change_alpha_head) then
self.baseframe.cabecalho.ball:SetAlpha (alpha)
end
self.baseframe.cabecalho.emenda:SetVertexColor (red, green, blue)
self.baseframe.cabecalho.emenda:SetAlpha (alpha)
self.baseframe.cabecalho.top_bg:SetVertexColor (red, green, blue)
@@ -2471,41 +2458,42 @@ function gump:CriaRodape (BaseFrame, instancia)
--> esquerdo
BaseFrame.rodape.esquerdo = BaseFrame.cabecalho.fechar:CreateTexture (nil, "OVERLAY")
BaseFrame.rodape.esquerdo:SetPoint ("TOPRIGHT", BaseFrame, "BOTTOMLEFT", 48, 0)
BaseFrame.rodape.esquerdo:SetTexture ("Interface\\AddOns\\Details\\images\\bar_down_left")
BaseFrame.rodape.esquerdo:SetPoint ("TOPRIGHT", BaseFrame, "BOTTOMLEFT", 16, 0)
BaseFrame.rodape.esquerdo:SetTexture (DEFAULT_SKIN)
BaseFrame.rodape.esquerdo:SetTexCoord (unpack (COORDS_PIN_LEFT))
BaseFrame.rodape.esquerdo:SetWidth (32)
BaseFrame.rodape.esquerdo:SetHeight (32)
--BaseFrame.rodape.esquerdo:SetTexture ("Interface\\AddOns\\Details\\images\\bar_down_left")
--> direito
BaseFrame.rodape.direita = BaseFrame.cabecalho.fechar:CreateTexture (nil, "OVERLAY")
BaseFrame.rodape.direita:SetPoint ("TOPLEFT", BaseFrame, "BOTTOMRIGHT", -16, 0)
BaseFrame.rodape.direita:SetTexture ("Interface\\AddOns\\Details\\images\\bar_down_right")
BaseFrame.rodape.direita:SetTexture (DEFAULT_SKIN)
BaseFrame.rodape.direita:SetTexCoord (unpack (COORDS_PIN_RIGHT))
BaseFrame.rodape.direita:SetWidth (32)
BaseFrame.rodape.direita:SetHeight (32)
--BaseFrame.rodape.direita:SetTexture ("Interface\\AddOns\\Details\\images\\bar_down_right")
--> barra centro
BaseFrame.rodape.top_bg = BaseFrame:CreateTexture (nil, "BACKGROUND")
BaseFrame.rodape.top_bg:SetTexture ("Interface\\AddOns\\Details\\images\\bar_topdown_center")
BaseFrame.rodape.top_bg:SetTexCoord (0, 1, 0.5, 1)
BaseFrame.rodape.top_bg:SetHeight (32)
BaseFrame.rodape.top_bg:SetPoint ("LEFT", BaseFrame.rodape.esquerdo, "RIGHT", -48, 0)
BaseFrame.rodape.top_bg:SetPoint ("RIGHT", BaseFrame.rodape.direita, "LEFT", 16, 0)
BaseFrame.rodape.top_bg:SetTexture (DEFAULT_SKIN)
BaseFrame.rodape.top_bg:SetTexCoord (unpack (COORDS_BOTTOM_BACKGROUND))
BaseFrame.rodape.top_bg:SetWidth (512)
BaseFrame.rodape.top_bg:SetHeight (128)
BaseFrame.rodape.top_bg:SetPoint ("LEFT", BaseFrame.rodape.esquerdo, "RIGHT", -16, -48)
BaseFrame.rodape.top_bg:SetPoint ("RIGHT", BaseFrame.rodape.direita, "LEFT", 16, -48)
local StatusBarLeftAnchor = CreateFrame ("frame", nil, BaseFrame)
StatusBarLeftAnchor:SetPoint ("left", BaseFrame.rodape.top_bg, "left", 5, 10)
StatusBarLeftAnchor:SetPoint ("left", BaseFrame.rodape.top_bg, "left", 5, 57)
StatusBarLeftAnchor:SetWidth (1)
StatusBarLeftAnchor:SetHeight (1)
BaseFrame.rodape.StatusBarLeftAnchor = StatusBarLeftAnchor
local StatusBarCenterAnchor = CreateFrame ("frame", nil, BaseFrame)
StatusBarCenterAnchor:SetPoint ("center", BaseFrame.rodape.top_bg, "center", 0, 10)
StatusBarCenterAnchor:SetPoint ("center", BaseFrame.rodape.top_bg, "center", 0, 57)
StatusBarCenterAnchor:SetWidth (1)
StatusBarCenterAnchor:SetHeight (1)
--[[ --create a line showing the center point of window
local centerLineGuide = StatusBarCenterAnchor:CreateTexture(nil,"overlay")
centerLineGuide:SetWidth (1)
centerLineGuide:SetHeight (20)
centerLineGuide:SetPoint ("center", StatusBarCenterAnchor, "center")
centerLineGuide:SetTexture (1, 1, 1, 1)
--]]
BaseFrame.rodape.StatusBarCenterAnchor = StatusBarCenterAnchor
--> frame invisível
@@ -2594,7 +2582,7 @@ function _detalhes:DefaultIcons (_mode, _segment, _attributes, _report)
_thisIcon:SetPoint ("TOPLEFT", self.consolidateFrame, "TOPLEFT", -3, -5)
_thisIcon:SetParent (self.consolidateFrame)
else
_thisIcon:SetPoint ("BOTTOMLEFT", baseToolbar.ball, "BOTTOMRIGHT", 0 + anchors[index][1], 2 + anchors[index][2])
_thisIcon:SetPoint ("BOTTOMLEFT", baseToolbar.ball, "BOTTOMRIGHT", 6 + anchors[index][1], 2 + anchors[index][2])
_thisIcon:SetParent (self.baseframe)
_thisIcon:SetFrameLevel (self.baseframe.UPFrame:GetFrameLevel()+1)
end
@@ -2919,7 +2907,78 @@ local build_segment_list = function (self, elapsed)
end
local botao_fechar_on_enter = function (self)
gump:Fade (self:GetParent().button_stretch, "alpha", 0.3)
end
local botao_fechar_on_leave = function (self)
gump:Fade (self:GetParent().button_stretch, -1)
end
function _detalhes:ChangeSkin (skin_name)
if (not skin_name) then
skin_name = self.skin
end
local this_skin = _detalhes.skins [skin_name]
if (not this_skin) then
return false --> throw a msg
end
self.skin = skin_name
local skin_file = _detalhes.skin_path .. this_skin.file
self.baseframe.cabecalho.ball:SetTexture (skin_file) --> bola esquerda
self.baseframe.cabecalho.emenda:SetTexture (skin_file) --> emenda que liga a bola a textura do centro
self.baseframe.cabecalho.ball_r:SetTexture (skin_file) --> bola direita onde fica o botão de fechar
self.baseframe.cabecalho.top_bg:SetTexture (skin_file) --> top background
self.baseframe.barra_esquerda:SetTexture (skin_file) --> barra lateral
self.baseframe.barra_direita:SetTexture (skin_file) --> barra lateral
self.baseframe.scroll_up:SetTexture (skin_file) --> scrollbar parte de cima
self.baseframe.scroll_down:SetTexture (skin_file) --> scrollbar parte de baixo
self.baseframe.scroll_middle:SetTexture (skin_file) --> scrollbar parte do meio
self.baseframe.rodape.top_bg:SetTexture (skin_file) --> rodape top background
self.baseframe.rodape.esquerdo:SetTexture (skin_file) --> rodape esquerdo
self.baseframe.rodape.direita:SetTexture (skin_file) --> rodape direito
self.baseframe.button_stretch.texture:SetTexture (skin_file) --> botão de esticar a janela
self.baseframe.resize_direita.texture:SetTexture (skin_file) --> botão de redimencionar da direita
self.baseframe.resize_esquerda.texture:SetTexture (skin_file) --> botão de redimencionar da esquerda
self.baseframe.unlock_texture:SetTexture (skin_file) --> cadeado
if (self.modo == 1 or self.modo == 4 or self.atributo == 5) then -- alone e raid
local icon_anchor = this_skin.icon_anchor_plugins
self.baseframe.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", self.baseframe.cabecalho.ball_point, "TOPRIGHT", icon_anchor[1], icon_anchor[2])
if (self.modo == 1) then
local plugin_index = _detalhes.SoloTables.Mode
if (plugin_index > 0 and _detalhes.SoloTables.Menu [plugin_index]) then
self:ChangeIcon (_detalhes.SoloTables.Menu [plugin_index] [2])
end
elseif (self.modo == 4) then
local plugin_index = _detalhes.RaidTables.Mode
if (plugin_index and _detalhes.RaidTables.Menu [plugin_index]) then
self:ChangeIcon (_detalhes.RaidTables.Menu [plugin_index] [2])
end
end
else
local icon_anchor = this_skin.icon_anchor_main --> ancora do icone do canto direito superior
self.baseframe.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", self.baseframe.cabecalho.ball_point, "TOPRIGHT", icon_anchor[1], icon_anchor[2])
self:ChangeIcon()
end
if (not this_skin.can_change_alpha_head) then
self.baseframe.cabecalho.ball:SetAlpha (100)
else
self.baseframe.cabecalho.ball:SetAlpha (self.color[4])
end
end
function gump:CriaCabecalho (BaseFrame, instancia)
@@ -2932,77 +2991,83 @@ function gump:CriaCabecalho (BaseFrame, instancia)
BaseFrame.cabecalho.fechar = _CreateFrame ("Button", nil, BaseFrame, "UIPanelCloseButton")
BaseFrame.cabecalho.fechar:SetWidth (32)
BaseFrame.cabecalho.fechar:SetHeight (32)
BaseFrame.cabecalho.fechar:SetPoint ("BOTTOMRIGHT", BaseFrame, "TOPRIGHT", 5, -6)
BaseFrame.cabecalho.fechar:SetFrameLevel (5) --> altura mais alta que os demais frames
BaseFrame.cabecalho.fechar:SetPoint ("BOTTOMRIGHT", BaseFrame, "TOPRIGHT", 5, -6) --> seta o ponto dele fixando no base frame
BaseFrame.cabecalho.fechar:SetScript ("OnClick", function()
BaseFrame.cabecalho.fechar:Disable()
instancia:DesativarInstancia()
if (_detalhes.opened_windows == 0) then --> não há mais instâncias abertas, então manda msg alertando...
--> não há mais instâncias abertas, então manda msg alertando
if (_detalhes.opened_windows == 0) then
print (Loc ["STRING_CLOSEALL"])
end
end)
BaseFrame.cabecalho.fechar:SetText ("x")
BaseFrame.cabecalho.fechar:SetScript ("OnEnter", function (self)
gump:Fade (BaseFrame.button_stretch, "alpha", 0.3)
end)
BaseFrame.cabecalho.fechar:SetScript ("OnLeave", function (self)
gump:Fade (BaseFrame.button_stretch, -1)
end)
BaseFrame.cabecalho.fechar:SetFrameLevel (5)
BaseFrame.cabecalho.fechar:SetScript ("OnEnter", botao_fechar_on_enter)
BaseFrame.cabecalho.fechar:SetScript ("OnLeave", botao_fechar_on_leave)
--> bola do canto esquedo superior
--> bola do canto esquedo superior --> primeiro criar a armação para apoiar as texturas
BaseFrame.cabecalho.ball_point = BaseFrame.cabecalho.fechar:CreateTexture (nil, "OVERLAY")
BaseFrame.cabecalho.ball_point:SetPoint ("BOTTOMLEFT", BaseFrame, "TOPLEFT", -37, 0)
BaseFrame.cabecalho.ball_point:SetWidth (64)
BaseFrame.cabecalho.ball_point:SetHeight (32)
--BaseFrame.cabecalho.ball_point:SetTexture ("Interface\\AddOns\\Details\\images\\ball_left")
--> icone do atributo que esta sendo mostrado
--> icone do atributo
BaseFrame.cabecalho.atributo_icon = _detalhes.listener:CreateTexture (nil, "ARTWORK")
BaseFrame.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", BaseFrame.cabecalho.ball_point, "TOPRIGHT", -1, 1)
BaseFrame.cabecalho.atributo_icon:SetTexture ("Interface\\AddOns\\Details\\images\\icon_mainwindow")
local icon_anchor = _detalhes.skins ["Default Skin"].icon_anchor_main
BaseFrame.cabecalho.atributo_icon:SetPoint ("TOPRIGHT", BaseFrame.cabecalho.ball_point, "TOPRIGHT", icon_anchor[1], icon_anchor[2])
--BaseFrame.cabecalho.atributo_icon:SetTexture ("Interface\\AddOns\\Details\\images\\icon_mainwindow")
BaseFrame.cabecalho.atributo_icon:SetTexture (DEFAULT_SKIN)
BaseFrame.cabecalho.atributo_icon:SetWidth (32)
BaseFrame.cabecalho.atributo_icon:SetHeight (32)
--> bola overlay
BaseFrame.cabecalho.ball = _detalhes.listener:CreateTexture (nil, "OVERLAY")
BaseFrame.cabecalho.ball:SetPoint ("BOTTOMLEFT", BaseFrame, "TOPLEFT", -37, 0)
BaseFrame.cabecalho.ball:SetWidth (64)
BaseFrame.cabecalho.ball:SetHeight (64)
BaseFrame.cabecalho.ball:SetTexture ([[Interface\AddOns\Details\images\ball_left]])
BaseFrame.cabecalho.ball:SetPoint ("BOTTOMLEFT", BaseFrame, "TOPLEFT", -107, 0)
BaseFrame.cabecalho.ball:SetWidth (128)
BaseFrame.cabecalho.ball:SetHeight (128)
--BaseFrame.cabecalho.ball:SetTexture ([[Interface\AddOns\Details\images\ball_left]])
BaseFrame.cabecalho.ball:SetTexture (DEFAULT_SKIN)
BaseFrame.cabecalho.ball:SetTexCoord (unpack (COORDS_LEFT_BALL))
--> emenda
BaseFrame.cabecalho.emenda = BaseFrame:CreateTexture (nil, "OVERLAY")
BaseFrame.cabecalho.emenda:SetPoint ("bottomright", BaseFrame.cabecalho.ball, "bottomright", 0, 0)
BaseFrame.cabecalho.emenda:SetPoint ("bottomleft", BaseFrame.cabecalho.ball, "bottomright")
BaseFrame.cabecalho.emenda:SetWidth (8)
BaseFrame.cabecalho.emenda:SetHeight (32)
BaseFrame.cabecalho.emenda:SetTexture ([[Interface\AddOns\Details\images\emenda_left]])
BaseFrame.cabecalho.emenda:SetHeight (128)
--BaseFrame.cabecalho.emenda:SetTexture ([[Interface\AddOns\Details\images\emenda_left]])
BaseFrame.cabecalho.emenda:SetTexture (DEFAULT_SKIN)
BaseFrame.cabecalho.emenda:SetTexCoord (unpack (COORDS_LEFT_CONNECTOR))
BaseFrame.cabecalho.atributo_icon:Hide()
BaseFrame.cabecalho.ball:Hide()
--> bola do canto direito superior
BaseFrame.cabecalho.ball_r = BaseFrame:CreateTexture (nil, "BACKGROUND")
BaseFrame.cabecalho.ball_r:SetPoint ("BOTTOMRIGHT", BaseFrame, "TOPRIGHT", 32, 0)
BaseFrame.cabecalho.ball_r:SetWidth (64)
BaseFrame.cabecalho.ball_r:SetHeight (32)
BaseFrame.cabecalho.ball_r:SetTexture ("Interface\\AddOns\\Details\\images\\bar_top_right")
BaseFrame.cabecalho.ball_r:SetPoint ("BOTTOMRIGHT", BaseFrame, "TOPRIGHT", 96, 0)
BaseFrame.cabecalho.ball_r:SetWidth (128)
BaseFrame.cabecalho.ball_r:SetHeight (128)
--BaseFrame.cabecalho.ball_r:SetTexture ("Interface\\AddOns\\Details\\images\\bar_top_right")
BaseFrame.cabecalho.ball_r:SetTexture (DEFAULT_SKIN)
BaseFrame.cabecalho.ball_r:SetTexCoord (unpack (COORDS_RIGHT_BALL))
--> barra centro
BaseFrame.cabecalho.top_bg = BaseFrame:CreateTexture (nil, "BACKGROUND")
BaseFrame.cabecalho.top_bg:SetPoint ("LEFT", BaseFrame.cabecalho.ball, "RIGHT", -4, -16)
--BaseFrame.cabecalho.top_bg:SetPoint ("LEFT", BaseFrame.cabecalho.ball, "RIGHT", -4, 0)
BaseFrame.cabecalho.top_bg:SetPoint ("LEFT", BaseFrame.cabecalho.emenda, "RIGHT", 0, 0)
BaseFrame.cabecalho.top_bg:SetPoint ("RIGHT", BaseFrame.cabecalho.ball_r, "LEFT")
BaseFrame.cabecalho.top_bg:SetTexture ("Interface\\AddOns\\Details\\images\\bar_top_center")
BaseFrame.cabecalho.top_bg:SetTexture (DEFAULT_SKIN)
BaseFrame.cabecalho.top_bg:SetTexCoord (unpack (COORDS_TOP_BACKGROUND))
BaseFrame.cabecalho.top_bg:SetWidth (512)
BaseFrame.cabecalho.top_bg:SetHeight (128)
--BaseFrame.cabecalho.top_bg:SetTexture ("Interface\\AddOns\\Details\\images\\bar_top_center")
--BaseFrame.cabecalho.top_bg:SetTexture ("Interface\\AddOns\\Details\\images\\bar_topdown_center")
--BaseFrame.cabecalho.top_bg:SetTexCoord (0, 1, 0, 0.49609375)
--BaseFrame.cabecalho.top_bg:SetHeight (31)
--> frame invisível
BaseFrame.UPFrame = _CreateFrame ("frame", nil, BaseFrame)
BaseFrame.UPFrame:SetPoint ("LEFT", BaseFrame.cabecalho.ball, "RIGHT", 0, -25)
BaseFrame.UPFrame:SetPoint ("RIGHT", BaseFrame.cabecalho.ball_r, "LEFT", 0, -25)
BaseFrame.UPFrame:SetPoint ("LEFT", BaseFrame.cabecalho.ball, "RIGHT", 0, -53)
BaseFrame.UPFrame:SetPoint ("RIGHT", BaseFrame.cabecalho.ball_r, "LEFT", 0, -53)
BaseFrame.UPFrame:SetHeight (20)
BaseFrame.UPFrame:Show()
@@ -3598,7 +3663,7 @@ function gump:CriaCabecalho (BaseFrame, instancia)
consolidateButton:SetWidth (16)
consolidateButton:SetHeight (16)
consolidateButton:SetFrameLevel (BaseFrame.UPFrame:GetFrameLevel()+1)
consolidateButton:SetPoint ("BOTTOMLEFT", BaseFrame.cabecalho.ball, "BOTTOMRIGHT", -2, 2)
consolidateButton:SetPoint ("BOTTOMLEFT", BaseFrame.cabecalho.ball, "BOTTOMRIGHT", 6, 2)
local normal_texture = consolidateButton:CreateTexture (nil, "overlay")
--normal_texture:SetTexture ("Interface\\AddOns\\Details\\images\\consolidate_frame")
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -4,7 +4,7 @@ if not Loc then return end
--------------------------------------------------------------------------------------------------------------------------------------------
-- \n\n|cFFFFFF00-|r
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v1.6.5|r\n\n|cFFFFFF00-|r Added sub attribute 'Enemies' which shows, of course, only enemies.\n\n|cFFFFFF00-|r Fixed issue with successful spell cast.\n\n|cFFFFFF00v1.6.3|r\n\n|cFFFFFF00-|r data capture now runs 4% faster.\n\n|cFFFFFF00-|r Fixed issue with pets were wasn't uptading owner activity time.\n\n|cFFFFFF00-|r Fixed healing being counted even out of combat.\n\n|cFFFFFF00-|r Fixed some problems with multi-boss encountes like Twin Consorts.\n\n|cFFFFFF00-|r Added options for concatenate trash segments.\n\n|cFFFFFF00-|r Added options for auto remove trash segments. \n\n|cFFFFFF00-|r Added options for change bar height. \n\n|cFFFFFF00-|r Encounter Details now display how many interrupted and successful cast of a boss skill.\n\n|cFFFFFF00v1.6.1|r\n\n|cFFFFFF00-|r Fixed:\n- a issue with debuff uptime.\n- overall data dps and hps for overall data on micro display.\n- many bugs involving sword and book menus.\n- garbage collector erasing actors with interactions with your group members.\n\n|cFFFFFF00-|r overall data now always use the combat data for measure dps and hps.\n\n|cFFFFFF00v1.6.0|r\n\n|cFFFFFF00-|r Added debuff uptime at misc attribute.\n\n|cFFFFFF00-|r Disabled attributes now have a darkness effect over sword menu.\n\n|cFFFFFF00-|r Fixed a issue were sometimes you need to /reload before change a talent.\n\n|cFFFFFF00v1.5.3|r\n\n|cFFFFFF00-|r Fixed a issue with report data during combat lockdown.\n\n|cFFFFFF00-|r Improved pet owner recognition and added a ignore list if couldn't find his owner.\n\n|cFFFFFF00-|r Added an option to display only frags on enemy players.\n\n|cFFFFFF00-|r Added class colors for frags.\n\n|cFFFFFF00v1.5.2|r\n\n|cFFFFFF00-|r Fixed a issue were turning off buff uptime was disabling healing done too.\n\n|cFFFFFF00-|r Avoidance statistics will not be recorded for pets, ungrouped players and monsters.\n\n|cFFFFFF00-|r Fixed a issue were sometimes buff uptime was taking too long to save data on logout.\n\n|cFFFFFF00v1.5.1|r\n\n|cFFFFFF00-|r Fixed a issue with report data were sometimes wasn't working.\n\n|cFFFFFF00v1.5.0|r\n\n|cFFFFFF00-|r Buff Uptime was been implemented over Miscellaneous attribute.\n\n|cFFFFFF00-|r Death Logs now also display cooldowns and last cooldown used.\n\n|cFFFFFF00-|r Added this window showing the latest changes.\n\n|cFFFFFF00-|r Fixed the issue were sometimes the instance stops to update when clicking on the attribute name over sword menu.\n\n|cFFFFFF00-|r Disabling Healing now shutdown the absorbs too, disabling auras doesn't interrupt absorbs any more.\n\n|cFFFFFF00-|r Friendly Fire now only track players which is inside a group.\n\n|cFFFFFF00-|r Fixed a issue were pet damage on target isn't added to owner target.\n\n|cFFFFFF00-|r Fixed a bug were refreshing a cooldown isn't counting.\n\n|cFFFFFF00-|r Added absorbs for shammy and monk 2P tier 16.\n\n|cFFFFFF00-|r Added slash command 'worldboss' and 'updates'.\n\n"
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v1.6.7|r\n\n- Added support to skins, you can change over options panel.\n\n|cFFFFFF00v1.6.5|r\n\n|cFFFFFF00-|r Added sub attribute 'Enemies' which shows, of course, only enemies.\n\n|cFFFFFF00-|r Fixed issue with successful spell cast.\n\n|cFFFFFF00v1.6.3|r\n\n|cFFFFFF00-|r data capture now runs 4% faster.\n\n|cFFFFFF00-|r Fixed issue with pets were wasn't uptading owner activity time.\n\n|cFFFFFF00-|r Fixed healing being counted even out of combat.\n\n|cFFFFFF00-|r Fixed some problems with multi-boss encountes like Twin Consorts.\n\n|cFFFFFF00-|r Added options for concatenate trash segments.\n\n|cFFFFFF00-|r Added options for auto remove trash segments. \n\n|cFFFFFF00-|r Added options for change bar height. \n\n|cFFFFFF00-|r Encounter Details now display how many interrupted and successful cast of a boss skill.\n\n|cFFFFFF00v1.6.1|r\n\n|cFFFFFF00-|r Fixed:\n- a issue with debuff uptime.\n- overall data dps and hps for overall data on micro display.\n- many bugs involving sword and book menus.\n- garbage collector erasing actors with interactions with your group members.\n\n|cFFFFFF00-|r overall data now always use the combat data for measure dps and hps.\n\n|cFFFFFF00v1.6.0|r\n\n|cFFFFFF00-|r Added debuff uptime at misc attribute.\n\n|cFFFFFF00-|r Disabled attributes now have a darkness effect over sword menu.\n\n|cFFFFFF00-|r Fixed a issue were sometimes you need to /reload before change a talent.\n\n|cFFFFFF00v1.5.3|r\n\n|cFFFFFF00-|r Fixed a issue with report data during combat lockdown.\n\n|cFFFFFF00-|r Improved pet owner recognition and added a ignore list if couldn't find his owner.\n\n|cFFFFFF00-|r Added an option to display only frags on enemy players.\n\n|cFFFFFF00-|r Added class colors for frags.\n\n|cFFFFFF00v1.5.2|r\n\n|cFFFFFF00-|r Fixed a issue were turning off buff uptime was disabling healing done too.\n\n|cFFFFFF00-|r Avoidance statistics will not be recorded for pets, ungrouped players and monsters.\n\n|cFFFFFF00-|r Fixed a issue were sometimes buff uptime was taking too long to save data on logout.\n\n|cFFFFFF00v1.5.1|r\n\n|cFFFFFF00-|r Fixed a issue with report data were sometimes wasn't working.\n\n|cFFFFFF00v1.5.0|r\n\n|cFFFFFF00-|r Buff Uptime was been implemented over Miscellaneous attribute.\n\n|cFFFFFF00-|r Death Logs now also display cooldowns and last cooldown used.\n\n|cFFFFFF00-|r Added this window showing the latest changes.\n\n|cFFFFFF00-|r Fixed the issue were sometimes the instance stops to update when clicking on the attribute name over sword menu.\n\n|cFFFFFF00-|r Disabling Healing now shutdown the absorbs too, disabling auras doesn't interrupt absorbs any more.\n\n|cFFFFFF00-|r Friendly Fire now only track players which is inside a group.\n\n|cFFFFFF00-|r Fixed a issue were pet damage on target isn't added to owner target.\n\n|cFFFFFF00-|r Fixed a bug were refreshing a cooldown isn't counting.\n\n|cFFFFFF00-|r Added absorbs for shammy and monk 2P tier 16.\n\n|cFFFFFF00-|r Added slash command 'worldboss' and 'updates'.\n\n"
Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails:|r " --> color and details name
+1 -1
View File
@@ -3,7 +3,7 @@ if not Loc then return end
--------------------------------------------------------------------------------------------------------------------------------------------
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v1.6.5|r\n\n|cFFFFFF00-|r Adicionado o sub atributo 'Inimigos' que mostra, eh claro, somente inimigos.\n\n|cFFFFFF00-|r Corrigido um problema na captura das magias conjuradas.|cFFFFFF00v1.6.3|r\n\n|cFFFFFF00-|r captura de dados agora roda 4% mais rapido.\n\n|cFFFFFF00-|r Corrigido problema onde os ajudantes nao atualizavam o tempo de atividade do dono.\n\n|cFFFFFF00-|r Corrigido problema onde o healing era contado mesmo fora do combate.\n\n|cFFFFFF00-|r Corrigido problema com chefes multiplos como Twin Consorts.\n\n|cFFFFFF00-|r Adicionada opcao para juntar os segmentos de trash mobs.\n\n|cFFFFFF00-|r Adicionada opcao para auto remover os segmentos de trash mobs. \n\n|cFFFFFF00-|r Adicionada opcao para alterar a altura das barras.\n\n|cFFFFFF00-|r Plugin Encounter Details agora mostra quantos cast bem sucedidos as magias interrompidas tiveram.\n\n|cFFFFFF00v1.6.1|r\n\n|cFFFFFF00-|r Corrigido:\n- problema com o tempo de debuffs.\n- dps dos dados gerais e o dps no micro display .\n- varios bugs envolvendo o menu da espada e do livro.\n- o coletor de lixo nao ira mais apagar jogadores com vinculo a membros do grupo.\n\n|cFFFFFF00-|r dados gerais agora sempre ira usar o tempo do combate para medir dps e hps.\n\n|cFFFFFF00v1.6.0|r\n\n|cFFFFFF00-|r Adicionado tempo de debuff no atributo miscelanea.\n\n|cFFFFFF00-|r Atributos desativados agora ficam escurecidos no menu da espada.\n\n|cFFFFFF00-|r Corrigido um problema aonde algumas vezes era necessario dar /reload para trocar um talento.\n\n|cFFFFFF00v1.5.3|r\n\n|cFFFFFF00-|r Corrigido problema ao reportar durante o combate.\n\n|cFFFFFF00-|r Melhorado a reconhecimento dos donos de ajudantes.\n\n|cFFFFFF00-|r Adicionada uma opcao para mostrar apenas frags em cima de jogadores inimigos.\n\n|cFFFFFF00-|r Adicionado cor e icone aos frags.\n\n|cFFFFFF00v1.5.2|r\n\n|cFFFFFF00-|r Corrigido problema onde desativando o tempo dos buffs estava desativando tambem a cura feita.\n\n|cFFFFFF00-|r Estatisticas de Avoidance nao seram mais capturadas para pessoas foram do grupo, monstros ou ajudantes.\n\n|cFFFFFF00-|r Corrigido problema onde as vezes estava demorando muito para salvar o tempo dos buffs ao sair do jogo.\n\n|cFFFFFF00v1.5.1|r\n\n|cFFFFFF00-|r Corrigido problema ao reportar o Dps onde as vezes nao mostrava nenhum jogador.\n\n|cFFFFFF00v1.5.0|r\n\n|cFFFFFF00-|r Buff Uptime foi implementado no atributo miscelanea.\n\n|cFFFFFF00-|r Cooldowns usados agora aparecem nos registros da morte.\n\n|cFFFFFF00-|r Implementado esta janela mostrando as atualizacoes.\n\n|cFFFFFF00-|r Corrigido problema onde algumas vezes clicando no nome do atributo fazia a instancia parar de atualizar.\n\n|cFFFFFF00-|r Desativando a cura agora para as absorcoes tambem. Desligando as Auras nao interrompe as absorcoes. \n\n|cFFFFFF00-|r Fogo Amigo agora conta apenas jogadores dentro do grupo.\n\n|cFFFFFF00-|r Corrigido problema onde o dano feito por um ajudando nao estava contando no alvo do dono.\n\n|cFFFFFF00-|r Corrigido problema onde a atualizacao de um cooldown nao estava sendo contada.\n\n|cFFFFFF00-|r Adicionada as magias de absorcao para 2P tier 16.\n\n|cFFFFFF00-|r Adicionado os comandos de barra 'worldboss' e 'updates'.\n\n|cFFFFFF00-|r Corrigido problema ao reportar onde algumas vezes nao estava funcionando."
Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v1.6.7|r\n\n- Adicionado suporte a skins, troque ela atraves do painel de opcoes.\n\n|cFFFFFF00v1.6.5|r\n\n|cFFFFFF00-|r Adicionado o sub atributo 'Inimigos' que mostra, eh claro, somente inimigos.\n\n|cFFFFFF00-|r Corrigido um problema na captura das magias conjuradas.|cFFFFFF00v1.6.3|r\n\n|cFFFFFF00-|r captura de dados agora roda 4% mais rapido.\n\n|cFFFFFF00-|r Corrigido problema onde os ajudantes nao atualizavam o tempo de atividade do dono.\n\n|cFFFFFF00-|r Corrigido problema onde o healing era contado mesmo fora do combate.\n\n|cFFFFFF00-|r Corrigido problema com chefes multiplos como Twin Consorts.\n\n|cFFFFFF00-|r Adicionada opcao para juntar os segmentos de trash mobs.\n\n|cFFFFFF00-|r Adicionada opcao para auto remover os segmentos de trash mobs. \n\n|cFFFFFF00-|r Adicionada opcao para alterar a altura das barras.\n\n|cFFFFFF00-|r Plugin Encounter Details agora mostra quantos cast bem sucedidos as magias interrompidas tiveram.\n\n|cFFFFFF00v1.6.1|r\n\n|cFFFFFF00-|r Corrigido:\n- problema com o tempo de debuffs.\n- dps dos dados gerais e o dps no micro display .\n- varios bugs envolvendo o menu da espada e do livro.\n- o coletor de lixo nao ira mais apagar jogadores com vinculo a membros do grupo.\n\n|cFFFFFF00-|r dados gerais agora sempre ira usar o tempo do combate para medir dps e hps.\n\n|cFFFFFF00v1.6.0|r\n\n|cFFFFFF00-|r Adicionado tempo de debuff no atributo miscelanea.\n\n|cFFFFFF00-|r Atributos desativados agora ficam escurecidos no menu da espada.\n\n|cFFFFFF00-|r Corrigido um problema aonde algumas vezes era necessario dar /reload para trocar um talento.\n\n|cFFFFFF00v1.5.3|r\n\n|cFFFFFF00-|r Corrigido problema ao reportar durante o combate.\n\n|cFFFFFF00-|r Melhorado a reconhecimento dos donos de ajudantes.\n\n|cFFFFFF00-|r Adicionada uma opcao para mostrar apenas frags em cima de jogadores inimigos.\n\n|cFFFFFF00-|r Adicionado cor e icone aos frags.\n\n|cFFFFFF00v1.5.2|r\n\n|cFFFFFF00-|r Corrigido problema onde desativando o tempo dos buffs estava desativando tambem a cura feita.\n\n|cFFFFFF00-|r Estatisticas de Avoidance nao seram mais capturadas para pessoas foram do grupo, monstros ou ajudantes.\n\n|cFFFFFF00-|r Corrigido problema onde as vezes estava demorando muito para salvar o tempo dos buffs ao sair do jogo.\n\n|cFFFFFF00v1.5.1|r\n\n|cFFFFFF00-|r Corrigido problema ao reportar o Dps onde as vezes nao mostrava nenhum jogador.\n\n|cFFFFFF00v1.5.0|r\n\n|cFFFFFF00-|r Buff Uptime foi implementado no atributo miscelanea.\n\n|cFFFFFF00-|r Cooldowns usados agora aparecem nos registros da morte.\n\n|cFFFFFF00-|r Implementado esta janela mostrando as atualizacoes.\n\n|cFFFFFF00-|r Corrigido problema onde algumas vezes clicando no nome do atributo fazia a instancia parar de atualizar.\n\n|cFFFFFF00-|r Desativando a cura agora para as absorcoes tambem. Desligando as Auras nao interrompe as absorcoes. \n\n|cFFFFFF00-|r Fogo Amigo agora conta apenas jogadores dentro do grupo.\n\n|cFFFFFF00-|r Corrigido problema onde o dano feito por um ajudando nao estava contando no alvo do dono.\n\n|cFFFFFF00-|r Corrigido problema onde a atualizacao de um cooldown nao estava sendo contada.\n\n|cFFFFFF00-|r Adicionada as magias de absorcao para 2P tier 16.\n\n|cFFFFFF00-|r Adicionado os comandos de barra 'worldboss' e 'updates'.\n\n|cFFFFFF00-|r Corrigido problema ao reportar onde algumas vezes nao estava funcionando."
Loc ["STRING_DETAILS1"] = "|cffffaeaeDetalhes:|r " --> color and details name