diff --git a/API.lua b/API.lua index 66150790..f6ce850e 100644 --- a/API.lua +++ b/API.lua @@ -379,16 +379,13 @@ spell.successful_casted = how many times this spell has been casted successfully - players has its own spell cast counter inside Misc Container with the member "spell_cast". - the reason os this is spell_cast holds all spells regardless of its attribute (can hold healing/damage/energy/misc). -spell.m_amt = multistrike hits. -spell.m_dmg = multistrike damage. -spell.m_crit = multistrike critical hits. spell.n_min = minimal damage made on a normal hit. spell.n_max = max damage made on a normal hit. spell.n_amt = amount of normal hits. spell.n_dmg = total amount made doing only normal hits. spell.c_min = minimal damage made on a critical hit. spell.c_max = max damage made on a critical hit. -spell.c_amt = how many times this spell got a critical hit (doesn't count critical by multistrike). +spell.c_amt = how many times this spell got a critical hit. spell.c_dmg = total amount made doing only normal hits. spell.g_amt = how many glancing blows this spell has. spell.g_dmg = total damage made by glancing blows. @@ -438,16 +435,13 @@ spell.id = spellid. spell.totalabsorb = only for shields, tells how much damage this spell prevented. spell.absorbed = is how many healing has been absorbed by some external mechanic like Befouled on Fel Lord Zakuun encounter. spell.overheal = amount of overheal made by this spell. -spell.m_amt = multistrike hits. -spell.m_healed = multistrike healed. -spell.m_crit = multistrike critical hits. spell.n_min = minimal heal made on a normal hit. spell.n_max = max heal made on a normal hit. spell.n_amt = amount of normal hits. spell.n_curado = total amount made doing only normal hits (weird name I know). spell.c_min = minimal heal made on a critical hit. spell.c_max = max heal made on a critical hit. -spell.c_amt = how many times this spell got a critical hit (doesn't count critical by multistrike). +spell.c_amt = how many times this spell got a critical hit. spell.c_curado = total amount made doing only normal hits. spell.targets = hash table containing {["targetname"] = total healing done by this spell on this target} diff --git a/API.txt b/API.txt index 859b5f18..9d2298c0 100644 --- a/API.txt +++ b/API.txt @@ -382,16 +382,13 @@ spell.successful_casted = how many times this spell has been casted successfully - players has its own spell cast counter inside Misc Container with the member "spell_cast". - the reason os this is spell_cast holds all spells regardless of its attribute (can hold healing/damage/energy/misc). -spell.m_amt = multistrike hits. -spell.m_dmg = multistrike damage. -spell.m_crit = multistrike critical hits. spell.n_min = minimal damage made on a normal hit. spell.n_max = max damage made on a normal hit. spell.n_amt = amount of normal hits. spell.n_dmg = total amount made doing only normal hits. spell.c_min = minimal damage made on a critical hit. spell.c_max = max damage made on a critical hit. -spell.c_amt = how many times this spell got a critical hit (doesn't count critical by multistrike). +spell.c_amt = how many times this spell got a critical hit. spell.c_dmg = total amount made doing only normal hits. spell.g_amt = how many glancing blows this spell has. spell.g_dmg = total damage made by glancing blows. @@ -442,16 +439,13 @@ spell.id = spellid. spell.totalabsorb = only for shields, tells how much damage this spell prevented. spell.absorbed = is how many healing has been absorbed by some external mechanic like Befouled on Fel Lord Zakuun encounter. spell.overheal = amount of overheal made by this spell. -spell.m_amt = multistrike hits. -spell.m_healed = multistrike healed. -spell.m_crit = multistrike critical hits. spell.n_min = minimal heal made on a normal hit. spell.n_max = max heal made on a normal hit. spell.n_amt = amount of normal hits. spell.n_curado = total amount made doing only normal hits (weird name I know). spell.c_min = minimal heal made on a critical hit. spell.c_max = max heal made on a critical hit. -spell.c_amt = how many times this spell got a critical hit (doesn't count critical by multistrike). +spell.c_amt = how many times this spell got a critical hit. spell.c_curado = total amount made doing only normal hits. spell.targets = hash table containing {["targetname"] = total healing done by this spell on this target} diff --git a/Libs/DF/savedvars.lua b/Libs/DF/savedvars.lua index 87e85f45..b055736b 100644 --- a/Libs/DF/savedvars.lua +++ b/Libs/DF/savedvars.lua @@ -27,6 +27,7 @@ function DF.SavedVars.GetOrCreateAddonSavedTablesPlayerList(addonFrame) return addonGlobalSavedTable.__savedVarsByGUID end +--addon statup function DF.SavedVars.LoadSavedVarsForPlayer(addonFrame) local playerSerial = UnitGUID("player") diff --git a/classes/class_custom.lua b/classes/class_custom.lua index fb1a22bc..3fca5023 100644 --- a/classes/class_custom.lua +++ b/classes/class_custom.lua @@ -1777,7 +1777,7 @@ desc = Loc ["STRING_CUSTOM_MYSPELLS_DESC"], source = false, target = false, - script_version = 7, + script_version = 8, script = [[ --get the parameters passed local combat, instance_container, instance = ... @@ -1940,14 +1940,7 @@ end GC:AddStatusBar (100, 1, R, G, B, A) - - --GC:AddLine (" ") - - GC:AddLine ("Multistrike: ", spell.m_amt .. " (" ..floor ( spell.m_amt/total_hits*100) .. "%)") - GC:AddStatusBar (100, 1, R, G, B, A) - - GC:AddLine ("On Normal / On Critical:", spell.m_amt - spell.m_crit .. " / " .. spell.m_crit) - GC:AddStatusBar (100, 1, R, G, B, A) + elseif (spell.n_curado) then @@ -2007,14 +2000,6 @@ end GC:AddStatusBar (100, 1, R, G, B, A) - - --GC:AddLine (" ") - - GC:AddLine ("Multistrike: ", spell.m_amt .. " (" ..floor ( spell.m_amt/total_hits*100) .. "%)") - GC:AddStatusBar (100, 1, R, G, B, A) - - GC:AddLine ("On Normal / On Critical:", spell.m_amt - spell.m_crit .. " / " .. spell.m_crit) - GC:AddStatusBar (100, 1, R, G, B, A) end ]], diff --git a/classes/class_damage.lua b/classes/class_damage.lua index 7e7ff0d6..2e66a3f8 100644 --- a/classes/class_damage.lua +++ b/classes/class_damage.lua @@ -4607,12 +4607,10 @@ end ------ Detalhe Info Damage Done e Dps --local defenses_table = {c = {117/255, 58/255, 0/255}, p = 0} --local normal_table = {c = {255/255, 180/255, 0/255, 0.5}, p = 0} ---local multistrike_table = {c = {223/255, 249/255, 45/255, 0.5}, p = 0} --local critical_table = {c = {249/255, 74/255, 45/255, 0.5}, p = 0} local defenses_table = {c = {1, 1, 1, 0.5}, p = 0} local normal_table = {c = {1, 1, 1, 0.5}, p = 0} -local multistrike_table = {c = {1, 1, 1, 0.5}, p = 0} local critical_table = {c = {1, 1, 1, 0.5}, p = 0} local data_table = {} @@ -4765,10 +4763,8 @@ function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia) end gump:SetaDetalheInfoTexto ( index, 100, - --Loc ["STRING_GERAL"], cast_string, Loc ["STRING_DAMAGE"]..": "..Details:ToK (esta_magia.total), - --Loc ["STRING_MULTISTRIKE"] .. ": " .. _cstr ("%.1f", esta_magia.counter/esta_magia.m_amt*100) .. "%", schooltext, --offhand, Loc ["STRING_AVERAGE"] .. ": " .. Details:comma_value (media), this_dps, @@ -4847,40 +4843,12 @@ function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia) t3[8] = (outros_desvios+erros) .. " / " .. _cstr ("%.1f", porcentagem_defesas) .. "%" end - - --> multistrike - --[=[ - if (esta_magia.m_amt > 0) then - - local normal_hits = esta_magia.m_amt - local normal_dmg = esta_magia.m_dmg - - local media_normal = normal_dmg/normal_hits - local T = (meu_tempo*normal_dmg)/esta_magia.total - local P = media/media_normal*100 - T = P*T/100 - - data[#data+1] = t4 - multistrike_table.p = esta_magia.m_amt/total_hits*100 - - t4[1] = esta_magia.m_amt - t4[2] = multistrike_table - t4[3] = Loc ["STRING_MULTISTRIKE_HITS"] - t4[4] = "On Critical: " .. esta_magia.m_crit - t4[5] = "On Normals: " .. (esta_magia.m_amt - esta_magia.m_crit) - t4[6] = Loc ["STRING_AVERAGE"] .. ": " .. Details:comma_value (esta_magia.m_dmg/esta_magia.m_amt) - t4[7] = Loc ["STRING_DPS"] .. ": " .. Details:comma_value (esta_magia.m_dmg/T) - t4[8] = esta_magia.m_amt .. " / " .. _cstr ("%.1f", esta_magia.m_amt/total_hits*100) .. "%" - - end - --]=] --Details:BuildPlayerDetailsSpellChart() --DetailsPlayerDetailSmallChart.ShowChart (Details.playerDetailWindow.grupos_detalhes [5].bg, info.instancia.showing, info.instancia.showing.cleu_events, self.nome, false, spellid, 1, 2, 3, 4, 5, 6, 7, 8, 15) --> spell damage chart --events: 1 2 3 4 5 6 7 8 15 - _table_sort (data, Details.Sort1) diff --git a/classes/class_heal.lua b/classes/class_heal.lua index 00e4b13d..58b744a5 100644 --- a/classes/class_heal.lua +++ b/classes/class_heal.lua @@ -2211,7 +2211,6 @@ local absorbed_table = {c = {1, 1, 1, 0.4}, p = 0} local overhealing_table = {c = {0.5, 0.1, 0.1, 0.4}, p = 0} local anti_heal_table = {c = {0.5, 0.1, 0.1, 0.4}, p = 0} local normal_table = {c = {1, 1, 1, 0.4}, p = 0} -local multistrike_table = {c = {1, 1, 1, 0.4}, p = 0} local critical_table = {c = {1, 1, 1, 0.4}, p = 0} local data_table = {} @@ -2367,33 +2366,6 @@ function atributo_heal:MontaDetalhesHealingDone (spellid, barra) t2[8] = esta_magia.c_amt .. " [|cFFC0C0C0".. _cstr ("%.1f", esta_magia.c_amt/total_hits*100) .. "%|r]" end - - --> MULTISTRIKE - --[=[ - if (esta_magia.m_amt > 0) then - - local multistrike_hits = esta_magia.m_amt - local multistrike_heal = esta_magia.m_healed - - local media_normal = multistrike_heal / multistrike_hits - local T = (meu_tempo * multistrike_heal) / esta_magia.total - local P = media / media_normal * 100 - T = P * T / 100 - - data[#data+1] = t3 - multistrike_table.p = esta_magia.m_amt/total_hits*100 - - t3[1] = multistrike_hits - t3[2] = multistrike_table - t3[3] = Loc ["STRING_MULTISTRIKE_HITS"] - t3[4] = "On Critical: " .. esta_magia.m_crit - t3[5] = "On Normals: " .. (esta_magia.m_amt - esta_magia.m_crit) - t3[6] = Loc ["STRING_AVERAGE"] .. ": " .. _detalhes:comma_value (multistrike_heal / multistrike_hits) - t3[7] = Loc ["STRING_HPS"] .. ": " .. _detalhes:comma_value (multistrike_heal / T) - t3[8] = multistrike_hits .. " [|cFFC0C0C0" .. _cstr ("%.1f", multistrike_hits / total_hits * 100) .. "%|r]" - - end - --]=] end _table_sort (data, _detalhes.Sort1) diff --git a/classes/class_spelldamage.lua b/classes/class_spelldamage.lua index b5fd3927..1a3dd63a 100644 --- a/classes/class_spelldamage.lua +++ b/classes/class_spelldamage.lua @@ -31,15 +31,7 @@ counter = 0, --counter id = id, --spellid successful_casted = 0, --successful casted times (only for enemies) - - --> multistrike (deprecated) - m_amt = 0, - m_dmg = 0, - m_crit = 0, - --off_amt = 0, - --off_dmg = 0, - --main_amt = 0, - + --> normal hits n_min = 0, n_max = 0, diff --git a/classes/class_spellhealing.lua b/classes/class_spellhealing.lua index 19c13382..cdae7d9c 100644 --- a/classes/class_spellhealing.lua +++ b/classes/class_spellhealing.lua @@ -28,11 +28,6 @@ absorbed = 0, overheal = 0, totaldenied = 0, - - --> multistrike - m_amt = 0, - m_healed = 0, - m_crit = 0, --> normal hits n_min = 0, diff --git a/core/parser.lua b/core/parser.lua index 06a7902e..8ee97942 100755 --- a/core/parser.lua +++ b/core/parser.lua @@ -560,11 +560,6 @@ if (is_using_spellId_override) then spellid = override_spellId [spellid] or spellid end - - --Thing From Beyond 8.3 REMOVE ON 9.0 - if(alvo_serial:match("161895%-%w+$")) then - alvo_flags = 0xa48 - end --> npcId check for ignored npcs --target @@ -599,15 +594,6 @@ --> Light of the Martyr - paladin spell which causes damage to the caster it self elseif (spellid == SPELLID_PALADIN_LIGHTMARTYR) then -- or spellid == 183998 < healing part return parser:LOTM_damage (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, spelltype, amount, overkill, school, resisted, blocked, absorbed, critical, glacing, crushing, isoffhand) - - --Eye of Corruption 8.3 REMOVE ON 9.0 - elseif (spellid == 315161) then - local enemyName = GetSpellInfo(315161) - who_serial, who_name, who_flags = "", enemyName, 0xa48 - - --Thing From Beyond 8.3 REMOVE ON 9.0 - elseif (spellid == 315197) then - who_flags = 0xa48 end end @@ -1355,6 +1341,28 @@ end end + + --extra attacks + function parser:spell_dmg_extra_attacks(token, time, who_serial, who_name, who_flags, _, _, _, _, spellid, spellName, spelltype, arg1) + local este_jogador = damage_cache [who_serial] + if (not este_jogador) then + local meu_dono + este_jogador, meu_dono, who_name = _current_damage_container:PegarCombatente (who_serial, who_name, who_flags, true) + if (not este_jogador) then + return --> just return if actor doen't exist yet + end + end + +--/dump Details:GetCurrentCombat():GetPlayer("Hetdor").spells:GetSpell(1).extra["extra_attack"] + + --> actor spells table + local spell = este_jogador.spells._ActorTable[1] --melee damage + if (not spell) then + return + end + + spell.extra["extra_attack"] = (spell.extra["extra_attack"] or 0) + 1 + end --function parser:swingmissed (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, missType, isOffHand, amountMissed) function parser:swingmissed (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, missType, isOffHand, amountMissed) --, isOffHand, amountMissed, arg1 @@ -4161,7 +4169,7 @@ spelltype = 1 if (capture_type == "damage") then token_list ["SPELL_PERIODIC_DAMAGE"] = parser.spell_dmg - token_list ["SPELL_EXTRA_ATTACKS"] = parser.spell_dmg + token_list ["SPELL_EXTRA_ATTACKS"] = parser.spell_dmg_extra_attacks token_list ["SPELL_DAMAGE"] = parser.spell_dmg token_list ["SPELL_BUILDING_DAMAGE"] = parser.spell_dmg token_list ["SWING_DAMAGE"] = parser.swing @@ -4215,9 +4223,10 @@ spelltype = 1 end end - + parser.original_functions = { ["spell_dmg"] = parser.spell_dmg, + ["spell_dmg_extra_attacks"] = parser.spell_dmg_extra_attacks, ["swing"] = parser.swing, ["range"] = parser.range, ["rangemissed"] = parser.rangemissed, @@ -4254,7 +4263,7 @@ spelltype = 1 local all_parser_tokens = { ["SPELL_PERIODIC_DAMAGE"] = "spell_dmg", - ["SPELL_EXTRA_ATTACKS"] = "spell_dmg", + ["SPELL_EXTRA_ATTACKS"] = "spell_dmg_extra_attacks", ["SPELL_DAMAGE"] = "spell_dmg", ["SPELL_BUILDING_DAMAGE"] = "spell_dmg", ["SWING_DAMAGE"] = "swing",