Files
coa-details/functions/api2.lua
T

158 lines
3.5 KiB
Lua

--[=[
Details API 2.0
This is a high level API for Details! Damage Meter
--]=]
--local helpers
local getCombatObject = function (segmentNumber)
local combatObject
--select which segment to use, use low level variables for performance
if (segment == -1) then
combatObject = _detalhes.tabela_overall
elseif (segment == 0) then
combatObject = _detalhes.tabela_vigente
else
combatObject = _detalhes.tabela_historico.tabelas [segment]
end
return combatObject
end
local getActorObjectFromCombat = function (combatObject, containerID, actorName)
local index = combatObject [containerID]._NameIndexTable [actorName]
return combatObject [containerID]._ActorTable [index]
end
--api
Details.API_Description = {}
--[=[
Details:GetPlayerDamage ( playerName, segment = 0 )
returns the damage of player or npc, must pass the full player name (with realm name if the player is from a different realm), pet names must have the owner name.
--=]=]
Details.API_Description.GetPlayerDamage = {
desc = "Returns the damage of player or npc, must pass the full player name (with realm name if the player is from a different realm), pet names must have the owner name.",
parameters = {
{
name = "playerName",
desc = "Name of the player, pet, npc. Must be the exactly name with realm included if the player isn't from the same server as you.",
},
{
name = "segment",
type = "number",
desc = "Which segment to retrive the player damage, default value is current segment. Use -1 for overall data or value from 1 to 25 for other segments.",
},
},
returnValues = {
{
name = "playerDamage",
type = "number",
desc = "Number (float) representing the player damage.",
}
},
}
function Details.GetPlayerDamage (playerName, segment)
segment = segment or 0
local combatObject = getCombatObject (segment)
if (not combatObject) then
return 0
end
local playerObject = getActorObjectFromCombat (combatObject, 1, playerName)
if (not playerObject) then
return 0
end
return playerObject.total or 0
end
--[=[
Details:GetPlayerDamageOnUnit ( playerName, unitName, segment = 0 )
returns the damage of player or npc in a specific target
--=]=]
Details.API_Description.GetPlayerDamageOnUnit = {
desc = "Returns the damage of player or npc in a specific target.",
parameters = {
{
name = "playerName",
desc = "Name of the player, pet, npc. Must be the exactly name with realm included if the player isn't from the same server as you.",
},
{
name = "unitName",
desc = "Name of the unit target.",
},
{
name = "segment",
type = "number",
desc = "Which segment to retrive the player damage, default value is current segment. Use -1 for overall data or value from 1 to 25 for other segments.",
},
},
returnValues = {
{
name = "damageOnTarget",
type = "number",
desc = "Number (float) representing the player damage on the unit target.",
}
},
}
function Details.GetPlayerDamageOnUnit (playerName, unitName, segment)
segment = segment or 0
local combatObject = getCombatObject (segment)
if (not combatObject) then
return 0
end
local playerObject = getActorObjectFromCombat (combatObject, 1, playerName)
if (not playerObject) then
return 0
end
return playerObject.targets [unitName] or 0
end
--[=[
--=]=]
--[=[
--=]=]
--[=[
--=]=]
--[=[
--=]=]
--[=[
--=]=]
--[=[
--=]=]