updated lib RaidStatus and general bug fixes; ToC Updates
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
||||
## Interface: 90005
|
||||
## Interface: 90100
|
||||
## Title: Details! Damage Meter
|
||||
## Notes: Essential tool to impress that chick in your raid.
|
||||
## SavedVariables: _detalhes_global
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
local major = "LibRaidStatus-1.0"
|
||||
local CONST_LIB_VERSION = 16
|
||||
local CONST_LIB_VERSION = 17
|
||||
LIB_RAID_STATUS_CAN_LOAD = false
|
||||
|
||||
--declae the library within the LibStub
|
||||
@@ -27,7 +27,8 @@ LIB_RAID_STATUS_CAN_LOAD = false
|
||||
local CONST_COMM_GEARINFO_DURABILITY_PREFIX = "R"
|
||||
local CONST_COMM_PLAYER_DEAD_PREFIX = "D"
|
||||
local CONST_COMM_PLAYER_ALIVE_PREFIX = "A"
|
||||
local CONST_COMM_PLAYER_INFO_PREFIX = "P"
|
||||
local CONST_COMM_PLAYERINFO_PREFIX = "P"
|
||||
local CONST_COMM_PLAYERINFO_TALENTS_PREFIX = "T"
|
||||
|
||||
local CONST_ONE_SECOND = 1.0
|
||||
local CONST_TWO_SECONDS = 2.0
|
||||
@@ -117,7 +118,7 @@ LIB_RAID_STATUS_CAN_LOAD = false
|
||||
end
|
||||
end
|
||||
|
||||
--transform a table index a string dividing values with a comma
|
||||
--transform a table index into a string dividing values with a comma
|
||||
--@table: an indexed table with unknown size
|
||||
function raidStatusLib.PackTable(table)
|
||||
local tableSize = #table
|
||||
@@ -251,7 +252,8 @@ LIB_RAID_STATUS_CAN_LOAD = false
|
||||
[CONST_COMM_GEARINFO_DURABILITY_PREFIX] = {}, --an update of the player gear durability
|
||||
[CONST_COMM_PLAYER_DEAD_PREFIX] = {}, --player is dead
|
||||
[CONST_COMM_PLAYER_ALIVE_PREFIX] = {}, --player is alive
|
||||
[CONST_COMM_PLAYER_INFO_PREFIX] = {}, --info about the player
|
||||
[CONST_COMM_PLAYERINFO_PREFIX] = {}, --info about the player
|
||||
[CONST_COMM_PLAYERINFO_TALENTS_PREFIX] = {}, --cooldown info
|
||||
}
|
||||
|
||||
function raidStatusLib.commHandler.RegisterComm(prefix, func)
|
||||
@@ -366,6 +368,7 @@ LIB_RAID_STATUS_CAN_LOAD = false
|
||||
"GearUpdate",
|
||||
"GearDurabilityUpdate",
|
||||
"PlayerUpdate",
|
||||
"TalentUpdate",
|
||||
}
|
||||
|
||||
--save build the table to avoid lose registered events on older versions
|
||||
@@ -539,11 +542,25 @@ LIB_RAID_STATUS_CAN_LOAD = false
|
||||
end,
|
||||
|
||||
["PLAYER_REGEN_DISABLED"] = function(...)
|
||||
|
||||
--entered in combat
|
||||
end,
|
||||
|
||||
["PLAYER_REGEN_ENABLED"] = function(...)
|
||||
|
||||
--left combat
|
||||
raidStatusLib.Schedules.NewUniqueTimer(10 + math.random(0, 4), raidStatusLib.gearManager.SendDurability, "gearManager", "sendDurability_Schedule")
|
||||
end,
|
||||
|
||||
["UPDATE_INVENTORY_DURABILITY"] = function(...)
|
||||
--an item has changed its durability
|
||||
--do not trigger this event while in combat
|
||||
if (not InCombatLockdown()) then
|
||||
raidStatusLib.Schedules.NewUniqueTimer(5 + math.random(0, 4), raidStatusLib.gearManager.SendDurability, "gearManager", "sendDurability_Schedule")
|
||||
end
|
||||
end,
|
||||
|
||||
["PLAYER_EQUIPMENT_CHANGED"] = function(...)
|
||||
--player changed an equipment
|
||||
raidStatusLib.Schedules.NewUniqueTimer(4 + math.random(0, 5), raidStatusLib.gearManager.SendAllGearInfo, "gearManager", "sendAllGearInfo_Schedule")
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -552,6 +569,8 @@ LIB_RAID_STATUS_CAN_LOAD = false
|
||||
eventFrame:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
eventFrame:RegisterEvent("PLAYER_REGEN_DISABLED")
|
||||
eventFrame:RegisterEvent("PLAYER_REGEN_ENABLED")
|
||||
eventFrame:RegisterEvent("UPDATE_INVENTORY_DURABILITY")
|
||||
eventFrame:RegisterEvent("PLAYER_EQUIPMENT_CHANGED")
|
||||
|
||||
--eventFrame:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED")
|
||||
if (not isTimewalkWoW()) then
|
||||
@@ -743,12 +762,12 @@ LIB_RAID_STATUS_CAN_LOAD = false
|
||||
unitCooldownTable[spellId] = spellIdTable
|
||||
end
|
||||
|
||||
function raidStatusLib.cooldownManager.GetCooldownTable()
|
||||
function raidStatusLib.cooldownManager.GetAllPlayersCooldown()
|
||||
return raidStatusLib.cooldownManager.playerData
|
||||
end
|
||||
|
||||
--@playerName: name of the player
|
||||
function raidStatusLib.cooldownManager.GetPlayerCooldownTable(playerName)
|
||||
function raidStatusLib.cooldownManager.GetPlayerCooldowns(playerName)
|
||||
return raidStatusLib.cooldownManager.playerData[playerName]
|
||||
end
|
||||
|
||||
@@ -760,12 +779,13 @@ LIB_RAID_STATUS_CAN_LOAD = false
|
||||
--get the cooldown time for this spell
|
||||
local timeLeft, charges, startTime, duration = raidStatusLib.cooldownManager.GetCooldownStatus(spellId)
|
||||
local playerName = UnitName("player")
|
||||
local playerCooldownTable = raidStatusLib.cooldownManager.GetPlayerCooldowns(playerName)
|
||||
|
||||
--update the time left
|
||||
singleCooldownUpdate(playerName, spellId, timeLeft, charges, startTime, duration)
|
||||
|
||||
--trigger a public callback
|
||||
raidStatusLib.publicCallback.TriggerCallback("CooldownUpdate", playerName, spellId, timeLeft, charges, startTime, duration, raidStatusLib.cooldownManager.playerData)
|
||||
raidStatusLib.publicCallback.TriggerCallback("CooldownUpdate", playerName, spellId, timeLeft, charges, startTime, duration, playerCooldownTable, raidStatusLib.cooldownManager.playerData)
|
||||
|
||||
--send to comm
|
||||
raidStatusLib.cooldownManager.SendCooldownUpdate(spellId, timeLeft, charges, startTime, duration)
|
||||
@@ -842,7 +862,7 @@ LIB_RAID_STATUS_CAN_LOAD = false
|
||||
raidStatusLib.TCopy(unitCooldownTable, cooldownsTable)
|
||||
|
||||
--trigger a public callback
|
||||
raidStatusLib.publicCallback.TriggerCallback("CooldownListUpdate", unitName, raidStatusLib.cooldownManager.playerData)
|
||||
raidStatusLib.publicCallback.TriggerCallback("CooldownListUpdate", unitName, unitCooldownTable, raidStatusLib.cooldownManager.playerData)
|
||||
end
|
||||
|
||||
--check if a player cooldown is ready or if is in cooldown
|
||||
@@ -972,7 +992,7 @@ C_Timer.After(0.1, function()
|
||||
if (UnitInParty(unit) or UnitInRaid(unit)) then
|
||||
local unitName = UnitName(unit)
|
||||
local cooldownInfo = allCooldownsFromLib[spellId]
|
||||
if (cooldownInfo and unitName and not raidStatusLib.cooldownManager.GetPlayerCooldownTable(unitName)) then
|
||||
if (cooldownInfo and unitName and not raidStatusLib.cooldownManager.GetPlayerCooldowns(unitName)) then
|
||||
--check for cast_success spam from channel spells
|
||||
local unitCastCooldown = recentCastedSpells[UnitGUID(unit)]
|
||||
if (not unitCastCooldown) then
|
||||
@@ -1009,11 +1029,11 @@ end)
|
||||
playerData = {},
|
||||
}
|
||||
|
||||
function raidStatusLib.gearManager.GetGearTable()
|
||||
function raidStatusLib.gearManager.GetAllPlayersGear()
|
||||
return raidStatusLib.gearManager.playerData
|
||||
end
|
||||
|
||||
function raidStatusLib.gearManager.GetPlayerGearTable(playerName, createNew)
|
||||
function raidStatusLib.gearManager.GetPlayerGear(playerName, createNew)
|
||||
local playerGearInfo = raidStatusLib.gearManager.playerData[playerName]
|
||||
if (not playerGearInfo and createNew) then
|
||||
playerGearInfo = {
|
||||
@@ -1090,10 +1110,10 @@ end)
|
||||
|
||||
--on receive the durability (sent when the player get a ress)
|
||||
function raidStatusLib.gearManager.UpdateUnitGearDurability(playerName, durability)
|
||||
local playerGearInfo = raidStatusLib.gearManager.GetPlayerGearTable(playerName)
|
||||
local playerGearInfo = raidStatusLib.gearManager.GetPlayerGear(playerName)
|
||||
if (playerGearInfo) then
|
||||
playerGearInfo.durability = durability
|
||||
raidStatusLib.publicCallback.TriggerCallback("GearDurabilityUpdate", playerName, durability, raidStatusLib.gearManager.GetGearTable())
|
||||
raidStatusLib.publicCallback.TriggerCallback("GearDurabilityUpdate", playerName, durability, playerGearInfo, raidStatusLib.gearManager.GetAllPlayersGear())
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1222,7 +1242,7 @@ end)
|
||||
|
||||
--when received the gear update from another player, store it and trigger a callback
|
||||
function raidStatusLib.gearManager.AddUnitGearInfoList(playerName, itemLevel, durability, weaponEnchant, noEnchantTable, noGemsTable)
|
||||
local playerGearInfo = raidStatusLib.gearManager.GetPlayerGearTable(playerName, true)
|
||||
local playerGearInfo = raidStatusLib.gearManager.GetPlayerGear(playerName, true)
|
||||
|
||||
playerGearInfo.ilevel = itemLevel
|
||||
playerGearInfo.durability = durability
|
||||
@@ -1230,7 +1250,7 @@ end)
|
||||
playerGearInfo.noGems = noGemsTable
|
||||
playerGearInfo.noEnchants = noEnchantTable
|
||||
|
||||
raidStatusLib.publicCallback.TriggerCallback("GearUpdate", playerName, playerGearInfo, raidStatusLib.gearManager.GetGearTable())
|
||||
raidStatusLib.publicCallback.TriggerCallback("GearUpdate", playerName, playerGearInfo, raidStatusLib.gearManager.GetAllPlayersGear())
|
||||
end
|
||||
|
||||
--triggered when the lib receives a gear information from another player in the raid
|
||||
@@ -1281,7 +1301,7 @@ end)
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
--> ~player general info
|
||||
--> ~player general ~info
|
||||
|
||||
raidStatusLib.playerInfoManager = {
|
||||
--structure:
|
||||
@@ -1289,11 +1309,11 @@ end)
|
||||
playerData = {},
|
||||
}
|
||||
|
||||
function raidStatusLib.playerInfoManager.GetPlayerInfo()
|
||||
function raidStatusLib.playerInfoManager.GetAllPlayersInfo()
|
||||
return raidStatusLib.playerInfoManager.playerData
|
||||
end
|
||||
|
||||
function raidStatusLib.playerInfoManager.GetPlayerInfoTable(playerName, createNew)
|
||||
function raidStatusLib.playerInfoManager.GetPlayerInfo(playerName, createNew)
|
||||
local playerInfo = raidStatusLib.playerInfoManager.playerData[playerName]
|
||||
if (not playerInfo and createNew) then
|
||||
playerInfo = {
|
||||
@@ -1309,15 +1329,15 @@ end)
|
||||
end
|
||||
|
||||
function raidStatusLib.playerInfoManager.AddPlayerInfo(playerName, specId, renown, covenantId, talentsTableUnpacked, conduitsTableUnpacked)
|
||||
local playerInfoTable = raidStatusLib.playerInfoManager.GetPlayerInfoTable(playerName, true)
|
||||
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerInfo(playerName, true)
|
||||
|
||||
playerInfoTable.specId = specId
|
||||
playerInfoTable.renown = renown
|
||||
playerInfoTable.covenantId = covenantId
|
||||
playerInfoTable.talents = talentsTableUnpacked
|
||||
playerInfoTable.conduits = conduitsTableUnpacked
|
||||
playerInfo.specId = specId
|
||||
playerInfo.renown = renown
|
||||
playerInfo.covenantId = covenantId
|
||||
playerInfo.talents = talentsTableUnpacked
|
||||
playerInfo.conduits = conduitsTableUnpacked
|
||||
|
||||
raidStatusLib.publicCallback.TriggerCallback("PlayerUpdate", playerName, raidStatusLib.playerInfoManager.playerData[playerName], raidStatusLib.playerInfoManager.GetPlayerInfo())
|
||||
raidStatusLib.publicCallback.TriggerCallback("PlayerUpdate", playerName, raidStatusLib.playerInfoManager.playerData[playerName], raidStatusLib.playerInfoManager.GetAllPlayersInfo())
|
||||
end
|
||||
|
||||
--triggered when the lib receives a gear information from another player in the raid
|
||||
@@ -1338,15 +1358,15 @@ end)
|
||||
--unpack the conduits data as a ipairs table
|
||||
local conduitsTableUnpacked = raidStatusLib.UnpackTable(data, conduitsTableIndex, false, false, conduitsSize)
|
||||
|
||||
--add to the list of player information
|
||||
--add to the list of players information and also trigger a public callback
|
||||
raidStatusLib.playerInfoManager.AddPlayerInfo(source, specId, renown, covenantId, talentsTableUnpacked, conduitsTableUnpacked)
|
||||
end
|
||||
raidStatusLib.commHandler.RegisterComm(CONST_COMM_PLAYER_INFO_PREFIX, raidStatusLib.playerInfoManager.OnReceivePlayerFullInfo)
|
||||
raidStatusLib.commHandler.RegisterComm(CONST_COMM_PLAYERINFO_PREFIX, raidStatusLib.playerInfoManager.OnReceivePlayerFullInfo)
|
||||
|
||||
function raidStatusLib.playerInfoManager.SendAllPlayerInfo()
|
||||
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerFullInfo()
|
||||
|
||||
local dataToSend = CONST_COMM_PLAYER_INFO_PREFIX .. ","
|
||||
local dataToSend = CONST_COMM_PLAYERINFO_PREFIX .. ","
|
||||
dataToSend = dataToSend .. playerInfo[1] .. "," --spec id
|
||||
dataToSend = dataToSend .. playerInfo[2] .. "," --renown
|
||||
dataToSend = dataToSend .. playerInfo[3] .. "," --covenantId
|
||||
@@ -1387,7 +1407,7 @@ function raidStatusLib.playerInfoManager.GetPlayerFullInfo()
|
||||
local talents = {0, 0, 0, 0, 0, 0, 0}
|
||||
for talentTier = 1, 7 do
|
||||
for talentColumn = 1, 3 do
|
||||
local talentId, name, texture, selected, available = GetTalentInfo(talentTier, talentColumn, 1, true, "player")
|
||||
local talentId, name, texture, selected, available = GetTalentInfo(talentTier, talentColumn, 1)
|
||||
if (selected) then
|
||||
talents[talentTier] = talentId
|
||||
break
|
||||
@@ -1471,7 +1491,6 @@ function raidStatusLib.playerInfoManager.GetPlayerFullInfo()
|
||||
["spellID"] = 0
|
||||
}
|
||||
--]=]
|
||||
|
||||
end
|
||||
|
||||
function raidStatusLib.playerInfoManager.onEnterWorld()
|
||||
@@ -1479,6 +1498,49 @@ function raidStatusLib.playerInfoManager.onEnterWorld()
|
||||
end
|
||||
raidStatusLib.internalCallback.RegisterCallback("onEnterWorld", raidStatusLib.playerInfoManager.onEnterWorld)
|
||||
|
||||
--talent update
|
||||
function raidStatusLib.playerInfoManager.sendTalentUpdate()
|
||||
--talents
|
||||
local talentsToSend = {0, 0, 0, 0, 0, 0, 0}
|
||||
for talentTier = 1, 7 do
|
||||
for talentColumn = 1, 3 do
|
||||
local talentId, name, texture, selected, available = GetTalentInfo(talentTier, talentColumn, 1)
|
||||
if (selected) then
|
||||
talentsToSend[talentTier] = talentId
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local dataToSend = CONST_COMM_PLAYERINFO_TALENTS_PREFIX .. ","
|
||||
local talentsString = raidStatusLib.PackTable(talentsToSend)
|
||||
dataToSend = dataToSend .. talentsString
|
||||
|
||||
--send the data
|
||||
raidStatusLib.commHandler.SendCommData(dataToSend)
|
||||
diagnosticComm("SendTalentUpdateData| " .. dataToSend) --debug
|
||||
end
|
||||
|
||||
function raidStatusLib.playerInfoManager.scheduleTalentUpdate()
|
||||
raidStatusLib.Schedules.NewUniqueTimer(1 + math.random(0, 1), raidStatusLib.playerInfoManager.sendTalentUpdate, "playerInfoManager", "sendTalent_Schedule")
|
||||
end
|
||||
raidStatusLib.internalCallback.RegisterCallback("talentUpdate", raidStatusLib.playerInfoManager.scheduleTalentUpdate)
|
||||
|
||||
function raidStatusLib.playerInfoManager.OnReceiveTalentsUpdate(data, source)
|
||||
local talentsTableUnpacked = raidStatusLib.UnpackTable(data, 1, false, false, 7)
|
||||
|
||||
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerInfo(source)
|
||||
if (playerInfo) then
|
||||
playerInfo.talents = talentsTableUnpacked
|
||||
|
||||
--trigger public callback event
|
||||
raidStatusLib.publicCallback.TriggerCallback("TalentUpdate", source, playerInfo, raidStatusLib.playerInfoManager.GetAllPlayersInfo())
|
||||
end
|
||||
end
|
||||
raidStatusLib.commHandler.RegisterComm(CONST_COMM_PLAYERINFO_TALENTS_PREFIX, raidStatusLib.playerInfoManager.OnReceiveTalentsUpdate)
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
--> data
|
||||
|
||||
|
||||
+180
-54
@@ -1,100 +1,154 @@
|
||||
|
||||
Raid Status is a library to share the player information while playing in a group or raid.
|
||||
|
||||
Install:
|
||||
Place the library at your addon folder/libs/LibRaidStatus/
|
||||
Inside LibRaidStatus there's 5 files.
|
||||
Add <Include file="Libs\LibRaidStatus\lib.xml"/> to your libs.xml located in the root folder of the addon or
|
||||
<Include file="LibRaidStatus\lib.xml"/> if it is located inside the Libs folder.
|
||||
Close and open the game client.
|
||||
|
||||
Inside your lua file, get the library object, you need to do this in order to grab a reference of the library:
|
||||
local raidStatusLib = LibStub:GetLibrary("LibRaidStatus-1.0")
|
||||
With this object, you can start querying the library for information.
|
||||
|
||||
Functions:
|
||||
|
||||
local playerGearInfo = raidStatusLib.gearManager.GetPlayerGearTable(playerName)
|
||||
playerGearInfo = {
|
||||
local allPlayersGear = raidStatusLib.gearManager.GetAllPlayersGear()
|
||||
allPlayersGear = {
|
||||
["playerName1"] = playerGear,
|
||||
["playerName2"] = playerGear,
|
||||
["playerName3"] = playerGear,
|
||||
}
|
||||
|
||||
local playerGear = raidStatusLib.gearManager.GetPlayerGear(playerName)
|
||||
playerGear = {
|
||||
.durability = number
|
||||
.ilevel = number
|
||||
.noGems = {socketId}
|
||||
.noEnchants = {socketId}
|
||||
.weaponEnchant = number (oils)
|
||||
}
|
||||
|
||||
local playerInformation = raidStatusLib.playerInfoManager.GetPlayerInfoTable(playerName)
|
||||
playerInformation = {
|
||||
|
||||
local allPlayersCooldowns = raidStatusLib.cooldownManager.GetAllPlayersCooldown()
|
||||
allPlayersCooldowns = {
|
||||
["playerName1"] = playerCooldows,
|
||||
["playerName2"] = playerCooldows,
|
||||
["playerName3"] = playerCooldows,
|
||||
}
|
||||
|
||||
local playerCooldows = raidStatusLib.cooldownManager.GetPlayerCooldowns(playerName)
|
||||
playerCooldows = {
|
||||
[cooldownSpellId] = {
|
||||
[1] = time left (number),
|
||||
[2] = charges (number),
|
||||
[3] = start time (number),
|
||||
[4] = duration (number)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
local allPlayersInfo = raidStatusLib.playerInfoManager.GetAllPlayersInfo()
|
||||
allPlayersInfo = {
|
||||
["playerName1"] = playerInfo,
|
||||
["playerName2"] = playerInfo,
|
||||
["playerName3"] = playerInfo,
|
||||
}
|
||||
|
||||
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerInfo(playerName)
|
||||
playerInfo = {
|
||||
.specId = number
|
||||
.renown = number,
|
||||
.covenantId = number,
|
||||
.talents = {talentId},
|
||||
.conduits = {spellId},
|
||||
}
|
||||
|
||||
local playerCooldows = raidStatusLib.cooldownManager.GetPlayerCooldownTable(playerName)
|
||||
playerCooldows = {
|
||||
[cooldownSpellId] = {
|
||||
.timeLeft,
|
||||
.charges
|
||||
}
|
||||
}
|
||||
|
||||
Callbacks available
|
||||
Callbacks:
|
||||
|
||||
===================================================================================================================================
|
||||
"CooldownListUpdate": triggers when the lib received a list of cooldowns from another player in the group.
|
||||
===================================================================================================================================
|
||||
|
||||
function MyAddonObject.OnReceiveCooldownListUpdate(unitName, cooldownTable)
|
||||
function MyAddonObject.OnReceiveCooldownListUpdate(unitName, playerCooldows, allPlayersCooldowns)
|
||||
--foreach player in the cooldown table
|
||||
for unitName, playerCooldownTable in pairs(cooldownTable) do
|
||||
for spellId, cooldownInfoTable in pairs(playerCooldownTable) do
|
||||
--if timeLeft is zero, the spell is ready
|
||||
for unitName, playerCooldows in pairs(allPlayersCooldowns) do
|
||||
for spellId, cooldownInfoTable in pairs(playerCooldows) do
|
||||
--time left for the cooldown be ready to use, if time left is zero, the spell is ready
|
||||
local timeLeft = cooldownInfoTable[1]
|
||||
--in some cases the spell is on cooldown but there's a charge to use
|
||||
local charges = cooldownInfoTable[2]
|
||||
--cooldown start time
|
||||
local startTime = cooldownInfoTable[3]
|
||||
--cooldown duration, e.g. 180 for 3 minutes cooldown
|
||||
local totalDuration = cooldownInfoTable[4]
|
||||
end
|
||||
end
|
||||
|
||||
--get the cooldowns for the unit which got the cooldown update
|
||||
local unitCooldownTable = cooldownTable[unitName]
|
||||
for spellId, cooldownInfoTable in pairs(unitCooldownTable) do
|
||||
--if timeLeft is zero, the spell is ready
|
||||
local timeLeft = cooldownInfoTable[1]
|
||||
--in some cases the spell is on cooldown but there's a charge to use
|
||||
local charges = cooldownInfoTable[2]
|
||||
local playerCooldows = allPlayersCooldowns[unitName]
|
||||
for spellId, cooldownInfoTable in pairs(playerCooldows) do
|
||||
--time left for the cooldown be ready to use, if time left is zero, the spell is ready
|
||||
local timeLeft = cooldownInfoTable[1]
|
||||
--in some cases the spell is on cooldown but there's a charge to use
|
||||
local charges = cooldownInfoTable[2]
|
||||
--cooldown start time
|
||||
local startTime = cooldownInfoTable[3]
|
||||
--cooldown duration, e.g. 180 for 3 minutes cooldown
|
||||
local totalDuration = cooldownInfoTable[4]
|
||||
end
|
||||
end
|
||||
|
||||
--registering the callback:
|
||||
raidStatusLib.RegisterCallback(MyAddonObject, "CooldownListUpdate", "OnReceiveCooldownListUpdate")
|
||||
|
||||
|
||||
===================================================================================================================================
|
||||
"CooldownUpdate": triggered when any unit in the group used a cooldown or the timeleft got an update
|
||||
===================================================================================================================================
|
||||
|
||||
function MyAddonObject.OnReceiveCooldownUpdate(unitName, spellId, cooldownTimeLeft, charges, playerCooldownTable)
|
||||
local unitCooldowns = cooldownTable[unitName]
|
||||
local cooldownTimeLeft2 = unitCooldowns[spellId]
|
||||
print("is iqual:", cooldownTimeLeft == cooldownTimeLeft2)
|
||||
function MyAddonObject.OnReceiveCooldownUpdate(unitName, spellId, cooldownTimeLeft, charges, startTime, totalDuration, playerCooldows, allPlayersCooldowns)
|
||||
local unitCooldowns = allPlayersCooldowns[unitName] --is the same as using just 'playerCooldows' variable
|
||||
|
||||
--get the cooldowns for the unit which got the cooldown update
|
||||
for spellId, cooldownInfoTable in pairs(playerCooldownTable) do
|
||||
--if timeLeft is zero, the spell is ready
|
||||
local timeLeft = cooldownInfoTable[1]
|
||||
--in some cases the spell is on cooldown but there's a charge to use
|
||||
local charges = cooldownInfoTable[2]
|
||||
for spellId, cooldownInfoTable in pairs(playerCooldows) do
|
||||
--time left for the cooldown be ready to use, if time left is zero, the spell is ready
|
||||
local timeLeft = cooldownInfoTable[1]
|
||||
--in some cases the spell is on cooldown but there's a charge to use
|
||||
local charges = cooldownInfoTable[2]
|
||||
--cooldown start time
|
||||
local startTime = cooldownInfoTable[3]
|
||||
--cooldown duration, e.g. 180 for 3 minutes cooldown
|
||||
local totalDuration = cooldownInfoTable[4]
|
||||
end
|
||||
end
|
||||
|
||||
--registering the callback:
|
||||
raidStatusLib.RegisterCallback(MyAddonObject, "CooldownUpdate", "OnReceiveCooldownUpdate")
|
||||
|
||||
|
||||
===================================================================================================================================
|
||||
"CooldownListWiped": when the list of cooldowns get a wipe, usually when the player leave the group
|
||||
===================================================================================================================================
|
||||
|
||||
function MyAddonObject.OnCooldownListWipe(cooldownTable)
|
||||
print ("is nil:", next(cooldownTable))
|
||||
function MyAddonObject.OnCooldownListWipe(allPlayersCooldowns)
|
||||
--print ("is nil:", next(allPlayersCooldowns))
|
||||
end
|
||||
|
||||
--registering the callback:
|
||||
raidStatusLib.RegisterCallback(MyAddonObject, "CooldownListWiped", "OnCooldownListWipe")
|
||||
|
||||
|
||||
"GearDurabilityUpdate": when a player in the group revives, the gear durability is sent
|
||||
|
||||
function MyAddonObject.OnGearDurabilityUpdate(playerName, durability, gearTable)
|
||||
print(playerName .. " durability is now " .. durability)
|
||||
end
|
||||
raidStatusLib.RegisterCallback(MyAddonObject, "GearDurabilityUpdate", "OnGearDurabilityUpdate")
|
||||
|
||||
|
||||
===================================================================================================================================
|
||||
"GearUpdate": when received an update from a player with all information about the gear
|
||||
===================================================================================================================================
|
||||
|
||||
function MyAddonObject.OnGearUpdate(playerName, playerGearInfo, gearTable)
|
||||
local itemLevelNumber = playerGearInfo.ilevel
|
||||
local durabilityNumber = playerGearInfo.durability
|
||||
function MyAddonObject.OnGearUpdate(playerName, playerGear, allPlayersGear)
|
||||
local itemLevelNumber = playerGear.ilevel
|
||||
local durabilityNumber = playerGear.durability
|
||||
--hasWeaponEnchant is 1 have enchant or 0 is don't
|
||||
local hasWeaponEnchantNumber = playerGearInfo.weaponEnchant
|
||||
local noEnchantTable = playerGearInfo.noEnchants
|
||||
local noGemsTable = playerGearInfo.noGems
|
||||
local hasWeaponEnchantNumber = playerGear.weaponEnchant
|
||||
local noEnchantTable = playerGear.noEnchants
|
||||
local noGemsTable = playerGear.noGems
|
||||
|
||||
for index, slotIdWithoutEnchant in ipairs (noEnchantTable) do
|
||||
end
|
||||
@@ -102,12 +156,84 @@ function MyAddonObject.OnGearUpdate(playerName, playerGearInfo, gearTable)
|
||||
for index, slotIdWithEmptyGemSocket in ipairs (noGemsTable) do
|
||||
end
|
||||
end
|
||||
|
||||
--registering the callback:
|
||||
raidStatusLib.RegisterCallback(MyAddonObject, "GearUpdate", "OnGearUpdate")
|
||||
|
||||
===================================================================================================================================
|
||||
"GearDurabilityUpdate": when the gear durability of a player in the group changes
|
||||
===================================================================================================================================
|
||||
|
||||
"GearListWiped": when the list of gear get a wipe, usually when the player leave the group
|
||||
|
||||
function MyAddonObject.OnGearListWiped(gearTable)
|
||||
print ("is nil:", next(gearTable))
|
||||
function MyAddonObject.OnGearDurabilityUpdate(playerName, durability, playerGear, allPlayersGear)
|
||||
--print(playerName .. " durability is now " .. durability)
|
||||
end
|
||||
|
||||
--registering the callback:
|
||||
raidStatusLib.RegisterCallback(MyAddonObject, "GearDurabilityUpdate", "OnGearDurabilityUpdate")
|
||||
|
||||
===================================================================================================================================
|
||||
"GearListWiped": when the list of gear get a wipe, usually when the player leave the group
|
||||
===================================================================================================================================
|
||||
|
||||
function MyAddonObject.OnGearListWiped(allPlayersGear)
|
||||
--print ("is nil:", next(allPlayersGear))
|
||||
end
|
||||
|
||||
--registering the callback:
|
||||
raidStatusLib.RegisterCallback(MyAddonObject, "GearListWiped", "OnGearListWiped")
|
||||
|
||||
===================================================================================================================================
|
||||
"PlayerUpdate": received a player information about its spec, talents, etc...
|
||||
===================================================================================================================================
|
||||
|
||||
function MyAddonObject.OnPlayerUpdate(playerName, playerInfo, allPlayersInfo)
|
||||
for unitName, playerInfo in pairs(allPlayersInfo) do
|
||||
local specId = playerInfo.specId
|
||||
local renown = playerInfo.renown
|
||||
local covenantId = playerInfo.covenantId
|
||||
local talents = playerInfo.talents
|
||||
local conduits = playerInfo.conduits
|
||||
end
|
||||
end
|
||||
|
||||
--registering the callback:
|
||||
raidStatusLib.RegisterCallback(MyAddonObject, "PlayerUpdate", "OnPlayerUpdate")
|
||||
|
||||
===================================================================================================================================
|
||||
"TalentsUpdate": when a unit changed a talent
|
||||
===================================================================================================================================
|
||||
|
||||
function MyAddonObject.OnTalentUpdate(playerName, talents, playerInfo, allPlayersInfo)
|
||||
for i = 1, 7 do
|
||||
local talentId = talents[i]
|
||||
local talentID, name, texture, selected, available = GetTalentInfoByID(talentId)
|
||||
print(name)
|
||||
end
|
||||
end
|
||||
|
||||
--registering the callback:
|
||||
raidStatusLib.RegisterCallback(MyAddonObject, "TalentUpdate", "OnTalentUpdate")
|
||||
|
||||
|
||||
===================================================================================================================================
|
||||
"OnPlayerDeath": when a player dies
|
||||
===================================================================================================================================
|
||||
|
||||
function MyAddonObject.OnPlayerDeath(playerName)
|
||||
print(playerName .. " died.")
|
||||
end
|
||||
|
||||
--registering the callback:
|
||||
raidStatusLib.RegisterCallback(MyAddonObject, "OnPlayerDeath", "OnPlayerDeath")
|
||||
|
||||
===================================================================================================================================
|
||||
"OnPlayerRess": when a player revives
|
||||
===================================================================================================================================
|
||||
|
||||
function MyAddonObject.OnPlayerRess(playerName)
|
||||
print(playerName .. " is alive.")
|
||||
end
|
||||
|
||||
--registering the callback:
|
||||
raidStatusLib.RegisterCallback(MyAddonObject, "OnPlayerRess", "OnPlayerRess")
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
|
||||
local version, build, date, tocversion = GetBuildInfo()
|
||||
|
||||
_detalhes.build_counter = 8637
|
||||
_detalhes.alpha_build_counter = 8637 --if this is higher than the regular counter, use it instead
|
||||
_detalhes.bcc_counter = 23
|
||||
_detalhes.build_counter = 8697
|
||||
_detalhes.alpha_build_counter = 8697 --if this is higher than the regular counter, use it instead
|
||||
_detalhes.bcc_counter = 24
|
||||
_detalhes.dont_open_news = true
|
||||
_detalhes.game_version = version
|
||||
_detalhes.userversion = version .. _detalhes.build_counter
|
||||
|
||||
@@ -128,12 +128,12 @@ function Details.CooldownTracking.ProcessUnitCooldowns(unitId, statusBarFrameId,
|
||||
return
|
||||
end
|
||||
|
||||
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerInfo()
|
||||
local allPlayersInfo = raidStatusLib.playerInfoManager.GetAllPlayersInfo()
|
||||
local allCooldownsFromLib = LIB_RAID_STATUS_COOLDOWNS_BY_SPEC
|
||||
local cooldownsEnabled = Details.ocd_tracker.cooldowns
|
||||
|
||||
local unitName = UnitName(unitId)
|
||||
local thisPlayerInfo = playerInfo[unitName]
|
||||
local thisPlayerInfo = allPlayersInfo[unitName]
|
||||
local GUID = UnitGUID(unitId)
|
||||
local _, unitClassEng, classId = UnitClass(unitId)
|
||||
local unitSpec = (thisPlayerInfo and thisPlayerInfo.specId) or (Details:GetSpecFromSerial(GUID)) or 0
|
||||
@@ -261,7 +261,7 @@ function Details.CooldownTracking.RefreshCooldowns()
|
||||
|
||||
--local cache saved with the character savedVariables
|
||||
local cooldownCache = screenPanel.cooldownCache
|
||||
local cooldownStatus = raidStatusLib.cooldownManager.GetCooldownTable()
|
||||
local cooldownStatus = raidStatusLib.cooldownManager.GetAllPlayersCooldown()
|
||||
local cooldownIndex = 1
|
||||
|
||||
for unitName, allPlayerCooldowns in pairs(cooldownStatus) do
|
||||
|
||||
@@ -2163,10 +2163,12 @@ local icon_frame_on_enter = function (self)
|
||||
_detalhes:AddTooltipHeaderStatusbar()
|
||||
|
||||
local talent_string = ""
|
||||
if (talents) then
|
||||
if (talents and not DetailsFramework.IsTBCWow()) 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])
|
||||
if (texture) then
|
||||
talent_string = talent_string .. " |T" .. texture .. ":" .. 24 .. ":" .. 24 ..":0:0:64:64:4:60:4:60|t"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Interface: 90005
|
||||
## Interface: 90100
|
||||
## Title: Details!: Storage
|
||||
## Notes: Stores information for Details! Damage Meter
|
||||
## DefaultState: Enabled
|
||||
|
||||
@@ -1480,7 +1480,8 @@ function EncounterDetails:OpenAndRefresh (_, segment)
|
||||
local jaFoi = {}
|
||||
|
||||
for id, tabela in _pairs (habilidades_usadas) do
|
||||
local spellname = GetSpellInfo (tabela [4])
|
||||
local spellname = Details.GetSpellInfo(tabela [4])
|
||||
|
||||
if (not jaFoi [spellname]) then
|
||||
tabela [5] = spellname
|
||||
tabela_em_ordem [#tabela_em_ordem+1] = tabela
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Interface: 90005
|
||||
## Interface: 90100
|
||||
## Title: Details!: Encounter Breakdown (plugin)
|
||||
## Notes: Show detailed information about a boss encounter. Also provide damage per phase, graphic charts, easy weakauras creation.
|
||||
## RequiredDeps: Details
|
||||
|
||||
@@ -67,7 +67,7 @@ end
|
||||
tinsert (UISpecialFrames, "Details_RaidCheck")
|
||||
DetailsRaidCheck:SetPluginDescription (Loc ["STRING_RAIDCHECK_PLUGIN_DESC"])
|
||||
|
||||
local version = "v2.0"
|
||||
local version = "v3.0.1"
|
||||
|
||||
local debugmode = false
|
||||
--local debugmode = true
|
||||
@@ -380,8 +380,9 @@ end
|
||||
data = dataInOrder
|
||||
|
||||
local raidStatusLib = LibStub:GetLibrary("LibRaidStatus-1.0")
|
||||
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerInfo()
|
||||
local gearInfo = raidStatusLib.gearManager.GetGearTable()
|
||||
--get the information of all players
|
||||
local playersInfoData = raidStatusLib.playerInfoManager.GetAllPlayersInfo()
|
||||
local playersGearData = raidStatusLib.gearManager.GetAllPlayersGear()
|
||||
|
||||
local libRaidStatus = 0
|
||||
|
||||
@@ -393,7 +394,7 @@ end
|
||||
local line = self:GetLine (i)
|
||||
if (line) then
|
||||
|
||||
local thisPlayerInfo = playerInfo[playerTable.UnitNameRealm]
|
||||
local thisPlayerInfo = playersInfoData[playerTable.UnitNameRealm]
|
||||
if (thisPlayerInfo) then
|
||||
local playerCovenantId = thisPlayerInfo.covenantId
|
||||
if (playerCovenantId > 0) then
|
||||
@@ -407,7 +408,7 @@ end
|
||||
end
|
||||
|
||||
--repair status
|
||||
local thisPlayerGearInfo = gearInfo[playerTable.UnitNameRealm]
|
||||
local thisPlayerGearInfo = playersGearData[playerTable.UnitNameRealm]
|
||||
if (thisPlayerGearInfo) then
|
||||
line.RepairStatus:SetText(thisPlayerGearInfo.durability .. "%")
|
||||
else
|
||||
@@ -615,6 +616,7 @@ end
|
||||
end)
|
||||
|
||||
local update_panel = function (self, elapsed)
|
||||
|
||||
show_panel.NextUpdate = show_panel.NextUpdate - elapsed
|
||||
|
||||
if (show_panel.NextUpdate > 0) then
|
||||
@@ -684,9 +686,11 @@ end
|
||||
local talentsTable = _detalhes:GetTalents (unitSerial)
|
||||
|
||||
unitClassID = ((unitClassID + 128) ^ 4) + tonumber (string.byte (unitName, 1) .. "" .. string.byte (unitName, 2))
|
||||
|
||||
local unitNameWithRealm = GetUnitName(unitID, true)
|
||||
|
||||
tinsert (PlayerData, {unitName, unitClassID,
|
||||
Name = unitName,
|
||||
UnitNameRealm = unitNameWithRealm,
|
||||
Class = unitClass,
|
||||
Serial = unitSerial,
|
||||
Role = unitRole,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Interface: 90005
|
||||
## Interface: 90100
|
||||
## Title: Details!: Raid Check (plugin)
|
||||
## Notes: Show talents and item level for all members in your group, also shows food and flask state.
|
||||
## RequiredDeps: Details
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Interface: 90005
|
||||
## Interface: 90100
|
||||
## Title: Details!: Streamer (plugin)
|
||||
## Notes: Show which spells you are casting, viewers can see what are you doing and follow your steps.
|
||||
## RequiredDeps: Details
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Interface: 90005
|
||||
## Interface: 90100
|
||||
## Title: Details!: Tiny Threat (plugin)
|
||||
## Notes: Threat meter plugin, show threat for group members in the window. Select it from the Plugin menu in the Orange Cogwheel.
|
||||
## RequiredDeps: Details
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Interface: 90005
|
||||
## Interface: 90100
|
||||
## Title: Details!: Vanguard (plugin)
|
||||
## Notes: Show the health and debuffs for tanks in your group.
|
||||
## SavedVariablesPerCharacter: _detalhes_databaseVanguard
|
||||
|
||||
+2
-2
@@ -533,7 +533,7 @@ function Details:StartMeUp() --I'll never stop!
|
||||
end)
|
||||
end
|
||||
|
||||
if (DetailsFramework.IsTBCWow()) then
|
||||
if (DetailsFramework.IsTBCWow() and not _G.CONFIG_OPTION_DONT_MOVE_BATTLEGROUND_MINIMAP_ICON_ON_ERROR) then
|
||||
|
||||
--remover isso em versões mais atualizadas
|
||||
if (_detalhes.bcc_counter == 18 or _detalhes.bcc_counter == 19) then
|
||||
@@ -564,7 +564,7 @@ function Details:StartMeUp() --I'll never stop!
|
||||
|
||||
taintWarning:Show()
|
||||
taintWarning:SetPoint ("topleft", StaticPopup1, "bottomleft", 0, -10)
|
||||
if (MiniMapBattlefieldFrame:IsShown())then
|
||||
if (MiniMapBattlefieldFrame:IsShown() and not Details.DontMoveMininapIconOnBattlegroundError)then
|
||||
|
||||
if (not originalPosition) then
|
||||
local a = {}
|
||||
|
||||
Reference in New Issue
Block a user