Tank Points is an arbitrary value, designed to give you a rough way of measuring the overall effectiveness of a tank (against melee attacks). It takes into account your health, armour, defense, dodge, parry & block. The overall number can be thought of as the amount of damage that a boss mob needs to inflict to kill you (before mitigation). Obviously, the higher the number, the better.
Features:
* Displays Tank Points, Armour, Defense, Attack Power, Crit % on your FuBar and a load more information on the tooltip for the plugin (see the picture).
* Can yell an alert / report to raid chat on activation of the following abilities (Shield Wall, Last Stand, Challenging Shout).
* Report mode. Causes all warriors with this mod to report their critical stats (Health, Armour, Avoidance) to guild/raid chat. Awesome for figuring out OT order at Patchwerk.
I've reworked the tankpoints formula to take into account the following:
- Crushing Blows.
- Shield block % (mitigating crushing blows).
- Shield block value (reducing damage).
Calculation for Tank Points
Crushing blows land 15% of the time, UNLESS BLOCKED and can be assumed to do roughly 150% the damage of a regular hit.
The calculation to include blocking is a VERY rough approximation as the usefulness of block dramatically varies from fight to fight. For the sake of the maths here, it was assumed that the boss attacks with speed 1.0 for approx 1500 damage on the tank.
ArmorReductionTemp = Armor/((85*PlayerLevel)+400)
ArmorReduction = ArmorReductionTemp/(ArmorReductionTemp+1)
CritReduction = (Defense-PlayerLevel*5)*0.04*0.01
MobCrit = max(0,0.05-CritReduction)
mobCrush = 0.15 * (1-blockChance) * 0.5 (Crushing blow is 150% damage)
block = blockValue * ((2 + 4*blockChance) / 6 ) / 1500
TotalReduction = 1 - [ (1+mobCrit+mobCrush-block) * (1-mobMiss-dodge-parry) * (1-ArmorReduction) * stanceModifier ]
Yeah, crushing blow is 150%
There is no such thing as "blocked crush". Its just that block has higher priority than crashing blow, so if you use shield block spell increased chance of blocking remove posibility of crusing blow from combat table
Yeah, crush is 150%, mistake on my part when modifying the formula.
As for crushes vs. shield blocks, in effect a shield block nullifies the chance of a crush. If you had 100% block chance, you would never receive a crushing blow. So , in effect, for calculating in an effect for block chance, it negates additional damage from crushing blows.
I just tried it with the German version and found some bugs ^^
1.
I made a german localisation
L:RegisterTranslations("deDE", function() return {
["Tank Points"] = "Tank Points", -- Desc
["BonusScanner N/A"] = "BonusScanner nicht verfügbar", -- BONUSSCANNER_MISSING
["Display none"] = "Nichts anzeigen", -- DISPLAY_NONE
["Primary Tank Stats"] = "Prim\195\164re Tankstatistik", -- Header line
["Melee Damage Stats"] = "Nahkampfstatistik", -- Header line
["Melee Avoidance Stats"] = "Schadensmitigation", -- Header line
["Calculated Tank Stats"] = "Errechnete Tankstatistik", -- Header line
["Resistances"] = "Resistenzen", -- Header line
["Last Stand"] = "Letztes Gefecht",
["Shield Wall"] = "Schildwall",
["Challenging Shout"] = "Herausforderungsruf",
["Defensive Stance"] = "Verteidigungshaltung", -- Header line
["Berserker Stance"] = "Berserkerhaltung", -- Header line
["Battle Stance"] = "Kampfhaltung", -- Header line
["Display"] = "Anzeige", -- menu option
["AceConsole-Commands"] = {"/tpfu", "/tankpointsfu"}
} end)
2.
The GetCritChance function doesn't work with the german client; even if you replace the "Attack" through the german "Angreifen". Could you try to find a working version or just add a
if ( GetLocale() == "deDE" ) then
return 1;
end
to the beginning of the function until there is a real solution so it won't throw any errors ;)
3.
Some translations for "upcoming" language strings ^^
If you are not sure whether an item is better than the one you currently have you can enter the difference into the calculator and look if the new item would give you more points ;)
My main gripe with Tankpoints (and I guess TankpointsFu) is that it's cumbersome trying to compare an item that you don't have. Having to use the calculator is not very intuitive.
Is there any way TankpointsFu could "hook" or whatever it's called into the tooltip of an item like Healpoints and let you know whether the item is either better or worse for tanking?
Is there any way TankpointsFu could "hook" or whatever it's called into the tooltip of an item like Healpoints and let you know whether the item is either better or worse for tanking?
Hmmmm, nice idea actually! I'll take a look at it. Thanks for the suggestion!
translation's are not perfect strings are missing.. if you don't mind I could also check directly in svn :)
Yeah, I haven't finished transferring all strings into the localisation files. I'll do that this week, then it'll just be a case of creating the localisation files :)
I wonder if it's possible to write a generic 'points' addon and let users configure the formulas via .lua file, sort of how some unitframes (e.g. aguf) do layouts via a separate .lua file.
That's probably because it's not localized yet. I get similar errors with the german client when i don't "disable" the getcritchance function as mentioned in my first post ;)
Any chance you could implant the ability to change what chats it yells it out to, for example i would like it to write out in my warriorchat when i use challanging taunt instead of in raid/yell/raidw.
Would be really great because i don't know what to change in the lua to make it myself ^^
Thx in advance.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
http://www.wowace.com/files/index.php?path=FuBar_TankPointsFu/
Haven't created a wiki page yet, but will edit one soon (url below), but the latest version is up on SVN as above.
http://www.wowace.com/wiki/FuBar_TankPointsFu
Ace 2 mod that requires FuBar 2
Tank Points is an arbitrary value, designed to give you a rough way of measuring the overall effectiveness of a tank (against melee attacks). It takes into account your health, armour, defense, dodge, parry & block. The overall number can be thought of as the amount of damage that a boss mob needs to inflict to kill you (before mitigation). Obviously, the higher the number, the better.
Features:
* Displays Tank Points, Armour, Defense, Attack Power, Crit % on your FuBar and a load more information on the tooltip for the plugin (see the picture).
* Can yell an alert / report to raid chat on activation of the following abilities (Shield Wall, Last Stand, Challenging Shout).
* Report mode. Causes all warriors with this mod to report their critical stats (Health, Armour, Avoidance) to guild/raid chat. Awesome for figuring out OT order at Patchwerk.
I've reworked the tankpoints formula to take into account the following:
- Crushing Blows.
- Shield block % (mitigating crushing blows).
- Shield block value (reducing damage).
Calculation for Tank Points
Crushing blows land 15% of the time, UNLESS BLOCKED and can be assumed to do roughly 150% the damage of a regular hit.
The calculation to include blocking is a VERY rough approximation as the usefulness of block dramatically varies from fight to fight. For the sake of the maths here, it was assumed that the boss attacks with speed 1.0 for approx 1500 damage on the tank.
ArmorReductionTemp = Armor/((85*PlayerLevel)+400)
ArmorReduction = ArmorReductionTemp/(ArmorReductionTemp+1)
CritReduction = (Defense-PlayerLevel*5)*0.04*0.01
MobCrit = max(0,0.05-CritReduction)
mobCrush = 0.15 * (1-blockChance) * 0.5 (Crushing blow is 150% damage)
block = blockValue * ((2 + 4*blockChance) / 6 ) / 1500
TotalReduction = 1 - [ (1+mobCrit+mobCrush-block) * (1-mobMiss-dodge-parry) * (1-ArmorReduction) * stanceModifier ]
TankPoints = MaxHealthPoints/(1-TotalReduction)
There is no such thing as "blocked crush". Its just that block has higher priority than crashing blow, so if you use shield block spell increased chance of blocking remove posibility of crusing blow from combat table
As for crushes vs. shield blocks, in effect a shield block nullifies the chance of a crush. If you had 100% block chance, you would never receive a crushing blow. So , in effect, for calculating in an effect for block chance, it negates additional damage from crushing blows.
I just tried it with the German version and found some bugs ^^
1.
I made a german localisation
2.
The GetCritChance function doesn't work with the german client; even if you replace the "Attack" through the german "Angreifen". Could you try to find a working version or just add a to the beginning of the function until there is a real solution so it won't throw any errors ;)
3.
Some translations for "upcoming" language strings ^^
"Max Health" = "Gesundheit"
"Armour" = "R\195\188stung"
"Defense" = "Verteidigung"
"Dodge" = "Ausweichen"
"Parry" = "Parieren"
"Block Chance" = "Blockchance"
"Block Value" = "Blockwert"
"Boss Miss Chance" = "Boss Verfehlchance"
"Critical Hit" = "Kritischer Treffer"
"+Hit" = "+Trefferchance"
"Attack Power" = "Angriffskraft"
"Armour Reduction" = "Reduktion durch Rüstung"
"Tank Points" = "Tank Points" :D
"Total Avoidance" = "Gesamt Schadensvermeidung"
"Arcane Resistance" = "Arkanwiederstand"
"Fire Resistance" = "Feuerwiederstand"
"Nature Resistance" = "Naturwiederstand"
"Frost Resistance" = "Frostwiederstand"
"Shadow Resistance" = "Schattenwiederstand"
4.
Include the calculator so i can disable TankPoints :D
:)
Not sure on the calculator. I never really found it that useful. Can you tell me what you use it for? There might be a better way of doing things! :)
If you are not sure whether an item is better than the one you currently have you can enter the difference into the calculator and look if the new item would give you more points ;)
but it's not really that important ^^
Is there any way TankpointsFu could "hook" or whatever it's called into the tooltip of an item like Healpoints and let you know whether the item is either better or worse for tanking?
Ex:
http://static.curse-gaming.com/mscreens/9597.jpg
Otherwise, nice job.
Hmmmm, nice idea actually! I'll take a look at it. Thanks for the suggestion!
translation's are not perfect strings are missing.. if you don't mind I could also check directly in svn :)
Yeah, I haven't finished transferring all strings into the localisation files. I'll do that this week, then it'll just be a case of creating the localisation files :)
(with fr client).
I've love to see the tooltip integration as well.
I wonder if it's possible to write a generic 'points' addon and let users configure the formulas via .lua file, sort of how some unitframes (e.g. aguf) do layouts via a separate .lua file.
That's probably because it's not localized yet. I get similar errors with the german client when i don't "disable" the getcritchance function as mentioned in my first post ;)
@@ -686,6 +686,7 @@
GameTooltip:Hide();
iCritInfo = string.find(spellName, "%s");
critNum = string.sub(spellName,0,(iCritInfo -2));
+ critNum = string.gsub(critNum,",","."); -- some languages use ',' as decimal point
critChance = math.ceil(critNum);
return critChance;
I'm most of the way through shifting all strings to the localisation file though, so should still see an upload by the end of this week.
Would be really great because i don't know what to change in the lua to make it myself ^^
Thx in advance.