1.15.0 Test Version
- Implemented a early support for Dungeons: the addon is now capable of distinguishing dungeon boss and trash mobs. not all bosses are implemented yet, atm is: *Mogu'Shan Palace *Temple of the Jade Serpent *Stormstout Brewery - Implemented Overall Data: Options for it are under combat tab. - Implemented spell targets on Player Details Window. Also, fixed lots of small issues like showing damage done where clicking on a Dps bar.
This commit is contained in:
+79
-71
@@ -49,6 +49,12 @@
|
||||
--> try to find the opponent of last fight, can be called during a fight as well
|
||||
function _detalhes:FindEnemy()
|
||||
|
||||
local ZoneName, InstanceType, DifficultyID, _, _, _, _, ZoneMapID = _GetInstanceInfo()
|
||||
if (InstanceType == "party" or InstanceType == "raid") then
|
||||
_detalhes.tabela_vigente.is_trash = true
|
||||
return Loc ["STRING_SEGMENT_TRASH"]
|
||||
end
|
||||
|
||||
local trash_list
|
||||
if (_detalhes.in_group and _detalhes.last_instance) then
|
||||
trash_list = _detalhes:GetInstanceTrashInfo (_detalhes.last_instance)
|
||||
@@ -97,6 +103,25 @@
|
||||
end
|
||||
|
||||
-- try get the current encounter name during the encounter
|
||||
|
||||
local boss_found = function (index, name, zone, mapid, diff)
|
||||
local boss_table = {
|
||||
index = index,
|
||||
name = name,
|
||||
encounter = name,
|
||||
zone = zone,
|
||||
mapid = mapid,
|
||||
diff = diff,
|
||||
ej_instance_id = EJ_GetCurrentInstance(),
|
||||
}
|
||||
|
||||
_detalhes.tabela_vigente.is_boss = boss_table
|
||||
|
||||
_detalhes:SendEvent ("COMBAT_BOSS_FOUND", nil, index, name)
|
||||
|
||||
return boss_table
|
||||
end
|
||||
|
||||
function _detalhes:ReadBossFrames()
|
||||
|
||||
if (_detalhes.tabela_vigente.is_boss) then
|
||||
@@ -104,16 +129,8 @@
|
||||
end
|
||||
|
||||
if (_detalhes.encounter_table.name) then
|
||||
_detalhes.tabela_vigente.is_boss = {
|
||||
index = _detalhes.encounter_table.index,
|
||||
name = _detalhes.encounter_table.name,
|
||||
zone = _detalhes.encounter_table.zone,
|
||||
mapid = _detalhes.encounter_table.mapid,
|
||||
encounter = _detalhes.encounter_table.name,
|
||||
diff = _detalhes.encounter_table.diff
|
||||
}
|
||||
_detalhes:SendEvent ("COMBAT_BOSS_FOUND", nil, _detalhes.tabela_vigente.is_boss.index, _detalhes.tabela_vigente.is_boss.name)
|
||||
return _detalhes.tabela_vigente.is_boss
|
||||
local encounter_table = _detalhes.encounter_table
|
||||
return boss_found (encounter_table.index, encounter_table.name, encounter_table.zone, encounter_table.mapid, encounter_table.diff)
|
||||
end
|
||||
|
||||
for index = 1, 5, 1 do
|
||||
@@ -176,17 +193,9 @@
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
_detalhes.tabela_vigente.is_boss = {
|
||||
index = BossIndex,
|
||||
name = _detalhes:GetBossName (ZoneMapID, BossIndex),
|
||||
zone = ZoneName,
|
||||
mapid = ZoneMapID,
|
||||
encounter = _detalhes:GetBossName (ZoneMapID, BossIndex),
|
||||
diff = DifficultyID
|
||||
}
|
||||
_detalhes:SendEvent ("COMBAT_BOSS_FOUND", nil, _detalhes.tabela_vigente.is_boss.index, _detalhes.tabela_vigente.is_boss.name)
|
||||
return _detalhes.tabela_vigente.is_boss
|
||||
|
||||
return boss_found (BossIndex, _detalhes:GetBossName (ZoneMapID, BossIndex), ZoneName, ZoneMapID, DifficultyID)
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -199,17 +208,11 @@
|
||||
function _detalhes:FindBoss()
|
||||
|
||||
if (_detalhes.encounter_table.name) then
|
||||
return {
|
||||
index = _detalhes.encounter_table.index,
|
||||
name = _detalhes.encounter_table.name,
|
||||
zone = _detalhes.encounter_table.zone,
|
||||
mapid = _detalhes.encounter_table.mapid,
|
||||
encounter = _detalhes.encounter_table.name,
|
||||
diff = _detalhes.encounter_table.diff
|
||||
}
|
||||
local encounter_table = _detalhes.encounter_table
|
||||
return boss_found (encounter_table.index, encounter_table.name, encounter_table.zone, encounter_table.mapid, encounter_table.diff)
|
||||
end
|
||||
|
||||
local ZoneName, _, DifficultyID, _, _, _, _, ZoneMapID = _GetInstanceInfo()
|
||||
local ZoneName, InstanceType, DifficultyID, _, _, _, _, ZoneMapID = _GetInstanceInfo()
|
||||
local BossIds = _detalhes:GetBossIds (ZoneMapID)
|
||||
|
||||
if (BossIds) then
|
||||
@@ -219,20 +222,13 @@
|
||||
if (ActorsContainer) then
|
||||
for index, Actor in _ipairs (ActorsContainer) do
|
||||
if (not Actor.grupo) then
|
||||
local serial = tonumber (Actor.serial:sub(6, 10), 16)
|
||||
local serial = tonumber (Actor.serial:sub (6, 10), 16)
|
||||
if (serial) then
|
||||
BossIndex = BossIds [serial]
|
||||
if (BossIndex) then
|
||||
Actor.boss = true
|
||||
Actor.shadow.boss = true
|
||||
return {
|
||||
index = BossIndex,
|
||||
name =_detalhes:GetBossName (ZoneMapID, BossIndex),
|
||||
zone = ZoneName,
|
||||
mapid = ZoneMapID,
|
||||
encounter = _detalhes:GetBossName (ZoneMapID, BossIndex),
|
||||
diff = DifficultyID
|
||||
}
|
||||
return boss_found (BossIndex, _detalhes:GetBossName (ZoneMapID, BossIndex), ZoneName, ZoneMapID, DifficultyID)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -378,36 +374,31 @@
|
||||
if (_detalhes.debug) then
|
||||
_detalhes:Msg ("(debug) ended a combat.")
|
||||
end
|
||||
|
||||
if (_detalhes.schedule_remove_overall and not from_encounter_end and not InCombatLockdown()) then
|
||||
if (_detalhes.debug) then
|
||||
_detalhes:Msg ("(debug) found schedule overall data deletion.")
|
||||
end
|
||||
_detalhes.schedule_remove_overall = false
|
||||
_detalhes.tabela_historico:resetar_overall()
|
||||
end
|
||||
|
||||
_detalhes:CatchRaidBuffUptime ("BUFF_UPTIME_OUT")
|
||||
_detalhes:CatchRaidDebuffUptime ("DEBUFF_UPTIME_OUT")
|
||||
_detalhes:CloseEnemyDebuffsUptime()
|
||||
|
||||
|
||||
--> pega a zona do jogador e vê se foi uma luta contra um Boss -- identifica se a luta foi com um boss
|
||||
if (not _detalhes.tabela_vigente.is_boss) then
|
||||
|
||||
--> function which runs after a boss encounter to try recognize a encounter
|
||||
_detalhes.tabela_vigente.is_boss = _detalhes:FindBoss()
|
||||
_detalhes:FindBoss()
|
||||
|
||||
if (not _detalhes.tabela_vigente.is_boss) then
|
||||
|
||||
local ZoneName, _, DifficultyID, _, _, _, _, ZoneMapID = _GetInstanceInfo()
|
||||
|
||||
local findboss = _detalhes:GetRaidBossFindFunction (ZoneMapID)
|
||||
if (findboss) then
|
||||
local BossIndex = findboss()
|
||||
if (BossIndex) then
|
||||
_detalhes.tabela_vigente.is_boss = {
|
||||
index = BossIndex,
|
||||
name = _detalhes:GetBossName (ZoneMapID, BossIndex),
|
||||
zone = ZoneName,
|
||||
mapid = ZoneMapID,
|
||||
encounter = _detalhes:GetBossName (ZoneMapID, BossIndex),
|
||||
diff = DifficultyID
|
||||
}
|
||||
--print ("boss found using findboss function.")
|
||||
else
|
||||
--print ("boss not found")
|
||||
boss_found (BossIndex, _detalhes:GetBossName (ZoneMapID, BossIndex), ZoneName, ZoneMapID, DifficultyID)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -433,6 +424,10 @@
|
||||
_detalhes.tabela_vigente:seta_tempo_decorrido() --> salva o end_time
|
||||
_detalhes.tabela_overall:seta_tempo_decorrido() --seta o end_time
|
||||
|
||||
--> flag instance type
|
||||
local _, InstanceType = _GetInstanceInfo()
|
||||
_detalhes.tabela_vigente.instance_type = InstanceType
|
||||
|
||||
if (not _detalhes.tabela_vigente.is_boss) then
|
||||
|
||||
local inimigo = _detalhes:FindEnemy()
|
||||
@@ -456,21 +451,28 @@
|
||||
|
||||
else
|
||||
|
||||
_detalhes:FlagActorsOnBossFight()
|
||||
|
||||
if (not InCombatLockdown() and not UnitAffectingCombat ("player")) then
|
||||
_detalhes:FlagActorsOnBossFight()
|
||||
else
|
||||
_detalhes.schedule_flag_boss_components = true
|
||||
end
|
||||
|
||||
if (_detalhes:GetBossDetails (_detalhes.tabela_vigente.is_boss.mapid, _detalhes.tabela_vigente.is_boss.index)) then
|
||||
|
||||
_detalhes.tabela_vigente.enemy = _detalhes.tabela_vigente.is_boss.encounter
|
||||
|
||||
if (_detalhes.tabela_vigente.instance_type == "raid") then
|
||||
_detalhes.last_encounter2 = _detalhes.last_encounter
|
||||
_detalhes.last_encounter = _detalhes.tabela_vigente.is_boss.name
|
||||
end
|
||||
|
||||
if (bossKilled) then
|
||||
_detalhes.tabela_vigente.is_boss.killed = true
|
||||
end
|
||||
|
||||
if (from_encounter_end) then
|
||||
|
||||
--_detalhes.tabela_vigente.start_time = _detalhes.encounter_table ["start"]
|
||||
_detalhes.tabela_vigente.end_time = _detalhes.encounter_table ["end"]
|
||||
|
||||
end
|
||||
|
||||
--> encounter boss function
|
||||
@@ -495,7 +497,7 @@
|
||||
end
|
||||
|
||||
--> schedule clean up
|
||||
_detalhes:ScheduleTimer ("IniciarColetaDeLixo", 15, true)
|
||||
--_detalhes:ScheduleTimer ("IniciarColetaDeLixo", 15, true)
|
||||
|
||||
else
|
||||
if (_detalhes.debug) then
|
||||
@@ -517,14 +519,6 @@
|
||||
else
|
||||
--> this is a little bit complicated, need a specific function for combat cancellation
|
||||
|
||||
if (_detalhes.tabela_overall.end_time) then --> no inicio do combate o tempo do overall vai pra NIL o.0
|
||||
_detalhes.tabela_overall.start_time = _detalhes.tabela_overall.start_time + tempo_do_combate --> assim ele descarta o tempo de combate na tabela do everall
|
||||
else
|
||||
_detalhes.tabela_overall.start_time = 0 --> tempo inicio igual a zero pois se o end_time é NIL significa que é a primeira vez que ocorre o combate na tabela overall
|
||||
end
|
||||
|
||||
_detalhes.tabela_overall = _detalhes.tabela_overall - _detalhes.tabela_vigente --> isso aqui é novo, ele vai subtrair da overall qualquer dado adicionado na tabela descardata
|
||||
|
||||
--_table_wipe (_detalhes.tabela_vigente) --> descarta ela, não será mais usada
|
||||
_detalhes.tabela_vigente = _detalhes.tabela_historico.tabelas[1] --> pega a tabela do ultimo combate
|
||||
|
||||
@@ -794,9 +788,8 @@
|
||||
for class_type, container in _ipairs (_detalhes.tabela_vigente) do
|
||||
for _, actor in _ipairs (container._ActorTable) do
|
||||
actor.boss_fight_component = true
|
||||
local shadow = _detalhes.tabela_overall (class_type, actor.nome)
|
||||
if (shadow) then
|
||||
shadow.boss_fight_component = true
|
||||
if (actor.shadow) then
|
||||
actor.shadow.boss_fight_component = true
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -806,10 +799,16 @@
|
||||
local on_energy = energy_container._ActorTable [energy_container._NameIndexTable [name]]
|
||||
if (on_energy) then
|
||||
on_energy.fight_component = true
|
||||
if (on_energy.shadow) then
|
||||
on_energy.shadow.fight_component = true
|
||||
end
|
||||
end
|
||||
local on_misc = misc_container._ActorTable [misc_container._NameIndexTable [name]]
|
||||
if (on_misc) then
|
||||
on_misc.fight_component = true
|
||||
if (on_misc.shadow) then
|
||||
on_misc.shadow.fight_component = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -829,6 +828,9 @@
|
||||
local target_object = container._ActorTable [container._NameIndexTable [target_actor.nome]]
|
||||
if (target_object) then
|
||||
target_object.fight_component = true
|
||||
if (target_object.shadow) then
|
||||
target_object.shadow.fight_component = true
|
||||
end
|
||||
fight_component (energy_container, misc_container, target_actor.nome)
|
||||
end
|
||||
end
|
||||
@@ -837,6 +839,9 @@
|
||||
local target_object = container._ActorTable [container._NameIndexTable [damager_actor]]
|
||||
if (target_object) then
|
||||
target_object.fight_component = true
|
||||
if (target_object.shadow) then
|
||||
target_object.shadow.fight_component = true
|
||||
end
|
||||
fight_component (energy_container, misc_container, damager_actor)
|
||||
end
|
||||
end
|
||||
@@ -845,6 +850,9 @@
|
||||
local target_object = container._ActorTable [container._NameIndexTable [healer_actor]]
|
||||
if (target_object) then
|
||||
target_object.fight_component = true
|
||||
if (target_object.shadow) then
|
||||
target_object.shadow.fight_component = true
|
||||
end
|
||||
fight_component (energy_container, misc_container, healer_actor)
|
||||
end
|
||||
end
|
||||
|
||||
+57
-29
@@ -117,20 +117,35 @@
|
||||
local shadow
|
||||
|
||||
if (class_type == class_type_dano) then
|
||||
shadow = atributo_damage:r_connect_shadow (esta_classe)
|
||||
if (combate.overall_added) then
|
||||
shadow = atributo_damage:r_connect_shadow (esta_classe)
|
||||
else
|
||||
shadow = atributo_damage:r_onlyrefresh_shadow (esta_classe)
|
||||
end
|
||||
|
||||
elseif (class_type == class_type_cura) then
|
||||
shadow = atributo_heal:r_connect_shadow (esta_classe)
|
||||
if (combate.overall_added) then
|
||||
shadow = atributo_heal:r_connect_shadow (esta_classe)
|
||||
else
|
||||
shadow = atributo_heal:r_onlyrefresh_shadow (esta_classe)
|
||||
end
|
||||
|
||||
elseif (class_type == class_type_e_energy) then
|
||||
shadow = atributo_energy:r_connect_shadow (esta_classe)
|
||||
if (combate.overall_added) then
|
||||
shadow = atributo_energy:r_connect_shadow (esta_classe)
|
||||
else
|
||||
shadow = atributo_energy:r_onlyrefresh_shadow (esta_classe)
|
||||
end
|
||||
|
||||
elseif (class_type == class_type_misc) then
|
||||
shadow = atributo_misc:r_connect_shadow (esta_classe)
|
||||
|
||||
if (combate.overall_added) then
|
||||
shadow = atributo_misc:r_connect_shadow (esta_classe)
|
||||
else
|
||||
shadow = atributo_misc:r_onlyrefresh_shadow (esta_classe)
|
||||
end
|
||||
end
|
||||
|
||||
shadow:FazLinkagem (esta_classe)
|
||||
--shadow:FazLinkagem (esta_classe)
|
||||
|
||||
end
|
||||
end
|
||||
@@ -578,7 +593,7 @@
|
||||
function _detalhes:CheckMemoryAfterCombat()
|
||||
if (_detalhes.next_memory_check < time()) then
|
||||
if (_detalhes.debug) then
|
||||
_detalhes:Msg ("checking memory after combat.")
|
||||
_detalhes:Msg ("(debug) checking memory after combat.")
|
||||
end
|
||||
_detalhes.next_memory_check = time()+_detalhes.intervalo_memoria
|
||||
UpdateAddOnMemoryUsage()
|
||||
@@ -594,11 +609,11 @@
|
||||
UpdateAddOnMemoryUsage()
|
||||
local memory = GetAddOnMemoryUsage ("Details")
|
||||
if (_detalhes.debug) then
|
||||
_detalhes:Msg ("checking memory periodically. Using: ",math.floor (memory), "of", _detalhes.memory_ram)
|
||||
_detalhes:Msg ("(debug) checking memory periodically. Using: ",math.floor (memory), "of", _detalhes.memory_ram * 1000)
|
||||
end
|
||||
if (memory > _detalhes.memory_ram) then
|
||||
if (memory > _detalhes.memory_ram * 1000) then
|
||||
if (_detalhes.debug) then
|
||||
_detalhes:Msg ("Memory is too high, starting garbage collector")
|
||||
_detalhes:Msg ("(debug) Memory is too high, starting garbage collector")
|
||||
end
|
||||
_detalhes:IniciarColetaDeLixo (1, 60) --> sending 1 only check for combat and ignore garbage collect cooldown
|
||||
end
|
||||
@@ -612,7 +627,7 @@
|
||||
return
|
||||
elseif (_detalhes.in_combat or _InCombatLockdown() or _detalhes:IsInInstance()) then
|
||||
if (_detalhes.debug) then
|
||||
_detalhes:Msg ("garbage collect queued due combatlockdown (forced false)")
|
||||
_detalhes:Msg ("(debug) garbage collect queued due combatlockdown (forced false)")
|
||||
end
|
||||
_detalhes:ScheduleTimer ("IniciarColetaDeLixo", 5)
|
||||
return
|
||||
@@ -622,7 +637,7 @@
|
||||
if (forcar == 1) then
|
||||
if (_detalhes.in_combat or _InCombatLockdown()) then
|
||||
if (_detalhes.debug) then
|
||||
_detalhes:Msg ("garbage collect queued due combatlockdown (forced 1)")
|
||||
_detalhes:Msg ("(debug) garbage collect queued due combatlockdown (forced 1)")
|
||||
end
|
||||
_detalhes:ScheduleTimer ("IniciarColetaDeLixo", 5, forcar)
|
||||
return
|
||||
@@ -633,9 +648,9 @@
|
||||
|
||||
if (_detalhes.debug) then
|
||||
if (forcar) then
|
||||
_detalhes:Msg ("collecting garbage with forced state: ", forcar)
|
||||
_detalhes:Msg ("(debug) collecting garbage with forced state: ", forcar)
|
||||
else
|
||||
_detalhes:Msg ("collecting garbage.")
|
||||
_detalhes:Msg ("(debug) collecting garbage.")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -672,7 +687,7 @@
|
||||
|
||||
--> print cache states
|
||||
if (_detalhes.debug) then
|
||||
_detalhes:Msg ("removed: damage "..damage.." heal "..heal.." energy "..energy.." misc "..misc)
|
||||
_detalhes:Msg ("(debug) removed: damage "..damage.." heal "..heal.." energy "..energy.." misc "..misc)
|
||||
end
|
||||
|
||||
--> elimina pets antigos
|
||||
@@ -687,12 +702,11 @@
|
||||
collectgarbage()
|
||||
UpdateAddOnMemoryUsage()
|
||||
local memory2 = GetAddOnMemoryUsage ("Details")
|
||||
_detalhes:Msg ("memory antes: "..memory.." memory depois: "..memory2)
|
||||
_detalhes:Msg ("(debug) memory before: "..memory.." memory after: "..memory2)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--> combates Normais
|
||||
local function FazColeta (_combate, tipo, intervalo_overwrite)
|
||||
|
||||
@@ -700,7 +714,7 @@
|
||||
local _iter = {index = 1, data = conteudo[1], cleaned = 0}
|
||||
local _tempo = _time()
|
||||
|
||||
local links_removed = 0
|
||||
--local links_removed = 0
|
||||
|
||||
while (_iter.data) do
|
||||
|
||||
@@ -714,7 +728,7 @@
|
||||
t = _actor.last_event + _detalhes.intervalo_coleta
|
||||
end
|
||||
|
||||
if (not _actor.grupo and not _actor.boss and not _actor.fight_component and not _actor.boss_fight_component and t < _tempo) then
|
||||
if (t < _tempo and not _actor.grupo and not _actor.boss and not _actor.fight_component and not _actor.boss_fight_component) then
|
||||
local owner = _actor.owner
|
||||
if (owner) then
|
||||
local owner_actor = _combate (tipo, owner.nome)
|
||||
@@ -732,6 +746,7 @@
|
||||
end
|
||||
|
||||
--> fix para a weak table
|
||||
--[[
|
||||
local shadow = _actor.shadow
|
||||
local _it = {index = 1, link = shadow.links [1]}
|
||||
while (_it.link) do
|
||||
@@ -743,7 +758,8 @@
|
||||
_it.link = shadow.links [_it.index]
|
||||
end
|
||||
end
|
||||
|
||||
--]]
|
||||
|
||||
_iter.cleaned = _iter.cleaned+1
|
||||
|
||||
if (_actor.tipo == 1 or _actor.tipo == 2) then
|
||||
@@ -774,6 +790,8 @@
|
||||
--> Combate overall
|
||||
function _detalhes:ColetarLixo (tipo, lastevent)
|
||||
|
||||
--print ("fazendo coleta...")
|
||||
|
||||
local _tempo = _time()
|
||||
local limpados = 0
|
||||
|
||||
@@ -791,7 +809,7 @@
|
||||
limpados = limpados + FazColeta (_combate, tipo, lastevent)
|
||||
end
|
||||
|
||||
--> limpa a tabela overall
|
||||
--> limpa a tabela overall para o atributo atual (limpa para os 4, um de cada vez através do ipairs)
|
||||
local _overall_combat = _detalhes.tabela_overall
|
||||
local conteudo = _overall_combat [tipo]._ActorTable
|
||||
local _iter = {index = 1, data = conteudo[1], cleaned = 0} --> ._ActorTable[1] para pegar o primeiro index
|
||||
@@ -800,6 +818,7 @@
|
||||
|
||||
local _actor = _iter.data
|
||||
|
||||
--[[
|
||||
local meus_links = _rawget (_actor, "links")
|
||||
local can_garbage = true
|
||||
local new_weak_table = _setmetatable ({}, _detalhes.weaktable) --> precisa da nova weak table para remover os NILS da tabela antiga
|
||||
@@ -813,8 +832,17 @@
|
||||
end
|
||||
_table_wipe (meus_links)
|
||||
end
|
||||
|
||||
if (can_garbage or not meus_links) then --> não há referências a este objeto
|
||||
--]]
|
||||
|
||||
local can_garbage = false
|
||||
if (not _actor.grupo and not _actor.owner and not _actor.boss_fight_component and not _actor.fight_component) then
|
||||
can_garbage = true
|
||||
end
|
||||
|
||||
--if (can_garbage or not meus_links) then --> não há referências a este objeto
|
||||
if (can_garbage) then --> não há referências a este objeto
|
||||
|
||||
--print ("garbaged:", _actor.nome)
|
||||
|
||||
if (not _actor.owner) then --> pet
|
||||
_actor:subtract_total (_overall_combat)
|
||||
@@ -823,11 +851,11 @@
|
||||
--> apaga a referência deste jogador na tabela overall
|
||||
_iter.cleaned = _iter.cleaned+1
|
||||
|
||||
if (_detalhes.debug) then
|
||||
if (#_actor.links > 0) then
|
||||
_detalhes:Msg (_actor.nome, " has been garbaged but have links: ", #_actor.links)
|
||||
end
|
||||
end
|
||||
--if (_detalhes.debug) then
|
||||
-- if (#_actor.links > 0) then
|
||||
-- _detalhes:Msg ("(debug) " .. _actor.nome, " has been garbaged but have links: ", #_actor.links)
|
||||
-- end
|
||||
--end
|
||||
|
||||
if (_actor.tipo == 1 or _actor.tipo == 2) then
|
||||
_actor:DesregistrarNaTimeMachine()
|
||||
@@ -836,7 +864,7 @@
|
||||
|
||||
_iter.data = conteudo [_iter.index]
|
||||
else
|
||||
_actor.links = new_weak_table
|
||||
--_actor.links = new_weak_table
|
||||
_iter.index = _iter.index + 1
|
||||
_iter.data = conteudo [_iter.index]
|
||||
end
|
||||
|
||||
+108
-296
@@ -51,21 +51,14 @@
|
||||
|
||||
--> current combat and overall pointers
|
||||
local _current_combat = _detalhes.tabela_vigente or {} --> placeholder table
|
||||
local _overall_combat = _detalhes.tabela_overall or {} --> placeholder table
|
||||
--> total container pointers
|
||||
local _current_total = _current_combat.totals
|
||||
local _current_gtotal = _current_combat.totals_grupo
|
||||
local _overall_total = _overall_combat.totals
|
||||
local _overall_gtotal = _overall_combat.totals_grupo
|
||||
--> actors container pointers
|
||||
local _current_damage_container = _current_combat [1]
|
||||
local _overall_damage_container = _overall_combat [1]
|
||||
local _current_heal_container = _current_combat [2]
|
||||
local _overall_heal_container = _overall_combat [2]
|
||||
local _current_energy_container = _current_combat [3]
|
||||
local _overall_energy_container = _overall_combat [3]
|
||||
local _current_misc_container = _current_combat [4]
|
||||
local _overall_misc_container = _overall_combat [4]
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> cache
|
||||
@@ -171,7 +164,6 @@
|
||||
end
|
||||
|
||||
_current_damage_container.need_refresh = true
|
||||
_overall_damage_container.need_refresh = true
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> get actors
|
||||
@@ -220,14 +212,6 @@
|
||||
|
||||
end
|
||||
|
||||
--if (who_name == "Guardian of Ancient Kings") then --remover
|
||||
-- print ("MELEE GAK 1", meu_dono)
|
||||
--end
|
||||
|
||||
--> damager shadow
|
||||
local shadow = este_jogador.shadow
|
||||
local shadow_of_target = jogador_alvo.shadow
|
||||
|
||||
--> last event
|
||||
este_jogador.last_event = _tempo
|
||||
|
||||
@@ -236,7 +220,6 @@
|
||||
|
||||
if (este_jogador.grupo) then
|
||||
_current_gtotal [1] = _current_gtotal [1]+amount
|
||||
_overall_gtotal [1] = _overall_gtotal [1]+amount
|
||||
|
||||
elseif (jogador_alvo.grupo) then
|
||||
|
||||
@@ -312,12 +295,6 @@
|
||||
jogador_alvo.damage_from [who_name] = true
|
||||
end
|
||||
|
||||
--> his shadow
|
||||
shadow_of_target.damage_taken = shadow_of_target.damage_taken + amount --> adiciona o dano tomado
|
||||
if (not shadow_of_target.damage_from [who_name]) then --> adiciona a pool de dano tomado de quem
|
||||
shadow_of_target.damage_from [who_name] = true
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> time start
|
||||
|
||||
@@ -329,7 +306,6 @@
|
||||
meu_dono:Iniciar (true)
|
||||
if (meu_dono.end_time) then
|
||||
meu_dono.end_time = nil
|
||||
meu_dono.shadow.end_time = nil
|
||||
else
|
||||
meu_dono:IniciarTempo (_tempo-3.0, meu_dono.shadow)
|
||||
end
|
||||
@@ -337,9 +313,8 @@
|
||||
|
||||
if (este_jogador.end_time) then
|
||||
este_jogador.end_time = nil
|
||||
shadow.end_time = nil
|
||||
else
|
||||
este_jogador:IniciarTempo (_tempo-3.0, shadow)
|
||||
este_jogador:IniciarTempo (_tempo-3.0, este_jogador.shadow)
|
||||
end
|
||||
|
||||
if (este_jogador.nome == _detalhes.playername and token ~= "SPELL_PERIODIC_DAMAGE") then --> iniciando o dps do "PLAYER"
|
||||
@@ -361,7 +336,6 @@
|
||||
if (raid_members_cache [who_serial] and raid_members_cache [alvo_serial]) then
|
||||
|
||||
este_jogador.friendlyfire_total = este_jogador.friendlyfire_total + amount
|
||||
shadow.friendlyfire_total = shadow.friendlyfire_total + amount
|
||||
|
||||
local amigo = este_jogador.friendlyfire._NameIndexTable [alvo_name]
|
||||
if (not amigo) then
|
||||
@@ -371,7 +345,6 @@
|
||||
end
|
||||
|
||||
amigo.total = amigo.total + amount
|
||||
amigo.shadow.total = amigo.shadow.total + amount
|
||||
|
||||
local spell = amigo.spell_tables._ActorTable [spellid]
|
||||
if (not spell) then
|
||||
@@ -381,7 +354,6 @@
|
||||
return spell:AddFF (amount) --adiciona a classe da habilidade, a classe da habilidade se encarrega de adicionar aos alvos dela
|
||||
else
|
||||
_current_total [1] = _current_total [1]+amount
|
||||
_overall_total [1] = _overall_total [1]+amount
|
||||
|
||||
end
|
||||
|
||||
@@ -391,7 +363,6 @@
|
||||
--> actor owner (if any)
|
||||
if (meu_dono) then --> se for dano de um Pet
|
||||
meu_dono.total = meu_dono.total + amount --> e adiciona o dano ao pet
|
||||
meu_dono.shadow.total = meu_dono.shadow.total + amount --> e adiciona o dano ao pet
|
||||
|
||||
--> add owner targets
|
||||
local owner_target = meu_dono.targets._NameIndexTable [alvo_name]
|
||||
@@ -407,11 +378,9 @@
|
||||
|
||||
--> actor
|
||||
este_jogador.total = este_jogador.total + amount
|
||||
shadow.total = shadow.total + amount
|
||||
|
||||
--> actor without pets
|
||||
este_jogador.total_without_pet = este_jogador.total_without_pet + amount
|
||||
shadow.total_without_pet = shadow.total_without_pet + amount
|
||||
|
||||
--> actor targets
|
||||
local este_alvo = este_jogador.targets._NameIndexTable [alvo_name]
|
||||
@@ -421,7 +390,6 @@
|
||||
este_alvo = este_jogador.targets._ActorTable [este_alvo]
|
||||
end
|
||||
este_alvo.total = este_alvo.total + amount
|
||||
este_alvo.shadow.total = este_alvo.shadow.total + amount
|
||||
|
||||
--> actor spells table
|
||||
local spell = este_jogador.spell_tables._ActorTable [spellid]
|
||||
@@ -515,10 +483,6 @@
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------
|
||||
function parser:summon (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellName)
|
||||
|
||||
--if (alvo_name == "Guardian of Ancient Kings") then --remover
|
||||
-- print ("Summon GAK 1", who_name)
|
||||
--end
|
||||
|
||||
--> pet summon another pet
|
||||
local sou_pet = _detalhes.tabela_pets.pets [who_serial]
|
||||
if (sou_pet) then --> okey, ja é um pet
|
||||
@@ -575,7 +539,6 @@
|
||||
end
|
||||
|
||||
_current_heal_container.need_refresh = true
|
||||
_overall_heal_container.need_refresh = true
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> get actors
|
||||
@@ -595,9 +558,6 @@
|
||||
healing_cache [alvo_name] = jogador_alvo
|
||||
end
|
||||
end
|
||||
|
||||
local shadow = este_jogador.shadow
|
||||
local shadow_of_target = jogador_alvo.shadow
|
||||
|
||||
este_jogador.last_event = _tempo
|
||||
|
||||
@@ -611,14 +571,7 @@
|
||||
este_jogador.heal_enemy [spellid] = este_jogador.heal_enemy [spellid] + cura_efetiva
|
||||
end
|
||||
|
||||
if (not este_jogador.shadow.heal_enemy [spellid]) then
|
||||
shadow.heal_enemy [spellid] = cura_efetiva
|
||||
else
|
||||
shadow.heal_enemy [spellid] = shadow.heal_enemy [spellid] + cura_efetiva
|
||||
end
|
||||
|
||||
este_jogador.heal_enemy_amt = este_jogador.heal_enemy_amt + cura_efetiva
|
||||
shadow.heal_enemy_amt = shadow.heal_enemy_amt + cura_efetiva
|
||||
|
||||
return
|
||||
end
|
||||
@@ -628,7 +581,6 @@
|
||||
|
||||
if (este_jogador.grupo) then
|
||||
_current_combat.totals_grupo[2] = _current_combat.totals_grupo[2] + cura_efetiva
|
||||
_overall_combat.totals_grupo[2] = _overall_combat.totals_grupo[2] + cura_efetiva
|
||||
end
|
||||
|
||||
if (jogador_alvo.grupo) then
|
||||
@@ -659,9 +611,9 @@
|
||||
este_jogador:Iniciar (true) --inicia o dps do jogador
|
||||
if (este_jogador.end_time) then --> o combate terminou, reabrir o tempo
|
||||
este_jogador.end_time = nil
|
||||
shadow.end_time = nil --> não tenho certeza se isso aqui não pode dar merda
|
||||
este_jogador.shadow.end_time = nil --> não tenho certeza se isso aqui não pode dar merda
|
||||
else
|
||||
este_jogador:IniciarTempo (_tempo-3.0, shadow)
|
||||
este_jogador:IniciarTempo (_tempo-3.0, este_jogador.shadow)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -680,7 +632,6 @@
|
||||
|
||||
--> combat total
|
||||
_current_total [2] = _current_total [2] + cura_efetiva
|
||||
_overall_total [2] = _overall_total [2] + cura_efetiva
|
||||
|
||||
--> healing taken
|
||||
jogador_alvo.healing_taken = jogador_alvo.healing_taken + cura_efetiva --> adiciona o dano tomado
|
||||
@@ -688,28 +639,18 @@
|
||||
jogador_alvo.healing_from [who_name] = true
|
||||
end
|
||||
|
||||
--> healing taken shadow
|
||||
shadow_of_target.healing_taken = shadow_of_target.healing_taken+cura_efetiva --> adiciona o dano tomado
|
||||
if (not shadow_of_target.healing_from [who_name]) then --> adiciona a pool de dano tomado de quem
|
||||
shadow_of_target.healing_from [who_name] = true
|
||||
end
|
||||
|
||||
--> actor healing amount
|
||||
este_jogador.total = este_jogador.total + cura_efetiva
|
||||
shadow.total = shadow.total + cura_efetiva
|
||||
|
||||
if (is_shield) then
|
||||
este_jogador.totalabsorb = este_jogador.totalabsorb + cura_efetiva
|
||||
shadow.totalabsorb = shadow.totalabsorb + cura_efetiva
|
||||
end
|
||||
|
||||
este_jogador.total_without_pet = este_jogador.total_without_pet + cura_efetiva
|
||||
shadow.total_without_pet = shadow.total_without_pet + cura_efetiva
|
||||
|
||||
--> pet
|
||||
if (meu_dono) then
|
||||
meu_dono.total = meu_dono.total + cura_efetiva --> heal do pet
|
||||
meu_dono.shadow.total = meu_dono.shadow.total + cura_efetiva --> heal do pet na shadow
|
||||
|
||||
local owner_target = meu_dono.targets._NameIndexTable [alvo_name]
|
||||
if (not owner_target) then
|
||||
@@ -718,21 +659,17 @@
|
||||
owner_target = meu_dono.targets._ActorTable [owner_target]
|
||||
end
|
||||
owner_target.total = owner_target.total + amount
|
||||
|
||||
end
|
||||
|
||||
--> target amount
|
||||
este_alvo.total = este_alvo.total + cura_efetiva
|
||||
este_alvo.shadow.total = este_alvo.shadow.total + cura_efetiva
|
||||
end
|
||||
|
||||
if (overhealing > 0) then
|
||||
este_jogador.totalover = este_jogador.totalover + overhealing
|
||||
shadow.totalover = shadow.totalover + overhealing
|
||||
este_alvo.overheal = este_alvo.overheal + overhealing
|
||||
if (meu_dono) then
|
||||
meu_dono.totalover = meu_dono.totalover + overhealing
|
||||
meu_dono.shadow.totalover = meu_dono.shadow.totalover + overhealing
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1162,7 +1099,6 @@
|
||||
este_jogador = _current_misc_container:PegarCombatente (who_serial, spellname, who_flags, true)
|
||||
misc_cache [spellname] = este_jogador
|
||||
end
|
||||
local shadow = este_jogador.shadow
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> build containers on the fly
|
||||
@@ -1176,18 +1112,19 @@
|
||||
este_jogador.debuff_uptime_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
este_jogador.debuff_uptime_targets = container_combatentes:NovoContainer (container_enemydebufftarget_target)
|
||||
|
||||
if (not shadow.debuff_uptime_targets) then
|
||||
shadow.boss_debuff = true
|
||||
shadow.damage_twin = who_name
|
||||
shadow.spellschool = spellschool
|
||||
shadow.damage_spellid = spellid
|
||||
shadow.debuff_uptime = 0
|
||||
shadow.debuff_uptime_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
shadow.debuff_uptime_targets = container_combatentes:NovoContainer (container_enemydebufftarget_target)
|
||||
if (not este_jogador.shadow.debuff_uptime_targets) then
|
||||
este_jogador.shadow.boss_debuff = true
|
||||
este_jogador.shadow.damage_twin = who_name
|
||||
este_jogador.shadow.spellschool = spellschool
|
||||
este_jogador.shadow.damage_spellid = spellid
|
||||
este_jogador.shadow.debuff_uptime = 0
|
||||
este_jogador.shadow.debuff_uptime_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
este_jogador.shadow.debuff_uptime_targets = container_combatentes:NovoContainer (container_enemydebufftarget_target)
|
||||
end
|
||||
|
||||
este_jogador.debuff_uptime_targets.shadow = shadow.debuff_uptime_targets
|
||||
este_jogador.debuff_uptime_spell_tables.shadow = shadow.debuff_uptime_spell_tables
|
||||
este_jogador.debuff_uptime_targets.shadow = este_jogador.shadow.debuff_uptime_targets
|
||||
este_jogador.debuff_uptime_spell_tables.shadow = este_jogador.shadow.debuff_uptime_spell_tables
|
||||
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -1213,18 +1150,6 @@
|
||||
end
|
||||
este_alvo.actived_at = _tempo
|
||||
|
||||
--> shadows
|
||||
este_alvo = este_alvo.shadow
|
||||
este_jogador = este_jogador.shadow
|
||||
|
||||
este_alvo.actived = true
|
||||
este_alvo.activedamt = este_alvo.activedamt + 1
|
||||
if (este_alvo.actived_at and este_alvo.actived) then
|
||||
este_alvo.uptime = este_alvo.uptime + _tempo - este_alvo.actived_at
|
||||
este_jogador.debuff_uptime = este_jogador.debuff_uptime + _tempo - este_alvo.actived_at
|
||||
end
|
||||
este_alvo.actived_at = _tempo
|
||||
|
||||
elseif (in_out == "DEBUFF_UPTIME_REFRESH") then
|
||||
if (este_alvo.actived_at and este_alvo.actived) then
|
||||
este_alvo.uptime = este_alvo.uptime + _tempo - este_alvo.actived_at
|
||||
@@ -1233,17 +1158,6 @@
|
||||
este_alvo.actived_at = _tempo
|
||||
este_alvo.actived = true
|
||||
|
||||
--> shadows
|
||||
este_alvo = este_alvo.shadow
|
||||
este_jogador = este_jogador.shadow
|
||||
|
||||
if (este_alvo.actived_at and este_alvo.actived) then
|
||||
este_alvo.uptime = este_alvo.uptime + _tempo - este_alvo.actived_at
|
||||
este_jogador.debuff_uptime = este_jogador.debuff_uptime + _tempo - este_alvo.actived_at
|
||||
end
|
||||
este_alvo.actived_at = _tempo
|
||||
este_alvo.actived = true
|
||||
|
||||
elseif (in_out == "DEBUFF_UPTIME_OUT") then
|
||||
if (este_alvo.actived_at and este_alvo.actived) then
|
||||
este_alvo.uptime = este_alvo.uptime + _detalhes._tempo - este_alvo.actived_at
|
||||
@@ -1258,25 +1172,6 @@
|
||||
else
|
||||
este_alvo.actived_at = _tempo
|
||||
end
|
||||
|
||||
--> shadows
|
||||
este_alvo = este_alvo.shadow
|
||||
este_jogador = este_jogador.shadow
|
||||
|
||||
if (este_alvo.actived_at and este_alvo.actived) then
|
||||
este_alvo.uptime = este_alvo.uptime + _detalhes._tempo - este_alvo.actived_at
|
||||
este_jogador.debuff_uptime = este_jogador.debuff_uptime + _tempo - este_alvo.actived_at --> token = actor misc object
|
||||
end
|
||||
|
||||
este_alvo.activedamt = este_alvo.activedamt - 1
|
||||
|
||||
if (este_alvo.activedamt == 0) then
|
||||
este_alvo.actived = false
|
||||
este_alvo.actived_at = nil
|
||||
else
|
||||
este_alvo.actived_at = _tempo
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1285,7 +1180,6 @@
|
||||
--> early checks and fixes
|
||||
|
||||
_current_misc_container.need_refresh = true
|
||||
_overall_misc_container.need_refresh = true
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> get actors
|
||||
@@ -1294,7 +1188,6 @@
|
||||
este_jogador = _current_misc_container:PegarCombatente (who_serial, who_name, who_flags, true)
|
||||
misc_cache [who_name] = este_jogador
|
||||
end
|
||||
local shadow = este_jogador.shadow
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> build containers on the fly
|
||||
@@ -1304,14 +1197,14 @@
|
||||
este_jogador.debuff_uptime_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
este_jogador.debuff_uptime_targets = container_combatentes:NovoContainer (container_damage_target)
|
||||
|
||||
if (not shadow.debuff_uptime_targets) then
|
||||
shadow.debuff_uptime = 0
|
||||
shadow.debuff_uptime_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
shadow.debuff_uptime_targets = container_combatentes:NovoContainer (container_damage_target)
|
||||
if (not este_jogador.shadow.debuff_uptime_targets) then
|
||||
este_jogador.shadow.debuff_uptime = 0
|
||||
este_jogador.shadow.debuff_uptime_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
este_jogador.shadow.debuff_uptime_targets = container_combatentes:NovoContainer (container_damage_target)
|
||||
end
|
||||
|
||||
este_jogador.debuff_uptime_targets.shadow = shadow.debuff_uptime_targets
|
||||
este_jogador.debuff_uptime_spell_tables.shadow = shadow.debuff_uptime_spell_tables
|
||||
este_jogador.debuff_uptime_targets.shadow = este_jogador.shadow.debuff_uptime_targets
|
||||
este_jogador.debuff_uptime_spell_tables.shadow = este_jogador.shadow.debuff_uptime_spell_tables
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -1335,7 +1228,6 @@
|
||||
--> early checks and fixes
|
||||
|
||||
_current_misc_container.need_refresh = true
|
||||
_overall_misc_container.need_refresh = true
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> get actors
|
||||
@@ -1344,7 +1236,6 @@
|
||||
este_jogador = _current_misc_container:PegarCombatente (who_serial, who_name, who_flags, true)
|
||||
misc_cache [who_name] = este_jogador
|
||||
end
|
||||
local shadow = este_jogador.shadow
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> build containers on the fly
|
||||
@@ -1354,14 +1245,14 @@
|
||||
este_jogador.buff_uptime_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
este_jogador.buff_uptime_targets = container_combatentes:NovoContainer (container_damage_target)
|
||||
|
||||
if (not shadow.buff_uptime_targets) then
|
||||
shadow.buff_uptime = 0
|
||||
shadow.buff_uptime_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
shadow.buff_uptime_targets = container_combatentes:NovoContainer (container_damage_target)
|
||||
if (not este_jogador.shadow.buff_uptime_targets) then
|
||||
este_jogador.shadow.buff_uptime = 0
|
||||
este_jogador.shadow.buff_uptime_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
este_jogador.shadow.buff_uptime_targets = container_combatentes:NovoContainer (container_damage_target)
|
||||
end
|
||||
|
||||
este_jogador.buff_uptime_targets.shadow = shadow.buff_uptime_targets
|
||||
este_jogador.buff_uptime_spell_tables.shadow = shadow.buff_uptime_spell_tables
|
||||
este_jogador.buff_uptime_targets.shadow = este_jogador.shadow.buff_uptime_targets
|
||||
este_jogador.buff_uptime_spell_tables.shadow = este_jogador.shadow.buff_uptime_spell_tables
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -1433,7 +1324,6 @@
|
||||
end
|
||||
|
||||
_current_energy_container.need_refresh = true
|
||||
_overall_energy_container.need_refresh = true
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> get actors
|
||||
@@ -1464,9 +1354,6 @@
|
||||
este_alvo = este_jogador.targets._ActorTable [este_alvo]
|
||||
end
|
||||
|
||||
local shadow = este_jogador.shadow
|
||||
local shadow_of_target = jogador_alvo.shadow
|
||||
|
||||
este_jogador.last_event = _tempo
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -1474,34 +1361,26 @@
|
||||
|
||||
--> combat total
|
||||
_current_total [3] [key_regenType] = _current_total [3] [key_regenType] + amount
|
||||
_overall_total [3] [key_regenType] = _overall_total [3] [key_regenType] + amount
|
||||
|
||||
if (este_jogador.grupo) then
|
||||
_current_gtotal [3] [key_regenType] = _current_gtotal [3] [key_regenType] + amount
|
||||
_overall_gtotal [3] [key_regenType] = _overall_gtotal [3] [key_regenType] + amount
|
||||
end
|
||||
|
||||
--> regen produced amount
|
||||
este_jogador [key_regenType] = este_jogador [key_regenType] + amount
|
||||
shadow [key_regenType] = shadow [key_regenType] + amount
|
||||
este_alvo [key_regenType] = este_alvo [key_regenType] + amount
|
||||
|
||||
--> target regenerated amount
|
||||
jogador_alvo [key_regenDone] = jogador_alvo [key_regenDone] + amount
|
||||
shadow_of_target [key_regenDone] = shadow_of_target [key_regenDone] + amount
|
||||
|
||||
--> regen from
|
||||
if (not jogador_alvo [key_regenFrom] [who_name]) then
|
||||
jogador_alvo [key_regenFrom] [who_name] = true
|
||||
end
|
||||
if (not shadow_of_target [key_regenFrom] [who_name]) then
|
||||
shadow_of_target [key_regenFrom] [who_name] = true
|
||||
end
|
||||
|
||||
--> owner
|
||||
if (meu_dono) then
|
||||
meu_dono [key_regenType] = meu_dono [key_regenType] + amount --> e adiciona o dano ao pet
|
||||
meu_dono.shadow [key_regenType] = meu_dono.shadow [key_regenType] + amount --> e adiciona o dano ao pet
|
||||
end
|
||||
|
||||
--> actor spells table
|
||||
@@ -1526,7 +1405,6 @@
|
||||
--> early checks and fixes
|
||||
|
||||
_current_misc_container.need_refresh = true
|
||||
_overall_misc_container.need_refresh = true
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> get actors
|
||||
@@ -1539,7 +1417,6 @@
|
||||
misc_cache [who_name] = este_jogador
|
||||
end
|
||||
end
|
||||
local shadow = este_jogador.shadow
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> build containers on the fly
|
||||
@@ -1548,15 +1425,15 @@
|
||||
este_jogador.cooldowns_defensive = 0
|
||||
este_jogador.cooldowns_defensive_targets = container_combatentes:NovoContainer (container_damage_target) --> pode ser um container de alvo de dano, pois irá usar apenas o .total
|
||||
este_jogador.cooldowns_defensive_spell_tables = container_habilidades:NovoContainer (container_misc) --> cria o container das habilidades
|
||||
|
||||
if (not shadow.cooldowns_defensive_targets) then
|
||||
shadow.cooldowns_defensive = 0
|
||||
shadow.cooldowns_defensive_targets = container_combatentes:NovoContainer (container_damage_target) --> pode ser um container de alvo de dano, pois irá usar apenas o .total
|
||||
shadow.cooldowns_defensive_spell_tables = container_habilidades:NovoContainer (container_misc) --> cria o container das habilidades usadas
|
||||
|
||||
if (not este_jogador.shadow.cooldowns_defensive_targets) then
|
||||
este_jogador.shadow.cooldowns_defensive = 0
|
||||
este_jogador.shadow.cooldowns_defensive_targets = container_combatentes:NovoContainer (container_damage_target) --> pode ser um container de alvo de dano, pois irá usar apenas o .total
|
||||
este_jogador.shadow.cooldowns_defensive_spell_tables = container_habilidades:NovoContainer (container_misc) --> cria o container das habilidades usadas
|
||||
end
|
||||
|
||||
este_jogador.cooldowns_defensive_targets.shadow = shadow.cooldowns_defensive_targets
|
||||
este_jogador.cooldowns_defensive_spell_tables.shadow = shadow.cooldowns_defensive_spell_tables
|
||||
este_jogador.cooldowns_defensive_targets.shadow = este_jogador.shadow.cooldowns_defensive_targets
|
||||
este_jogador.cooldowns_defensive_spell_tables.shadow = este_jogador.shadow.cooldowns_defensive_spell_tables
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -1564,15 +1441,12 @@
|
||||
|
||||
--> actor cooldowns used
|
||||
este_jogador.cooldowns_defensive = este_jogador.cooldowns_defensive + 1
|
||||
shadow.cooldowns_defensive = shadow.cooldowns_defensive + 1
|
||||
|
||||
--> combat totals
|
||||
_current_total [4].cooldowns_defensive = _current_total [4].cooldowns_defensive + 1
|
||||
_overall_total [4].cooldowns_defensive = _overall_total [4].cooldowns_defensive + 1
|
||||
|
||||
if (este_jogador.grupo) then
|
||||
_current_gtotal [4].cooldowns_defensive = _current_gtotal [4].cooldowns_defensive + 1
|
||||
_overall_gtotal [4].cooldowns_defensive = _overall_gtotal [4].cooldowns_defensive + 1
|
||||
|
||||
if (who_name == alvo_name) then
|
||||
|
||||
@@ -1651,7 +1525,6 @@
|
||||
end
|
||||
|
||||
_current_misc_container.need_refresh = true
|
||||
_overall_misc_container.need_refresh = true
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> get actors
|
||||
@@ -1664,7 +1537,6 @@
|
||||
misc_cache [who_name] = este_jogador
|
||||
end
|
||||
end
|
||||
local shadow = este_jogador.shadow
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> build containers on the fly
|
||||
@@ -1674,16 +1546,17 @@
|
||||
este_jogador.interrupt_targets = container_combatentes:NovoContainer (container_damage_target) --> pode ser um container de alvo de dano, pois irá usar apenas o .total
|
||||
este_jogador.interrupt_spell_tables = container_habilidades:NovoContainer (container_misc) --> cria o container das habilidades usadas para interromper
|
||||
este_jogador.interrompeu_oque = {}
|
||||
|
||||
if (not shadow.interrupt_targets) then
|
||||
shadow.interrupt = 0
|
||||
shadow.interrupt_targets = container_combatentes:NovoContainer (container_damage_target) --> pode ser um container de alvo de dano, pois irá usar apenas o .total
|
||||
shadow.interrupt_spell_tables = container_habilidades:NovoContainer (container_misc) --> cria o container das habilidades usadas para interromper
|
||||
shadow.interrompeu_oque = {}
|
||||
|
||||
if (not este_jogador.shadow.interrupt_targets) then
|
||||
este_jogador.shadow.interrupt = 0
|
||||
este_jogador.shadow.interrupt_targets = container_combatentes:NovoContainer (container_damage_target) --> pode ser um container de alvo de dano, pois irá usar apenas o .total
|
||||
este_jogador.shadow.interrupt_spell_tables = container_habilidades:NovoContainer (container_misc) --> cria o container das habilidades usadas para interromper
|
||||
este_jogador.shadow.interrompeu_oque = {}
|
||||
end
|
||||
|
||||
este_jogador.interrupt_targets.shadow = shadow.interrupt_targets
|
||||
este_jogador.interrupt_spell_tables.shadow = shadow.interrupt_spell_tables
|
||||
este_jogador.interrupt_targets.shadow = este_jogador.shadow.interrupt_targets
|
||||
este_jogador.interrupt_spell_tables.shadow = este_jogador.shadow.interrupt_spell_tables
|
||||
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -1691,15 +1564,12 @@
|
||||
|
||||
--> actor interrupt amount
|
||||
este_jogador.interrupt = este_jogador.interrupt + 1
|
||||
shadow.interrupt = shadow.interrupt + 1
|
||||
|
||||
--> combat totals
|
||||
_current_total [4].interrupt = _current_total [4].interrupt + 1
|
||||
_overall_total [4].interrupt = _overall_total [4].interrupt + 1
|
||||
|
||||
if (este_jogador.grupo) then
|
||||
_current_gtotal [4].interrupt = _current_gtotal [4].interrupt + 1
|
||||
_overall_gtotal [4].interrupt = _overall_gtotal [4].interrupt + 1
|
||||
end
|
||||
|
||||
--> update last event
|
||||
@@ -1713,12 +1583,6 @@
|
||||
este_jogador.interrompeu_oque [extraSpellID] = este_jogador.interrompeu_oque [extraSpellID] + 1
|
||||
end
|
||||
|
||||
if (not shadow.interrompeu_oque [extraSpellID]) then
|
||||
shadow.interrompeu_oque [extraSpellID] = 1
|
||||
else
|
||||
shadow.interrompeu_oque [extraSpellID] = shadow.interrompeu_oque [extraSpellID] + 1
|
||||
end
|
||||
|
||||
--> actor targets
|
||||
local este_alvo = este_jogador.interrupt_targets._NameIndexTable [alvo_name]
|
||||
if (not este_alvo) then
|
||||
@@ -1780,6 +1644,8 @@
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
-- para aqui --
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> record how many times the spell has been casted successfully
|
||||
|
||||
@@ -1792,7 +1658,6 @@
|
||||
end
|
||||
|
||||
_current_misc_container.need_refresh = true
|
||||
_overall_misc_container.need_refresh = true
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> get actors
|
||||
@@ -1816,13 +1681,13 @@
|
||||
este_jogador.spellcast = 0
|
||||
este_jogador.spellcast_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
|
||||
if (not shadow.spellcast_targets) then
|
||||
shadow.spellcast = 0
|
||||
shadow.spellcast_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
if (not este_jogador.shadow.spellcast_targets) then
|
||||
este_jogador.shadow.spellcast = 0
|
||||
este_jogador.shadow.spellcast_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
end
|
||||
|
||||
este_jogador.spellcast_targets.shadow = shadow.spellcast_targets
|
||||
este_jogador.spellcast_spell_tables.shadow = shadow.spellcast_spell_tables
|
||||
este_jogador.spellcast_targets.shadow = este_jogador.shadow.spellcast_targets
|
||||
este_jogador.spellcast_spell_tables.shadow = este_jogador.shadow.spellcast_spell_tables
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -1860,7 +1725,6 @@
|
||||
end
|
||||
|
||||
_current_misc_container.need_refresh = true
|
||||
_overall_misc_container.need_refresh = true
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> get actors
|
||||
@@ -1879,7 +1743,6 @@
|
||||
end
|
||||
end
|
||||
--]]
|
||||
local shadow = este_jogador.shadow
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> build containers on the fly
|
||||
@@ -1890,16 +1753,16 @@
|
||||
este_jogador.dispell_targets = container_combatentes:NovoContainer (container_damage_target)
|
||||
este_jogador.dispell_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
este_jogador.dispell_oque = {}
|
||||
|
||||
if (not shadow.dispell_targets) then
|
||||
shadow.dispell = 0
|
||||
shadow.dispell_targets = container_combatentes:NovoContainer (container_damage_target)
|
||||
shadow.dispell_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
shadow.dispell_oque = {}
|
||||
|
||||
if (not este_jogador.shadow.dispell_targets) then
|
||||
este_jogador.shadow.dispell = 0
|
||||
este_jogador.shadow.dispell_targets = container_combatentes:NovoContainer (container_damage_target)
|
||||
este_jogador.shadow.dispell_spell_tables = container_habilidades:NovoContainer (container_misc)
|
||||
este_jogador.shadow.dispell_oque = {}
|
||||
end
|
||||
|
||||
este_jogador.dispell_targets.shadow = shadow.dispell_targets
|
||||
este_jogador.dispell_spell_tables.shadow = shadow.dispell_spell_tables
|
||||
este_jogador.dispell_targets.shadow = este_jogador.shadow.dispell_targets
|
||||
este_jogador.dispell_spell_tables.shadow = este_jogador.shadow.dispell_spell_tables
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -1911,16 +1774,13 @@
|
||||
|
||||
--> total dispells in combat
|
||||
_current_total [4].dispell = _current_total [4].dispell + 1
|
||||
_overall_total [4].dispell = _overall_total [4].dispell + 1
|
||||
|
||||
if (este_jogador.grupo) then
|
||||
_current_gtotal [4].dispell = _current_gtotal [4].dispell + 1
|
||||
_overall_gtotal [4].dispell = _overall_gtotal [4].dispell + 1
|
||||
end
|
||||
|
||||
--> actor dispell amount
|
||||
este_jogador.dispell = este_jogador.dispell + 1
|
||||
shadow.dispell = shadow.dispell + 1
|
||||
|
||||
--> dispell what
|
||||
if (extraSpellID) then
|
||||
@@ -1929,12 +1789,6 @@
|
||||
else
|
||||
este_jogador.dispell_oque [extraSpellID] = este_jogador.dispell_oque [extraSpellID] + 1
|
||||
end
|
||||
|
||||
if (not shadow.dispell_oque [extraSpellID]) then
|
||||
shadow.dispell_oque [extraSpellID] = 1
|
||||
else
|
||||
shadow.dispell_oque [extraSpellID] = shadow.dispell_oque [extraSpellID] + 1
|
||||
end
|
||||
end
|
||||
|
||||
--> actor targets
|
||||
@@ -1965,7 +1819,6 @@
|
||||
end
|
||||
|
||||
_current_misc_container.need_refresh = true
|
||||
_overall_misc_container.need_refresh = true
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> get actors
|
||||
@@ -1978,8 +1831,6 @@
|
||||
misc_cache [who_name] = este_jogador
|
||||
end
|
||||
end
|
||||
|
||||
local shadow = este_jogador.shadow
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> build containers on the fly
|
||||
@@ -1989,15 +1840,15 @@
|
||||
este_jogador.ress = 0
|
||||
este_jogador.ress_targets = container_combatentes:NovoContainer (container_damage_target) --> pode ser um container de alvo de dano, pois irá usar apenas o .total
|
||||
este_jogador.ress_spell_tables = container_habilidades:NovoContainer (container_misc) --> cria o container das habilidades usadas para interromper
|
||||
|
||||
if (not shadow.ress_targets) then
|
||||
shadow.ress = 0
|
||||
shadow.ress_targets = container_combatentes:NovoContainer (container_damage_target) --> pode ser um container de alvo de dano, pois irá usar apenas o .total
|
||||
shadow.ress_spell_tables = container_habilidades:NovoContainer (container_misc) --> cria o container das habilidades usadas para interromper
|
||||
|
||||
if (not este_jogador.shadow.ress_targets) then
|
||||
este_jogador.shadow.ress = 0
|
||||
este_jogador.shadow.ress_targets = container_combatentes:NovoContainer (container_damage_target) --> pode ser um container de alvo de dano, pois irá usar apenas o .total
|
||||
este_jogador.shadow.ress_spell_tables = container_habilidades:NovoContainer (container_misc) --> cria o container das habilidades usadas para interromper
|
||||
end
|
||||
|
||||
este_jogador.ress_targets.shadow = shadow.ress_targets
|
||||
este_jogador.ress_spell_tables.shadow = shadow.ress_spell_tables
|
||||
este_jogador.ress_targets.shadow = este_jogador.shadow.ress_targets
|
||||
este_jogador.ress_spell_tables.shadow = este_jogador.shadow.ress_spell_tables
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -2009,16 +1860,13 @@
|
||||
|
||||
--> combat ress total
|
||||
_current_total [4].ress = _current_total [4].ress + 1
|
||||
_overall_total [4].ress = _overall_total [4].ress + 1
|
||||
|
||||
if (este_jogador.grupo) then
|
||||
_current_combat.totals_grupo[4].ress = _current_combat.totals_grupo[4].ress+1
|
||||
_overall_combat.totals_grupo[4].ress = _overall_combat.totals_grupo[4].ress+1
|
||||
end
|
||||
|
||||
--> add ress amount
|
||||
este_jogador.ress = este_jogador.ress + 1
|
||||
shadow.ress = shadow.ress + 1
|
||||
|
||||
--> add battle ress
|
||||
if (_UnitAffectingCombat (who_name)) then
|
||||
@@ -2087,7 +1935,6 @@
|
||||
end
|
||||
|
||||
_current_misc_container.need_refresh = true
|
||||
_overall_misc_container.need_refresh = true
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> get actors
|
||||
@@ -2106,7 +1953,6 @@
|
||||
end
|
||||
end
|
||||
--]]
|
||||
local shadow = este_jogador.shadow
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> build containers on the fly
|
||||
@@ -2118,15 +1964,15 @@
|
||||
este_jogador.cc_break_spell_tables = container_habilidades:NovoContainer (container_misc) --> cria o container das habilidades usadas para interromper
|
||||
este_jogador.cc_break_oque = {}
|
||||
|
||||
if (not shadow.cc_break) then
|
||||
shadow.cc_break = 0
|
||||
shadow.cc_break_targets = container_combatentes:NovoContainer (container_damage_target) --> pode ser um container de alvo de dano, pois irá usar apenas o .total
|
||||
shadow.cc_break_spell_tables = container_habilidades:NovoContainer (container_misc) --> cria o container das habilidades usadas para interromper
|
||||
shadow.cc_break_oque = {}
|
||||
if (not este_jogador.shadow.cc_break) then
|
||||
este_jogador.shadow.cc_break = 0
|
||||
este_jogador.shadow.cc_break_targets = container_combatentes:NovoContainer (container_damage_target) --> pode ser um container de alvo de dano, pois irá usar apenas o .total
|
||||
este_jogador.shadow.cc_break_spell_tables = container_habilidades:NovoContainer (container_misc) --> cria o container das habilidades usadas para interromper
|
||||
este_jogador.shadow.cc_break_oque = {}
|
||||
end
|
||||
|
||||
este_jogador.cc_break_targets.shadow = shadow.cc_break_targets
|
||||
este_jogador.cc_break_spell_tables.shadow = shadow.cc_break_spell_tables
|
||||
este_jogador.cc_break_targets.shadow = este_jogador.shadow.cc_break_targets
|
||||
este_jogador.cc_break_spell_tables.shadow = este_jogador.shadow.cc_break_spell_tables
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -2138,16 +1984,13 @@
|
||||
|
||||
--> combat cc break total
|
||||
_current_total [4].cc_break = _current_total [4].cc_break + 1
|
||||
_overall_total [4].cc_break = _overall_total [4].cc_break + 1
|
||||
|
||||
if (este_jogador.grupo) then
|
||||
_current_combat.totals_grupo[4].cc_break = _current_combat.totals_grupo[4].cc_break+1
|
||||
_overall_combat.totals_grupo[4].cc_break = _overall_combat.totals_grupo[4].cc_break+1
|
||||
end
|
||||
|
||||
--> add amount
|
||||
este_jogador.cc_break = este_jogador.cc_break + 1
|
||||
shadow.cc_break = shadow.cc_break + 1
|
||||
|
||||
--> broke what
|
||||
if (not este_jogador.cc_break_oque [spellid]) then
|
||||
@@ -2156,12 +1999,6 @@
|
||||
este_jogador.cc_break_oque [spellid] = este_jogador.cc_break_oque [spellid] + 1
|
||||
end
|
||||
|
||||
if (not shadow.cc_break_oque [spellid]) then
|
||||
shadow.cc_break_oque [spellid] = 1
|
||||
else
|
||||
shadow.cc_break_oque [spellid] = shadow.cc_break_oque [spellid] + 1
|
||||
end
|
||||
|
||||
--> actor targets
|
||||
local este_alvo = este_jogador.cc_break_targets._NameIndexTable [alvo_name]
|
||||
if (not este_alvo) then
|
||||
@@ -2212,58 +2049,8 @@
|
||||
_current_combat.frags [alvo_name] = _current_combat.frags [alvo_name] + 1
|
||||
end
|
||||
|
||||
if (not _overall_combat.frags [alvo_name]) then
|
||||
_overall_combat.frags [alvo_name] = 1
|
||||
else
|
||||
_overall_combat.frags [alvo_name] = _overall_combat.frags [alvo_name] + 1
|
||||
end
|
||||
|
||||
_current_combat.frags_need_refresh = true
|
||||
_overall_combat.frags_need_refresh = true
|
||||
|
||||
--> encounter end --[[REMOVED]] it's deprecated since encounter end and start replace this
|
||||
--[[
|
||||
local encounter_type = _detalhes.encounter.type
|
||||
if (encounter_type) then
|
||||
if (encounter_type == 1 or encounter_type == 2) then
|
||||
|
||||
local npcTable = _detalhes.encounter.data
|
||||
local serial = tonumber (alvo_serial:sub (6, 10), 16)
|
||||
|
||||
--vardump (npcTable)
|
||||
|
||||
if (npcTable [serial] ~= nil) then --> ~= default false
|
||||
|
||||
_detalhes.encounter.data [serial] = true
|
||||
|
||||
--> check if it's done
|
||||
local its_done = true
|
||||
for npcID, killed in pairs (_detalhes.encounter.data) do
|
||||
if (not killed) then
|
||||
its_done = false
|
||||
--print ("npc",npcID,"NAO esta morto","quem morreu:",alvo_name)
|
||||
break
|
||||
else
|
||||
--print ("npc",npcID,"esta morto","quem morreu:",alvo_name)
|
||||
end
|
||||
end
|
||||
|
||||
--> combat finished
|
||||
if (its_done) then
|
||||
if (_detalhes.debug) then
|
||||
_detalhes:Msg ("(debug) combat finished: encounter objective is completed")
|
||||
end
|
||||
|
||||
--print ("saindo do combate")
|
||||
|
||||
_detalhes:SairDoCombate (true)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
--]]
|
||||
|
||||
--> player death
|
||||
elseif (not _UnitIsFeignDeath (alvo_name)) then
|
||||
if (
|
||||
@@ -2280,13 +2067,10 @@
|
||||
--_detalhes:ScheduleTimer ("TrueDead", 1, {time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags})
|
||||
|
||||
_current_misc_container.need_refresh = true
|
||||
_overall_misc_container.need_refresh = true
|
||||
|
||||
--> combat totals
|
||||
_current_total [4].dead = _current_total [4].dead + 1
|
||||
_overall_total [4].dead = _overall_total [4].dead + 1
|
||||
_current_gtotal [4].dead = _current_gtotal [4].dead + 1
|
||||
_overall_gtotal [4].dead = _overall_gtotal [4].dead + 1
|
||||
|
||||
--> main actor no container de misc que irá armazenar a morte
|
||||
local este_jogador, meu_dono = misc_cache [alvo_name]
|
||||
@@ -2375,7 +2159,6 @@
|
||||
--print ("A morte teve "..#esta_morte.." eventos")
|
||||
|
||||
_table_insert (_current_combat.last_events_tables, #_current_combat.last_events_tables+1, t)
|
||||
_table_insert (_overall_combat.last_events_tables, #_current_combat.last_events_tables+1, t)
|
||||
|
||||
--> reseta a pool
|
||||
dano.last_events_table = _detalhes:CreateActorLastEventTable()
|
||||
@@ -2612,6 +2395,8 @@
|
||||
local encounterID, encounterName, difficultyID, raidSize = _select (1, ...)
|
||||
local zoneName, _, _, _, _, _, _, zoneMapID = _GetInstanceInfo()
|
||||
|
||||
--print (encounterID, encounterName, difficultyID, raidSize)
|
||||
|
||||
_detalhes.encounter_table ["start"] = time()
|
||||
_detalhes.encounter_table ["end"] = nil
|
||||
|
||||
@@ -2729,6 +2514,29 @@
|
||||
_detalhes.SoloTables.Plugins [_detalhes.SoloTables.Mode].Stop()
|
||||
end
|
||||
end
|
||||
|
||||
if (_detalhes.schedule_flag_boss_components) then
|
||||
_detalhes.schedule_flag_boss_components = false
|
||||
_detalhes:FlagActorsOnBossFight()
|
||||
end
|
||||
|
||||
if (_detalhes.schedule_remove_overall) then
|
||||
if (_detalhes.debug) then
|
||||
_detalhes:Msg ("(debug) found schedule overall data deletion.")
|
||||
end
|
||||
_detalhes.schedule_remove_overall = false
|
||||
_detalhes.tabela_historico:resetar_overall()
|
||||
end
|
||||
|
||||
if (_detalhes.schedule_add_to_overall) then
|
||||
if (_detalhes.debug) then
|
||||
_detalhes:Msg ("(debug) found schedule overall data addition.")
|
||||
end
|
||||
_detalhes.schedule_add_to_overall = false
|
||||
|
||||
_detalhes.historico:adicionar_overall (_detalhes.tabela_vigente)
|
||||
end
|
||||
|
||||
return
|
||||
|
||||
elseif (evento == "GROUP_ROSTER_UPDATE") then
|
||||
@@ -2773,7 +2581,17 @@
|
||||
elseif (evento == "INSTANCE_ENCOUNTER_ENGAGE_UNIT") then
|
||||
--> Nothing to do here
|
||||
return
|
||||
|
||||
|
||||
elseif (evento == "START_TIMER") then
|
||||
|
||||
if (C_Scenario.IsChallengeMode() and _detalhes.overall_clear_newchallenge) then
|
||||
_detalhes.historico:resetar_overall()
|
||||
end
|
||||
|
||||
elseif (evento == "WORLD_STATE_TIMER_START") then
|
||||
--> Nothing to do here
|
||||
return
|
||||
|
||||
elseif (evento == "PLAYER_LOGOUT") then
|
||||
|
||||
--> close info window
|
||||
@@ -2984,23 +2802,17 @@
|
||||
|
||||
--> refresh combat tables
|
||||
_current_combat = _detalhes.tabela_vigente
|
||||
_overall_combat = _detalhes.tabela_overall
|
||||
|
||||
--> refresh total containers
|
||||
_current_total = _current_combat.totals
|
||||
_current_gtotal = _current_combat.totals_grupo
|
||||
_overall_total = _overall_combat.totals
|
||||
_overall_gtotal = _overall_combat.totals_grupo
|
||||
|
||||
--> refresh actors containers
|
||||
_current_damage_container = _current_combat [1]
|
||||
_overall_damage_container = _overall_combat [1]
|
||||
|
||||
_current_heal_container = _current_combat [2]
|
||||
_overall_heal_container = _overall_combat [2]
|
||||
_current_energy_container = _current_combat [3]
|
||||
_overall_energy_container = _overall_combat [3]
|
||||
_current_misc_container = _current_combat [4]
|
||||
_overall_misc_container = _overall_combat [4]
|
||||
|
||||
--> refresh data capture options
|
||||
_recording_self_buffs = _detalhes.RecordPlayerSelfBuffs
|
||||
|
||||
@@ -835,7 +835,7 @@ do
|
||||
function PSegment:CreateChildObject (instance)
|
||||
local myframe = _detalhes.StatusBar:CreateChildFrame (instance, "DetailsPSegmentInstance" .. instance:GetInstanceId(), DEFAULT_CHILD_WIDTH, DEFAULT_CHILD_HEIGHT)
|
||||
local new_child = _detalhes.StatusBar:CreateChildTable (instance, PSegment, myframe)
|
||||
new_child.options.segmentType = new_child.options.segmentType or 1
|
||||
new_child.options.segmentType = new_child.options.segmentType or 2
|
||||
return new_child
|
||||
end
|
||||
|
||||
@@ -919,12 +919,17 @@ do
|
||||
_detalhes:CancelTimer (Clock.tick)
|
||||
end
|
||||
|
||||
function _detalhes:ClockPluginTickOnSegment()
|
||||
_detalhes:ClockPluginTick (true)
|
||||
end
|
||||
|
||||
--1 sec tick
|
||||
function _detalhes:ClockPluginTick()
|
||||
function _detalhes:ClockPluginTick (force)
|
||||
|
||||
for index, child in _ipairs (Clock.childs) do
|
||||
local instance = child.instance
|
||||
if (child.enabled and instance:IsEnabled()) then
|
||||
if (instance.showing) then
|
||||
if (instance.showing and ( (instance.segmento ~= -1) or (instance.segmento == -1 and not _detalhes.in_combat) or force) ) then
|
||||
|
||||
local timeType = child.options.timeType
|
||||
if (timeType == 1) then
|
||||
@@ -1050,7 +1055,7 @@ do
|
||||
--> Register needed events
|
||||
_detalhes:RegisterEvent (Clock, "COMBAT_PLAYER_ENTER", Clock.PlayerEnterCombat)
|
||||
_detalhes:RegisterEvent (Clock, "COMBAT_PLAYER_LEAVE", Clock.PlayerLeaveCombat)
|
||||
_detalhes:RegisterEvent (Clock, "DETAILS_INSTANCE_CHANGESEGMENT", _detalhes.ClockPluginTick)
|
||||
_detalhes:RegisterEvent (Clock, "DETAILS_INSTANCE_CHANGESEGMENT", _detalhes.ClockPluginTickOnSegment)
|
||||
_detalhes:RegisterEvent (Clock, "DETAILS_DATA_SEGMENTREMOVED", _detalhes.ClockPluginTick)
|
||||
_detalhes:RegisterEvent (Clock, "DETAILS_DATA_RESET", Clock.DataReset)
|
||||
|
||||
|
||||
+1
-1
@@ -775,7 +775,7 @@
|
||||
end
|
||||
--
|
||||
_detalhes.times_of_tutorial = 0
|
||||
_detalhes:ScheduleTimer ("delay_tutorial", 20)
|
||||
_detalhes:ScheduleTimer ("delay_tutorial", 5)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user