- 4% parser speed up.

- added options for concatenate trash segments.
- added options for auto eliminate trash segments.
- added capture for enemy spell cast successful.
- added options for bar height.
- fixed problem were pets wasn't updating owner activity time.
- fixed issue with healing done being computated out of combat.
- fixed a bug with twin's encounter on Throne of Thunder.
- plugin encounter details now show the amount of interrupted cast / successful cast.
This commit is contained in:
Tercio
2013-11-19 01:33:23 -02:00
parent a7cd10450a
commit 423e4b88c6
13 changed files with 192 additions and 171 deletions
+5 -45
View File
@@ -37,7 +37,7 @@ function habilidade_dano:NovaTabela (id, link, token) --aqui eu n
total = 0, --total de dano aplicado por esta habilidade
counter = 0, --conta quantas vezes a habilidade foi chamada
id = id,
--school = 0,
successful_casted = 0,
--> normal
n_min = 0,
@@ -52,31 +52,21 @@ function habilidade_dano:NovaTabela (id, link, token) --aqui eu n
c_dmg = 0,
--> glacing
--g_min = 0, --not sure but, glancing min and max shouldn't be necessary
--g_max = 0, --
g_amt = 0,
g_dmg = 0,
--> resisted
--r_min = 0, --not sure but, resisted min and max shouldn't be necessary
--r_max = 0, --
r_amt = 0,
r_dmg = 0,
--> blocked
--b_min = 0, --not sure but, block min and max shouldn't be necessary
--b_max = 0, --
b_amt = 0,
b_dmg = 0,
--> obsorved
--a_min = 0, --not sure but, absorbed min and max shouldn't be necessary
--a_max = 0, --
a_amt = 0,
a_dmg = 0,
--crushing = 0, --> this still exists?
targets = container_combatentes:NovoContainer (container_damage_target)
}
@@ -117,7 +107,6 @@ function habilidade_dano:Add (serial, nome, flag, amount, who_nome, resisted, bl
self.counter = self.counter + 1
--local alvo = self.targets:PegarCombatente (serial, nome, flag, true)
local alvo = self.targets._NameIndexTable [nome]
if (not alvo) then
alvo = self.targets:PegarCombatente (serial, nome, flag, true)
@@ -128,56 +117,26 @@ function habilidade_dano:Add (serial, nome, flag, amount, who_nome, resisted, bl
if (resisted and resisted > 0) then
self.r_dmg = self.r_dmg+amount --> tabela.total é o total de dano
self.r_amt = self.r_amt+1 --> tabela.total é o total de dano
--if (amount > self.r_max) then
-- self.r_max = amount
--end
--if (self.r_min > amount or self.r_min == 0) then
-- self.r_min = amount
--end
end
if (blocked and blocked > 0) then
self.b_dmg = self.b_dmg+amount --> amount é o total de dano
self.b_amt = self.b_amt+1 --> amount é o total de dano
--if (amount > self.b_max) then
-- self.b_max = amount
--end
--if (self.b_min > amount or self.b_min == 0) then
-- self.b_min = amount
--end
end
if (absorbed and absorbed > 0) then
self.a_dmg = self.a_dmg+amount --> amount é o total de dano
self.a_amt = self.a_amt+1 --> amount é o total de dano
--if (amount > self.a_max) then
-- self.a_max = amount
--end
--if (self.a_min > amount or self.a_min == 0) then
-- self.a_min = amount
--end
end
--if (amount and amount > 0) then
--if (amount and amount > 0) then
self.total = self.total + amount
--alvo:AddQuantidade (amount)
alvo.total = alvo.total + amount
if (glacing) then
-- esta_tabela.glacing = {["mim"] = 0, ["max"] = 0, ["total"] = 0, ["dmg"] = 0}
self.g_dmg = self.g_dmg+amount --> amount é o total de dano
self.g_amt = self.g_amt+1 --> amount é o total de dano
--if (amount > self.g_max) then
-- self.g_max = amount
--end
--if (self.g_min > amount or self.g_min == 0) then
-- self.g_min = amount
--end
elseif (critical) then
--esta_tabela.critico = {["mim"] = 0, ["max"] = 0, ["total"] = 0, ["dmg"] = 0}
self.c_dmg = self.c_dmg+amount --> amount é o total de dano
self.c_amt = self.c_amt+1 --> amount é o total de dano
if (amount > self.c_max) then
@@ -187,7 +146,6 @@ function habilidade_dano:Add (serial, nome, flag, amount, who_nome, resisted, bl
self.c_min = amount
end
else
--esta_tabela.normal = {["mim"] = 0, ["max"] = 0, ["total"] = 0, ["dmg"] = 0}
self.n_dmg = self.n_dmg+amount
self.n_amt = self.n_amt+1
if (amount > self.n_max) then
@@ -276,7 +234,8 @@ end
habilidade_dano.__add = function (tabela1, tabela2)
tabela1.total = tabela1.total + tabela2.total
tabela1.counter = tabela1.counter + tabela2.counter
tabela1.successful_casted = tabela1.successful_casted + tabela2.successful_casted
tabela1.n_min = tabela1.n_min + tabela2.n_min
tabela1.n_max = tabela1.n_max + tabela2.n_max
tabela1.n_amt = tabela1.n_amt + tabela2.n_amt
@@ -315,6 +274,7 @@ end
habilidade_dano.__sub = function (tabela1, tabela2)
tabela1.total = tabela1.total - tabela2.total
tabela1.counter = tabela1.counter - tabela2.counter
tabela1.successful_casted = tabela1.successful_casted - tabela2.successful_casted
tabela1.n_min = tabela1.n_min - tabela2.n_min
tabela1.n_max = tabela1.n_max - tabela2.n_max
+17 -2
View File
@@ -860,6 +860,9 @@ function _detalhes:RestauraJanela (index, temp)
self.consolidate = self.consolidate or false
self.icons = self.icons or {true, true, true, true}
--> teste
--self.barrasInfo.altura = 14
self.barrasInfo.mostrando = 0
self.barrasInfo.criadas = 0
@@ -970,7 +973,19 @@ function _detalhes:RefreshBars (instance)
self = instance
end
if (self.barras and self.barras[1]) then
local altura = self.barrasInfo.altura
for index, row in _ipairs (self.barras) do
local y = self.barrasInfo.alturaReal * (row.row_id - 1)
y = y*-1
row:SetPoint ("TOPLEFT", self.baseframe, "TOPLEFT", self.barrasInfo.espaco.esquerda, y)
row:SetHeight (altura)
row.icone_classe:SetHeight (altura)
row.icone_classe:SetWidth (altura)
row.icone_terceiro:SetHeight (altura)
row.icone_terceiro:SetWidth (altura)
row.textura:SetTexture (self.barrasInfo.textura)
@@ -984,8 +999,8 @@ function _detalhes:RefreshBars (instance)
row.background:SetVertexColor (r, g, b, c[4])
end
row.texto_esquerdo:SetFont (self.barrasInfo.font or "GameFontHighlight", self.barrasInfo.fontSize or self.barrasInfo.altura*0.75)
row.texto_direita:SetFont (self.barrasInfo.font or "GameFontHighlight", self.barrasInfo.fontSize or self.barrasInfo.altura*0.75)
row.texto_esquerdo:SetFont (self.barrasInfo.font or "GameFontHighlight", self.barrasInfo.fontSize or altura * 0.75)
row.texto_direita:SetFont (self.barrasInfo.font or "GameFontHighlight", self.barrasInfo.fontSize or altura * 0.75)
end
end
end
+2 -1
View File
@@ -1005,7 +1005,8 @@ function _detalhes:CatchRaidDebuffUptime (in_or_out) -- "DEBUFF_UPTIME_IN"
for raidIndex = 1, _GetNumGroupMembers() do
local his_target = _UnitGUID ("raid"..raidIndex.."target")
if (his_target and not checked [his_target] and UnitReaction ("raid"..raidIndex.."target", "player") <= 4) then
local rect = UnitReaction ("raid"..raidIndex.."target", "player")
if (his_target and rect and not checked [his_target] and rect <= 4) then
checked [his_target] = true
+49 -19
View File
@@ -42,6 +42,7 @@ function historico:adicionar (tabela)
--> fazer limpeza na tabela
local _segundo_combate = self.tabelas[2]
local _terceiro_combate = self.tabelas[3]
local container_damage = _segundo_combate [1]
local container_heal = _segundo_combate [2]
@@ -63,29 +64,58 @@ function historico:adicionar (tabela)
end
end
--[[
if (self.tabelas[3]) then
if (self.tabelas[3].is_trash and self.tabelas[2].is_trash and not self.tabelas[3].is_boss and not self.tabelas[2].is_boss) then
--> tabela 2 deve ser deletada e somada a tabela 1
if (_detalhes.debug) then
detalhes:Msg ("(debug) concatenating two trash segments.")
if (_detalhes.trash_auto_remove) then
if (_terceiro_combate) then
if (_terceiro_combate.is_trash and not _terceiro_combate.is_boss) then
_detalhes.tabela_overall = _detalhes.tabela_overall - _terceiro_combate
--> verificar novamente a time machine
for _, jogador in ipairs (_terceiro_combate [1]._ActorTable) do --> damage
if (jogador.timeMachine) then
jogador:DesregistrarNaTimeMachine()
end
end
for _, jogador in ipairs (_terceiro_combate [2]._ActorTable) do --> heal
if (jogador.timeMachine) then
jogador:DesregistrarNaTimeMachine()
end
end
--> remover
_table_remove (self.tabelas, 3)
_detalhes:SendEvent ("DETAILS_DATA_SEGMENTREMOVED", nil, nil)
end
self.tabelas[2] = self.tabelas[2] + self.tabelas[3]
_detalhes.tabela_overall = _detalhes.tabela_overall - self.tabelas[3]
self.tabelas[2].is_trash = true
--> remover
_table_remove (self.tabelas, 3)
_detalhes:SendEvent ("DETAILS_DATA_SEGMENTREMOVED", nil, nil)
end
--> debug
--self.tabelas[2] = self.tabelas[2] + self.tabelas[3]
--_table_remove (self.tabelas, 3)
elseif (_detalhes.trash_concatenate) then
if (_terceiro_combate) then
if (_terceiro_combate.is_trash and _segundo_combate.is_trash and not _terceiro_combate.is_boss and not _segundo_combate.is_boss) then
--> tabela 2 deve ser deletada e somada a tabela 1
if (_detalhes.debug) then
detalhes:Msg ("(debug) concatenating two trash segments.")
end
_segundo_combate = _segundo_combate + _terceiro_combate
_detalhes.tabela_overall = _detalhes.tabela_overall - _terceiro_combate
_segundo_combate.is_trash = true
--> verificar novamente a time machine
for _, jogador in ipairs (_terceiro_combate [1]._ActorTable) do --> damage
if (jogador.timeMachine) then
jogador:DesregistrarNaTimeMachine()
end
end
for _, jogador in ipairs (_terceiro_combate [2]._ActorTable) do --> heal
if (jogador.timeMachine) then
jogador:DesregistrarNaTimeMachine()
end
end
--> remover
_table_remove (self.tabelas, 3)
_detalhes:SendEvent ("DETAILS_DATA_SEGMENTREMOVED", nil, nil)
end
end
end
--]]
end