-- damage ability file local _detalhes = _G._detalhes local _ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> local pointers local _ipairs = ipairs--lua local local _pairs = pairs--lua local local _UnitAura = UnitAura--api local ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> constants local alvo_da_habilidade = _detalhes.alvo_da_habilidade local habilidade_dano = _detalhes.habilidade_dano local container_combatentes = _detalhes.container_combatentes local container_damage_target = _detalhes.container_type.CONTAINER_DAMAGETARGET_CLASS local container_playernpc = _detalhes.container_type.CONTAINER_PLAYERNPC local _recording_ability_with_buffs = false ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> internals function habilidade_dano:NovaTabela (id, link, token) local _newDamageSpell = { total = 0, --total damage counter = 0, --counter id = id, --spellid successful_casted = 0, --successful casted times (only for enemies) --> normal hits n_min = 0, n_max = 0, n_amt = 0, n_dmg = 0, --> critical hits c_min = 0, c_max = 0, c_amt = 0, c_dmg = 0, --> glacing hits g_amt = 0, g_dmg = 0, --> resisted r_amt = 0, r_dmg = 0, --> blocked b_amt = 0, b_dmg = 0, --> obsorved a_amt = 0, a_dmg = 0, targets = {}, extra = {} } if (token == "SPELL_PERIODIC_DAMAGE") then _detalhes:SpellIsDot (id) end return _newDamageSpell end function habilidade_dano:AddMiss (serial, nome, flags, who_nome, missType) self.counter = self.counter + 1 self [missType] = (self [missType] or 0) + 1 self.targets [nome] = self.targets [nome] or 0 end function habilidade_dano:Add (serial, nome, flag, amount, who_nome, resisted, blocked, absorbed, critical, glacing, token, isoffhand, isreflected) self.total = self.total + amount --if is reflected add the spellId into the extra table --this is too show which spells has been reflected if (isreflected) then self.extra [isreflected] = (self.extra [isreflected] or 0) + amount end self.targets [nome] = (self.targets [nome] or 0) + amount self.counter = self.counter + 1 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 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 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 end if (glacing) then self.g_dmg = self.g_dmg+amount --> amount � o total de dano self.g_amt = self.g_amt+1 --> amount � o total de dano elseif (critical) then 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 self.c_max = amount end if (self.c_min > amount or self.c_min == 0) then self.c_min = amount end else self.n_dmg = self.n_dmg+amount self.n_amt = self.n_amt+1 if (amount > self.n_max) then self.n_max = amount end if (self.n_min > amount or self.n_min == 0) then self.n_min = amount end end if (_recording_ability_with_buffs) then if (who_nome == _detalhes.playername) then --aqui ele vai detalhar tudo sobre a magia usada local buffsNames = _detalhes.SoloTables.BuffsTableNameCache local SpellBuffDetails = self.BuffTable if (not SpellBuffDetails) then self.BuffTable = {} SpellBuffDetails = self.BuffTable end if (token == "SPELL_PERIODIC_DAMAGE") then --> precisa ver se ele tinha na hora que aplicou local SoloDebuffPower = _detalhes.tabela_vigente.SoloDebuffPower if (SoloDebuffPower) then local ThisDebuff = SoloDebuffPower [self.id] if (ThisDebuff) then local ThisDebuffOnTarget = ThisDebuff [serial] if (ThisDebuffOnTarget) then for index, buff_name in _ipairs (ThisDebuffOnTarget.buffs) do local buff_info = SpellBuffDetails [buff_name] or {["counter"] = 0, ["total"] = 0, ["critico"] = 0, ["critico_dano"] = 0} buff_info.counter = buff_info.counter+1 buff_info.total = buff_info.total+amount if (critical ~= nil) then buff_info.critico = buff_info.critico+1 buff_info.critico_dano = buff_info.critico_dano+amount end SpellBuffDetails [buff_name] = buff_info end end end end else for BuffName, _ in _pairs (_detalhes.Buffs.BuffsTable) do local name = _UnitAura ("player", BuffName) if (name ~= nil) then local buff_info = SpellBuffDetails [name] or {["counter"] = 0, ["total"] = 0, ["critico"] = 0, ["critico_dano"] = 0} buff_info.counter = buff_info.counter+1 buff_info.total = buff_info.total+amount if (critical ~= nil) then buff_info.critico = buff_info.critico+1 buff_info.critico_dano = buff_info.critico_dano+amount end SpellBuffDetails [name] = buff_info end end end end end end ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> core function _detalhes:UpdateDamageAbilityGears() _recording_ability_with_buffs = _detalhes.RecordPlayerAbilityWithBuffs end --[[ if (isoffhand) then self.off_amt = self.off_amt + 1 self.off_dmg = self.off_dmg + amount else self.main_amt = self.main_amt + 1 end --]]