- For some special cases, left click now open the report window and shift+click shows the tooltip content in the window.
- Damage Taken by Spells now are a part of Damage bracket (no more on custom). - Fixed custom functions for the customized bar left text. - Improvements on report text format and also reverse option now works as intended. - Removed the option for report only what is shown in the window. - Added skins for report panel, the skin follow the skin selected for Player Detail Window.
This commit is contained in:
+30
-344
@@ -197,19 +197,28 @@
|
||||
|
||||
local percent_script = _detalhes.custom_function_cache [instance.customName .. "Percent"]
|
||||
local total_script = _detalhes.custom_function_cache [instance.customName .. "Total"]
|
||||
local okey
|
||||
|
||||
for index, actor in _ipairs (instance_container._ActorTable) do
|
||||
local percent, ptotal
|
||||
if (percent_script) then
|
||||
percent = percent_script (_math_floor (actor.value), top, total, combat, instance)
|
||||
okey, percent = _pcall (percent_script, _math_floor (actor.value), top, total, combat, instance, actor)
|
||||
if (not okey) then
|
||||
_detalhes:Msg ("|cFFFF9900error on custom display function|r:", percent)
|
||||
return _detalhes:EndRefresh (instance, 0, combat, combat [1])
|
||||
end
|
||||
else
|
||||
percent = _cstr ("%.1f", _math_floor (actor.value) / total * 100)
|
||||
end
|
||||
|
||||
if (total_script) then
|
||||
local value = total_script (_math_floor (actor.value), top, total, combat, instance)
|
||||
local value = _pcall (total_script, _math_floor (actor.value), top, total, combat, instance, actor)
|
||||
if (type (value) == "number") then
|
||||
ptotal = SelectedToKFunction (_, value)
|
||||
okey, ptotal = SelectedToKFunction (_, value)
|
||||
if (not okey) then
|
||||
_detalhes:Msg ("|cFFFF9900error on custom display function|r:", ptotal)
|
||||
return _detalhes:EndRefresh (instance, 0, combat, combat [1])
|
||||
end
|
||||
else
|
||||
ptotal = value
|
||||
end
|
||||
@@ -472,10 +481,15 @@
|
||||
self.minha_barra = row
|
||||
|
||||
local percent
|
||||
local okey
|
||||
|
||||
if (percent_script) then
|
||||
--local value, top, total, combat, instance = ...
|
||||
percent = percent_script (self.value, top, total, combat, instance)
|
||||
okey, percent = _pcall (percent_script, self.value, top, total, combat, instance, self)
|
||||
if (not okey) then
|
||||
_detalhes:Msg ("|cFFFF9900error on custom display function|r:", percent)
|
||||
return _detalhes:EndRefresh (instance, 0, combat, combat [1])
|
||||
end
|
||||
else
|
||||
if (percentage_type == 1) then
|
||||
percent = _cstr ("%.1f", self.value / total * 100)
|
||||
@@ -491,7 +505,11 @@
|
||||
end
|
||||
|
||||
if (total_script) then
|
||||
local value = total_script (self.value, top, total, combat, instance)
|
||||
local okey, value = _pcall (total_script, self.value, top, total, combat, instance, self)
|
||||
if (not okey) then
|
||||
_detalhes:Msg ("|cFFFF9900error on custom display function|r:", value)
|
||||
return _detalhes:EndRefresh (instance, 0, combat, combat [1])
|
||||
end
|
||||
if (type (value) == "number") then
|
||||
row.texto_direita:SetText (SelectedToKFunction (_, value) .. bars_brackets[1] .. percent .. bars_brackets[2])
|
||||
else
|
||||
@@ -905,6 +923,10 @@
|
||||
--> get the custom object
|
||||
local custom_object = instance:GetCustomObject()
|
||||
|
||||
if (custom_object.notooltip) then
|
||||
return
|
||||
end
|
||||
|
||||
--> get the actor
|
||||
local actor = self.my_actor
|
||||
|
||||
@@ -920,11 +942,9 @@
|
||||
end
|
||||
|
||||
if (actor.id) then
|
||||
_detalhes:AddTooltipSpellHeaderText (select (1, _GetSpellInfo (actor.id)), "yellow", 1, 0, 0, 0)
|
||||
GameCooltip:AddIcon (select (3, _GetSpellInfo (actor.id)), 1, 1, 14, 14, 0.90625, 0.109375, 0.15625, 0.875)
|
||||
_detalhes:AddTooltipSpellHeaderText (select (1, _GetSpellInfo (actor.id)), "yellow", 1, select (3, _GetSpellInfo (actor.id)), 0.90625, 0.109375, 0.15625, 0.875)
|
||||
else
|
||||
_detalhes:AddTooltipSpellHeaderText (custom_object:GetName(), "yellow", 1, 0, 0, 0)
|
||||
GameCooltip:AddIcon (custom_object:GetIcon(), 1, 1, 14, 14, 0.90625, 0.109375, 0.15625, 0.875)
|
||||
_detalhes:AddTooltipSpellHeaderText (custom_object:GetName(), "yellow", 1, custom_object:GetIcon(), 0.90625, 0.109375, 0.15625, 0.875)
|
||||
end
|
||||
|
||||
--GameCooltip:AddStatusBar (100, 1, r, g, b, 1)
|
||||
@@ -1556,339 +1576,6 @@
|
||||
end
|
||||
|
||||
---------------------------------------
|
||||
|
||||
local DamageTakenBySpell = {
|
||||
name = Loc ["STRING_CUSTOM_DTBS"],
|
||||
icon = [[Interface\ICONS\spell_mage_infernoblast]],
|
||||
attribute = false,
|
||||
spellid = false,
|
||||
author = "Details!",
|
||||
desc = Loc ["STRING_CUSTOM_DTBS_DESC"],
|
||||
source = false,
|
||||
target = false,
|
||||
script_version = 30,
|
||||
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 = ...
|
||||
--> declade the values to return
|
||||
local total, top, amount = 0, 0, 0
|
||||
--> get a list of all damage actors
|
||||
local AllDamageCharacters = combat:GetActorList (DETAILS_ATTRIBUTE_DAMAGE)
|
||||
|
||||
--> no amount increase for repeated spells
|
||||
local NoRepeat = {}
|
||||
|
||||
--> do a loop amoung the actors
|
||||
for index, character in ipairs (AllDamageCharacters) do
|
||||
|
||||
--> is the actor a player?
|
||||
if (character:IsPlayer()) then
|
||||
|
||||
local taken_from = character.damage_from
|
||||
|
||||
for source_name, _ in pairs (taken_from) do
|
||||
|
||||
local source = combat (1, source_name)
|
||||
|
||||
if (source) then
|
||||
--> came from an enemy
|
||||
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
|
||||
|
||||
elseif (source:IsGroupPlayer()) then -- friendly fire
|
||||
|
||||
local AllSpells = source.friendlyfire [character.nome] and source.friendlyfire [character.nome].spells
|
||||
for spellid, on_player in pairs (AllSpells) do
|
||||
if (on_player and on_player >= 1) then
|
||||
|
||||
local spellname = select (1, GetSpellInfo(spellid))
|
||||
local TEMP_SPELL_OBJECT = _G ["DetailsDamageTakenBySpellTemp"..spellid]
|
||||
if (not TEMP_SPELL_OBJECT) then
|
||||
TEMP_SPELL_OBJECT = {}
|
||||
_G ["DetailsDamageTakenBySpellTemp"..spellid] = TEMP_SPELL_OBJECT
|
||||
end
|
||||
|
||||
TEMP_SPELL_OBJECT.id = spellid
|
||||
TEMP_SPELL_OBJECT.spellschool = 1
|
||||
|
||||
instance_container:AddValue (TEMP_SPELL_OBJECT, on_player)
|
||||
total = total + on_player
|
||||
local value = instance_container:GetValue (TEMP_SPELL_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
|
||||
end
|
||||
|
||||
return total, top, amount
|
||||
]],
|
||||
|
||||
tooltip = [[
|
||||
--get the parameters passed
|
||||
local actor, combat, instance = ...
|
||||
local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" )
|
||||
local GameCooltip = GameCooltip
|
||||
local from_spell = actor.id
|
||||
local from_spellname
|
||||
if (from_spell) then
|
||||
from_spellname = select (1, GetSpellInfo (actor.id))
|
||||
end
|
||||
|
||||
--> get a list of all damage actors
|
||||
local AllDamageCharacters = combat:GetActorList (DETAILS_ATTRIBUTE_DAMAGE)
|
||||
|
||||
--> hold the targets
|
||||
local Targets = {}
|
||||
local total = 0
|
||||
local top = 0
|
||||
|
||||
local is_custom_spell = false
|
||||
for _, spellcustom in ipairs (_detalhes.savedCustomSpells) do
|
||||
if (spellcustom[1] == from_spell) then
|
||||
is_custom_spell = true
|
||||
end
|
||||
end
|
||||
|
||||
for index, character in ipairs (AllDamageCharacters) do
|
||||
|
||||
if (is_custom_spell) then
|
||||
for playername, ff_table in pairs (character.friendlyfire) do
|
||||
if (ff_table.spells [from_spell]) then
|
||||
local damage_actor = combat (1, playername)
|
||||
local heal_actor = combat (2, playername)
|
||||
|
||||
if ((damage_actor or heal_actor) and ( (damage_actor and damage_actor:IsPlayer()) or (heal_actor and heal_actor:IsPlayer()))) then
|
||||
|
||||
local got
|
||||
|
||||
for index, t in ipairs (Targets) do
|
||||
if (t[1] == playername) then
|
||||
t[2] = t[2] + ff_table.spells [from_spell]
|
||||
if (t[2] > top) then
|
||||
top = t[2]
|
||||
end
|
||||
got = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if (not got) then
|
||||
|
||||
Targets [#Targets+1] = {playername, ff_table.spells [from_spell]}
|
||||
if (ff_table.spells [from_spell] > top) then
|
||||
top = ff_table.spells [from_spell]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
|
||||
for playername, ff_table in pairs (character.friendlyfire) do
|
||||
for spellid, amount in pairs (ff_table.spells) do
|
||||
local spellname = select (1, GetSpellInfo (spellid))
|
||||
if (spellname == from_spellname) then
|
||||
local damage_actor = combat (1, playername)
|
||||
local heal_actor = combat (2, playername)
|
||||
if ((damage_actor or heal_actor) and ( (damage_actor and damage_actor:IsPlayer()) or (heal_actor and heal_actor:IsPlayer()))) then
|
||||
local got
|
||||
for index, t in ipairs (Targets) do
|
||||
if (t[1] == playername) then
|
||||
t[2] = t[2] + amount
|
||||
if (t[2] > top) then
|
||||
top = t[2]
|
||||
end
|
||||
got = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if (not got) then
|
||||
Targets [#Targets+1] = {playername, amount}
|
||||
if (amount > top) then
|
||||
top = amount
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--> search actors which used the spell shown in the bar
|
||||
local spell = character.spells._ActorTable [from_spell]
|
||||
|
||||
if (spell) then
|
||||
for targetname, amount in pairs (spell.targets) do
|
||||
|
||||
local got = false
|
||||
|
||||
local damage_actor = combat (1, targetname)
|
||||
local heal_actor = combat (2, targetname)
|
||||
|
||||
if ( (damage_actor or heal_actor) and ( (damage_actor and damage_actor:IsPlayer()) or (heal_actor and heal_actor:IsPlayer()) ) ) then
|
||||
for index, t in ipairs (Targets) do
|
||||
if (t[1] == targetname) then
|
||||
t[2] = t[2] + amount
|
||||
if (t[2] > top) then
|
||||
top = t[2]
|
||||
end
|
||||
got = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if (not got) then
|
||||
Targets [#Targets+1] = {targetname, amount}
|
||||
if (amount > top) then
|
||||
top = amount
|
||||
end
|
||||
end
|
||||
-- else
|
||||
-- for index, t in ipairs (Targets) do
|
||||
-- if (t[1] == Loc ["STRING_TARGETS_OTHER1"]) then
|
||||
-- t[2] = t[2] + amount
|
||||
-- got = true
|
||||
--print (damage_actor and damage_actor.nome, heal_actor and heal_actor.nome)
|
||||
-- break
|
||||
-- end
|
||||
-- end
|
||||
-- if (not got) then
|
||||
-- Targets [#Targets+1] = {Loc ["STRING_TARGETS_OTHER1"], amount}
|
||||
-- end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (not is_custom_spell) then
|
||||
for spellid, spell in pairs (character.spells._ActorTable) do
|
||||
if (spellid ~= from_spell) then
|
||||
local spellname = select (1, GetSpellInfo (spellid))
|
||||
if (spellname == from_spellname) then
|
||||
for targetname, amount in pairs (spell.targets) do
|
||||
|
||||
local got = false
|
||||
|
||||
local damage_actor = combat (1, targetname)
|
||||
local heal_actor = combat (2, targetname)
|
||||
|
||||
if ( (damage_actor or heal_actor) and ( (damage_actor and damage_actor:IsPlayer()) or (heal_actor and heal_actor:IsPlayer()) ) ) then
|
||||
for index, t in ipairs (Targets) do
|
||||
if (t[1] == targetname) then
|
||||
t[2] = t[2] + amount
|
||||
if (t[2] > top) then
|
||||
top = t[2]
|
||||
end
|
||||
got = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if (not got) then
|
||||
Targets [#Targets+1] = {targetname, amount}
|
||||
if (amount > top) then
|
||||
top = amount
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
table.sort (Targets, _detalhes.Sort2)
|
||||
|
||||
GameCooltip:SetOption ("StatusBarTexture", "Interface\\AddOns\\Details\\images\\bar_serenity")
|
||||
|
||||
--local bar_background = {value = 100, color = {0.1, 0.1, 0.1, 0.9}, texture = "Interface\\AddOns\\Details\\images\\bar_background"}
|
||||
local bar_background = DETAILS_DTBS_BACKGROUND
|
||||
if (not bar_background) then
|
||||
local color = {0.1960, 0.1960, 0.1960, 0.9097}
|
||||
DETAILS_DTBS_BACKGROUND = {value = 100, color = color, texture = "Interface\\AddOns\\Details\\images\\bar_background2"}
|
||||
bar_background = DETAILS_DTBS_BACKGROUND
|
||||
end
|
||||
|
||||
for index, t in ipairs (Targets) do
|
||||
GameCooltip:AddLine (_detalhes:GetOnlyName(t[1]), _detalhes:ToK (t[2]))
|
||||
local class, _, _, _, _, r, g, b = _detalhes:GetClass (t[1])
|
||||
|
||||
GameCooltip:AddStatusBar (t[2]/top*100, 1, r, g, b, 0.8, false, bar_background)
|
||||
|
||||
if (class) then
|
||||
local texture, l, r, t, b = _detalhes:GetClassIcon (class)
|
||||
GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small_alpha", 1, 1, 14, 14, l, r, t, b)
|
||||
elseif (t[1] == Loc ["STRING_TARGETS_OTHER1"]) then
|
||||
GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small_alpha", 1, 1, 14, 14, 0.25, 0.49609375, 0.75, 1)
|
||||
end
|
||||
end
|
||||
|
||||
local aura = ""
|
||||
if (WeakAuras) then
|
||||
aura = "|cFFffa200Shift Click|r: Create Aura"
|
||||
end
|
||||
|
||||
GameCooltip:AddLine (" ")
|
||||
GameCooltip:AddLine ("|cFFffa200Click|r: Report Results", aura, 1, "white", "white")
|
||||
GameCooltip:AddStatusBar (100, 1, 0, 0, 0, 0.2, false, bar_background)
|
||||
GameCooltip:SetOption ("YSpacingMod", -1)
|
||||
]],
|
||||
}
|
||||
|
||||
local have = false
|
||||
for _, custom in ipairs (self.custom) do
|
||||
if (custom.name == Loc ["STRING_CUSTOM_DTBS"] and (custom.script_version and custom.script_version >= DamageTakenBySpell.script_version) ) then
|
||||
have = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if (not have) then
|
||||
setmetatable (DamageTakenBySpell, _detalhes.atributo_custom)
|
||||
DamageTakenBySpell.__index = _detalhes.atributo_custom
|
||||
|
||||
for i, custom in ipairs (self.custom) do
|
||||
if (custom.name == Loc ["STRING_CUSTOM_DTBS"]) then
|
||||
table.remove (self.custom, i)
|
||||
tinsert (self.custom, i, DamageTakenBySpell)
|
||||
have = true
|
||||
end
|
||||
end
|
||||
|
||||
if (not have) then
|
||||
self.custom [#self.custom+1] = DamageTakenBySpell
|
||||
end
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--doas
|
||||
@@ -1945,11 +1632,10 @@
|
||||
|
||||
table.sort (targets, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText ("Targets", "yellow", r, g, b, #targets)
|
||||
_detalhes:AddTooltipSpellHeaderText ("Targets", "yellow", #targets)
|
||||
local class, _, _, _, _, r, g, b = _detalhes:GetClass (actor.nome)
|
||||
GameCooltip:AddStatusBar (100, 1, r, g, b, 1)
|
||||
|
||||
|
||||
for index, target in ipairs (targets) do
|
||||
GameCooltip:AddLine (target[1], target [2])
|
||||
_detalhes:AddTooltipBackgroundStatusbar()
|
||||
|
||||
+1057
-139
File diff suppressed because it is too large
Load Diff
@@ -817,7 +817,7 @@ function atributo_energy:RefreshBarra (esta_barra, instancia, from_resize)
|
||||
if (self.enemy) then
|
||||
if (self.arena_enemy) then
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t"))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t" .. self.displayName)
|
||||
end
|
||||
@@ -825,13 +825,13 @@ function atributo_energy:RefreshBarra (esta_barra, instancia, from_resize)
|
||||
else
|
||||
if (_detalhes.faction_against == "Horde") then
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:0:32:0:32|t"))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:0:32:0:32|t", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:0:32:0:32|t"..self.displayName) --seta o texto da esqueda -- HORDA
|
||||
end
|
||||
else
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:32:64:0:32|t"))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:32:64:0:32|t", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:32:64:0:32|t"..self.displayName) --seta o texto da esqueda -- ALLY
|
||||
end
|
||||
@@ -844,13 +844,13 @@ function atributo_energy:RefreshBarra (esta_barra, instancia, from_resize)
|
||||
else
|
||||
if (self.arena_ally) then
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t"))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t" .. self.displayName)
|
||||
end
|
||||
else
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, ""))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. self.displayName) --seta o texto da esqueda
|
||||
end
|
||||
@@ -967,8 +967,7 @@ function atributo_energy:ToolTipRegenRecebido (instancia, numero, barra, keydown
|
||||
i = i - 1
|
||||
_table_sort (energy_tooltips_table, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, r, g, b, i)
|
||||
GameCooltip:AddIcon ([[Interface\HELPFRAME\ReportLagIcon-Spells]], 1, 1, 14, 14, 0.21875, 0.78125, 0.21875, 0.78125)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, i, [[Interface\HELPFRAME\ReportLagIcon-Spells]], 0.21875, 0.78125, 0.21875, 0.78125)
|
||||
|
||||
local ismaximized = false
|
||||
if (keydown == "shift" or TooltipMaximizedMethod == 2 or TooltipMaximizedMethod == 3) then
|
||||
@@ -1030,8 +1029,7 @@ function atributo_energy:ToolTipRegenRecebido (instancia, numero, barra, keydown
|
||||
i = i - 1
|
||||
_table_sort (energy_tooltips_table, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_PLAYERS"], headerColor, r, g, b, i)
|
||||
GameCooltip:AddIcon ([[Interface\HELPFRAME\HelpIcon-HotIssues]], 1, 1, 14, 14, 0.21875, 0.78125, 0.21875, 0.78125)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_PLAYERS"], headerColor, i, [[Interface\HELPFRAME\HelpIcon-HotIssues]], 0.21875, 0.78125, 0.21875, 0.78125)
|
||||
|
||||
local ismaximized = false
|
||||
if (keydown == "ctrl" or TooltipMaximizedMethod == 2 or TooltipMaximizedMethod == 4) then
|
||||
|
||||
+9
-15
@@ -928,7 +928,7 @@ function atributo_heal:RefreshBarra (esta_barra, instancia, from_resize)
|
||||
if (self.enemy) then
|
||||
if (self.arena_enemy) then
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t"))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t" .. self.displayName)
|
||||
end
|
||||
@@ -936,13 +936,13 @@ function atributo_heal:RefreshBarra (esta_barra, instancia, from_resize)
|
||||
else
|
||||
if (_detalhes.faction_against == "Horde") then
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:0:32:0:32|t"))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:0:32:0:32|t", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:0:32:0:32|t"..self.displayName) --seta o texto da esqueda -- HORDA
|
||||
end
|
||||
else
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:32:64:0:32|t"))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:32:64:0:32|t", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:32:64:0:32|t"..self.displayName) --seta o texto da esqueda -- ALLY
|
||||
end
|
||||
@@ -955,13 +955,13 @@ function atributo_heal:RefreshBarra (esta_barra, instancia, from_resize)
|
||||
else
|
||||
if (self.arena_ally) then
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t"))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t" .. self.displayName)
|
||||
end
|
||||
else
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, ""))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. self.displayName) --seta o texto da esqueda
|
||||
end
|
||||
@@ -1068,9 +1068,7 @@ function atributo_heal:ToolTip_HealingTaken (instancia, numero, barra, keydown)
|
||||
end
|
||||
end
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_FROM"], headerColor, r, g, b, #meus_curadores)
|
||||
|
||||
GameCooltip:AddIcon ([[Interface\TUTORIALFRAME\UI-TutorialFrame-LevelUp]], 1, 1, 14, 14, 0.10546875, 0.89453125, 0.05859375, 0.6796875)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_FROM"], headerColor, #meus_curadores, [[Interface\TUTORIALFRAME\UI-TutorialFrame-LevelUp]], 0.10546875, 0.89453125, 0.05859375, 0.6796875)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
local ismaximized = false
|
||||
@@ -1161,8 +1159,7 @@ function atributo_heal:ToolTip_HealingDone (instancia, numero, barra, keydown)
|
||||
_table_sort (ActorHealingTargets, _detalhes.Sort2)
|
||||
|
||||
--> Mostra as habilidades no tooltip
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, r, g, b, #ActorHealingTable)
|
||||
GameCooltip:AddIcon ([[Interface\RAIDFRAME\Raid-Icon-Rez]], 1, 1, 14, 14, 0.109375, 0.890625, 0.0625, 0.90625)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, #ActorHealingTable, [[Interface\RAIDFRAME\Raid-Icon-Rez]], 0.109375, 0.890625, 0.0625, 0.90625)
|
||||
|
||||
local ismaximized = false
|
||||
if (keydown == "shift" or TooltipMaximizedMethod == 2 or TooltipMaximizedMethod == 3) then
|
||||
@@ -1215,8 +1212,7 @@ function atributo_heal:ToolTip_HealingDone (instancia, numero, barra, keydown)
|
||||
|
||||
if (instancia.sub_atributo == 1) then -- 1 or 2 -> healing done or hps
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_TARGETS"], headerColor, r, g, b, #ActorHealingTargets)
|
||||
GameCooltip:AddIcon ([[Interface\TUTORIALFRAME\UI-TutorialFrame-LevelUp]], 1, 1, 14, 14, 0.10546875, 0.89453125, 0.05859375, 0.6796875)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_TARGETS"], headerColor, #ActorHealingTargets, [[Interface\TUTORIALFRAME\UI-TutorialFrame-LevelUp]], 0.10546875, 0.89453125, 0.05859375, 0.6796875)
|
||||
|
||||
local ismaximized = false
|
||||
if (keydown == "ctrl" or TooltipMaximizedMethod == 2 or TooltipMaximizedMethod == 4) then
|
||||
@@ -1328,9 +1324,7 @@ function atributo_heal:ToolTip_HealingDone (instancia, numero, barra, keydown)
|
||||
|
||||
if (not added_logo) then
|
||||
added_logo = true
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_PETS"], headerColor, r, g, b, #totais)
|
||||
|
||||
GameCooltip:AddIcon ([[Interface\COMMON\friendship-heart]], 1, 1, 14, 14, 0.21875, 0.78125, 0.09375, 0.6875)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_PETS"], headerColor, #totais, [[Interface\COMMON\friendship-heart]], 0.21875, 0.78125, 0.09375, 0.6875)
|
||||
|
||||
if (ismaximized) then
|
||||
GameCooltip:AddIcon ([[Interface\AddOns\Details\images\key_alt]], 1, 2, _detalhes.tooltip_key_size_width, _detalhes.tooltip_key_size_height, 0, 1, 0, 0.640625, _detalhes.tooltip_key_overlay2)
|
||||
|
||||
+242
-294
@@ -2181,6 +2181,15 @@ function _detalhes:TrocaTabela (instancia, segmento, atributo, sub_atributo, ini
|
||||
end
|
||||
end
|
||||
|
||||
if (not _detalhes:GetTutorialCVar ("ATTRIBUTE_SELECT_TUTORIAL2") and not _detalhes.initializing and not iniciando_instancia) then
|
||||
|
||||
if (not _G ["DetailsWelcomeWindow"] or not _G ["DetailsWelcomeWindow"]:IsShown()) then
|
||||
--_detalhes:SetTutorialCVar ("ATTRIBUTE_SELECT_TUTORIAL2", true)
|
||||
--_detalhes:TutorialBookmark (instancia)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
if (_detalhes.cloud_process) then
|
||||
|
||||
if (_detalhes.debug) then
|
||||
@@ -2731,6 +2740,101 @@ local function GetDpsHps (_thisActor, key)
|
||||
end
|
||||
end
|
||||
|
||||
-- report_table: table sent to report func / data: numeric table {{value1, value2}} / f1: format value1 / f2: format value2
|
||||
local default_format_value1 = function (v) return v end
|
||||
local default_format_value2 = function (v) return v end
|
||||
local default_format_value3 = function (i, v1, v2)
|
||||
return "" .. i .. ". " .. v1 .. " " .. v2
|
||||
end
|
||||
|
||||
function _detalhes:FormatReportLines (report_table, data, f1, f2, f3)
|
||||
|
||||
f1 = f1 or default_format_value1
|
||||
f2 = f2 or default_format_value2
|
||||
f3 = f3 or default_format_value3
|
||||
|
||||
if (not _detalhes.fontstring_len) then
|
||||
_detalhes.fontstring_len = _detalhes.listener:CreateFontString (nil, "background", "GameFontNormal")
|
||||
end
|
||||
local _, fontSize = FCF_GetChatWindowInfo (1)
|
||||
if (fontSize < 1) then
|
||||
fontSize = 10
|
||||
end
|
||||
local fonte, _, flags = _detalhes.fontstring_len:GetFont()
|
||||
_detalhes.fontstring_len:SetFont (fonte, fontSize, flags)
|
||||
_detalhes.fontstring_len:SetText ("DEFAULT NAME")
|
||||
local biggest_len = _detalhes.fontstring_len:GetStringWidth()
|
||||
|
||||
for index, t in ipairs (data) do
|
||||
local v1 = f1 (t[1])
|
||||
_detalhes.fontstring_len:SetText (v1)
|
||||
local len = _detalhes.fontstring_len:GetStringWidth()
|
||||
if (len > biggest_len) then
|
||||
biggest_len = len
|
||||
end
|
||||
end
|
||||
|
||||
if (biggest_len > 130) then
|
||||
biggest_len = 130
|
||||
end
|
||||
|
||||
for index, t in ipairs (data) do
|
||||
local v1, v2 = f1 (t[1]), f2 (t[2])
|
||||
if (v1 and v2 and type (v1) == "string" and type (v2) == "string") then
|
||||
v1 = v1 .. " "
|
||||
_detalhes.fontstring_len:SetText (v1)
|
||||
local len = _detalhes.fontstring_len:GetStringWidth()
|
||||
|
||||
while (len < biggest_len) do
|
||||
v1 = v1 .. "."
|
||||
_detalhes.fontstring_len:SetText (v1)
|
||||
len = _detalhes.fontstring_len:GetStringWidth()
|
||||
end
|
||||
|
||||
report_table [#report_table+1] = f3 (index, v1, v2)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
local report_name_function = function (name)
|
||||
local name, index = unpack (name)
|
||||
|
||||
if (_detalhes.remove_realm_from_name and name:find ("-")) then
|
||||
return index .. ". " .. name:gsub (("%-.*"), "")
|
||||
else
|
||||
return index .. ". " .. name
|
||||
end
|
||||
end
|
||||
|
||||
local report_amount_function = function (t)
|
||||
local amount, dps, percent, is_string, index = unpack (t)
|
||||
|
||||
if (not is_string) then
|
||||
if (dps) then
|
||||
if (_detalhes.report_schema == 1) then
|
||||
return _detalhes:ToKReport (_math_floor (amount)) .. " (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. percent .. "%)"
|
||||
elseif (_detalhes.report_schema == 2) then
|
||||
return percent .. "% (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _detalhes:ToKReport ( _math_floor (amount)) .. ")"
|
||||
elseif (_detalhes.report_schema == 3) then
|
||||
return percent .. "% (" .. _detalhes:ToKReport ( _math_floor (amount) ) .. ", " .. _detalhes:ToKMin (_math_floor (dps)) .. ")"
|
||||
end
|
||||
else
|
||||
if (_detalhes.report_schema == 1) then
|
||||
return _detalhes:ToKReport (amount) .. " (" .. percent .. "%)"
|
||||
else
|
||||
return percent .. "% (" .. _detalhes:ToKReport (amount) .. ")"
|
||||
end
|
||||
end
|
||||
else
|
||||
return amount
|
||||
end
|
||||
end
|
||||
|
||||
local report_build_line = function (i, v1, v2)
|
||||
return v1 .. " " .. v2
|
||||
end
|
||||
|
||||
--> Reportar o que esta na janela da instância
|
||||
function _detalhes:monta_relatorio (este_relatorio, custom)
|
||||
|
||||
@@ -2791,327 +2895,171 @@ function _detalhes:monta_relatorio (este_relatorio, custom)
|
||||
|
||||
local barras = self.barras
|
||||
local esta_barra
|
||||
|
||||
local is_current = _G ["Details_Report_CB_1"]:GetChecked()
|
||||
local is_reverse = _G ["Details_Report_CB_2"]:GetChecked()
|
||||
|
||||
if (not _detalhes.fontstring_len) then
|
||||
_detalhes.fontstring_len = _detalhes.listener:CreateFontString (nil, "background", "GameFontNormal")
|
||||
end
|
||||
local _, fontSize = FCF_GetChatWindowInfo (1)
|
||||
if (fontSize < 1) then
|
||||
fontSize = 10
|
||||
end
|
||||
local fonte, _, flags = _detalhes.fontstring_len:GetFont()
|
||||
_detalhes.fontstring_len:SetFont (fonte, fontSize, flags)
|
||||
_detalhes.fontstring_len:SetText ("hello details!")
|
||||
local default_len = _detalhes.fontstring_len:GetStringWidth()
|
||||
|
||||
local name_member = "nome"
|
||||
|
||||
--> pegar a font do chat
|
||||
--_detalhes.fontstring_len:
|
||||
if (not is_current) then
|
||||
|
||||
if (not is_reverse) then
|
||||
|
||||
if (not is_current) then
|
||||
--> assumindo que self é sempre uma instância aqui.
|
||||
local total, keyName, keyNameSec, first
|
||||
local container_amount = 0
|
||||
local atributo = self.atributo
|
||||
local container = self.showing [atributo]._ActorTable
|
||||
|
||||
if (atributo == 1) then --> damage
|
||||
local total, keyName, keyNameSec, first
|
||||
local container_amount = 0
|
||||
local atributo = self.atributo
|
||||
local container = self.showing [atributo]._ActorTable
|
||||
|
||||
if (atributo == 1) then --> damage
|
||||
|
||||
if (self.sub_atributo == 5) then --> frags
|
||||
local frags = self.showing.frags
|
||||
local reportarFrags = {}
|
||||
for name, amount in pairs (frags) do
|
||||
--> string para imprimir direto sem calculos
|
||||
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
|
||||
if (self.sub_atributo == 5) then --> frags
|
||||
local frags = self.showing.frags
|
||||
local reportarFrags = {}
|
||||
for name, amount in pairs (frags) do
|
||||
--> string para imprimir direto sem calculos
|
||||
reportarFrags [#reportarFrags+1] = {frag = tostring (amount), nome = name}
|
||||
end
|
||||
container = reportarFrags
|
||||
container_amount = #reportarFrags
|
||||
keyName = "frag"
|
||||
|
||||
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
|
||||
keyNameSec = "dps"
|
||||
elseif (self.sub_atributo == 2) then
|
||||
|
||||
end
|
||||
elseif (self.sub_atributo == 7) then --> auras e voidzones
|
||||
|
||||
total, keyName, first, container_amount, container, name_member = _detalhes.atributo_damage:RefreshWindow (self, self.showing, true, true)
|
||||
|
||||
elseif (self.sub_atributo == 8) then --> damage taken by spell
|
||||
|
||||
total, keyName, first, container_amount, container = _detalhes.atributo_damage:RefreshWindow (self, self.showing, true, true)
|
||||
|
||||
for _, t in ipairs (container) do
|
||||
t.nome = _detalhes:GetSpellLink (t.spellid)
|
||||
end
|
||||
elseif (atributo == 2) then --> heal
|
||||
total, keyName, first, container_amount = _detalhes.atributo_heal: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
|
||||
keyNameSec = "hps"
|
||||
end
|
||||
elseif (atributo == 3) then --> energy
|
||||
total, keyName, first, container_amount = _detalhes.atributo_energy:RefreshWindow (self, self.showing, true, true)
|
||||
elseif (atributo == 4) then --> misc
|
||||
if (self.sub_atributo == 5) then --> mortes
|
||||
|
||||
local mortes = self.showing.last_events_tables
|
||||
local reportarMortes = {}
|
||||
for index, morte in ipairs (mortes) do
|
||||
reportarMortes [#reportarMortes+1] = {dead = morte [6], nome = morte [3]:gsub (("%-.*"), "")}
|
||||
end
|
||||
container = reportarMortes
|
||||
container_amount = #reportarMortes
|
||||
keyName = "dead"
|
||||
else
|
||||
total, keyName, first, container_amount = _detalhes.atributo_misc:RefreshWindow (self, self.showing, true, true)
|
||||
end
|
||||
elseif (atributo == 5) then --> custom
|
||||
|
||||
if (_detalhes.custom [self.sub_atributo]) then
|
||||
total, container, first, container_amount, nm = _detalhes.atributo_custom:RefreshWindow (self, self.showing, true, true)
|
||||
if (nm) then
|
||||
name_member = nm
|
||||
print ("nm:", nm)
|
||||
end
|
||||
keyName = "report_value"
|
||||
else
|
||||
total, keyName, first, container_amount = _detalhes.atributo_damage:RefreshWindow (self, self.showing, true, true)
|
||||
total = 1
|
||||
atributo = 1
|
||||
container = self.showing [atributo]._ActorTable
|
||||
end
|
||||
--print (total, keyName, first, atributo, container_amount)
|
||||
end
|
||||
|
||||
amt = math.min (amt, container_amount or 0)
|
||||
--amt é zero
|
||||
for i = 1, amt do
|
||||
local _thisActor = container [i]
|
||||
|
||||
if (_thisActor) then
|
||||
|
||||
local amount, is_string
|
||||
if (type (_thisActor [keyName]) == "number") then
|
||||
amount = _math_floor (_thisActor [keyName])
|
||||
else
|
||||
amount = _thisActor [keyName]
|
||||
is_string = true
|
||||
end
|
||||
|
||||
local name = _thisActor [name_member] .. " "
|
||||
if (_detalhes.remove_realm_from_name and name:find ("-")) then
|
||||
name = name:gsub (("%-.*"), "")
|
||||
end
|
||||
keyNameSec = "dps"
|
||||
elseif (self.sub_atributo == 2) then
|
||||
|
||||
_detalhes.fontstring_len:SetText (name)
|
||||
local stringlen = _detalhes.fontstring_len:GetStringWidth()
|
||||
|
||||
while (stringlen < default_len) do
|
||||
name = name .. "."
|
||||
_detalhes.fontstring_len:SetText (name)
|
||||
stringlen = _detalhes.fontstring_len:GetStringWidth()
|
||||
end
|
||||
|
||||
local percent
|
||||
|
||||
if (self.atributo == 2 and self.sub_atributo == 3) then --overheal
|
||||
percent = _cstr ("%.1f", _thisActor.totalover / (_thisActor.totalover + _thisActor.total) * 100)
|
||||
elseif (not is_string) then
|
||||
percent = _cstr ("%.1f", amount/total*100)
|
||||
end
|
||||
|
||||
if (_type (amount) == "number" and amount > 0) then
|
||||
if (keyNameSec) then
|
||||
local dps = GetDpsHps (_thisActor, keyNameSec)
|
||||
if (_detalhes.report_schema == 1) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKMin ( _math_floor (amount) ) .. " (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. percent .. "%)"
|
||||
elseif (_detalhes.report_schema == 2) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. percent .. "% (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _detalhes:ToKMin ( _math_floor (amount)) .. ")"
|
||||
elseif (_detalhes.report_schema == 3) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. percent .. "% (" .. _detalhes:ToKMin ( _math_floor (amount) ) .. ", " .. _detalhes:ToKMin (_math_floor (dps)) .. ")"
|
||||
end
|
||||
else
|
||||
if (_detalhes.report_schema == 1) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKReport (amount) .. " (" .. percent .. "%)"
|
||||
else
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. percent .. "% (" .. _detalhes:ToKReport (amount) .. ")"
|
||||
end
|
||||
end
|
||||
|
||||
elseif (_type (amount) == "string") then
|
||||
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. amount
|
||||
|
||||
else
|
||||
break
|
||||
end
|
||||
else
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
for i = 1, amt do
|
||||
local ROW = self.barras [i]
|
||||
if (ROW) then
|
||||
if (not ROW.hidden or ROW.fading_out) then --> a barra esta visivel na tela
|
||||
report_lines [#report_lines+1] = ROW.texto_esquerdo:GetText().." ".. ROW.texto_direita:GetText()
|
||||
else
|
||||
break
|
||||
end
|
||||
else
|
||||
break --> chegou a final, parar de pegar as linhas
|
||||
end
|
||||
elseif (atributo == 2) then --> heal
|
||||
total, keyName, first, container_amount = _detalhes.atributo_heal:RefreshWindow (self, self.showing, true, true)
|
||||
|
||||
if (self.sub_atributo == 1) then
|
||||
keyNameSec = "hps"
|
||||
end
|
||||
end
|
||||
|
||||
else --> é reverso
|
||||
report_lines[1] = report_lines[1].." (" .. Loc ["STRING_REPORTFRAME_REVERTED"] .. ")"
|
||||
|
||||
if (not is_current) then
|
||||
--> assumindo que self é sempre uma instância aqui.
|
||||
local total, keyName, first, container_amount
|
||||
local atributo = self.atributo
|
||||
|
||||
local container = self.showing [atributo]._ActorTable
|
||||
local quantidade = 0
|
||||
|
||||
if (atributo == 1) then --> damage
|
||||
if (self.sub_atributo == 5) then --> frags
|
||||
local frags = self.showing.frags
|
||||
local reportarFrags = {}
|
||||
for name, amount in pairs (frags) do
|
||||
--> string para imprimir direto sem calculos
|
||||
reportarFrags [#reportarFrags+1] = {frag = tostring (amount), nome = name}
|
||||
end
|
||||
container = reportarFrags
|
||||
keyName = "frag"
|
||||
else
|
||||
if (self.sub_atributo == 1) then
|
||||
keyNameSec = "dps"
|
||||
end
|
||||
total, keyName, first, container_amount = _detalhes.atributo_damage:RefreshWindow (self, self.showing, true, true)
|
||||
elseif (atributo == 3) then --> energy
|
||||
total, keyName, first, container_amount = _detalhes.atributo_energy:RefreshWindow (self, self.showing, true, true)
|
||||
elseif (atributo == 4) then --> misc
|
||||
if (self.sub_atributo == 5) then --> mortes
|
||||
|
||||
local mortes = self.showing.last_events_tables
|
||||
local reportarMortes = {}
|
||||
for index, morte in ipairs (mortes) do
|
||||
reportarMortes [#reportarMortes+1] = {dead = morte [6], nome = morte [3]:gsub (("%-.*"), "")}
|
||||
end
|
||||
elseif (atributo == 2) then --> heal
|
||||
total, keyName, first, container_amount = _detalhes.atributo_heal:RefreshWindow (self, self.showing, true, true)
|
||||
if (self.sub_atributo == 1) then
|
||||
keyNameSec = "hps"
|
||||
end
|
||||
elseif (atributo == 3) then --> energy
|
||||
total, keyName, first, container_amount = _detalhes.atributo_energy:RefreshWindow (self, self.showing, true, true)
|
||||
elseif (atributo == 4) then --> misc
|
||||
if (self.sub_atributo == 5) then --> mortes
|
||||
local mortes = self.showing.last_events_tables
|
||||
local reportarMortes = {}
|
||||
for index, morte in ipairs (mortes) do
|
||||
reportarMortes [#reportarMortes+1] = {dead = morte [6], nome = morte [3]:gsub (("%-.*"), "")}
|
||||
end
|
||||
container = reportarMortes
|
||||
keyName = "dead"
|
||||
else
|
||||
total, keyName, first, container_amount = _detalhes.atributo_misc:RefreshWindow (self, self.showing, true, true)
|
||||
end
|
||||
elseif (atributo == 5) then --> custom
|
||||
container = reportarMortes
|
||||
container_amount = #reportarMortes
|
||||
keyName = "dead"
|
||||
else
|
||||
total, keyName, first, container_amount = _detalhes.atributo_misc:RefreshWindow (self, self.showing, true, true)
|
||||
end
|
||||
elseif (atributo == 5) then --> custom
|
||||
|
||||
if (_detalhes.custom [self.sub_atributo]) then
|
||||
total, container, first, container_amount, nm = _detalhes.atributo_custom:RefreshWindow (self, self.showing, true, true)
|
||||
if (nm) then
|
||||
name_member = nm
|
||||
end
|
||||
keyName = "report_value"
|
||||
keyName = "report_value"
|
||||
else
|
||||
total, keyName, first, container_amount = _detalhes.atributo_damage:RefreshWindow (self, self.showing, true, true)
|
||||
total = 1
|
||||
atributo = 1
|
||||
container = self.showing [atributo]._ActorTable
|
||||
end
|
||||
--print (total, keyName, first, atributo, container_amount)
|
||||
end
|
||||
|
||||
amt = math.min (amt, container_amount or 0)
|
||||
local raw_data_to_report = {}
|
||||
|
||||
for i = 1, container_amount do
|
||||
local actor = container [i]
|
||||
|
||||
local this_amt = math.min (#container, container_amount or 0, amt)
|
||||
this_amt = #container - this_amt
|
||||
|
||||
for i = container_amount, this_amt, -1 do
|
||||
|
||||
local _thisActor = container [i]
|
||||
if (_thisActor) then
|
||||
|
||||
local amount
|
||||
if (type (_thisActor [keyName]) == "number") then
|
||||
amount = _math_floor (_thisActor [keyName])
|
||||
else
|
||||
amount = _thisActor [keyName]
|
||||
end
|
||||
|
||||
local name = _thisActor [name_member] .. " "
|
||||
|
||||
_detalhes.fontstring_len:SetText (name)
|
||||
local stringlen = _detalhes.fontstring_len:GetStringWidth()
|
||||
|
||||
while (stringlen < default_len) do
|
||||
name = name .. "."
|
||||
_detalhes.fontstring_len:SetText (name)
|
||||
stringlen = _detalhes.fontstring_len:GetStringWidth()
|
||||
end
|
||||
|
||||
if (_type (amount) == "number") then
|
||||
if (amount > 0) then
|
||||
|
||||
local percent
|
||||
|
||||
if (self.atributo == 2 and self.sub_atributo == 3) then --overheal
|
||||
percent = _cstr ("%.1f", _thisActor.totalover / (_thisActor.totalover + _thisActor.total) * 100)
|
||||
else
|
||||
percent = _cstr ("%.1f", amount/total*100)
|
||||
end
|
||||
|
||||
if (keyNameSec) then
|
||||
local dps = GetDpsHps (_thisActor, keyNameSec)
|
||||
if (_detalhes.report_schema == 1) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKMin ( _math_floor (amount) ) .. " (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. percent .. "%)"
|
||||
elseif (_detalhes.report_schema == 2) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. percent .. "% (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _detalhes:ToKMin ( _math_floor (amount)) .. ")"
|
||||
elseif (_detalhes.report_schema == 3) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. percent .. "% (" .. _detalhes:ToKMin ( _math_floor (amount) ) .. ", " .. _detalhes:ToKMin (_math_floor (dps)) .. ")"
|
||||
end
|
||||
else
|
||||
if (_detalhes.report_schema == 1) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKReport (amount) .. " (" .. percent .. "%)"
|
||||
else
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.1f", amount/total*100) .. "% (" .. percent .. ")"
|
||||
end
|
||||
end
|
||||
|
||||
quantidade = quantidade + 1
|
||||
if (quantidade == amt) then
|
||||
break
|
||||
end
|
||||
end
|
||||
elseif (_type (amount) == "string") then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. amount
|
||||
else
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
local nova_tabela = {}
|
||||
if (actor) then
|
||||
|
||||
for i = 1, amt do
|
||||
local ROW = self.barras [i]
|
||||
if (ROW) then
|
||||
if (not ROW.hidden or ROW.fading_out) then --> a barra esta visivel na tela
|
||||
nova_tabela [#nova_tabela+1] = ROW.texto_esquerdo:GetText().." ".. ROW.texto_direita:GetText()
|
||||
else
|
||||
break
|
||||
end
|
||||
-- get the total
|
||||
local amount, is_string
|
||||
if (type (actor [keyName]) == "number") then
|
||||
amount = _math_floor (actor [keyName])
|
||||
else
|
||||
break
|
||||
amount = actor [keyName]
|
||||
is_string = true
|
||||
end
|
||||
end
|
||||
|
||||
for i = #nova_tabela, 1, -1 do
|
||||
report_lines [#report_lines+1] = nova_tabela[i]
|
||||
|
||||
-- get the name
|
||||
local name = actor [name_member] or ""
|
||||
|
||||
if (not is_string) then
|
||||
-- get the percent
|
||||
local percent
|
||||
if (self.atributo == 2 and self.sub_atributo == 3) then --overheal
|
||||
percent = _cstr ("%.1f", actor.totalover / (actor.totalover + actor.total) * 100)
|
||||
elseif (not is_string) then
|
||||
percent = _cstr ("%.1f", amount / total * 100)
|
||||
end
|
||||
|
||||
-- get the dps
|
||||
local dps = false
|
||||
if (keyNameSec) then
|
||||
dps = GetDpsHps (actor, keyNameSec)
|
||||
end
|
||||
|
||||
raw_data_to_report [#raw_data_to_report+1] = {{name, i}, {amount, dps, percent, false}}
|
||||
else
|
||||
raw_data_to_report [#raw_data_to_report+1] = {{name, i}, {amount, false, false, true}}
|
||||
end
|
||||
|
||||
else
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if (is_reverse) then
|
||||
local t = {}
|
||||
for i = #raw_data_to_report, 1, -1 do
|
||||
tinsert (t, raw_data_to_report [i])
|
||||
if (#t >= amt) then
|
||||
break
|
||||
end
|
||||
end
|
||||
_detalhes:FormatReportLines (report_lines, t, report_name_function, report_amount_function, report_build_line)
|
||||
else
|
||||
for i = #raw_data_to_report, amt+1, -1 do
|
||||
tremove (raw_data_to_report, i)
|
||||
end
|
||||
_detalhes:FormatReportLines (report_lines, raw_data_to_report, report_name_function, report_amount_function, report_build_line)
|
||||
end
|
||||
|
||||
else
|
||||
|
||||
local raw_data_to_report = {}
|
||||
|
||||
for i = 1, amt do
|
||||
local window_bar = self.barras [i]
|
||||
if (window_bar) then
|
||||
if (not window_bar.hidden or window_bar.fading_out) then
|
||||
raw_data_to_report [#raw_data_to_report+1] = {window_bar.texto_esquerdo:GetText(), window_bar.texto_direita:GetText()}
|
||||
else
|
||||
break
|
||||
end
|
||||
else
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
_detalhes:FormatReportLines (report_lines, raw_data_to_report, nil, nil, report_build_line)
|
||||
|
||||
end
|
||||
|
||||
|
||||
return self:envia_relatorio (report_lines)
|
||||
|
||||
end
|
||||
|
||||
+53
-69
@@ -449,50 +449,51 @@ function atributo_misc:ReportSingleCooldownLine (misc_actor, instancia)
|
||||
return _detalhes:Reportar (reportar, {_no_current = true, _no_inverse = true, _custom = true})
|
||||
end
|
||||
|
||||
function atributo_misc:ReportSingleBuffUptimeLine (misc_actor, instancia)
|
||||
local reportar = {"Details!: " .. misc_actor.nome .. " - " .. Loc ["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"]}
|
||||
|
||||
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)
|
||||
|
||||
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})
|
||||
local buff_format_name = function (spellid)
|
||||
return _detalhes:GetSpellLink (spellid)
|
||||
end
|
||||
local buff_format_amount = function (t)
|
||||
local total, percent = unpack (t)
|
||||
local m, s = _math_floor (total / 60), _math_floor (total % 60)
|
||||
return _cstr ("%.1f", percent) .. "% (" .. m .. "m " .. s .. "s)"
|
||||
end
|
||||
local sort_buff_report = function (t1, t2)
|
||||
return t1[2][1] > t2[2][1]
|
||||
end
|
||||
|
||||
function atributo_misc:ReportSingleDebuffUptimeLine (misc_actor, instancia)
|
||||
function atributo_misc:ReportSingleBuffUptimeLine (misc_actor, instance)
|
||||
local report_table = {"Details!: " .. misc_actor.nome .. " - " .. Loc ["STRING_ATTRIBUTE_MISC_BUFF_UPTIME"]}
|
||||
|
||||
local buffs = {}
|
||||
local combat_time = instance.showing:GetCombatTime()
|
||||
|
||||
for spellid, spell in _pairs (misc_actor.buff_uptime_spells._ActorTable) do
|
||||
local percent = spell.uptime / combat_time * 100
|
||||
if (percent < 99.5) then
|
||||
buffs [#buffs+1] = {spellid, {spell.uptime, percent}}
|
||||
end
|
||||
end
|
||||
|
||||
local reportar = {"Details!: " .. misc_actor.nome .. " - " .. Loc ["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"]}
|
||||
_table_sort (buffs, sort_buff_report)
|
||||
_detalhes:FormatReportLines (report_table, buffs, buff_format_name, buff_format_amount)
|
||||
return _detalhes:Reportar (report_table, {_no_current = true, _no_inverse = true, _custom = true})
|
||||
end
|
||||
|
||||
function atributo_misc:ReportSingleDebuffUptimeLine (misc_actor, instance)
|
||||
local report_table = {"Details!: " .. misc_actor.nome .. " - " .. Loc ["STRING_ATTRIBUTE_MISC_DEBUFF_UPTIME"]}
|
||||
|
||||
local debuffs = {}
|
||||
local combat_time = instancia.showing:GetCombatTime()
|
||||
local combat_time = instance.showing:GetCombatTime()
|
||||
|
||||
for spellid, spell in _pairs (misc_actor.debuff_uptime_spells._ActorTable) do
|
||||
debuffs [#debuffs+1] = {spellid, spell.uptime, spell}
|
||||
local percent = spell.uptime / combat_time * 100
|
||||
debuffs [#debuffs+1] = {spellid, {spell.uptime, percent}}
|
||||
end
|
||||
|
||||
_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})
|
||||
_table_sort (debuffs, sort_buff_report)
|
||||
_detalhes:FormatReportLines (report_table, debuffs, buff_format_name, buff_format_amount)
|
||||
|
||||
return _detalhes:Reportar (report_table, {_no_current = true, _no_inverse = true, _custom = true})
|
||||
end
|
||||
|
||||
function atributo_misc:DeadAtualizarBarra (morte, qual_barra, colocacao, instancia)
|
||||
@@ -1003,7 +1004,7 @@ function atributo_misc:RefreshBarra (esta_barra, instancia, from_resize)
|
||||
if (self.enemy) then
|
||||
if (self.arena_enemy) then
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t"))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t" .. self.displayName)
|
||||
end
|
||||
@@ -1011,13 +1012,13 @@ function atributo_misc:RefreshBarra (esta_barra, instancia, from_resize)
|
||||
else
|
||||
if (_detalhes.faction_against == "Horde") then
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:0:32:0:32|t"))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:0:32:0:32|t", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:0:32:0:32|t"..self.displayName) --seta o texto da esqueda -- HORDA
|
||||
end
|
||||
else
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:32:64:0:32|t"))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:32:64:0:32|t", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. "|TInterface\\AddOns\\Details\\images\\icones_barra:"..instancia.row_info.height..":"..instancia.row_info.height..":0:0:256:32:32:64:0:32|t"..self.displayName) --seta o texto da esqueda -- ALLY
|
||||
end
|
||||
@@ -1030,13 +1031,13 @@ function atributo_misc:RefreshBarra (esta_barra, instancia, from_resize)
|
||||
else
|
||||
if (self.arena_ally) then
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t"))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. instancia.row_info.height .. ":" .. instancia.row_info.height .. ":0:0:256:256:" .. _detalhes.role_texcoord [self.role or "NONE"] .. "|t" .. self.displayName)
|
||||
end
|
||||
else
|
||||
if (UsingCustomLeftText) then
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, ""))
|
||||
esta_barra.texto_esquerdo:SetText (_string_replace (instancia.row_info.textL_custom_text, esta_barra.colocacao, self.displayName, "", self, instancia.showing))
|
||||
else
|
||||
esta_barra.texto_esquerdo:SetText (bar_number .. self.displayName) --seta o texto da esqueda
|
||||
end
|
||||
@@ -1168,9 +1169,7 @@ function atributo_misc:ToolTipDispell (instancia, numero, barra)
|
||||
end
|
||||
_table_sort (meus_dispells, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, r, g, b, #meus_dispells)
|
||||
|
||||
GameCooltip:AddIcon ([[Interface\ICONS\Spell_Arcane_ArcaneTorrent]], 1, 1, 14, 14, 0.078125, 0.9375, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, #meus_dispells, [[Interface\ICONS\Spell_Arcane_ArcaneTorrent]], 0.078125, 0.9375, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
local icon_size = _detalhes.tooltip.icon_size
|
||||
@@ -1195,9 +1194,7 @@ function atributo_misc:ToolTipDispell (instancia, numero, barra)
|
||||
end
|
||||
_table_sort (buffs_dispelados, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_DISPELLED"], headerColor, r, g, b, #buffs_dispelados)
|
||||
|
||||
GameCooltip:AddIcon ([[Interface\ICONS\Spell_Arcane_ManaTap]], 1, 1, 14, 14, 0.078125, 0.9375, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_DISPELLED"], headerColor, #buffs_dispelados, [[Interface\ICONS\Spell_Arcane_ManaTap]], 0.078125, 0.9375, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
if (#buffs_dispelados > 0) then
|
||||
@@ -1218,8 +1215,7 @@ function atributo_misc:ToolTipDispell (instancia, numero, barra)
|
||||
end
|
||||
_table_sort (alvos_dispelados, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_TARGETS"], headerColor, r, g, b, #alvos_dispelados)
|
||||
GameCooltip:AddIcon ([[Interface\ICONS\ACHIEVEMENT_GUILDPERK_EVERYONES A HERO_RANK2]], 1, 1, 14, 14, 0.078125, 0.9375, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_TARGETS"], headerColor, #alvos_dispelados, [[Interface\ICONS\ACHIEVEMENT_GUILDPERK_EVERYONES A HERO_RANK2]], 0.078125, 0.9375, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
for i = 1, _math_min (25, #alvos_dispelados) do
|
||||
@@ -1284,8 +1280,7 @@ function atributo_misc:ToolTipDispell (instancia, numero, barra)
|
||||
if (not added_logo) then
|
||||
added_logo = true
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_PETS"], headerColor, r, g, b, #totais)
|
||||
GameCooltip:AddIcon ([[Interface\COMMON\friendship-heart]], 1, 1, 14, 14, 0.21875, 0.78125, 0.09375, 0.6875)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_PETS"], headerColor, #totais, [[Interface\COMMON\friendship-heart]], 0.21875, 0.78125, 0.09375, 0.6875)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
end
|
||||
|
||||
@@ -1685,8 +1680,7 @@ function atributo_misc:ToolTipDebuffUptime (instancia, numero, barra)
|
||||
--_table_sort (debuffs_usados, Sort2Reverse)
|
||||
_table_sort (debuffs_usados, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, r, g, b, #debuffs_usados)
|
||||
GameCooltip:AddIcon ([[Interface\ICONS\Ability_Warrior_Safeguard]], 1, 1, 14, 14, 0.9375, 0.078125, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, #debuffs_usados, [[Interface\ICONS\Ability_Warrior_Safeguard]], 0.9375, 0.078125, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
local icon_size = _detalhes.tooltip.icon_size
|
||||
@@ -1745,8 +1739,7 @@ function atributo_misc:ToolTipBuffUptime (instancia, numero, barra)
|
||||
--_table_sort (buffs_usados, Sort2Reverse)
|
||||
_table_sort (buffs_usados, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, r, g, b, #buffs_usados)
|
||||
GameCooltip:AddIcon ([[Interface\ICONS\Ability_Warrior_Safeguard]], 1, 1, 14, 14, 0.9375, 0.078125, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, #buffs_usados, [[Interface\ICONS\Ability_Warrior_Safeguard]], 0.9375, 0.078125, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
local icon_size = _detalhes.tooltip.icon_size
|
||||
@@ -1804,8 +1797,7 @@ function atributo_misc:ToolTipDefensiveCooldowns (instancia, numero, barra)
|
||||
end
|
||||
_table_sort (cooldowns_usados, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, r, g, b, #cooldowns_usados)
|
||||
GameCooltip:AddIcon ([[Interface\ICONS\Ability_Warrior_Safeguard]], 1, 1, 14, 14, 0.9375, 0.078125, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, #cooldowns_usados, [[Interface\ICONS\Ability_Warrior_Safeguard]], 0.9375, 0.078125, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
local icon_size = _detalhes.tooltip.icon_size
|
||||
@@ -1832,8 +1824,7 @@ function atributo_misc:ToolTipDefensiveCooldowns (instancia, numero, barra)
|
||||
end
|
||||
_table_sort (alvos, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_TARGETS"], headerColor, r, g, b, #alvos)
|
||||
GameCooltip:AddIcon ([[Interface\ICONS\Ability_Warrior_DefensiveStance]], 1, 1, 14, 14, 0.9375, 0.125, 0.0625, 0.9375)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_TARGETS"], headerColor, #alvos, [[Interface\ICONS\Ability_Warrior_DefensiveStance]], 0.9375, 0.125, 0.0625, 0.9375)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
if (#alvos > 0) then
|
||||
@@ -1883,8 +1874,7 @@ function atributo_misc:ToolTipRess (instancia, numero, barra)
|
||||
end
|
||||
_table_sort (meus_ress, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, r, g, b, #meus_ress)
|
||||
GameCooltip:AddIcon ([[Interface\ICONS\Ability_Paladin_BlessedMending]], 1, 1, 14, 14, 0.098125, 0.828125, 0.953125, 0.168125)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, #meus_ress, [[Interface\ICONS\Ability_Paladin_BlessedMending]], 0.098125, 0.828125, 0.953125, 0.168125)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
if (#meus_ress > 0) then
|
||||
@@ -1908,10 +1898,7 @@ function atributo_misc:ToolTipRess (instancia, numero, barra)
|
||||
end
|
||||
_table_sort (alvos, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_TARGETS"], headerColor, r, g, b, #alvos)
|
||||
--GameCooltip:AddIcon ([[Interface\ICONS\Ability_DeathKnight_IcyGrip]], 1, 1, 14, 14, 0.9375, 0.078125, 0.953125, 0.078125)
|
||||
|
||||
GameCooltip:AddIcon ([[Interface\ICONS\Ability_Priest_Cascade]], 1, 1, 14, 14, 0.9375, 0.0625, 0.0625, 0.9375)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_TARGETS"], headerColor, #alvos, [[Interface\ICONS\Ability_Priest_Cascade]], 0.9375, 0.0625, 0.0625, 0.9375)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
if (#alvos > 0) then
|
||||
@@ -1962,8 +1949,7 @@ function atributo_misc:ToolTipInterrupt (instancia, numero, barra)
|
||||
end
|
||||
_table_sort (meus_interrupts, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, r, g, b, #meus_interrupts)
|
||||
GameCooltip:AddIcon ([[Interface\ICONS\Ability_Warrior_PunishingBlow]], 1, 1, 14, 14, 0.9375, 0.078125, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELLS"], headerColor, #meus_interrupts, [[Interface\ICONS\Ability_Warrior_PunishingBlow]], 0.9375, 0.078125, 0.078125, 0.953125)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
if (#meus_interrupts > 0) then
|
||||
@@ -1986,8 +1972,7 @@ function atributo_misc:ToolTipInterrupt (instancia, numero, barra)
|
||||
end
|
||||
_table_sort (habilidades_interrompidas, _detalhes.Sort2)
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELL_INTERRUPTED"] .. ":", headerColor, r, g, b, #habilidades_interrompidas)
|
||||
GameCooltip:AddIcon ([[Interface\ICONS\Ability_Warrior_Sunder]], 1, 1, 14, 14, 0.078125, 0.9375, 0.128125, 0.913125)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_SPELL_INTERRUPTED"] .. ":", headerColor, #habilidades_interrompidas, [[Interface\ICONS\Ability_Warrior_Sunder]], 0.078125, 0.9375, 0.128125, 0.913125)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
|
||||
if (#habilidades_interrompidas > 0) then
|
||||
@@ -2039,8 +2024,7 @@ function atributo_misc:ToolTipInterrupt (instancia, numero, barra)
|
||||
if (not added_logo) then
|
||||
added_logo = true
|
||||
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_PETS"], headerColor, r, g, b, #totais)
|
||||
GameCooltip:AddIcon ([[Interface\COMMON\friendship-heart]], 1, 1, 14, 14, 0.21875, 0.78125, 0.09375, 0.6875)
|
||||
_detalhes:AddTooltipSpellHeaderText (Loc ["STRING_PETS"], headerColor, #totais, [[Interface\COMMON\friendship-heart]], 0.21875, 0.78125, 0.09375, 0.6875)
|
||||
_detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha)
|
||||
end
|
||||
|
||||
|
||||
+20
-18
@@ -1106,6 +1106,11 @@
|
||||
local backgroundColor = {0, 0, 0, 0.6}
|
||||
local avatarTextColor = {1, 1, 1, 1}
|
||||
|
||||
function _detalhes:AddTooltipReportLineText()
|
||||
GameCooltip:AddLine (Loc ["STRING_CLICK_REPORT_LINE1"], Loc ["STRING_CLICK_REPORT_LINE2"])
|
||||
GameCooltip:AddStatusBar (100, 1, 0, 0, 0, 0.4)
|
||||
end
|
||||
|
||||
function _detalhes:AddTooltipBackgroundStatusbar (side)
|
||||
if (not side) then
|
||||
GameCooltip:AddStatusBar (100, 1, unpack (_detalhes.tooltip.background))
|
||||
@@ -1118,20 +1123,15 @@
|
||||
GameCooltip:AddStatusBar (100, 1, 1, 1, 1, a, nil, nil, [[Interface\WorldStateFrame\WORLDSTATEFINALSCORE-HIGHLIGHT]])
|
||||
end
|
||||
|
||||
function _detalhes:AddTooltipSpellHeaderText (headerText, headerColor, r, g, b, amount, side)
|
||||
if (not side) then
|
||||
if (_detalhes.tooltip.show_amount) then
|
||||
GameCooltip:AddLine (headerText, "x" .. amount .. "", nil, headerColor, r, g, b, .5, 10)
|
||||
else
|
||||
GameCooltip:AddLine (headerText, nil, nil, headerColor, nil, 12)
|
||||
end
|
||||
function _detalhes:AddTooltipSpellHeaderText (headerText, headerColor, amount, iconTexture, L, R, T, B)
|
||||
if (_detalhes.tooltip.show_amount) then
|
||||
GameCooltip:AddLine (headerText, "x" .. amount .. "", nil, headerColor, 1, 1, 1, .4, _detalhes.tooltip.fontsize_title)
|
||||
else
|
||||
--> sub menu
|
||||
if (_detalhes.tooltip.show_amount) then
|
||||
GameCooltip:AddLine (headerText, "x" .. amount .. "", 2, headerColor, r, g, b, .5, 10)
|
||||
else
|
||||
GameCooltip:AddLine (headerText, nil, 2, headerColor, nil, 12)
|
||||
end
|
||||
GameCooltip:AddLine (headerText, nil, nil, headerColor, nil, _detalhes.tooltip.fontsize_title)
|
||||
end
|
||||
|
||||
if (iconTexture) then
|
||||
GameCooltip:AddIcon (iconTexture, 1, 1, 14, 14, L or 0, R or 1, T or 0, B or 1)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1181,6 +1181,8 @@
|
||||
--verifica por tooltips especiais:
|
||||
if (objeto.dead) then --> é uma barra de dead
|
||||
return _detalhes:ToolTipDead (self, objeto, esta_barra, keydown) --> instância, [morte], barra
|
||||
elseif (objeto.byspell) then
|
||||
return _detalhes:ToolTipBySpell (self, objeto, esta_barra, keydown)
|
||||
elseif (objeto.frags) then
|
||||
return _detalhes:ToolTipFrags (self, objeto, esta_barra, keydown)
|
||||
elseif (objeto.boss_debuff) then
|
||||
@@ -1200,11 +1202,11 @@
|
||||
GameCooltip:SetBannerText (1, (not _detalhes.ignore_nicktag and avatar [1]) or objeto.nome, textPoint, avatarTextColor, 14, SharedMedia:Fetch ("font", _detalhes.tooltip.fontface)) --> text [1] nickname
|
||||
end
|
||||
else
|
||||
if (_detalhes.remove_realm_from_name and objeto.displayName:find ("%*")) then
|
||||
GameCooltip:SetBannerImage (1, [[Interface\AddOns\Details\images\background]], 20, 30, avatarPoint, avatarTexCoord, {0, 0, 0, 0}) --> overlay [2] avatar path
|
||||
GameCooltip:SetBannerImage (2, [[Interface\PetBattles\Weather-BurntEarth]], 160, 30, {{"bottomleft", "topleft", 0, -5}, {"bottomright", "topright", 0, -5}}, {0.12, 0.88, 1, 0}, {0, 0, 0, 0.1}) --> overlay [2] avatar path {0, 0, 0, 0}
|
||||
GameCooltip:SetBannerText (1, objeto.nome, {"left", "left", 11, -8}, {1, 1, 1, 0.7}, 10, SharedMedia:Fetch ("font", _detalhes.tooltip.fontface)) --> text [1] nickname
|
||||
end
|
||||
--if (_detalhes.remove_realm_from_name and objeto.displayName:find ("%*")) then
|
||||
-- GameCooltip:SetBannerImage (1, [[Interface\AddOns\Details\images\background]], 20, 30, avatarPoint, avatarTexCoord, {0, 0, 0, 0}) --> overlay [2] avatar path
|
||||
-- GameCooltip:SetBannerImage (2, [[Interface\PetBattles\Weather-BurntEarth]], 160, 30, {{"bottomleft", "topleft", 0, -5}, {"bottomright", "topright", 0, -5}}, {0.12, 0.88, 1, 0}, {0, 0, 0, 0.1}) --> overlay [2] avatar path {0, 0, 0, 0}
|
||||
-- GameCooltip:SetBannerText (1, objeto.nome, {"left", "left", 11, -8}, {1, 1, 1, 0.7}, 10, SharedMedia:Fetch ("font", _detalhes.tooltip.fontface)) --> text [1] nickname
|
||||
--end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@
|
||||
if (is_in_instance and _detalhes.remove_realm_from_name) then
|
||||
esta_classe.displayName = nome:gsub (("%-.*"), "")
|
||||
elseif (_detalhes.remove_realm_from_name) then
|
||||
esta_classe.displayName = nome:gsub (("%-.*"), "%*")
|
||||
esta_classe.displayName = nome:gsub (("%-.*"), "") --"%*"
|
||||
else
|
||||
esta_classe.displayName = nome
|
||||
end
|
||||
|
||||
@@ -1259,6 +1259,7 @@
|
||||
if (not boss_repeated [encounterId]) then
|
||||
local encounter, instance = _detalhes:GetBossEncounterDetailsFromEncounterId (_, encounterId)
|
||||
if (encounter) then
|
||||
--print ("encounter found", encounter.boss, encounter.name, instance)
|
||||
tinsert (boss_list, {value = encounterId, label = encounter.boss, icon = icon, onclick = on_boss_select})
|
||||
boss_repeated [encounterId] = true
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ do
|
||||
--[[global]] DETAILS_SUBATTRIBUTE_FRAGS = 5
|
||||
--[[global]] DETAILS_SUBATTRIBUTE_ENEMIES = 6
|
||||
--[[global]] DETAILS_SUBATTRIBUTE_VOIDZONES = 7
|
||||
--[[global]] DETAILS_SUBATTRIBUTE_BYSPELLS = 8
|
||||
|
||||
--[[global]] DETAILS_ATTRIBUTE_HEAL = 2
|
||||
|
||||
@@ -51,6 +52,7 @@ do
|
||||
"miscdata", --frags
|
||||
"damage", --enemy damage
|
||||
"aura", --auras
|
||||
"damage", --damage taken by spell
|
||||
|
||||
"heal", --healing done
|
||||
"heal", --hps
|
||||
@@ -83,7 +85,7 @@ do
|
||||
|
||||
--[[ DAMAGE ]]
|
||||
dano = 1, --> identifier
|
||||
[1] = 7, --> sub attributes
|
||||
[1] = 8, --> sub attributes
|
||||
|
||||
--[[ HEALING ]]
|
||||
cura = 2, --> identifier
|
||||
@@ -123,6 +125,7 @@ do
|
||||
frags = 5,
|
||||
enemies = 6,
|
||||
voidzones = 7,
|
||||
damage_taken_by_spells = 8,
|
||||
lista = { --[[ String Names ]]
|
||||
Loc ["STRING_ATTRIBUTE_DAMAGE_DONE"],
|
||||
Loc ["STRING_ATTRIBUTE_DAMAGE_DPS"],
|
||||
@@ -131,6 +134,7 @@ do
|
||||
Loc ["STRING_ATTRIBUTE_DAMAGE_FRAGS"],
|
||||
Loc ["STRING_ATTRIBUTE_DAMAGE_ENEMIES"],
|
||||
Loc ["STRING_ATTRIBUTE_DAMAGE_DEBUFFS"],
|
||||
Loc ["STRING_ATTRIBUTE_DAMAGE_BYSPELL"],
|
||||
},
|
||||
icones = {
|
||||
{"Interface\\AddOns\\Details\\images\\atributos_icones_damage", {0, .125, 0, 1}},
|
||||
@@ -139,9 +143,10 @@ do
|
||||
{"Interface\\AddOns\\Details\\images\\atributos_icones_damage", {.375, .5, 0, 1}},
|
||||
{"Interface\\AddOns\\Details\\images\\atributos_icones_damage", {.5, 0.625, 0, 1}},
|
||||
{"Interface\\AddOns\\Details\\images\\atributos_icones_damage", {0.625, .75, 0, 1}},
|
||||
{"Interface\\AddOns\\Details\\images\\atributos_icones_damage", {.75, 0.875, 0, 1}}
|
||||
{"Interface\\AddOns\\Details\\images\\atributos_icones_damage", {.75, 0.875, 0, 1}},
|
||||
{"Interface\\AddOns\\Details\\images\\atributos_icones_damage", {0.875, 1, 0, 1}},
|
||||
},
|
||||
internal = {"total", "last_dps", "damage_taken", "friendlyfire_total", "frags", "enemies", "voidzones"}
|
||||
internal = {"total", "last_dps", "damage_taken", "friendlyfire_total", "frags", "enemies", "voidzones", "damage_taken_by_spells"}
|
||||
},
|
||||
|
||||
{
|
||||
|
||||
@@ -955,7 +955,8 @@ local default_profile = {
|
||||
--> tooltip
|
||||
tooltip = {
|
||||
fontface = "Friz Quadrata TT",
|
||||
fontsize = 10,
|
||||
fontsize = 10,
|
||||
fontsize_title = 10,
|
||||
fontcolor = {1, 1, 1, 1},
|
||||
fontcolor_right = {1, 0.7, 0, 1}, --{1, 0.9254, 0.6078, 1}
|
||||
fontshadow = false,
|
||||
|
||||
@@ -2704,7 +2704,10 @@ do
|
||||
function _detalhes:GetSpellSchoolFormatedName (school)
|
||||
return _detalhes.spells_school [school] and _detalhes.spells_school [school].formated or ""
|
||||
end
|
||||
|
||||
local default_school_color = {145/255, 180/255, 228/255}
|
||||
function _detalhes:GetSpellSchoolColor (school)
|
||||
return unpack (_detalhes.spells_school [school] and _detalhes.spells_school [school].decimals or default_school_color)
|
||||
end
|
||||
function _detalhes:GetCooldownList (class)
|
||||
class = class or select (2, UnitClass ("player"))
|
||||
return _detalhes.DefensiveCooldownSpells [class]
|
||||
|
||||
@@ -1535,7 +1535,7 @@
|
||||
gump:GradientEffect (button:GetParent(), "frame", _r, _g, _b, _a, OnEnterColors[1], OnEnterColors[2], OnEnterColors[3], OnEnterColors[4], .3)
|
||||
|
||||
GameTooltip:SetOwner (button, "ANCHOR_TOPLEFT")
|
||||
GameTooltip:SetSpellByID (button.MyObject.spellid)
|
||||
_detalhes:GameTooltipSetSpellByID (button.MyObject.spellid)
|
||||
GameTooltip:Show()
|
||||
end
|
||||
local buttonMouseOut = function (button)
|
||||
|
||||
@@ -27,7 +27,7 @@ local classe_icones = _G.CLASS_ICON_TCOORDS
|
||||
--self = instancia
|
||||
--jogador = classe_damage ou classe_heal
|
||||
|
||||
function _detalhes:AbreJanelaInfo (jogador, from_att_change, refresh)
|
||||
function _detalhes:AbreJanelaInfo (jogador, from_att_change, refresh, ShiftKeyDown, ControlKeyDown)
|
||||
|
||||
--print (debugstack())
|
||||
|
||||
@@ -39,7 +39,7 @@ function _detalhes:AbreJanelaInfo (jogador, from_att_change, refresh)
|
||||
_detalhes:FechaJanelaInfo()
|
||||
return
|
||||
end
|
||||
return _detalhes.row_singleclick_overwrite [self.atributo][self.sub_atributo] (_, jogador, self)
|
||||
return _detalhes.row_singleclick_overwrite [self.atributo][self.sub_atributo] (_, jogador, self, ShiftKeyDown, ControlKeyDown)
|
||||
end
|
||||
|
||||
if (self.modo == _detalhes._detalhes_props["MODO_RAID"]) then
|
||||
@@ -1711,7 +1711,7 @@ function gump:CriaJanelaInfo()
|
||||
self:SetBackdrop ({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 512, edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border", edgeSize = 8})
|
||||
self:SetBackdropColor (.5, .5, .5, .5)
|
||||
GameTooltip:SetOwner (self, "ANCHOR_TOPLEFT")
|
||||
GameTooltip:SetSpellByID (self.spellid)
|
||||
_detalhes:GameTooltipSetSpellByID (self.spellid)
|
||||
GameTooltip:Show()
|
||||
end
|
||||
end
|
||||
@@ -4259,10 +4259,10 @@ end
|
||||
local miniframe_func_on_enter = function (self)
|
||||
local barra = self:GetParent()
|
||||
if (barra.show and type (barra.show) == "number") then
|
||||
local spellname = GetSpellInfo (barra.show)
|
||||
local spellname = _GetSpellInfo (barra.show)
|
||||
if (spellname) then
|
||||
GameTooltip:SetOwner (self, "ANCHOR_TOPLEFT")
|
||||
GameTooltip:SetSpellByID (barra.show)
|
||||
_detalhes:GameTooltipSetSpellByID (barra.show)
|
||||
GameTooltip:Show()
|
||||
end
|
||||
end
|
||||
|
||||
+40
-73
@@ -1823,11 +1823,6 @@ local shift_monitor = function (self)
|
||||
end
|
||||
end
|
||||
|
||||
local on_switch_show = function (instance)
|
||||
instance:TrocaTabela (instance, true, 1, 6)
|
||||
return true
|
||||
end
|
||||
|
||||
local barra_backdrop_onenter = {
|
||||
bgFile = [[Interface\Tooltips\UI-Tooltip-Background]],
|
||||
tile = true, tileSize = 16,
|
||||
@@ -1917,44 +1912,6 @@ local barra_scripts_onmousedown = function (self, button)
|
||||
|
||||
elseif (button == "LeftButton") then
|
||||
|
||||
if (self._instance.atributo == 1 and self._instance.sub_atributo == 6) then --> enemies
|
||||
|
||||
local inimigo = self.minha_tabela.nome
|
||||
local custom_name = inimigo .. Loc ["STRING_CUSTOM_ENEMY_DT"]
|
||||
|
||||
--> procura se já tem um custom:
|
||||
for index, CustomObject in _ipairs (_detalhes.custom) do
|
||||
if (CustomObject:GetName() == custom_name) then
|
||||
--> fix for not saving funcs on logout
|
||||
if (not CustomObject.OnSwitchShow) then
|
||||
CustomObject.OnSwitchShow = on_switch_show
|
||||
end
|
||||
return self._instance:TrocaTabela (self._instance.segmento, 5, index)
|
||||
end
|
||||
end
|
||||
|
||||
--> criar um custom para este actor.
|
||||
local new_custom_object = {
|
||||
name = custom_name,
|
||||
icon = [[Interface\ICONS\Pet_Type_Undead]],
|
||||
attribute = "damagedone",
|
||||
author = _detalhes.playername,
|
||||
desc = inimigo .. " Damage Taken",
|
||||
source = "[raid]",
|
||||
target = inimigo,
|
||||
script = false,
|
||||
tooltip = false,
|
||||
temp = true,
|
||||
OnSwitchShow = on_switch_show,
|
||||
}
|
||||
|
||||
tinsert (_detalhes.custom, new_custom_object)
|
||||
setmetatable (new_custom_object, _detalhes.atributo_custom)
|
||||
new_custom_object.__index = _detalhes.atributo_custom
|
||||
|
||||
return self._instance:TrocaTabela (self._instance.segmento, 5, #_detalhes.custom)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
self.texto_direita:SetPoint ("right", self.statusbar, "right", 1, -1)
|
||||
@@ -1977,6 +1934,10 @@ local barra_scripts_onmousedown = function (self, button)
|
||||
end
|
||||
|
||||
local barra_scripts_onmouseup = function (self, button)
|
||||
|
||||
local is_shift_down = _IsShiftKeyDown()
|
||||
local is_control_down = _IsControlKeyDown()
|
||||
|
||||
if (self._instance.baseframe.isMoving) then
|
||||
move_janela (self._instance.baseframe, false, self._instance)
|
||||
self._instance:SaveMainWindowPosition()
|
||||
@@ -1999,31 +1960,30 @@ local barra_scripts_onmouseup = function (self, button)
|
||||
|
||||
if (self.mouse_down and (self.mouse_down+0.4 > _GetTime() and (x == self.x and y == self.y)) or (x == self.x and y == self.y)) then
|
||||
if (self.button == "LeftButton" or self.button == "MiddleButton") then
|
||||
if (self._instance.atributo == 5 or _IsShiftKeyDown()) then
|
||||
if (self._instance.atributo == 5 or is_shift_down) then
|
||||
--> report
|
||||
if (self._instance.atributo == 5 and _IsShiftKeyDown()) then
|
||||
if (self._instance.atributo == 5 and is_shift_down) 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
|
||||
|
||||
if (_detalhes.row_singleclick_overwrite [self._instance.atributo] and type (_detalhes.row_singleclick_overwrite [self._instance.atributo][self._instance.sub_atributo]) == "function") then
|
||||
return _detalhes.row_singleclick_overwrite [self._instance.atributo][self._instance.sub_atributo] (_, self.minha_tabela, self._instance, is_shift_down, is_control_down)
|
||||
end
|
||||
|
||||
return _detalhes:ReportSingleLine (self._instance, self)
|
||||
end
|
||||
self._instance:AbreJanelaInfo (self.minha_tabela)
|
||||
|
||||
self._instance:AbreJanelaInfo (self.minha_tabela, nil, nil, is_shift_down, is_control_down)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -2058,14 +2018,14 @@ local icon_frame_on_enter = function (self)
|
||||
local actor = self.row.minha_tabela
|
||||
|
||||
if (actor) then
|
||||
if (actor.is_custom) then
|
||||
if (actor.id) then
|
||||
if (actor.frags) then
|
||||
|
||||
|
||||
elseif (actor.is_custom or actor.byspell or actor.damage_spellid) then
|
||||
local spellid = actor.damage_spellid or actor.id or actor[1]
|
||||
if (spellid) then
|
||||
GameTooltip:SetOwner (self, "ANCHOR_TOPLEFT", 0, 10)
|
||||
if (actor.id == 1) then
|
||||
GameTooltip:SetSpellByID (6603)
|
||||
else
|
||||
GameTooltip:SetSpellByID (actor.id)
|
||||
end
|
||||
_detalhes:GameTooltipSetSpellByID (spellid)
|
||||
GameTooltip:Show()
|
||||
end
|
||||
|
||||
@@ -2280,6 +2240,7 @@ local icon_frame_on_click_up = function (self)
|
||||
_detalhes:Msg (Loc ["STRING_QUERY_INSPECT_FAIL1"])
|
||||
return
|
||||
end
|
||||
|
||||
if (self.showing == "actor") then
|
||||
|
||||
if (_detalhes.ilevel.core:HasQueuedInspec (self.unitname)) then
|
||||
@@ -2388,22 +2349,28 @@ function _detalhes:ReportSingleLine (instancia, barra)
|
||||
local reportar
|
||||
if (instancia.atributo == 5) then --> custom
|
||||
|
||||
local actor_name = barra.texto_esquerdo:GetText() or ""
|
||||
actor_name = actor_name:gsub ((".*%."), "")
|
||||
|
||||
if (instancia.segmento == -1) then --overall
|
||||
reportar = {"Details!: " .. Loc ["STRING_OVERALL"] .. " " .. instancia.customName .. ": " .. actor_name .. " " .. Loc ["STRING_CUSTOM_REPORT"]}
|
||||
else
|
||||
reportar = {"Details!: " .. instancia.customName .. ": " .. actor_name .. " " .. Loc ["STRING_CUSTOM_REPORT"]}
|
||||
end
|
||||
|
||||
--> dump cooltip
|
||||
local GameCooltip = GameCooltip
|
||||
if (GameCoolTipFrame1:IsShown()) then
|
||||
local actor_name = barra.texto_esquerdo:GetText() or ""
|
||||
actor_name = actor_name:gsub ((".*%."), "")
|
||||
|
||||
if (instancia.segmento == -1) then --overall
|
||||
reportar = {"Details!: " .. Loc ["STRING_OVERALL"] .. " " .. instancia.customName .. ": " .. actor_name .. " " .. Loc ["STRING_CUSTOM_REPORT"]}
|
||||
else
|
||||
reportar = {"Details!: " .. instancia.customName .. ": " .. actor_name .. " " .. Loc ["STRING_CUSTOM_REPORT"]}
|
||||
end
|
||||
|
||||
local amt = GameCooltip.Indexes
|
||||
for i = 2, amt do
|
||||
local left_text, right_text = GameCooltip:GetText (i)
|
||||
reportar [#reportar+1] = (i-1) .. ". " .. left_text .. " ... " .. right_text
|
||||
local amt = GameCooltip.Indexes
|
||||
for i = 2, amt do
|
||||
local left_text, right_text = GameCooltip:GetText (i)
|
||||
reportar [#reportar+1] = (i-1) .. ". " .. left_text .. " ... " .. right_text
|
||||
end
|
||||
else
|
||||
reportar = {"Details!: " .. instancia.customName .. ": " .. Loc ["STRING_CUSTOM_REPORT"]}
|
||||
reportar [#reportar+1] = barra.texto_esquerdo:GetText() .. " " .. barra.texto_direita:GetText()
|
||||
|
||||
--reportar [#reportar+1] = (i-1) .. ". " .. left_text .. " ... " .. right_text
|
||||
end
|
||||
|
||||
else
|
||||
|
||||
+39
-14
@@ -631,7 +631,7 @@ local function cria_drop_down (este_gump)
|
||||
for i = 1, 9 do --window.max_last_buttons
|
||||
local b = window.recently_report_buttons [i]
|
||||
|
||||
b:SetSize (120, 16)
|
||||
b:SetSize (150, 16)
|
||||
b:SetPoint ("topleft", window, "topleft", 10, -12 + (i*17*-1))
|
||||
b:Show()
|
||||
b:SetBackdrop ({bgFile = [[Interface\AddOns\Details\images\background]], tile = true, tileSize = 16,
|
||||
@@ -653,12 +653,9 @@ local function cria_drop_down (este_gump)
|
||||
local b = window.recently_report_buttons [10]
|
||||
b:Hide()
|
||||
|
||||
Details_Report_CB_1:Hide()
|
||||
Details_Report_CB_2:Hide()
|
||||
|
||||
window.dropdown:ClearAllPoints()
|
||||
window.dropdown:SetWidth (155)
|
||||
window.dropdown:SetPoint ("topleft", window, "topleft", 160, -30)
|
||||
window.dropdown:SetPoint ("topleft", window, "topleft", 175, -30)
|
||||
window.dropdown:SetBackdrop ({bgFile = [[Interface\DialogFrame\UI-DialogBox-Background-Dark]], edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, tile=true,
|
||||
tileSize = 64, insets = {left = 0, right = 0, top = 0, bottom = 0}})
|
||||
window.dropdown:SetBackdropBorderColor (0, 0, 0, 0.5)
|
||||
@@ -666,7 +663,7 @@ local function cria_drop_down (este_gump)
|
||||
|
||||
window.wisp_who:ClearAllPoints()
|
||||
window.editbox:ClearAllPoints()
|
||||
window.wisp_who:SetPoint ("topleft", window.dropdown.widget, "bottomleft", 0, -11)
|
||||
window.wisp_who:SetPoint ("topleft", window.dropdown.widget, "bottomleft", 0, -10)
|
||||
window.editbox:SetPoint ("topleft", window.wisp_who, "bottomleft", 0, -3)
|
||||
window.editbox:SetWidth (155)
|
||||
window.editbox:SetHeight (20)
|
||||
@@ -676,7 +673,7 @@ local function cria_drop_down (este_gump)
|
||||
window.editbox:SetBackdropColor (0, 0, 0, 0.3)
|
||||
|
||||
window.linhas_amt:ClearAllPoints()
|
||||
window.linhas_amt:SetPoint ("topleft", window.editbox, "bottomleft", 0, -11)
|
||||
window.linhas_amt:SetPoint ("topleft", window.editbox, "bottomleft", 0, -10)
|
||||
window.slider:ClearAllPoints()
|
||||
window.slider:SetWidth (155)
|
||||
window.slider:SetPoint ("topleft", window.linhas_amt, "bottomleft", 0, -3)
|
||||
@@ -690,8 +687,24 @@ local function cria_drop_down (este_gump)
|
||||
window.slider.thumb:SetSize (16, 16)
|
||||
window.slider.thumb:SetVertexColor (0.6, 0.6, 0.6, 0.95)
|
||||
|
||||
Details_Report_CB_1:Hide()
|
||||
local reverse_checkbox = Details_Report_CB_2
|
||||
reverse_checkbox:Show()
|
||||
reverse_checkbox:ClearAllPoints()
|
||||
reverse_checkbox:SetBackdrop ({bgFile = [[Interface\DialogFrame\UI-DialogBox-Background-Dark]], edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, tile=true,
|
||||
tileSize = 64, insets = {left = 0, right = 0, top = 0, bottom = 0}})
|
||||
reverse_checkbox:SetBackdropBorderColor (0, 0, 0, 0.5)
|
||||
reverse_checkbox:SetBackdropColor (0, 0, 0, 0.3)
|
||||
reverse_checkbox:SetPoint ("topleft", window.slider, "bottomleft", 0, -8)
|
||||
reverse_checkbox:SetSize (14, 14)
|
||||
reverse_checkbox:SetNormalTexture (nil)
|
||||
reverse_checkbox:SetPushedTexture (nil)
|
||||
reverse_checkbox:SetHighlightTexture (nil)
|
||||
_G [reverse_checkbox:GetName().."Text"]:ClearAllPoints()
|
||||
_G [reverse_checkbox:GetName().."Text"]:SetPoint ("left", reverse_checkbox, "right", 2, 0)
|
||||
|
||||
window.enviar:ClearAllPoints()
|
||||
window.enviar:SetPoint ("topleft", window.slider, "bottomleft", 0, -15)
|
||||
window.enviar:SetPoint ("topleft", reverse_checkbox, "bottomleft", 0, -8)
|
||||
window.enviar:SetBackdrop ({bgFile = [[Interface\DialogFrame\UI-DialogBox-Background-Dark]], edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, tile=true,
|
||||
tileSize = 64, insets = {left = 0, right = 0, top = 0, bottom = 0}})
|
||||
window.enviar:SetBackdropBorderColor (0, 0, 0, 0.5)
|
||||
@@ -762,7 +775,7 @@ local function cria_drop_down (este_gump)
|
||||
for i = 1, 9 do --window.max_last_buttons
|
||||
local b = window.recently_report_buttons [i]
|
||||
|
||||
b:SetSize (120, 16)
|
||||
b:SetSize (150, 16)
|
||||
b:SetPoint ("topleft", window, "topleft", 10, -50 + (i*17*-1))
|
||||
b:Show()
|
||||
b:SetBackdrop ({bgFile = [[Interface\AddOns\Details\images\background]], tile = true, tileSize = 16,
|
||||
@@ -783,12 +796,11 @@ local function cria_drop_down (este_gump)
|
||||
|
||||
window.dropdown:ClearAllPoints()
|
||||
window.dropdown:SetWidth (145)
|
||||
window.dropdown:SetPoint ("topleft", window, "topleft", 160, -68)
|
||||
|
||||
window.dropdown:SetPoint ("topleft", window, "topleft", 175, -68)
|
||||
|
||||
window.wisp_who:ClearAllPoints()
|
||||
window.editbox:ClearAllPoints()
|
||||
window.wisp_who:SetPoint ("topleft", window.dropdown.widget, "bottomleft", 0, -11)
|
||||
window.wisp_who:SetPoint ("topleft", window.dropdown.widget, "bottomleft", 0, -10)
|
||||
window.editbox:SetPoint ("topleft", window.wisp_who, "bottomleft", 0, -3)
|
||||
window.editbox:SetWidth (145)
|
||||
window.editbox:SetHeight (20)
|
||||
@@ -796,7 +808,7 @@ local function cria_drop_down (este_gump)
|
||||
edgeSize = 15, tileSize = 64, insets = {left = 3, right = 3, top = 4, bottom = 4}})
|
||||
|
||||
window.linhas_amt:ClearAllPoints()
|
||||
window.linhas_amt:SetPoint ("topleft", window.editbox, "bottomleft", 0, -11)
|
||||
window.linhas_amt:SetPoint ("topleft", window.editbox, "bottomleft", 0, -7)
|
||||
window.slider:ClearAllPoints()
|
||||
window.slider :SetWidth (145)
|
||||
window.slider:SetPoint ("topleft", window.linhas_amt, "bottomleft", 0, -3)
|
||||
@@ -807,8 +819,21 @@ local function cria_drop_down (este_gump)
|
||||
window.slider.thumb:SetSize (30, 24)
|
||||
window.slider.thumb:SetAlpha (0.7)
|
||||
|
||||
Details_Report_CB_1:Hide()
|
||||
local reverse_checkbox = Details_Report_CB_2
|
||||
reverse_checkbox:Show()
|
||||
reverse_checkbox:ClearAllPoints()
|
||||
reverse_checkbox:SetBackdrop (nil)
|
||||
reverse_checkbox:SetPoint ("topleft", window.slider, "bottomleft", -1, -4)
|
||||
reverse_checkbox:SetSize (26, 26)
|
||||
reverse_checkbox:SetNormalTexture ([[Interface\Buttons\UI-CheckBox-Up]])
|
||||
reverse_checkbox:SetPushedTexture ([[Interface\Buttons\UI-CheckBox-Down]])
|
||||
reverse_checkbox:SetHighlightTexture ([[Interface\Buttons\UI-CheckBox-Highlight]])
|
||||
_G [reverse_checkbox:GetName().."Text"]:ClearAllPoints()
|
||||
_G [reverse_checkbox:GetName().."Text"]:SetPoint ("left", reverse_checkbox, "right", 2, 0)
|
||||
|
||||
window.enviar:ClearAllPoints()
|
||||
window.enviar:SetPoint ("topleft", window.slider, "bottomleft", 0, -11)
|
||||
window.enviar:SetPoint ("topleft", reverse_checkbox, "bottomleft", 0, -4)
|
||||
window.enviar.Left:Show()
|
||||
window.enviar.Middle:Show()
|
||||
window.enviar.Right:Show()
|
||||
|
||||
+5
-1
@@ -699,7 +699,11 @@ function _detalhes.switch:OnRemoveCustom (CustomIndex)
|
||||
--> precisa resetar esse aqui
|
||||
options.atributo = nil
|
||||
options.sub_atributo = nil
|
||||
_detalhes.switch:Update()
|
||||
|
||||
--update if already shown once at least
|
||||
if (_detalhes.switch.vertical_amt) then
|
||||
_detalhes.switch:Update()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("Details", "itIT")
|
||||
if not L then return end
|
||||
|
||||
@localization(locale="itIT", format="lua_additive_table")@
|
||||
+27
-2
@@ -52,7 +52,7 @@ function _G._detalhes:Start()
|
||||
|
||||
--> single click row function replace
|
||||
--damage, dps, damage taken, friendly fire
|
||||
self.row_singleclick_overwrite [1] = {true, true, true, true, self.atributo_damage.ReportSingleFragsLine, true, self.atributo_damage.ReportSingleVoidZoneLine}
|
||||
self.row_singleclick_overwrite [1] = {true, true, true, true, self.atributo_damage.ReportSingleFragsLine, self.atributo_damage.ReportEnemyDamageTaken, self.atributo_damage.ReportSingleVoidZoneLine, self.atributo_damage.ReportSingleDTBSLine}
|
||||
--healing, hps, overheal, healing taken
|
||||
self.row_singleclick_overwrite [2] = {true, true, true, true, false, self.atributo_heal.ReportSingleDamagePreventedLine}
|
||||
--mana, rage, energy, runepower
|
||||
@@ -354,7 +354,32 @@ function _G._detalhes:Start()
|
||||
_detalhes:FillUserCustomSpells()
|
||||
_detalhes:AddDefaultCustomDisplays()
|
||||
|
||||
--> tooltip background color update
|
||||
--> erase the custom for damage taken by spell
|
||||
if (_detalhes_database.last_realversion and _detalhes_database.last_realversion < 73 and enable_reset_warning) then
|
||||
|
||||
local secure_func = function()
|
||||
for i = #_detalhes.custom, 1, -1 do
|
||||
local index = i
|
||||
local CustomObject = _detalhes.custom [index]
|
||||
|
||||
if (CustomObject:GetName() == Loc ["STRING_CUSTOM_DTBS"]) then
|
||||
for o = 1, _detalhes.switch.slots do
|
||||
local options = _detalhes.switch.table [o]
|
||||
if (options and options.atributo == 5 and options.sub_atributo == index) then
|
||||
options.atributo = 1
|
||||
options.sub_atributo = 8
|
||||
_detalhes.switch:Update()
|
||||
end
|
||||
end
|
||||
|
||||
_detalhes.atributo_custom:RemoveCustom (index)
|
||||
end
|
||||
end
|
||||
end
|
||||
pcall (secure_func)
|
||||
|
||||
end
|
||||
|
||||
if (_detalhes_database.last_realversion and _detalhes_database.last_realversion < 70 and enable_reset_warning) then
|
||||
local bg = _detalhes.tooltip.background
|
||||
bg [1] = 0.1960
|
||||
|
||||
Reference in New Issue
Block a user