- testing the mercurial repo packpager.
This commit is contained in:
@@ -53,6 +53,16 @@
|
||||
return self.data_inicio, self.data_fim
|
||||
end
|
||||
|
||||
--set the combat date
|
||||
function combate:SetDate (started, ended)
|
||||
if (started and type (started) == "string") then
|
||||
self.data_inicio = started
|
||||
end
|
||||
if (ended and type (ended) == "string") then
|
||||
self.data_fim = ended
|
||||
end
|
||||
end
|
||||
|
||||
--return data for charts
|
||||
function combate:GetTimeData (name)
|
||||
return self.TimeData [name]
|
||||
@@ -90,6 +100,24 @@
|
||||
return self.is_pvp
|
||||
end
|
||||
|
||||
function combate:GetMythicDungeonInfo()
|
||||
return self.is_mythic_dungeon
|
||||
end
|
||||
|
||||
function combate:GetMythicDungeonTrashInfo()
|
||||
return self.is_mythic_dungeon_trash
|
||||
end
|
||||
|
||||
function combate:IsMythicDungeon()
|
||||
local is_segment = self.is_mythic_dungeon_segment
|
||||
local run_id = self.is_mythic_dungeon_run_id
|
||||
return is_segment, run_id
|
||||
end
|
||||
|
||||
function combate:IsMythicDungeonOverall()
|
||||
return self.is_mythic_dungeon and self.is_mythic_dungeon.OverallSegment
|
||||
end
|
||||
|
||||
function combate:GetArenaInfo()
|
||||
return self.is_arena
|
||||
end
|
||||
@@ -500,19 +528,23 @@
|
||||
combate.__add = function (combate1, combate2)
|
||||
|
||||
local all_containers = {combate2 [class_type_dano]._ActorTable, combate2 [class_type_cura]._ActorTable, combate2 [class_type_e_energy]._ActorTable, combate2 [class_type_misc]._ActorTable}
|
||||
local custom_combat
|
||||
if (combate1 ~= _detalhes.tabela_overall) then
|
||||
custom_combat = combate1
|
||||
end
|
||||
|
||||
for class_type, actor_container in ipairs (all_containers) do
|
||||
for _, actor in ipairs (actor_container) do
|
||||
local shadow
|
||||
|
||||
if (class_type == class_type_dano) then
|
||||
shadow = _detalhes.atributo_damage:r_connect_shadow (actor, true)
|
||||
shadow = _detalhes.atributo_damage:r_connect_shadow (actor, true, custom_combat)
|
||||
elseif (class_type == class_type_cura) then
|
||||
shadow = _detalhes.atributo_heal:r_connect_shadow (actor, true)
|
||||
shadow = _detalhes.atributo_heal:r_connect_shadow (actor, true, custom_combat)
|
||||
elseif (class_type == class_type_e_energy) then
|
||||
shadow = _detalhes.atributo_energy:r_connect_shadow (actor, true)
|
||||
shadow = _detalhes.atributo_energy:r_connect_shadow (actor, true, custom_combat)
|
||||
elseif (class_type == class_type_misc) then
|
||||
shadow = _detalhes.atributo_misc:r_connect_shadow (actor, true)
|
||||
shadow = _detalhes.atributo_misc:r_connect_shadow (actor, true, custom_combat)
|
||||
end
|
||||
|
||||
shadow.boss_fight_component = actor.boss_fight_component
|
||||
|
||||
+79
-16
@@ -1553,11 +1553,19 @@
|
||||
|
||||
|
||||
function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, exportar, refresh_needed)
|
||||
|
||||
|
||||
local showing = tabela_do_combate [class_type] --> o que esta sendo mostrado -> [1] - dano [2] - cura --> pega o container com ._NameIndexTable ._ActorTable
|
||||
|
||||
--> não há barras para mostrar -- not have something to show
|
||||
if (#showing._ActorTable < 1) then
|
||||
if (_detalhes.debug) then
|
||||
_detalhes.showing_ActorTable_Timer = _detalhes.showing_ActorTable_Timer or 0
|
||||
if (time() > _detalhes.showing_ActorTable_Timer) then
|
||||
_detalhes:Msg ("(debug) nothing to show -> #showing._ActorTable < 1")
|
||||
_detalhes.showing_ActorTable_Timer = time()+5
|
||||
end
|
||||
end
|
||||
|
||||
--> colocado isso recentemente para fazer as barras de dano sumirem na troca de atributo
|
||||
return _detalhes:EsconderBarrasNaoUsadas (instancia, showing), "", 0, 0
|
||||
end
|
||||
@@ -2002,6 +2010,14 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
end
|
||||
|
||||
if (#conteudo < 1) then
|
||||
if (_detalhes.debug) then
|
||||
_detalhes.showing_ActorTable_Timer2 = _detalhes.showing_ActorTable_Timer2 or 0
|
||||
if (time() > _detalhes.showing_ActorTable_Timer2) then
|
||||
_detalhes:Msg ("(debug) nothing to show -> #conteudo < 1 (using cache)")
|
||||
_detalhes.showing_ActorTable_Timer2 = time()+5
|
||||
end
|
||||
end
|
||||
|
||||
return _detalhes:EsconderBarrasNaoUsadas (instancia, showing), "", 0, 0
|
||||
end
|
||||
|
||||
@@ -2065,6 +2081,15 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
end
|
||||
end
|
||||
instancia:EsconderScrollBar() --> precisaria esconder a scroll bar
|
||||
|
||||
if (_detalhes.debug) then
|
||||
_detalhes.showing_ActorTable_Timer2 = _detalhes.showing_ActorTable_Timer2 or 0
|
||||
if (time() > _detalhes.showing_ActorTable_Timer2) then
|
||||
_detalhes:Msg ("(debug) nothing to show -> amount < 1")
|
||||
_detalhes.showing_ActorTable_Timer2 = time()+5
|
||||
end
|
||||
end
|
||||
|
||||
return _detalhes:EndRefresh (instancia, total, tabela_do_combate, showing) --> retorna a tabela que precisa ganhar o refresh
|
||||
end
|
||||
|
||||
@@ -2278,6 +2303,8 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
end
|
||||
end
|
||||
|
||||
_detalhes.LastFullDamageUpdate = _detalhes._tempo
|
||||
|
||||
return _detalhes:EndRefresh (instancia, total, tabela_do_combate, showing) --> retorna a tabela que precisa ganhar o refresh
|
||||
|
||||
end
|
||||
@@ -2714,19 +2741,23 @@ end
|
||||
elseif (classe == "UNGROUPPLAYER") then
|
||||
if (self.enemy) then
|
||||
if (_detalhes.faction_against == "Horde") then
|
||||
texture:SetTexture ("Interface\\ICONS\\Achievement_Character_Orc_Male")
|
||||
texture:SetTexCoord (0, 1, 0, 1)
|
||||
--texture:SetTexture ("Interface\\ICONS\\Achievement_Character_Orc_Male")
|
||||
texture:SetTexture ("Interface\\ICONS\\PVPCurrency-Honor-Horde.blp")
|
||||
texture:SetTexCoord (0.05, 0.95, 0.05, 0.95)
|
||||
else
|
||||
texture:SetTexture ("Interface\\ICONS\\Achievement_Character_Human_Male")
|
||||
texture:SetTexCoord (0, 1, 0, 1)
|
||||
--texture:SetTexture ("Interface\\ICONS\\Achievement_Character_Human_Male")
|
||||
texture:SetTexture ("Interface\\ICONS\\PVPCurrency-Honor-Alliance.blp")
|
||||
texture:SetTexCoord (0.05, 0.95, 0.05, 0.95)
|
||||
end
|
||||
else
|
||||
if (_detalhes.faction_against == "Horde") then
|
||||
texture:SetTexture ("Interface\\ICONS\\Achievement_Character_Human_Male")
|
||||
texture:SetTexCoord (0, 1, 0, 1)
|
||||
--texture:SetTexture ("Interface\\ICONS\\Achievement_Character_Human_Male")
|
||||
texture:SetTexture ("Interface\\ICONS\\PVPCurrency-Honor-Alliance.blp")
|
||||
texture:SetTexCoord (0.05, 0.95, 0.05, 0.95)
|
||||
else
|
||||
texture:SetTexture ("Interface\\ICONS\\Achievement_Character_Orc_Male")
|
||||
texture:SetTexCoord (0, 1, 0, 1)
|
||||
--texture:SetTexture ("Interface\\ICONS\\Achievement_Character_Orc_Male")
|
||||
texture:SetTexture ("Interface\\ICONS\\PVPCurrency-Honor-Horde.blp")
|
||||
texture:SetTexCoord (0.05, 0.95, 0.05, 0.95)
|
||||
end
|
||||
end
|
||||
texture:SetVertexColor (1, 1, 1)
|
||||
@@ -3903,7 +3934,7 @@ end
|
||||
|
||||
------ Damage Done & Dps
|
||||
function atributo_damage:MontaInfoDamageDone()
|
||||
|
||||
|
||||
local barras = info.barras1
|
||||
local instancia = info.instancia
|
||||
local total = self.total_without_pet --> total de dano aplicado por este jogador
|
||||
@@ -3924,6 +3955,36 @@ function atributo_damage:MontaInfoDamageDone()
|
||||
local nome, _, icone = _GetSpellInfo (_spellid)
|
||||
_table_insert (ActorSkillsSortTable, {_spellid, _skill.total, _skill.total/ActorTotalDamage*100, nome, icone, nil, _skill.spellschool})
|
||||
end
|
||||
|
||||
--damage rank
|
||||
--este_gump:SetTopRightTexts (text1, text2, size, color, font)
|
||||
local combat = instancia:GetShowingCombat()
|
||||
local diff = combat:GetDifficulty()
|
||||
local attribute, subattribute = instancia:GetDisplay()
|
||||
|
||||
--> check if is a raid encounter and if is heroic or mythic
|
||||
if (diff and (diff == 15 or diff == 16)) then
|
||||
local db = _detalhes.OpenStorage()
|
||||
if (db) then
|
||||
local bestRank, encounterTable = _detalhes.storage:GetBestFromPlayer (diff, combat:GetBossInfo().id, "damage", self.nome, true)
|
||||
if (bestRank) then
|
||||
--> discover which are the player position in the guild rank
|
||||
local playerTable, onEncounter, rankPosition = _detalhes.storage:GetPlayerGuildRank (diff, combat:GetBossInfo().id, "damage", self.nome, true)
|
||||
|
||||
local text1 = self.nome .. " on " .. combat:GetBossInfo().name .. ":"
|
||||
local text2 = "Guild Rank: " .. (rankPosition or "x") .. " Best Dps: " .. _detalhes:ToK2 ((bestRank[1] or 0) / encounterTable.elapsed) .. " (" .. encounterTable.date:gsub (".*%s", "") .. ")"
|
||||
|
||||
info:SetTopRightTexts (text1, text2, 9, "gray", font)
|
||||
else
|
||||
info:SetTopRightTexts()
|
||||
end
|
||||
else
|
||||
info:SetTopRightTexts()
|
||||
end
|
||||
else
|
||||
info:SetTopRightTexts()
|
||||
end
|
||||
|
||||
|
||||
--> add pets
|
||||
local ActorPets = self.pets
|
||||
@@ -3976,10 +4037,10 @@ function atributo_damage:MontaInfoDamageDone()
|
||||
|
||||
if (info.sub_atributo == 2) then
|
||||
local formated_value = SelectedToKFunction (_, _math_floor (tabela[2]/meu_tempo))
|
||||
self:UpdadeInfoBar (barra, index-1, tabela[1], name, tabela[2], formated_value, max_, tabela[3], tabela[5], true, nil, tabela [7])
|
||||
self:UpdadeInfoBar (barra, index, tabela[1], name, tabela[2], formated_value, max_, tabela[3], tabela[5], true, nil, tabela [7])
|
||||
else
|
||||
local formated_value = SelectedToKFunction (_, _math_floor (tabela[2]))
|
||||
self:UpdadeInfoBar (barra, index-1, tabela[1], name, tabela[2], formated_value, max_, tabela[3], tabela[5], true, nil, tabela [7])
|
||||
self:UpdadeInfoBar (barra, index, tabela[1], name, tabela[2], formated_value, max_, tabela[3], tabela[5], true, nil, tabela [7])
|
||||
end
|
||||
|
||||
self:FocusLock (barra, tabela[1])
|
||||
@@ -4926,10 +4987,12 @@ end
|
||||
return shadow
|
||||
end
|
||||
|
||||
function atributo_damage:r_connect_shadow (actor, no_refresh)
|
||||
function atributo_damage:r_connect_shadow (actor, no_refresh, combat_object)
|
||||
|
||||
local host_combat = combat_object or _detalhes.tabela_overall
|
||||
|
||||
--> criar uma shadow desse ator se ainda não tiver uma
|
||||
local overall_dano = _detalhes.tabela_overall [1]
|
||||
local overall_dano = host_combat [1]
|
||||
local shadow = overall_dano._ActorTable [overall_dano._NameIndexTable [actor.nome]]
|
||||
|
||||
if (not shadow) then
|
||||
@@ -4973,9 +5036,9 @@ end
|
||||
shadow.friendlyfire_total = shadow.friendlyfire_total + actor.friendlyfire_total
|
||||
|
||||
--> total no combate overall (captura de dados)
|
||||
_detalhes.tabela_overall.totals[1] = _detalhes.tabela_overall.totals[1] + actor.total
|
||||
host_combat.totals[1] = host_combat.totals[1] + actor.total
|
||||
if (actor.grupo) then
|
||||
_detalhes.tabela_overall.totals_grupo[1] = _detalhes.tabela_overall.totals_grupo[1] + actor.total
|
||||
host_combat.totals_grupo[1] = host_combat.totals_grupo[1] + actor.total
|
||||
end
|
||||
|
||||
--> copia o damage_from (captura de dados)
|
||||
|
||||
@@ -1395,10 +1395,12 @@ end
|
||||
return shadow
|
||||
end
|
||||
|
||||
function atributo_energy:r_connect_shadow (actor, no_refresh)
|
||||
function atributo_energy:r_connect_shadow (actor, no_refresh, combat_object)
|
||||
|
||||
local host_combat = combat_object or _detalhes.tabela_overall
|
||||
|
||||
--> criar uma shadow desse ator se ainda não tiver uma
|
||||
local overall_energy = _detalhes.tabela_overall [3]
|
||||
local overall_energy = host_combat [3]
|
||||
local shadow = overall_energy._ActorTable [overall_energy._NameIndexTable [actor.nome]]
|
||||
|
||||
if (not shadow) then
|
||||
@@ -1438,10 +1440,10 @@ end
|
||||
end
|
||||
|
||||
--> total no combate overall (captura de dados)
|
||||
_detalhes.tabela_overall.totals[3] [actor.powertype] = _detalhes.tabela_overall.totals[3] [actor.powertype] + actor.total
|
||||
host_combat.totals[3] [actor.powertype] = host_combat.totals[3] [actor.powertype] + actor.total
|
||||
|
||||
if (actor.grupo) then
|
||||
_detalhes.tabela_overall.totals_grupo[3][actor.powertype] = _detalhes.tabela_overall.totals_grupo[3][actor.powertype] + actor.total
|
||||
host_combat.totals_grupo[3][actor.powertype] = host_combat.totals_grupo[3][actor.powertype] + actor.total
|
||||
end
|
||||
|
||||
--> targets
|
||||
|
||||
@@ -2404,10 +2404,12 @@ end
|
||||
return shadow
|
||||
end
|
||||
|
||||
function atributo_heal:r_connect_shadow (actor, no_refresh)
|
||||
function atributo_heal:r_connect_shadow (actor, no_refresh, combat_object)
|
||||
|
||||
local host_combat = combat_object or _detalhes.tabela_overall
|
||||
|
||||
--> criar uma shadow desse ator se ainda não tiver uma
|
||||
local overall_cura = _detalhes.tabela_overall [2]
|
||||
local overall_cura = host_combat [2]
|
||||
local shadow = overall_cura._ActorTable [overall_cura._NameIndexTable [actor.nome]]
|
||||
|
||||
if (not shadow) then
|
||||
@@ -2457,9 +2459,9 @@ end
|
||||
shadow.healing_taken = shadow.healing_taken + actor.healing_taken
|
||||
|
||||
--> total no combate overall (captura de dados)
|
||||
_detalhes.tabela_overall.totals[2] = _detalhes.tabela_overall.totals[2] + actor.total
|
||||
host_combat.totals[2] = host_combat.totals[2] + actor.total
|
||||
if (actor.grupo) then
|
||||
_detalhes.tabela_overall.totals_grupo[2] = _detalhes.tabela_overall.totals_grupo[2] + actor.total
|
||||
host_combat.totals_grupo[2] = host_combat.totals_grupo[2] + actor.total
|
||||
end
|
||||
|
||||
--> copia o healing_from (captura de dados)
|
||||
|
||||
@@ -2825,7 +2825,10 @@ 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
|
||||
-- table sent to report func / f1: format value1 / f2: format value2
|
||||
-- report_table = a table header: {"report results for:"}
|
||||
-- data = table with {{value1 (string), value2 ( the value)} , {value1 (string), value2 ( the value)}}
|
||||
|
||||
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)
|
||||
@@ -3179,6 +3182,26 @@ function _detalhes:envia_relatorio (linhas, custom)
|
||||
end
|
||||
end
|
||||
|
||||
local isMythicDungeon = _detalhes.tabela_vigente:IsMythicDungeon()
|
||||
if (isMythicDungeon) then
|
||||
local mythicDungeonInfo = _detalhes.tabela_vigente:GetMythicDungeonInfo()
|
||||
if (mythicDungeonInfo) then
|
||||
local isMythicOverallSegment, segmentID, mythicLevel, EJID, mapID, zoneName, encounterID, encounterName, startedAt, endedAt, runID = _detalhes:UnpackMythicDungeonInfo (mythicDungeonInfo)
|
||||
|
||||
if (isMythicOverallSegment) then
|
||||
luta = zoneName .. " +" .. mythicLevel .. " (" .. Loc ["STRING_SEGMENTS_LIST_OVERALL"] .. ")"
|
||||
else
|
||||
if (segmentID == "trashoverall") then
|
||||
luta = encounterName .. " (" .. Loc ["STRING_SEGMENTS_LIST_TRASH"] .. ")"
|
||||
else
|
||||
luta = encounterName .. " (" .. Loc ["STRING_SEGMENTS_LIST_BOSS"] .. ")"
|
||||
end
|
||||
end
|
||||
else
|
||||
luta = Loc ["STRING_SEGMENTS_LIST_TRASH"]
|
||||
end
|
||||
end
|
||||
|
||||
if (not luta) then
|
||||
if (_detalhes.tabela_vigente.enemy) then
|
||||
luta = _detalhes.tabela_vigente.enemy
|
||||
@@ -3207,6 +3230,27 @@ function _detalhes:envia_relatorio (linhas, custom)
|
||||
end
|
||||
end
|
||||
|
||||
local thisSegment = _detalhes.tabela_historico.tabelas[1]
|
||||
local isMythicDungeon = thisSegment:IsMythicDungeon()
|
||||
if (isMythicDungeon) then
|
||||
local mythicDungeonInfo = thisSegment:GetMythicDungeonInfo()
|
||||
if (mythicDungeonInfo) then
|
||||
local isMythicOverallSegment, segmentID, mythicLevel, EJID, mapID, zoneName, encounterID, encounterName, startedAt, endedAt, runID = _detalhes:UnpackMythicDungeonInfo (mythicDungeonInfo)
|
||||
|
||||
if (isMythicOverallSegment) then
|
||||
luta = zoneName .. " +" .. mythicLevel .. " (" .. Loc ["STRING_SEGMENTS_LIST_OVERALL"] .. ")"
|
||||
else
|
||||
if (segmentID == "trashoverall") then
|
||||
luta = encounterName .. " (" .. Loc ["STRING_SEGMENTS_LIST_TRASH"] .. ")"
|
||||
else
|
||||
luta = encounterName .. " (" .. Loc ["STRING_SEGMENTS_LIST_BOSS"] .. ")"
|
||||
end
|
||||
end
|
||||
else
|
||||
luta = Loc ["STRING_SEGMENTS_LIST_TRASH"]
|
||||
end
|
||||
end
|
||||
|
||||
if (not luta) then
|
||||
if (_detalhes.tabela_historico.tabelas[1].enemy) then
|
||||
luta = _detalhes.tabela_historico.tabelas[1].enemy .. " (" .. Loc ["STRING_REPORT_LASTFIGHT"] .. ")"
|
||||
@@ -3234,6 +3278,27 @@ function _detalhes:envia_relatorio (linhas, custom)
|
||||
end
|
||||
end
|
||||
|
||||
local thisSegment = _detalhes.tabela_historico.tabelas [segmento]
|
||||
local isMythicDungeon = thisSegment:IsMythicDungeon()
|
||||
if (isMythicDungeon) then
|
||||
local mythicDungeonInfo = thisSegment:GetMythicDungeonInfo()
|
||||
if (mythicDungeonInfo) then
|
||||
local isMythicOverallSegment, segmentID, mythicLevel, EJID, mapID, zoneName, encounterID, encounterName, startedAt, endedAt, runID = _detalhes:UnpackMythicDungeonInfo (mythicDungeonInfo)
|
||||
|
||||
if (isMythicOverallSegment) then
|
||||
luta = zoneName .. " +" .. mythicLevel .. " (" .. Loc ["STRING_SEGMENTS_LIST_OVERALL"] .. ")"
|
||||
else
|
||||
if (segmentID == "trashoverall") then
|
||||
luta = encounterName .. " (" .. Loc ["STRING_SEGMENTS_LIST_TRASH"] .. ")"
|
||||
else
|
||||
luta = encounterName .. " (" .. Loc ["STRING_SEGMENTS_LIST_BOSS"] .. ")"
|
||||
end
|
||||
end
|
||||
else
|
||||
luta = Loc ["STRING_SEGMENTS_LIST_TRASH"]
|
||||
end
|
||||
end
|
||||
|
||||
if (not luta) then
|
||||
if (_detalhes.tabela_historico.tabelas[segmento].enemy) then
|
||||
luta = _detalhes.tabela_historico.tabelas[segmento].enemy .. " (" .. segmento .. " " .. Loc ["STRING_REPORT_PREVIOUSFIGHTS"] .. ")"
|
||||
|
||||
+36
-28
@@ -230,10 +230,11 @@ function _detalhes:ToolTipDead (instancia, morte, esta_barra, keydown)
|
||||
end
|
||||
else
|
||||
--> heal
|
||||
GameCooltip:AddLine ("" .. _cstr ("%.1f", time - hora_da_morte) .. "s " .. spellname .. " (|cFFC6B0D9" .. source .. "|r)", "+" .. _detalhes:ToK (amount) .. " (" .. hp .. "%)", 1, "white", "white")
|
||||
GameCooltip:AddIcon (spellicon)
|
||||
GameCooltip:AddStatusBar (hp, 1, "green", true) --, backgroud_bar_heal
|
||||
|
||||
if (amount > _detalhes.deathlog_healingdone_min) then
|
||||
GameCooltip:AddLine ("" .. _cstr ("%.1f", time - hora_da_morte) .. "s " .. spellname .. " (|cFFC6B0D9" .. source .. "|r)", "+" .. _detalhes:ToK (amount) .. " (" .. hp .. "%)", 1, "white", "white")
|
||||
GameCooltip:AddIcon (spellicon)
|
||||
GameCooltip:AddStatusBar (hp, 1, "green", true) --, backgroud_bar_heal
|
||||
end
|
||||
end
|
||||
|
||||
elseif (type (evtype) == "number") then
|
||||
@@ -391,20 +392,25 @@ function atributo_misc:ReportSingleDeadLine (morte, instancia)
|
||||
end
|
||||
|
||||
elseif (not evento [1] and type (evento [1]) == "boolean") then --> heal
|
||||
local elapsed = _cstr ("%.1f", evento [4] - time_of_death) .."s"
|
||||
local spelllink = GetSpellLink (evento [2])
|
||||
local source = _detalhes:GetOnlyName (evento [6])
|
||||
local spellname, _, spellicon = _GetSpellInfo (evento [2])
|
||||
|
||||
local amount = evento [3]
|
||||
local hp = _math_floor (evento [5] / max_health * 100)
|
||||
if (hp > 100) then
|
||||
hp = 100
|
||||
end
|
||||
|
||||
if (amount > _detalhes.deathlog_healingdone_min) then
|
||||
local elapsed = _cstr ("%.1f", evento [4] - time_of_death) .."s"
|
||||
local spelllink = GetSpellLink (evento [2])
|
||||
local source = _detalhes:GetOnlyName (evento [6])
|
||||
local spellname, _, spellicon = _GetSpellInfo (evento [2])
|
||||
|
||||
local hp = _math_floor (evento [5] / max_health * 100)
|
||||
if (hp > 100) then
|
||||
hp = 100
|
||||
end
|
||||
|
||||
if (_detalhes.report_heal_links) then
|
||||
tinsert (report_array, {elapsed .. " ", spelllink, " (" .. source .. ")", "+" .. _detalhes:ToK (amount) .. " (" .. hp .. "%) "})
|
||||
else
|
||||
tinsert (report_array, {elapsed .. " ", spellname, " (" .. source .. ")", "+" .. _detalhes:ToK (amount) .. " (" .. hp .. "%) "})
|
||||
if (_detalhes.report_heal_links) then
|
||||
tinsert (report_array, {elapsed .. " ", spelllink, " (" .. source .. ")", "+" .. _detalhes:ToK (amount) .. " (" .. hp .. "%) "})
|
||||
else
|
||||
tinsert (report_array, {elapsed .. " ", spellname, " (" .. source .. ")", "+" .. _detalhes:ToK (amount) .. " (" .. hp .. "%) "})
|
||||
end
|
||||
end
|
||||
|
||||
elseif (type (evento [1]) == "number" and evento [1] == 4) then --> debuff
|
||||
@@ -2407,10 +2413,12 @@ local somar_habilidades = function (container1, container2)
|
||||
end
|
||||
end
|
||||
|
||||
function atributo_misc:r_connect_shadow (actor, no_refresh)
|
||||
function atributo_misc:r_connect_shadow (actor, no_refresh, combat_object)
|
||||
|
||||
local host_combat = combat_object or _detalhes.tabela_overall
|
||||
|
||||
--> criar uma shadow desse ator se ainda não tiver uma
|
||||
local overall_misc = _detalhes.tabela_overall [4]
|
||||
local overall_misc = host_combat [4]
|
||||
local shadow = overall_misc._ActorTable [overall_misc._NameIndexTable [actor.nome]]
|
||||
|
||||
if (not actor.nome) then
|
||||
@@ -2467,9 +2475,9 @@ function atributo_misc:r_connect_shadow (actor, no_refresh)
|
||||
end
|
||||
|
||||
shadow.cooldowns_defensive = shadow.cooldowns_defensive + actor.cooldowns_defensive
|
||||
_detalhes.tabela_overall.totals[4].cooldowns_defensive = _detalhes.tabela_overall.totals[4].cooldowns_defensive + actor.cooldowns_defensive
|
||||
host_combat.totals[4].cooldowns_defensive = host_combat.totals[4].cooldowns_defensive + actor.cooldowns_defensive
|
||||
if (actor.grupo) then
|
||||
_detalhes.tabela_overall.totals_grupo[4].cooldowns_defensive = _detalhes.tabela_overall.totals_grupo[4].cooldowns_defensive + actor.cooldowns_defensive
|
||||
host_combat.totals_grupo[4].cooldowns_defensive = host_combat.totals_grupo[4].cooldowns_defensive + actor.cooldowns_defensive
|
||||
end
|
||||
|
||||
somar_alvos (shadow.cooldowns_defensive_targets, actor.cooldowns_defensive_targets)
|
||||
@@ -2536,9 +2544,9 @@ function atributo_misc:r_connect_shadow (actor, no_refresh)
|
||||
end
|
||||
|
||||
shadow.interrupt = shadow.interrupt + actor.interrupt
|
||||
_detalhes.tabela_overall.totals[4].interrupt = _detalhes.tabela_overall.totals[4].interrupt + actor.interrupt
|
||||
host_combat.totals[4].interrupt = host_combat.totals[4].interrupt + actor.interrupt
|
||||
if (actor.grupo) then
|
||||
_detalhes.tabela_overall.totals_grupo[4].interrupt = _detalhes.tabela_overall.totals_grupo[4].interrupt + actor.interrupt
|
||||
host_combat.totals_grupo[4].interrupt = host_combat.totals_grupo[4].interrupt + actor.interrupt
|
||||
end
|
||||
|
||||
somar_alvos (shadow.interrupt_targets, actor.interrupt_targets)
|
||||
@@ -2567,9 +2575,9 @@ function atributo_misc:r_connect_shadow (actor, no_refresh)
|
||||
end
|
||||
|
||||
shadow.ress = shadow.ress + actor.ress
|
||||
_detalhes.tabela_overall.totals[4].ress = _detalhes.tabela_overall.totals[4].ress + actor.ress
|
||||
host_combat.totals[4].ress = host_combat.totals[4].ress + actor.ress
|
||||
if (actor.grupo) then
|
||||
_detalhes.tabela_overall.totals_grupo[4].ress = _detalhes.tabela_overall.totals_grupo[4].ress + actor.ress
|
||||
host_combat.totals_grupo[4].ress = host_combat.totals_grupo[4].ress + actor.ress
|
||||
end
|
||||
|
||||
somar_alvos (shadow.ress_targets, actor.ress_targets)
|
||||
@@ -2586,9 +2594,9 @@ function atributo_misc:r_connect_shadow (actor, no_refresh)
|
||||
end
|
||||
|
||||
shadow.dispell = shadow.dispell + actor.dispell
|
||||
_detalhes.tabela_overall.totals[4].dispell = _detalhes.tabela_overall.totals[4].dispell + actor.dispell
|
||||
host_combat.totals[4].dispell = host_combat.totals[4].dispell + actor.dispell
|
||||
if (actor.grupo) then
|
||||
_detalhes.tabela_overall.totals_grupo[4].dispell = _detalhes.tabela_overall.totals_grupo[4].dispell + actor.dispell
|
||||
host_combat.totals_grupo[4].dispell = host_combat.totals_grupo[4].dispell + actor.dispell
|
||||
end
|
||||
|
||||
somar_alvos (shadow.dispell_targets, actor.dispell_targets)
|
||||
@@ -2616,9 +2624,9 @@ function atributo_misc:r_connect_shadow (actor, no_refresh)
|
||||
end
|
||||
|
||||
shadow.cc_break = shadow.cc_break + actor.cc_break
|
||||
_detalhes.tabela_overall.totals[4].cc_break = _detalhes.tabela_overall.totals[4].cc_break + actor.cc_break
|
||||
host_combat.totals[4].cc_break = host_combat.totals[4].cc_break + actor.cc_break
|
||||
if (actor.grupo) then
|
||||
_detalhes.tabela_overall.totals_grupo[4].cc_break = _detalhes.tabela_overall.totals_grupo[4].cc_break + actor.cc_break
|
||||
host_combat.totals_grupo[4].cc_break = host_combat.totals_grupo[4].cc_break + actor.cc_break
|
||||
end
|
||||
|
||||
somar_alvos (shadow.cc_break_targets, actor.cc_break_targets)
|
||||
|
||||
@@ -184,8 +184,9 @@
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
novo_objeto.classe = "UNKNOW"
|
||||
return
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
@@ -201,6 +202,12 @@
|
||||
novo_objeto.displayName = _detalhes:GetNickname (serial, false, true) --> serial, default, silent
|
||||
end
|
||||
if (not novo_objeto.displayName) then
|
||||
if (_detalhes.remove_realm_from_name) then
|
||||
novo_objeto.displayName = nome:gsub (("%-.*"), "")
|
||||
else
|
||||
novo_objeto.displayName = nome
|
||||
end
|
||||
--[=[
|
||||
|
||||
if (_IsInInstance() and _detalhes.remove_realm_from_name) then
|
||||
novo_objeto.displayName = nome:gsub (("%-.*"), "")
|
||||
@@ -211,6 +218,11 @@
|
||||
else
|
||||
novo_objeto.displayName = nome
|
||||
end
|
||||
--]=]
|
||||
end
|
||||
|
||||
if (_detalhes.all_players_are_group or _detalhes.immersion_enabled) then
|
||||
novo_objeto.grupo = true
|
||||
end
|
||||
|
||||
if ((_bit_band (flag, IS_GROUP_OBJECT) ~= 0 and novo_objeto.classe ~= "UNKNOW" and novo_objeto.classe ~= "UNGROUPPLAYER") or _detalhes:IsInCache (serial)) then
|
||||
@@ -486,7 +498,8 @@
|
||||
|
||||
if (self.tipo == container_damage) then --> CONTAINER DAMAGE
|
||||
|
||||
get_actor_class (novo_objeto, nome, flag, serial)
|
||||
local shouldScanOnce = get_actor_class (novo_objeto, nome, flag, serial)
|
||||
|
||||
read_actor_flag (novo_objeto, dono_do_pet, serial, flag, nome, "damage")
|
||||
|
||||
if (dono_do_pet) then
|
||||
@@ -508,6 +521,10 @@
|
||||
if (self.shadow) then --> não executar 2x
|
||||
_detalhes:ScheduleTimer ("GuessClass", 1, {novo_objeto, self, 1})
|
||||
end
|
||||
|
||||
elseif (shouldScanOnce) then
|
||||
|
||||
|
||||
end
|
||||
|
||||
if (novo_objeto.isTank) then
|
||||
@@ -516,7 +533,7 @@
|
||||
|
||||
elseif (self.tipo == container_heal) then --> CONTAINER HEALING
|
||||
|
||||
get_actor_class (novo_objeto, nome, flag, serial)
|
||||
local shouldScanOnce = get_actor_class (novo_objeto, nome, flag, serial)
|
||||
read_actor_flag (novo_objeto, dono_do_pet, serial, flag, nome, "heal")
|
||||
|
||||
if (dono_do_pet) then
|
||||
@@ -543,7 +560,7 @@
|
||||
|
||||
elseif (self.tipo == container_energy) then --> CONTAINER ENERGY
|
||||
|
||||
get_actor_class (novo_objeto, nome, flag, serial)
|
||||
local shouldScanOnce = get_actor_class (novo_objeto, nome, flag, serial)
|
||||
read_actor_flag (novo_objeto, dono_do_pet, serial, flag, nome, "energy")
|
||||
|
||||
if (dono_do_pet) then
|
||||
@@ -563,7 +580,7 @@
|
||||
|
||||
elseif (self.tipo == container_misc) then --> CONTAINER MISC
|
||||
|
||||
get_actor_class (novo_objeto, nome, flag, serial)
|
||||
local shouldScanOnce = get_actor_class (novo_objeto, nome, flag, serial)
|
||||
read_actor_flag (novo_objeto, dono_do_pet, serial, flag, nome, "misc")
|
||||
|
||||
--local teste_classe =
|
||||
@@ -603,7 +620,7 @@
|
||||
|
||||
elseif (self.tipo == container_friendlyfire) then --> CONTAINER FRIENDLY FIRE
|
||||
|
||||
get_actor_class (novo_objeto, nome, serial)
|
||||
local shouldScanOnce = get_actor_class (novo_objeto, nome, serial)
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -435,7 +435,14 @@ function historico:resetar()
|
||||
_detalhes:UpdateParserGears()
|
||||
|
||||
if (not InCombatLockdown() and not UnitAffectingCombat ("player")) then
|
||||
collectgarbage()
|
||||
--> workarround for the "script run too long" issue while outside the combat lockdown
|
||||
local cleargarbage = function()
|
||||
collectgarbage()
|
||||
end
|
||||
local successful, errortext = pcall (cleargarbage)
|
||||
if (not successful) then
|
||||
_detalhes:Msg ("couldn't call collectgarbage()")
|
||||
end
|
||||
else
|
||||
_detalhes.schedule_hard_garbage_collect = true
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user