Skip to content

Commit

Permalink
More fixes for Kel'Thuzad Encounter
Browse files Browse the repository at this point in the history
  • Loading branch information
Tercioo committed Jul 13, 2021
1 parent 7fd57e2 commit 33b7542
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 65 deletions.
4 changes: 2 additions & 2 deletions boot.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

local version, build, date, tocversion = GetBuildInfo()

_detalhes.build_counter = 8710
_detalhes.alpha_build_counter = 8710 --if this is higher than the regular counter, use it instead
_detalhes.build_counter = 8720
_detalhes.alpha_build_counter = 8720 --if this is higher than the regular counter, use it instead
_detalhes.bcc_counter = 25
_detalhes.dont_open_news = true
_detalhes.game_version = version
Expand Down
108 changes: 45 additions & 63 deletions core/parser.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -768,11 +773,9 @@
end
end

--_current_combat[1]:Remap()
Details:RefreshMainWindow(-1, true)
return
end

end

--source
Expand All @@ -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
Expand Down Expand Up @@ -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
--> n�o 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
Expand Down Expand Up @@ -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
Expand All @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 n�o adiciona o evento l� em cima
local t = last_events_cache [alvo_name]

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)


Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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

Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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

------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -4091,15 +4078,14 @@ 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
if (_in_combat and alvo_flags and (not damageActor or (_bit_band (alvo_flags, 0x00000008) ~= 0 and not damageActor.grupo))) then
--> 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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 (...)
Expand Down

0 comments on commit 33b7542

Please sign in to comment.