More fixes for Kel'Thuzad Encounter

This commit is contained in:
Tercio Jose
2021-07-13 18:47:55 -03:00
parent 7fd57e2f40
commit 33b7542f6b
2 changed files with 47 additions and 65 deletions
+45 -63
View File
@@ -324,6 +324,7 @@
spikeball_cache.ignore_spikeballs = false
local NPCID_KELTHUZAD_FROSTBOUNDDEVOTED = 176703
local NPCID_KELTHUZAD_ADDMIMICPLAYERS = 176605
--> damage spells to ignore
local damage_spells_to_ignore = {
@@ -602,20 +603,20 @@
end
--REMOVE ON 10.0
if (_current_encounter_id == 2422) then --kel'thuzad
if (raid_members_cache[who_serial]) then --attacker is a player
if (who_flags and _bit_band(who_flags, 0xA60) ~= 0) then --neutral or hostile and contorlled by npc
who_name = who_name .. "*"
who_flags = 0xA48
end
if (_current_encounter_id == 2422) then --kel'thuzad
if (raid_members_cache[who_serial]) then --attacker is a player
if (who_flags and _bit_band(who_flags, 0xa60) ~= 0) then --neutral or hostile and contorlled by npc
who_name = who_name .. "*"
who_flags = 0xa48
end
elseif (raid_members_cache[alvo_serial]) then --defender is a player
if (alvo_flags and _bit_band(alvo_flags, 0xA60) ~= 0) then --neutral or hostile and contorlled by npc
alvo_name = alvo_name .. "*"
alvo_flags = 0xA48
elseif (raid_members_cache[alvo_serial]) then --defender is a player
if (alvo_flags and _bit_band(alvo_flags, 0xa60) ~= 0) then --neutral or hostile and contorlled by npc
alvo_name = alvo_name .. "*"
alvo_flags = 0xa48
end
end
end
end
--
--> npcId check for ignored npcs
@@ -631,10 +632,14 @@
end
if (npcId == NPCID_KELTHUZAD_FROSTBOUNDDEVOTED) then --remove on 10.0
alvo_flags = 0xA48
alvo_flags = 0xa48
end
if (npcId == NPCID_SPIKEDBALL) then --remove on 10.0
if (npcId == NPCID_KELTHUZAD_ADDMIMICPLAYERS) then --remove on 10.0
alvo_name = "Tank Add"
end
if (npcId == NPCID_SPIKEDBALL) then --remove on 10.0, all this IF block
if (spikeball_cache.ignore_spikeballs) then
if (spikeball_cache.ignore_spikeballs > GetTime()) then
return
@@ -768,11 +773,9 @@
end
end
--_current_combat[1]:Remap()
Details:RefreshMainWindow(-1, true)
return
end
end
--source
@@ -786,12 +789,13 @@
end
if (npcId == NPCID_KELTHUZAD_FROSTBOUNDDEVOTED) then --remove on 10.0
who_flags = 0xA48
who_flags = 0xa48
end
if (npcId == NPCID_KELTHUZAD_ADDMIMICPLAYERS) then --remove on 10.0
who_name = "Tank Add"
end
if (npcId == NPCID_SPIKEDBALL) then --remove on 10.0
print(1, "npc id match (IS ATTACK)")
--actor name
local spikeName = spikeball_cache.name_cache[who_serial]
if (not spikeName) then
@@ -823,21 +827,21 @@
if (not _in_combat) then
if ( token ~= "SPELL_PERIODIC_DAMAGE" and
(
(
(who_flags and _bit_band (who_flags, AFFILIATION_GROUP) ~= 0 and _UnitAffectingCombat (who_name) )
or
(alvo_flags and _bit_band (alvo_flags, AFFILIATION_GROUP) ~= 0 and _UnitAffectingCombat (alvo_name) )
(alvo_flags and _bit_band (alvo_flags, AFFILIATION_GROUP) ~= 0 and _UnitAffectingCombat (alvo_name) )
or
(not _detalhes.in_group and who_flags and _bit_band (who_flags, AFFILIATION_GROUP) ~= 0)
)
) then
) then
--> no entra em combate se for DOT
if (_detalhes.encounter_table.id and _detalhes.encounter_table ["start"] >= _GetTime() - 3 and _detalhes.announce_firsthit.enabled) then
if (_detalhes.encounter_table.id and _detalhes.encounter_table ["start"] >= GetTime() - 3 and _detalhes.announce_firsthit.enabled) then
local link
if (spellid <= 10) then
link = _GetSpellInfo (spellid)
link = GetSpellInfo(spellid)
else
link = GetSpellLink (spellid)
link = GetSpellLink(spellid)
end
if (_detalhes.WhoAggroTimer) then
@@ -894,7 +898,6 @@
damage_cache [who_name] = este_jogador
local _, _, icon = _GetSpellInfo (spellid or 1)
este_jogador.spellicon = icon
--print ("no serial actor", spellname, who_name, "added to cache.")
else
--_detalhes:Msg ("Unknown actor with unknown serial ", spellname, who_name)
end
@@ -908,8 +911,6 @@
end
if (not este_jogador) then
--print ("no ente_jogador")
--print (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, amount)
return
end
@@ -1027,7 +1028,6 @@
mob ["BLOCKED_HITS"] = mob ["BLOCKED_HITS"] + 1
overall ["BLOCKED_AMT"] = overall ["BLOCKED_AMT"] + blocked
mob ["BLOCKED_AMT"] = mob ["BLOCKED_AMT"] + blocked
--print (alvo_name, "block", blocked)
end
--> absorbs status
@@ -1152,7 +1152,7 @@
end
end
if (is_friendly_fire and spellid ~= SPELLID_KYRIAN_DRUID_TANK) then
if (is_friendly_fire and spellid ~= SPELLID_KYRIAN_DRUID_TANK) then --kyrian spell remove on 10.0
if (este_jogador.grupo) then --> se tiver ele no adiciona o evento l em cima
local t = last_events_cache [alvo_name]
@@ -1503,7 +1503,6 @@
damage_cache [who_name] = este_jogador
local _, _, icon = _GetSpellInfo (spellid or 1)
este_jogador.spellicon = icon
--print ("no serial actor", spellname, who_name, "added to cache.")
else
--_detalhes:Msg ("Unknown actor with unknown serial ", spellname, who_name)
end
@@ -1632,9 +1631,8 @@
------------------------------------------------------------------------------------------------
--> get actors
--todo tbc seems to not have misses? need further investigation
--print ("MISS", "|", missType, "|", isOffHand, "|", amountMissed, "|", arg1)
--print (missType, who_name, spellname, amountMissed)
@@ -1739,7 +1737,6 @@
--> damage ocurred first, so we have its data
local amount = reflection_damage[who_serial][spellid].amount
--print("1", spellid, GetSpellInfo(spellid))
local isreflected = spellid --which spell was reflected
alvo_serial = reflection.who_serial
alvo_name = reflection.who_name
@@ -1796,16 +1793,24 @@
return
end
--print(token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellName)
--Player-3209-083BBABE Kastfall 1297 Creature-0-4229-1642-17-69792-00005E1CC4 Earth Spirit 8465 0 138121 Storm, Earth, and Fire
--Player-3209-083BBABE Kastfall 1297 Creature-0-4229-1642-17-69791-00005E1CC4 Fire Spirit 8465 0 138123 Storm, Earth, and Fire
if (not who_name) then
who_name = "[*] " .. spellName
end
local npcId = _tonumber(_select (6, _strsplit ("-", alvo_serial)) or 0)
--kel'thuzad encounter --remove on 10.0
if (npcId == NPCID_KELTHUZAD_FROSTBOUNDDEVOTED) then
return
elseif (spellid == 358108) then --Restore Health
return
elseif (spellid == 352092) then --March of the Forsaken
return
elseif (spellid == 352094) then --March of the Forsaken
return
end
--
--rename monk's "Storm, Earth, and Fire" adds
--desligado pois poderia estar causando problemas
if (npcId == 69792) then
@@ -1825,11 +1830,7 @@
who_name, who_serial, who_flags = alvo_pet[1], alvo_pet[2], alvo_pet[3]
end
--petTable:Add
_detalhes.tabela_pets:Adicionar (alvo_serial, alvo_name, alvo_flags, who_serial, who_name, who_flags)
--debug summons:
--print("summon:", who_name, alvo_serial, alvo_name, alvo_flags, spellid, spellName)
return
end
@@ -1854,7 +1855,6 @@
function parser:heal_denied (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellidAbsorb, spellnameAbsorb, spellschoolAbsorb, serialHealer, nameHealer, flagsHealer, flags2Healer, spellidHeal, spellnameHeal, typeHeal, amountDenied)
-- print (who_name, alvo_name, nameHealer, spellidHeal, spellnameHeal, typeHeal, amountDenied)
if (not _in_combat) then
return
end
@@ -1868,11 +1868,7 @@
--> no name, use spellname
if (not who_name) then
if (not spellname) then
--print ("ERROR:", token, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellidAbsorb, spellnameAbsorb, spellschoolAbsorb, serialHealer, nameHealer, flagsHealer, flags2Healer, spellidHeal, spellnameHeal, typeHeal, amountDenied)
end
--who_name = "[*] "..spellname
who_name = "[*] " .. (spellname or "--unknown spell--")
who_name = "[*] " .. (spellnameHeal or "--unknown spell--")
end
--> no target, just ignore
@@ -2425,13 +2421,8 @@
local enemyName = GetSpellInfo(315161)
who_serial, who_name, who_flags = "", enemyName, 0xa48
--3/11 14:08:34.105 SPELL_CAST_START,Player-3676-06D63197,"Clutchdaily-Area52",0x512,0x0,0000000000000000,nil,0x80000000,0x80000000,342171,"Loyal Stoneborn",0x20
--3/11 14:08:35.690 SPELL_CAST_SUCCESS,Player-3676-06D63197,"Clutchdaily-Area52",0x512,0x0,0000000000000000,nil,0x80000000,0x80000000,342171,"Loyal Stoneborn",0x20,Player-3676-06D63197,0000000000000000,59976,68222,1882,304,3067,0,1,405,1000,0,-2191.13,5230.31,1663,3.1663,218
elseif (spellid == SPELLID_VENTYR_TAME_GARGOYLE) then --ventyr tame gargoyle on halls of atonement
--3/11 14:08:35.690 SPELL_AURA_APPLIED,Player-3676-06D63197,"Clutchdaily-Area52",0x512,0x0,Creature-0-4220-2287-20503-174175-0000CA4BDB,"Loyal Stoneborn",0xa48,0x0,342171,"Loyal Stoneborn",0x20,DEBUFF
--tag the target of this spell as a pet of caster
elseif (spellid == SPELLID_VENTYR_TAME_GARGOYLE) then --ventyr tame gargoyle on halls of atonement --remove on 10.0
_detalhes.tabela_pets:Adicionar(alvo_serial, alvo_name, alvo_flags, who_serial, who_name, 0x00000417)
--print("D! player", who_name, "tamed a gargoyle in HOA.")
end
------------------------------------------------------------------------------------------------
@@ -3028,8 +3019,6 @@
return print ("Parser Event Error -> Set to 16 DeathLogs and /reload", i, _death_event_amt)
end
--print ("DebuffIN", ">", "Added to the DeathLog")
this_event [1] = 4 --> 4 = debuff aplication
this_event [2] = spellid --> spellid
this_event [3] = 1
@@ -3079,8 +3068,6 @@
return print ("Parser Event Error -> Set to 16 DeathLogs and /reload", i, _death_event_amt)
end
--print ("DebuffRefresh", ">", "Added to the DeathLog", stack_amount)
this_event [1] = 4 --> 4 = debuff aplication
this_event [2] = spellid --> spellid
this_event [3] = stack_amount or 1
@@ -4091,7 +4078,6 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
------------------------------------------------------------------------------------------------
--> build dead
--print("dead", alvo_flags, _bit_band (alvo_flags, 0x00000008) ~= 0, _current_encounter_id)
local damageActor = _current_damage_container:GetActor(alvo_name)
--check for outsiders
@@ -4099,7 +4085,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
--> outsider death while in combat
--rules for specific encounters
if (_current_encounter_id == 2412) then --> The Council of Blood (REMOVE ON v10.0.1)
if (_current_encounter_id == 2412) then --> The Council of Blood --REMOVE ON v10.0
if (not Details.exp90temp.delete_damage_TCOB) then
return
@@ -4858,13 +4844,11 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
end
_current_encounter_id = encounterID
--Details:Msg("encounter started:", encounterID, encounterName)
_detalhes.boss1_health_percent = 1
local dbm_mod, dbm_time = _detalhes.encounter_table.DBM_Mod, _detalhes.encounter_table.DBM_ModTime
_table_wipe (_detalhes.encounter_table)
--print (encounterID, encounterName, difficultyID, raidSize)
_detalhes.encounter_table.phase = 1
--store the encounter time inside the encounter table for the encounter plugin
@@ -4907,8 +4891,6 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
end
_detalhes:SendEvent ("COMBAT_ENCOUNTER_START", nil, ...)
--print ("encounter staerted at:", _detalhes.encounter_table.start)
end
function _detalhes.parser_functions:ENCOUNTER_END (...)