general fixes for game client versions
This commit is contained in:
+16
-2
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 fun��o que ir� atualizar as inst�ncias com segmentos no hist�rico
|
||||
|
||||
+347
@@ -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
@@ -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
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"],
|
||||
|
||||
@@ -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.
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user