general fixes for game client versions

This commit is contained in:
Tercio Jose
2021-06-10 12:09:28 -03:00
parent 361264a5f4
commit bd1700b5f1
14 changed files with 577 additions and 94 deletions
+16 -2
View File
@@ -74,8 +74,22 @@ function DF.UnitGroupRolesAssigned (unitId)
return UnitGroupRolesAssigned (unitId)
else
--attempt to guess the role by the player spec
--at the moment just return none
local classLoc, className = UnitClass(unitId)
if (className == "MAGE" or className == "ROGUE" or className == "HUNTER" or className == "WARLOCK") then
return "DAMAGER"
end
if (Details) then
--attempt to get the role from Details! Damage Meter
local guid = UnitGUID(unitId)
if (guid) then
local role = Details.cached_roles[guid]
if (role) then
return role
end
end
end
return "NONE"
end
end
+9 -1
View File
@@ -8,7 +8,7 @@
_detalhes.build_counter = 8516
_detalhes.alpha_build_counter = 8516 --if this is higher than the regular counter, use it instead
_detalhes.bcc_counter = 16
_detalhes.bcc_counter = 19
_detalhes.dont_open_news = true
_detalhes.game_version = version
_detalhes.userversion = version .. _detalhes.build_counter
@@ -746,6 +746,14 @@ do
SharedMedia:Register ("sound", "d_gun2", [[Interface\Addons\Details\sounds\sound_gun3.ogg]])
SharedMedia:Register ("sound", "d_jedi1", [[Interface\Addons\Details\sounds\sound_jedi1.ogg]])
SharedMedia:Register ("sound", "d_whip1", [[Interface\Addons\Details\sounds\sound_whip1.ogg]])
SharedMedia:Register ("sound", "Details Threat Warning Volume 1", [[Interface\Addons\Details\sounds\threat_warning_1.ogg]])
SharedMedia:Register ("sound", "Details Threat Warning Volume 2", [[Interface\Addons\Details\sounds\threat_warning_2.ogg]])
SharedMedia:Register ("sound", "Details Threat Warning Volume 3", [[Interface\Addons\Details\sounds\threat_warning_3.ogg]])
SharedMedia:Register ("sound", "Details Threat Warning Volume 4", [[Interface\Addons\Details\sounds\threat_warning_4.ogg]])
--> dump table contents over chat panel
function Details.VarDump(t)
-2
View File
@@ -310,7 +310,6 @@ function historico:adicionar (tabela)
end
if (_detalhes.trash_auto_remove) then
local _terceiro_combate = self.tabelas[3]
if (_terceiro_combate and not _terceiro_combate.is_mythic_dungeon_segment) then
@@ -390,7 +389,6 @@ function historico:adicionar (tabela)
--> remover
_table_remove (self.tabelas, combat_index)
_detalhes:SendEvent ("DETAILS_DATA_SEGMENTREMOVED")
end
--> chama a funo que ir atualizar as instncias com segmentos no histrico
+347
View File
@@ -2399,3 +2399,350 @@ function Details:DecompressData (data, dataType)
end
end
--oldschool talent tree
if (DetailsFramework.IsTBCWow()) then
local talentWatchClassic = CreateFrame ("frame")
talentWatchClassic:RegisterEvent("CHARACTER_POINTS_CHANGED")
talentWatchClassic:RegisterEvent("SPELLS_CHANGED")
talentWatchClassic:RegisterEvent("PLAYER_ENTERING_WORLD")
talentWatchClassic:RegisterEvent("GROUP_ROSTER_UPDATE")
talentWatchClassic.cooldown = 0
C_Timer.NewTicker (600, function()
Details:GetOldSchoolTalentInformation()
end)
talentWatchClassic:SetScript("OnEvent", function(self, event, ...)
if (talentWatchClassic.delayedUpdate and not talentWatchClassic.delayedUpdate._cancelled) then
return
else
talentWatchClassic.delayedUpdate = C_Timer.NewTimer(5, Details.GetOldSchoolTalentInformation)
end
end)
function Details.GetOldSchoolTalentInformation()
--cancel any schedule
if (talentWatchClassic.delayedUpdate and not talentWatchClassic.delayedUpdate._cancelled) then
talentWatchClassic.delayedUpdate:Cancel()
end
talentWatchClassic.delayedUpdate = nil
--amount of tabs existing
local numTabs = GetNumTalentTabs() or 3
--store the background textures for each tab
local pointsPerSpec = {}
local talentsSelected = {}
for i = 1, (MAX_TALENT_TABS or 3) do
if (i <= numTabs) then
--tab information
local name, iconTexture, pointsSpent, fileName = GetTalentTabInfo (i)
if (name) then
tinsert (pointsPerSpec, {name, pointsSpent, fileName})
end
--talents information
local numTalents = GetNumTalents (i) or 20
local MAX_NUM_TALENTS = MAX_NUM_TALENTS or 20
for talentIndex = 1, MAX_NUM_TALENTS do
if (talentIndex <= numTalents) then
local name, iconTexture, tier, column, rank, maxRank, isExceptional, available = GetTalentInfo (i, talentIndex)
if (name and rank and type (rank) == "number") then
--send the specID instead of the specName
local specID = Details.textureToSpec [fileName]
tinsert (talentsSelected, {iconTexture, rank, tier, column, i, specID, maxRank})
end
end
end
end
end
local MIN_SPECS = 4
--put the spec with more talent point to the top
table.sort (pointsPerSpec, function (t1, t2) return t1[2] > t2[2] end)
--get the spec with more points spent
local spec = pointsPerSpec[1]
if (spec and spec[2] >= MIN_SPECS) then
local specTexture = spec[3]
--add the spec into the spec cache
Details.playerClassicSpec = {}
Details.playerClassicSpec.specs = Details.GetClassicSpecByTalentTexture(specTexture)
Details.playerClassicSpec.talents = talentsSelected
--cache the player specId
_detalhes.cached_specs [UnitGUID ("player")] = Details.playerClassicSpec.specs
--cache the player talents
_detalhes.cached_talents [UnitGUID ("player")] = talentsSelected
local role = Details:GetRoleFromSpec(Details.playerClassicSpec.specs, UnitGUID("player"))
if (Details.playerClassicSpec.specs == 103) then
if (role == "TANK") then
Details.playerClassicSpec.specs = 104
_detalhes.cached_specs [UnitGUID ("player")] = Details.playerClassicSpec.specs
end
end
_detalhes.cached_roles[UnitGUID ("player")] = role
--gear status
local item_amount = 16
local item_level = 0
local failed = 0
local two_hand = {
["INVTYPE_2HWEAPON"] = true,
["INVTYPE_RANGED"] = true,
["INVTYPE_RANGEDRIGHT"] = true,
}
for equip_id = 1, 17 do
if (equip_id ~= 4) then --shirt slot, trinkets
local item = GetInventoryItemLink("player", equip_id)
if (item) then
local _, _, itemRarity, iLevel, _, _, _, _, equipSlot = GetItemInfo(item)
if (iLevel) then
if (ItemUpgradeInfo) then
local ilvl = ItemUpgradeInfo:GetUpgradedItemLevel (item)
item_level = item_level + (ilvl or iLevel)
else
item_level = item_level + iLevel
end
--> 16 = main hand 17 = off hand
--> if using a two-hand, ignore the off hand slot
if (equip_id == 16 and two_hand [equipSlot]) then
item_amount = 15
break
end
end
else
failed = failed + 1
if (failed > 2) then
break
end
end
end
end
local itemLevel = floor(item_level / item_amount)
local dataToShare = {role or "NONE", Details.playerClassicSpec.specs or 0, itemLevel or 0, talentsSelected, UnitGUID("player")}
--local serialized = _detalhes:Serialize(dataToShare)
local compressedData = Details:CompressData(dataToShare, "comm")
if (IsInRaid()) then
_detalhes:SendRaidData(DETAILS_PREFIX_TBC_DATA, compressedData)
if (_detalhes.debug) then
_detalhes:Msg ("(debug) sent talents data to Raid")
end
elseif (IsInGroup()) then
_detalhes:SendPartyData(DETAILS_PREFIX_TBC_DATA, compressedData)
if (_detalhes.debug) then
_detalhes:Msg ("(debug) sent talents data to Party")
end
end
end
end
Details.specToRole = {
--DRUID
[102] = "DAMAGER", --BALANCE
[103] = "DAMAGER", --FERAL DRUID
[105] = "HEALER", --RESTORATION
--HUNTER
[253] = "DAMAGER", --BM
[254] = "DAMAGER", --MM
[255] = "DAMAGER", --SURVIVOR
--MAGE
[62] = "DAMAGER", --ARCANE
[64] = "DAMAGER", --FROST
[63] = "DAMAGER", ---FIRE
--PALADIN
[70] = "DAMAGER", --RET
[65] = "HEALER", --HOLY
[66] = "TANK", --PROT
--PRIEST
[257] = "HEALER", --HOLY
[256] = "HEALER", --DISC
[258] = "DAMAGER", --SHADOW
--ROGUE
[259] = "DAMAGER", --ASSASSINATION
[260] = "DAMAGER", --COMBAT
[261] = "DAMAGER", --SUB
--SHAMAN
[262] = "DAMAGER", --ELEMENTAL
[263] = "DAMAGER", --ENHAN
[264] = "HEALER", --RESTO
--WARLOCK
[265] = "DAMAGER", --AFF
[266] = "DAMAGER", --DESTRO
[267] = "DAMAGER", --DEMO
--WARRIOR
[71] = "DAMAGER", --ARMS
[72] = "DAMAGER", --FURY
[73] = "TANK", --PROT
}
function _detalhes:GetRoleFromSpec (specId, unitGUID)
if (specId == 103) then --feral druid
local talents = _detalhes.cached_talents [unitGUID]
if (talents) then
local tankTalents = 0
for i = 1, #talents do
local iconTexture, rank, tier, column = unpack (talents [i])
if (tier == 2) then
if (column == 1 and rank == 5) then
tankTalents = tankTalents + 5
end
if (column == 3 and rank == 5) then
tankTalents = tankTalents + 5
end
if (tankTalents >= 10) then
return "TANK"
end
end
end
end
end
return Details.specToRole [specId] or "NONE"
end
Details.validSpecIds = {
[250] = true,
[252] = true,
[251] = true,
[102] = true,
[103] = true,
[104] = true,
[105] = true,
[253] = true,
[254] = true,
[255] = true,
[62] = true,
[63] = true,
[64] = true,
[70] = true,
[65] = true,
[66] = true,
[257] = true,
[256] = true,
[258] = true,
[259] = true,
[260] = true,
[261] = true,
[262] = true,
[263] = true,
[264] = true,
[265] = true,
[266] = true,
[267] = true,
[71] = true,
[72] = true,
[73] = true,
}
Details.textureToSpec = {
DruidBalance = 102,
DruidFeralCombat = 103,
DruidRestoration = 105,
HunterBeastMaster = 253,
HunterMarksmanship = 254,
HunterSurvival = 255,
MageArcane = 62,
MageFrost = 64,
MageFire = 63,
PaladinCombat = 70,
PaladinHoly = 65,
PaladinProtection = 66,
PriestHoly = 257,
PriestDiscipline = 256,
PriestShadow = 258,
RogueAssassination = 259,
RogueCombat = 260,
RogueSubtlety = 261,
ShamanElementalCombat = 262,
ShamanEnhancement = 263,
ShamanRestoration = 264,
WarlockCurses = 265,
WarlockDestruction = 266,
WarlockSummoning = 267,
--WarriorArm = 71,
WarriorArms = 71,
WarriorFury = 72,
WarriorProtection = 73,
}
Details.specToTexture = {
[102] = "DruidBalance",
[103] = "DruidFeralCombat",
[105] = "DruidRestoration",
[253] = "HunterBeastMaster",
[254] = "HunterMarksmanship",
[255] = "HunterSurvival",
[62] = "MageArcane",
[64] = "MageFrost",
[63] = "MageFire",
[70] = "PaladinCombat",
[65] = "PaladinHoly",
[66] = "PaladinProtection",
[257] = "PriestHoly",
[256] = "PriestDiscipline",
[258] = "PriestShadow",
[259] = "RogueAssassination",
[260] = "RogueCombat",
[261] = "RogueSubtlety",
[262] = "ShamanElementalCombat",
[263] = "ShamanEnhancement",
[264] = "ShamanRestoration",
[265] = "WarlockCurses",
[266] = "WarlockDestruction",
[267] = "WarlockSummoning",
--[71] = "WarriorArm",
[71] = "WarriorArms",
[72] = "WarriorFury",
[73] = "WarriorProtection",
}
function Details.IsValidSpecId (specId)
return Details.validSpecIds [specId]
end
function Details.GetClassicSpecByTalentTexture (talentTexture)
return Details.textureToSpec [talentTexture] or 0
end
end
+46 -2
View File
@@ -48,6 +48,7 @@
local CONST_ROGUE_SR = "SR" --soul rip from akaari's soul (LEGION ONLY)
DETAILS_PREFIX_COACH = "CO" --coach feature
DETAILS_PREFIX_TBC_DATA = "BC" --tbc data
_detalhes.network.ids = {
["HIGHFIVE_REQUEST"] = CONST_HIGHFIVE_REQUEST,
@@ -71,6 +72,8 @@
["CLOUD_SHAREDATA"] = CONST_CLOUD_SHAREDATA,
["COACH_FEATURE"] = DETAILS_PREFIX_COACH, --ask the raid leader is the coach is enbaled
["TBC_DATA"] = DETAILS_PREFIX_TBC_DATA, --get basic information about the player
}
local plugins_registred = {}
@@ -89,8 +92,10 @@
end
if (DetailsFramework.IsTimewalkWoW()) then
--average item level doesn't exists
--talent information is very different
if (DetailsFramework.IsTBCWow()) then
--detect my spec
end
return
end
@@ -383,6 +388,44 @@
end
function _detalhes.network.TBCData(player, realm, coreVersion, data)
if (not IsInRaid() and not IsInGroup()) then
return
end
local LibDeflate = _G.LibStub:GetLibrary("LibDeflate")
local dataCompressed = LibDeflate:DecodeForWoWAddonChannel(data)
local dataSerialized = LibDeflate:DecompressDeflate(dataCompressed)
local dataTable = {Details:Deserialize(dataSerialized)}
tremove(dataTable, 1)
local dataTable = dataTable[1]
local playerRole = dataTable[1]
local spec = dataTable[2]
local itemLevel = dataTable[3]
local talents = dataTable[4]
local guid = dataTable[5]
--[=[
print("Details! Received TBC Comm Data:")
print("From:", player)
print("spec:", spec)
print("role:", playerRole)
print("item level:", itemLevel)
print("guid:", guid)
--]=]
_detalhes.cached_talents[guid] = talents
_detalhes.cached_specs[guid] = spec
_detalhes.cached_roles[guid] = playerRole
_detalhes.item_level_pool[guid] = {
name = player,
ilvl = itemLevel,
time = time()
}
end
--"CIEA" Coach Is Enabled Ask (client > server)
--"CIER" Coach Is Enabled Response (server > client)
--"CCS" Coach Combat Start (client > server)
@@ -573,6 +616,7 @@
[CONST_PVP_ENEMY] = _detalhes.network.ReceivedEnemyPlayer,
[DETAILS_PREFIX_COACH] = _detalhes.network.Coach, --coach feature
[DETAILS_PREFIX_TBC_DATA] = _detalhes.network.TBCData
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+147 -82
View File
@@ -5,6 +5,7 @@
local _tempo = time()
local _
local DetailsFramework = DetailsFramework
local isTBC = DetailsFramework.IsTBCWow()
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> local pointers
@@ -189,54 +190,60 @@
}
--> spellIds override
local override_spellId = {
[184707] = 218617, --warrior rampage
[184709] = 218617, --warrior rampage
[201364] = 218617, --warrior rampage
[201363] = 218617, --warrior rampage
[85384] = 96103, --warrior raging blow
[85288] = 96103, --warrior raging blow
[280849] = 5308, --warrior execute
[163558] = 5308, --warrior execute
[217955] = 5308, --warrior execute
[217956] = 5308, --warrior execute
[217957] = 5308, --warrior execute
[224253] = 5308, --warrior execute
[199850] = 199658, --warrior whirlwind
[190411] = 199658, --warrior whirlwind
[44949] = 199658, --warrior whirlwind
[199667] = 199658, --warrior whirlwind
[199852] = 199658, --warrior whirlwind
[199851] = 199658, --warrior whirlwind
[222031] = 199547, --deamonhunter ChaosStrike
[200685] = 199552, --deamonhunter Blade Dance
[210155] = 210153, --deamonhunter Death Sweep
[227518] = 201428, --deamonhunter Annihilation
[187727] = 178741, --deamonhunter Immolation Aura
[201789] = 201628, --deamonhunter Fury of the Illidari
[225921] = 225919, --deamonhunter Fracture talent
[205164] = 205165, --death knight Crystalline Swords
[193315] = 197834, --rogue Saber Slash
[202822] = 202823, --rogue greed
[280720] = 282449, --rogue Secret Technique
[280719] = 282449, --rogue Secret Technique
[27576] = 5374, --rogue mutilate
[233496] = 233490, --warlock Unstable Affliction
[233497] = 233490, --warlock Unstable Affliction
[233498] = 233490, --warlock Unstable Affliction
[233499] = 233490, --warlock Unstable Affliction
[261947] = 261977, --monk fist of the white tiger talent
local override_spellId
[32175] = 17364, -- shaman Stormstrike (from Turkar on github)
[32176] = 17364, -- shaman Stormstrike
[45284] = 188196, --shaman lightining bolt overloaded
}
if (isTBC) then
override_spellId = {}
else --retail
override_spellId = {
[184707] = 218617, --warrior rampage
[184709] = 218617, --warrior rampage
[201364] = 218617, --warrior rampage
[201363] = 218617, --warrior rampage
[85384] = 96103, --warrior raging blow
[85288] = 96103, --warrior raging blow
[280849] = 5308, --warrior execute
[163558] = 5308, --warrior execute
[217955] = 5308, --warrior execute
[217956] = 5308, --warrior execute
[217957] = 5308, --warrior execute
[224253] = 5308, --warrior execute
[199850] = 199658, --warrior whirlwind
[190411] = 199658, --warrior whirlwind
[44949] = 199658, --warrior whirlwind
[199667] = 199658, --warrior whirlwind
[199852] = 199658, --warrior whirlwind
[199851] = 199658, --warrior whirlwind
[222031] = 199547, --deamonhunter ChaosStrike
[200685] = 199552, --deamonhunter Blade Dance
[210155] = 210153, --deamonhunter Death Sweep
[227518] = 201428, --deamonhunter Annihilation
[187727] = 178741, --deamonhunter Immolation Aura
[201789] = 201628, --deamonhunter Fury of the Illidari
[225921] = 225919, --deamonhunter Fracture talent
[205164] = 205165, --death knight Crystalline Swords
[193315] = 197834, --rogue Saber Slash
[202822] = 202823, --rogue greed
[280720] = 282449, --rogue Secret Technique
[280719] = 282449, --rogue Secret Technique
[27576] = 5374, --rogue mutilate
[233496] = 233490, --warlock Unstable Affliction
[233497] = 233490, --warlock Unstable Affliction
[233498] = 233490, --warlock Unstable Affliction
[233499] = 233490, --warlock Unstable Affliction
[261947] = 261977, --monk fist of the white tiger talent
[32175] = 17364, -- shaman Stormstrike (from Turkar on github)
[32176] = 17364, -- shaman Stormstrike
[45284] = 188196, --shaman lightining bolt overloaded
}
end
local bitfield_debuffs_ids = _detalhes.BitfieldSwapDebuffsIDs
local bitfield_debuffs = {}
@@ -248,13 +255,20 @@
bitfield_debuffs [spellid] = true
end
end
--tbc prayer of mending cache
local TBC_PrayerOfMendingCache = {}
--tbc earth shield cache
local TBC_EarthShieldCache = {}
--tbc life bloom cache
local TBC_LifeBloomLatestHeal
--expose the override spells table to external scripts
_detalhes.OverridedSpellIds = override_spellId
--> list of ignored npcs by the user
local ignored_npcids = {}
--> ignore soul link (damage from the warlock on his pet - current to demonology only)
local SPELLID_WARLOCK_SOULLINK = 108446
--> when checking if can start a new combat, ignore the damage from warlock's burning rush
@@ -274,6 +288,23 @@
local SPELLID_KYRIAN_DRUID_HEAL = 327149
local SPELLID_KYRIAN_DRUID_TANK = 327037
--> shaman earth shield (bcc)
local SPELLID_SHAMAN_EARTHSHIELD_HEAL = 379
local SPELLID_SHAMAN_EARTHSHIELD_BUFF_RANK1 = 974
local SPELLID_SHAMAN_EARTHSHIELD_BUFF_RANK2 = 32593
local SPELLID_SHAMAN_EARTHSHIELD_BUFF_RANK3 = 32594
local SHAMAN_EARTHSHIELD_BUFF = {
[SPELLID_SHAMAN_EARTHSHIELD_BUFF_RANK1] = true,
[SPELLID_SHAMAN_EARTHSHIELD_BUFF_RANK2] = true,
[SPELLID_SHAMAN_EARTHSHIELD_BUFF_RANK3] = true,
}
--> holy priest prayer of mending (bcc)
local SPELLID_PRIEST_POM_BUFF = 41635
local SPELLID_PRIEST_POM_HEAL = 33110
--> druid lifebloom explosion (bcc)
local SPELLID_DRUID_LIFEBLOOM_BUFF = 33763
local SPELLID_DRUID_LIFEBLOOM_HEAL = 33778
local SPELLID_SANGUINE_HEAL = 226510
local SPELLID_BARGAST_DEBUFF = 334695 --REMOVE ON 10.0
@@ -1830,6 +1861,8 @@
if (is_using_spellId_override) then
spellid = override_spellId [spellid] or spellid
end
--sanguine ichor mythic dungeon affix (heal enemies)
if (spellid == SPELLID_SANGUINE_HEAL) then
@@ -1848,7 +1881,31 @@
--cura_efetiva = absorbed + amount - overhealing
cura_efetiva = cura_efetiva + amount - overhealing
end
if (isTBC) then
--earth shield
if (spellid == SPELLID_SHAMAN_EARTHSHIELD_HEAL) then
--get the information of who placed the buff into this actor
local sourceData = TBC_EarthShieldCache[who_name]
if (sourceData) then
who_serial, who_name, who_flags = unpack(sourceData)
end
--prayer of mending
elseif (spellid == SPELLID_PRIEST_POM_HEAL) then
local sourceData = TBC_PrayerOfMendingCache[who_name]
if (sourceData) then
who_serial, who_name, who_flags = unpack(sourceData)
TBC_PrayerOfMendingCache[who_name] = nil
end
--life bloom explosion (second part of the heal)
elseif (spellid == SPELLID_DRUID_LIFEBLOOM_HEAL) then
TBC_LifeBloomLatestHeal = cura_efetiva
return
end
end
_current_heal_container.need_refresh = true
if (spellid == SPELLID_KYRIAN_DRUID_HEAL) then
@@ -2127,35 +2184,6 @@
}
end
------------------------------------------------------------------------------------------------
-->
--[=[
--druid_kyrian_bounds
--damager on damager
SPELL_CAST_SUCCESS,Player-3209-065BAEDE,"Bullcéfalo-Azralon",0x512,0x0,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,326434,"Kindred Spirits",0x40,Player-3209-065BAEDE,0000000000000000,28240,28240,1233,448,472,0,0,10000,10000,200,-3298.34,5440.53,1525,5.8081,177
SPELL_AURA_APPLIED,Player-3209-065BAEDE,"Bullcéfalo-Azralon",0x512,0x0,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,326434,"Kindred Spirits",0x40,BUFF
SPELL_AURA_REMOVED,Player-3209-065BAEDE,"Bullcéfalo-Azralon",0x512,0x0,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,326434,"Kindred Spirits",0x40,BUFF
12/15 10:03:51.702 SPELL_CAST_SUCCESS,Player-3209-065BAEDE,"Bullcéfalo-Azralon",0x512,0x0,0000000000000000,nil,0x80000000,0x80000000,326446,"Empower Bond",0x40,Player-3209-065BAEDE,0000000000000000,28240,28240,1234,448,472,0,3,100,100,0,-3294.17,5437.12,1525,0.7611,177
12/15 10:03:51.702 SPELL_AURA_APPLIED,Player-3209-065BAEDE,"Bullcéfalo-Azralon",0x512,0x0,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,327139,"Kindred Empowerment",0x40,BUFF
12/15 10:03:51.702 SPELL_AURA_APPLIED,Player-3209-065BAEDE,"Bullcéfalo-Azralon",0x512,0x0,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,327022,"Kindred Empowerment",0x40,BUFF,1
12/15 10:03:51.702 SPELL_AURA_APPLIED,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,Player-3209-065BAEDE,"Bullcéfalo-Azralon",0x512,0x0,327139,"Kindred Empowerment",0x40,BUFF
12/15 10:03:51.702 SPELL_AURA_APPLIED,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,Player-3209-065BAEDE,"Bullcéfalo-Azralon",0x512,0x0,327022,"Kindred Empowerment",0x40,BUFF,1
SPELL_DAMAGE,Player-3209-065BAEDE,"Bullcéfalo-Azralon",0x512,0x0,Creature-0-4217-2222-22679-166718-000058B14F,"Manifestation of Envy",0x10a48,0x0,338411,"Kindred Empowerment",0x40,Creature-0-4217-2222-22679-166718-000058B14F,0000000000000000,4218,5895,0,0,651,0,0,2289,2289,0,-3290.46,5445.37,1525,4.1809,58,31,30,-1,64,0,0,0,nil,nil,nil
SPELL_DAMAGE,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,Creature-0-4217-2222-22679-166718-000058B14F,"Manifestation of Envy",0x10a48,0x0,338411,"Kindred Empowerment",0x40,Creature-0-4217-2222-22679-166718-000058B14F,0000000000000000,867,5895,0,0,651,0,0,2289,2289,0,-3289.84,5446.94,1525,4.3379,58,89,89,-1,64,0,0,0,nil,nil,nil
SPELL_HEAL,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,Player-3209-065BAEDE,"Bullcéfalo-Azralon",0x10512,0x0,327149,"Kindred Focus",0x40,Player-3209-065BAEDE,0000000000000000,50058,50058,1575,448,1510,8832,1,1000,1000,0,-2640.65,5656.60,1525,3.3950,177,485,485,485,0,nil
12/15 10:04:01.739 SPELL_AURA_REMOVED,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,Player-3209-065BAEDE,"Bullcéfalo-Azralon",0x512,0x0,327139,"Kindred Empowerment",0x40,BUFF
12/15 10:04:01.739 SPELL_AURA_REMOVED,Player-3209-065BAEDE,"Bullcéfalo-Azralon",0x512,0x0,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,327139,"Kindred Empowerment",0x40,BUFF
--]=]
------------------------------------------------------------------------------------------------
--> handle shields
@@ -2176,6 +2204,15 @@ SPELL_HEAL,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,Player-3209-065BAED
necro_cheat_deaths[who_serial] = true
end
if (isTBC) then
if (SHAMAN_EARTHSHIELD_BUFF[spellid]) then
TBC_EarthShieldCache[alvo_name] = {who_serial, who_name, who_flags}
elseif (spellid == SPELLID_PRIEST_POM_BUFF) then
TBC_PrayerOfMendingCache [alvo_name] = {who_serial, who_name, who_flags}
end
end
if (_recording_buffs_and_debuffs) then
if (who_name == alvo_name and raid_members_cache [who_serial] and _in_combat) then
--> call record buffs uptime
@@ -2429,7 +2466,7 @@ SPELL_HEAL,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,Player-3209-065BAED
parser:add_buff_uptime (token, time, alvo_serial, alvo_name, alvo_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, "BUFF_UPTIME_REFRESH")
end
end
------------------------------------------------------------------------------------------------
--> healing done (shields)
if (absorb_spell_list [spellid] and _recording_healing and amount) then
@@ -2447,7 +2484,17 @@ SPELL_HEAL,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,Player-3209-065BAED
return parser:heal (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, nil, 0, _math_ceil (overheal), 0, 0, nil, true)
end
end
--buff refresh
if (isTBC) then
if (SHAMAN_EARTHSHIELD_BUFF[spellid]) then
TBC_EarthShieldCache[alvo_name] = {who_serial, who_name, who_flags}
elseif (spellid == SPELLID_PRIEST_POM_BUFF) then
TBC_PrayerOfMendingCache[alvo_name] = {who_serial, who_name, who_flags}
end
end
------------------------------------------------------------------------------------------------
--> recording buffs
@@ -2571,7 +2618,23 @@ SPELL_HEAL,Player-3209-0A79112C,"Symantec-Azralon",0x511,0x0,Player-3209-065BAED
elseif (spellid == SPELLID_NECROMANCER_CHEAT_DEATH) then --remove on 10.0
necro_cheat_deaths[who_serial] = nil
end
if (isTBC) then
--shaman earth shield
if (SHAMAN_EARTHSHIELD_BUFF[spellid]) then
TBC_EarthShieldCache[alvo_name] = nil
end
--druid life bloom
if (spellid == SPELLID_DRUID_LIFEBLOOM_BUFF) then
local healAmount = TBC_LifeBloomLatestHeal
if (healAmount) then
--award the heal to the buff caster name
parser:heal("SPELL_HEAL", time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, healAmount, 0, 0, false, false)
TBC_LifeBloomLatestHeal = nil
end
end
end
--druid kyrian empower bounds (9.0 kyrian covenant - probably remove on 10.0)
@@ -3127,6 +3190,8 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
------------------------------------------------------------------------------------------------
--> check if is energy or resource
--Details:Dump({token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, amount, overpower, powertype, altpower})
--> get resource type
local is_resource, resource_amount, resource_id = resource_power_type [powertype], amount, powertype
@@ -5822,7 +5887,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
for i = 1, players do
local name, killingBlows, honorableKills, deaths, honorGained, faction, race, rank, class, classToken, damageDone, healingDone, bgRating, ratingChange, preMatchMMR, mmrChange, talentSpec
if (DetailsFramework.IsTBCWow()) then
if (isTBC) then
name, killingBlows, honorableKills, deaths, honorGained, faction, rank, race, class, classToken, damageDone, healingDone, bgRating, ratingChange, preMatchMMR, mmrChange, talentSpec = GetBattlefieldScore(i)
else
name, killingBlows, honorableKills, deaths, honorGained, faction, race, class, classToken, damageDone, healingDone, bgRating, ratingChange, preMatchMMR, mmrChange, talentSpec = GetBattlefieldScore(i)
+2 -2
View File
@@ -2165,8 +2165,8 @@ local icon_frame_on_enter = function (self)
local talent_string = ""
if (talents) then
for i = 1, #talents do
local talentID, name, texture, selected, available = GetTalentInfoByID (talents [i])
talent_string = talent_string .. " |T" .. texture .. ":" .. 24 .. ":" .. 24 ..":0:0:64:64:4:60:4:60|t"
--local talentID, name, texture, selected, available = GetTalentInfoByID (talents [i])
--talent_string = talent_string .. " |T" .. texture .. ":" .. 24 .. ":" .. 24 ..":0:0:64:64:4:60:4:60|t"
end
end
+3 -2
View File
@@ -335,11 +335,12 @@ do
name = Loc ["STRING_OPTIONS_ED"],
desc = Loc ["STRING_OPTIONS_ED_DESC"],
},
{--auto erase trash segments
type = "toggle",
get = function() return _detalhes.overall_clear_logout end,
get = function() return _detalhes.trash_auto_remove end,
set = function (self, fixedparam, value)
_detalhes:SetOverallResetOptions(nil, nil, value)
_detalhes.trash_auto_remove = value
afterUpdate()
end,
name = Loc ["STRING_OPTIONS_CLEANUP"],
+2 -1
View File
@@ -926,7 +926,7 @@ local default_profile = {
memory_ram = 64,
remove_realm_from_name = true,
trash_concatenate = false,
trash_auto_remove = true,
trash_auto_remove = false,
world_combat_is_trash = false,
--> death log
@@ -1128,6 +1128,7 @@ local default_player_data = {
--> current combat number
cached_specs = {},
cached_talents = {},
cached_roles = {},
last_day = date ("%d"),
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+5
View File
@@ -534,6 +534,11 @@ function Details:StartMeUp() --I'll never stop!
end
if (DetailsFramework.IsTBCWow()) then
--remover isso em versões mais atualizadas
if (_detalhes.bcc_counter == 18 or _detalhes.bcc_counter == 19) then
_detalhes.trash_auto_remove = false
end
local originalPosition
local isOnOriginalPosition = true