- Added Spirit Link Totem damage and healing on death log.

- Added the total of life exchanged by the Spirit Link Totem on player detail window.
- Added more spells for crowd control.
- Added scroll on bookmark panel.
This commit is contained in:
Tercio
2015-03-26 15:09:21 -03:00
parent 0c126196d2
commit af0a447b0d
16 changed files with 689 additions and 235 deletions
+169 -56
View File
@@ -40,18 +40,67 @@ DETAILS_SUBATTRIBUTE_DCOOLDOWN = 6
DETAILS_SUBATTRIBUTE_BUFFUPTIME = 7
DETAILS_SUBATTRIBUTE_DEBUFFUPTIME = 8
TL;DR
=======================================
A history segment container is the higher table in the hierarchy, it holds combat objects.
A Combat Object has 4 tables: damage on index 1, healing on index 2, energy on index 3, misc on index 4.
Those tables are called 'containers', these containers holds 'Actor Objects'.
Actor Objects hold a target table and a spell table.
Each player will have 4 tables, one for each attribute, e.g. 1 for store its damage, another for the healing done.
Actor Objects also has specific members for each attribute, see below.
Getting Details! Object:
=======================================
Just get the global 'Details', for instance:
local details = _G.Details
Getting a Combat Object:
=======================================
combat = Details:GetCurrentCombat()
returns the current combat object.
combat = Details:GetCombat (combat)
returns the requested combat object.
if 'combat' is omitted, returns the current combat.
combat can be a number: -1 for overall, 0 for current and > 0 for past segments.
combat also can be a string "overall" or "current".
history_segment_container = Details:GetCombatSegments()
returns the numeric table containing all past segments.
Gettings an Actor:
=======================================
local actor = Details:GetActor (combat = "current", attribute = 1, actorname = playername)
returns the actor for the requested combat, attribute and actor name.
if all parameters are omitted, returns the damage actor object of the player for the current combat.
Combat Object:
=======================================
Combat Objects holds the containers for each main attribute.
A Combat object is a table with 4 numerical indexes holding: damage, healing, energy and misc containers.
function for combat objects:
actor = combat ( attribute, character_name )
returns actor object
returns an actor object
container = combat:GetContainer (attribute)
characterList = combat:GetActorList ( attribute )
returns a numeric table with all actors of the specific attribute, contains players, npcs, pets, etc.
chartData = combat:GetTimeData ( chart_data_name )
returns the table containing the data for create a chart.
combatName = combat:GetCombatName ( try_to_find )
returns the segment name, e.g. "Trainning Dummy", if try_to_find is true, it searches the combat for a enemy name.
bossInfo = combat:GetBossInfo()
returns the table containing informations about the boss encounter.
table members: name, zone, mapid, diff, diff_string, id, ej_instance_id, killed, index
time = combat:GetCombatTime()
returns the length of the combat in seconds, if the combat is in progress, returns the current elapsed time.
minutes, seconds = GetFormatedCombatTime()
returns the combat time formated with minutes and seconds.
startDate, endDate = combat:GetDate()
returns the start and end date as %H:%M:%S.
@@ -62,23 +111,23 @@ returns true if the combat is a trash segment.
encounterDiff = combat:GetDifficulty()
returns the difficulty number of the raid encounter.
bossInfo = combat:GetBossInfo()
returns the table containing informations about the boss encounter.
deaths = combat:GetDeaths()
returns a numeric table containing the deaths.
returns a numeric table containing the deaths, table is ordered by first death to last death.
combatNumber = combat:GetCombatNumber()
returns the unique ID number for the combat.
combatName = combat:GetCombatName ( try_to_find )
returns the segment name, e.g. "Trainning Dummy", if try_to_find is true, it searches the combat for a enemy name.
container = combat:GetContainer ( attribute )
returns the container table for the requested attribute.
characterList = combat:GetActorList ( attribute )
returns a numeric table with all actors of the specific attribute.
chartData = combat:GetTimeData ( chart_data_name )
returns the table containing the data for create a chart.
time = combat:GetCombatTime()
returns the length of the combat, if the combat is in progress, returns the elapsed time.
start_at = GetStartTime()
returns the GetTime() of when the combat started.
ended_at = GetEndTime()
returns the GetTime() of when the combat ended.
DETAILS_TOTALS_ONLYGROUP = true
@@ -89,35 +138,18 @@ returns the total of the requested attribute.
Other Calls:
_detalhes:GetCurrentCombat()
returns the current combat object.
_detalhes:GetCombatSegments()
returns the numeric table containing all past segments.
_detalhes:GetCombatNumber()
Details:GetCombatNumber()
returns the current unique combat number counter.
combat number is a unique number given to each combat started, this number won't
reset when data is wiped and each character have its own combat number counter.
_detalhes:IsInCombat()
Details:IsInCombat()
returns if Details! is in combat or not.
_detalhes:GetCombat (combat = "current")
returns the requested combat object.
is 'combat' is omitted, returns the current combat.
combat can be a number: -1 for overall, 0 for current and > 0 for past segments.
combat also can be a string "overall" for overall combat and "current" for current segment.
damage, healing, energy, misc = _detalhes:GetAllActors (combat, actorname)
damage, healing, energy, misc = Details:GetAllActors (combat, actorname)
returns all the four actor objects for the requested combat and actor.
combat must be a combat object.
local actor = _detalhes:GetActor (combat = "current", attribute = 1, actorname = playername)
returns the actor for the requested combat, attribute and actor name.
if all parameters are omitted, returns the damage actor object of the player for the current combat.
Container Object:
=======================================
@@ -135,24 +167,24 @@ similar to GetTotal, but only counts the total of raid members.
ipairs_list = container:ListActors()
returns a iterated table of actors inside the container.
Usage: for index, actor in container:ListActors() do
Usage: 'for index, actor in container:ListActors() do'
Actor Object:
=======================================
Holds all total keys, spells and targets of a character.
Holds keys, spells and targets of a character.
name = actor:Name()
name = actor:name()
returns the actor's name.
displayName = actor:GetDisplayName()
returns the name shown on the player bar, can soffer modifications from realm name removed, nicknames, etc.
returns the name shown on the player bar, can suffer modifications from realm name removed, nicknames, etc.
name = actor:GetOnlyName()
returns only the actor name, remove realm or owner names.
class = actor:Class()
class = actor:class()
returns the actor class.
activity = actor:Tempo()
@@ -179,28 +211,109 @@ returns a spell table of requested spell id.
r, g, b = actor:GetBarColor()
returns the color which the player bar will be painted on the window, it respects owner, arena team, enemy, monster.
r, g, b = _detalhes:GetClassColor()
r, g, b = Details:GetClassColor()
returns the class color.
icon, left, right, top, bottom = actor:GetClassIcon()
texture, left, right, top, bottom = actor:GetClassIcon()
returns the icon texture path and the texture's texcoords.
Damage Actor Keys:
Keys for Damage Actors:
=======================================
total = total of damage done.
total_without_pet = without pet.
damage_taken = total of damage taken.
last_dps = cache of the last calculed dps, it's best just use actor.total / actor:Tempo()
last_event = when the last event for this actor occured.
start_time = time when this actor started to apply damage.
end_time = time when the actor stopped with damage.
friendlyfire_total = amount of friendlyfire.
members:
actor.total = total of damage done.
actor.total_without_pet = without pet.
actor.damage_taken = total of damage taken.
actor.last_event = when the last event for this actor occured.
actor.start_time = time when this actor started to apply damage.
actor.end_time = time when the actor stopped with damage.
actor.friendlyfire_total = amount of friendlyfire.
targets = hash table of targets: targetName, amount.
damage_from = hash table of actors which applied damage to this actor: aggresorName, true.
pets = numeric table of GUIDs of pets summoned by this actor.
friendlyfire = hash table of friendly fire targets: targetName, table {total = 0, spells = hash table: spellId, amount}
spells = hash table with spells used to apply damage: spellId, spellTable.
containers:
actor.targets = hash table of targets: {[targetName] = amount}.
actor.damage_from = hash table of actors which applied damage to this actor: {[aggresorName] = true}.
actor.pets = numeric table of GUIDs of pets summoned by this actor.
actor.friendlyfire = hash table of friendly fire targets: {[targetName] = table {total = 0, spells = hash table: {[spellId] = amount}}}
actor.spells = hash table with spells used to apply damage: {[spellId] = spellTable}.
Getting Dps:
For activity time: actor.total / actor:Tempo()
For effective time: actor.total / combat:GetCombatTime()
Keys for Healing Actors:
=======================================
members:
actor.total = total of healing done.
actor.totalover = total of overheal.
actor.totalabsorb = total of absorbs.
actor.total_without_pet = total without count the healing done from pets.
actor.totalover_without_pet = overheal without pets.
actor.heal_enemy_amt = how much this actor healing an enemy actor.
actor.healing_taken = total of received healing.
actor.last_event = when the last event for this actor occured.
actor.start_time = time when this actor started to apply heals.
actor.end_time = time when the actor stopped with healing.
containers:
actor.spells = hash table with spells used to apply heals: {[spellId] = spellTable}.
actor.targets = hash table of targets: {[targetName] = amount}.
actor.targets_overheal = hash table of overhealed targets: {[targetName] = amount}.
actor.targets_absorbs = hash table of shield absorbs: {[targetName] = amount}.
actor.healing_from = hash table of actors which applied healing to this actor: {[healerName] = true}.
actor.pets = numeric table of GUIDs of pets summoned by this actor.
actor.heal_enemy = spells used to heal the enemy: {[spellid] = amount healed}
Keys for Energy Actors:
=======================================
actor.total = total of energy generated.
actor.received = total of energy received.
actor.resource = total of resource generated.
actor.resource_type = type of the resource used by the actor.
actor.pets = numeric table of GUIDs of pets summoned by this actor.
actor.targets = hash table of targets: {[targetName] = amount}.
actor.spells = hash table with spells used to generate energy: {[spellId] = spellTable}.
Keys for Misc Actors:
=======================================
these members and container may not be present on all actors, depends if the actor performed the action.
cc_done = amount of crowd control done.
cc_done_targets = cc done targets {[targetName] = amount}.
cc_done_spells = spells used to make the cc.
interrupt = amount of interrupts.
interrupt_targets = target which was its spell interrupted {[targetName] = amount}.
interrupt_spells = spells used to interrupt.
interrompeu_oque = spells interrupted.
buff_uptime = seconds of all buff uptime.
buff_uptime_targets =
buff_uptime_spells =
debuff_uptime =
debuff_uptime_targets = {[targetName] = amount}.
debuff_uptime_spells =
cooldowns_defensive = amount of defensive cooldowns used.
cooldowns_defensive_targets = in which player the cooldown was used.
cooldowns_defensive_spells = spells used.
ress = amount of resses.
ress_targets = {[targetName] = amount}.
ress_spells =
dispell = amount of dispells done.
dispell_targets = {[targetName] = amount}.
dispell_spells =
dispell_oque =
cc_break =
cc_break_targets = {[targetName] = amount}.
cc_break_spells =
cc_break_oque =