TankPoints
TankPoints 2.0 - A benchmark for survivalbility gear
About TankPoints
TankPoints was created to help myself compare different pieces of tanking gear, because it was difficult to decided at a glance like whether 12 defense is better then 1 dodge.
TankPoints can be seen as how much damage you can take before damage reduction, it considers your max health, armor, defense, dodge, parry, block, block value, resilience, crushing blow chance, miss, crit reduction, talants, buffs, stance/forms, and more.
Keep in mind though, that higher TankPoints does not make a better tank, it is only a benchmark for survivalbility gear but does not calculate threat. It can not decide for you what you should wear for what boss, but it can provide you with a wealth of information what will hopfully be useful for choosing gear.
About TankPoints 2.0
TankPoints 2.0 is a complete rewrite of my original TankPoints for WoW 2.0 using the Ace2 framework.
It has a much improved TankPoints algorithm, intergrates nicely into the character stats dropdown menu, and shows a lot more information then the original TankPoints.
2.0 introduced a new combat ratings system which made it even harder to compare gear, in order to code combat rating support for TankPoints, the exact rating to percentage formula is required which Blizzard didn't give us. Luckly, I have suceessfully reverse engineered the rating formula for all levels and coded an addon called "Rating Buster" that converts ratings on item tooltips into percentages, you can try it out here.
Rating Buster: http://wow.curse-gaming.com/en/files/details/4991/rating-buster/
How to use
Gravity has writen an awesome 7 page guide to using TankPoints on his blog: http://pwnwear.com/tankpoints-user-guide/
The value of Block
The value is Shield Block Value and Block Rating is highly dependent on what you are tanking.
Its very good for mobs that don't hit very hard like in heroics, but is worth much less on hard hitting bosses in 25 man raids.
At level 80, TankPoints' default mob damage is tuned to 25 man raids, with a value of 24365 damage before mitigation.
You can change this value to match what you plan on tanking by using the "/tp mob damage" command in game.
A mob damage of 10505 for example is a good value for level 80 heroics.
TankPoints also calculates the value of Shield Block for Warriors, and Holy Shield for Paladins.
You can use the "/tp player sbfreq" command to set a shield block frequency that matches your rotation (in how many seconds AFTER cooldown finishes).
For most tankadins rotations, you will have a 100% Holy Shield uptime, using "/tp player sbfreq 1" will tell TankPoints that you will use Holy Shield 1 second after cooldown finishes (every 9 secs)
TankPoints 2.0 Features
Imporved TankPoints 2.0 formula
- Support for all combat ratings including the new resilience stat
- Support for block% and block value
- Support for crushing blows
- Support for combat table and correctly caps off at a total of 100%.
Using Hit < Crushing < Crit < Block < Parry < Dodge < Miss - Support for mob stats:
- Mob level - defaults player level 3
- Mob damage
- Mob melee crit chance
- Mob melee crit bonus
- Mob melee miss chance
- Mob spell crit chance
- Mob spell crit bonus
- Mob spell miss chance
Improved TankPoints Calculator
TankPoints User Interface
- Intergrated in to the Character stats dropdown menu (See Screeshots)
- When TankPoints is selected it displays:
- TankPoints
- Melee Damage Reduction
- Block Value
- Spell TankPoints
- Spell Damage Reduction
- TankPoints tooltip:
- Your stance
- Mob Stats
- Mob Level
- Mob Damage (after damage reduction)
- Mob Crit Chance
- Mob Miss Chance
- TankPoints per StatValue - Shows how much TankPoints you gain for each stats with equal item values, because the values below are equal in the item value formula, you can use this data to see what gives the most bang for the buck in terms of item budgets.
- 1 Agility =
- 1.5 Stamina =
- 10 Armor =
- 1 Resilience =
- 1 Defense Rating =
- 1 Dodge Rating =
- 1 Parry Rating =
- 1 Block Rating =
- 1.54 Block Value
- Option to hold down ALT key will show how much TankPoints you gain for each stat point
- 1 Agility
- 1 Stamina
- 1 Armor
- 1 Resilience
- 1% Defense
- 1% Dodge
- 1% Parry
- 1% Block
- 1 Block Value
- Melee Damage Reduction tooltip:
- Armor Damage Reduction against mob level - Useful because the default armor tooltip only shows the reduction for the same level
- Mob Level, Player Level
- Combat Table - Hit < Crushing < Crit < Block < Parry < Dodge < Miss. The total of these chances must be capped at 100%, if you exceed 100% then lower priority values will be pushed off the table. For example, when you press shield block ( 75% block chance), hit, crush and crit will all be pushed off and will be 0, your real block chance will also be capped at (100% - Parry% - Dodge% - Miss%)
- Block Value tooltip - Block Value should have been included in the default UI, but they didn't so I coded my own function that does it, strength, items, talents(warrior, paladin, shaman) are all considered in the algorithm.
- Mob Damage before Damage Reduction (armor and stance effects)
- Mob Damage after Damage Reduction
- Blocked percentage
- Block Value / Mob Damage after DR
- Block Chance
- Equivalent Block Mitigation
- Block Chance * Blocked percentage:
This can be seen equal with the same amount of dodge or parry.
- Spell TankPoints Tooltip - Shows your strongest school by default
- Your stance
- TankPoints at the following Melee/Spell Damage Ratio
- 25% Melee Damage 75% <school> damage
- 50% Melee Damage 50% <school> damage
- 75% Melee Damage 25% <school> damage
- Can manually cycle through all schools by left clicking the stat
- Reset back to showing the strongest school by right click the stat
- Spell Damage Reduction - Shows your strongest school by default
- Shows damage reductions for all schools
- Same click functions as the Spell TankPoints Tooltip
Supported class talants and buffs
- Warrior: Improved Defensive Stance, Shield Mastery, Shield Wall - Buff, Death Wish - Buff, Recklessness - Buff, Toughness, Vitality
- Druid: Survival of the Fittest, Natural Perfection, Thick Hide, Balance of Power, Heart of the Wild
- Paladin: Shield Specialization, Divine Purpose, Blessed Life, Ardent Defender, Spell Warding, Improved Righteous Fury, Divine Strength, Toughness
- Shaman: Shield Specialization, Elemental Shields, Elemental Warding, Toughness
- Rogue: Sleight of Hand, Heightened Senses, Deadened Nerves, Vitality, Sinister Calling, Cloak of Shadows - Buff
- Hunter: Survival Instincts, Thick Hide, Combat Experience, Lightning Reflexes
- Priest: Shadow Resilience, Spell Warding, Pain Suppression - Buff, Enlightenment
- Hunter: Survivalist, Endurance Training
- Warlock: Demonic Resilience, Master Demonologist, Soul Link - Buff, Demonic Embrace, Fel Stamina
- Mage: Arctic Winds, Prismatic Cloak, Playing with Fire, Frozen Core
Slash Commands
Use: /tp or /tankpoints
- '''/tp''' - Show help
- '''/tp calc''' - Toggle calculator
- '''/tp mob''' - Show mob stats help
- '''/tp mob level (-20 - 20)''' - Sets the level difference between the mob and you
- '''/tp mob damage (0 - 99999)''' - Sets mob's damage before damage reduction
- '''/tp mob default''' - Restores default mob stats
- '''/tp mob advanced''' - Show advanced mob stats help
- '''/tp mob advanced crit (0 - 100)''' - Sets mob's melee crit chance
- '''/tp mob advanced critbonus''' - Sets mob's melee crit bonus
- '''/tp mob advanced miss (0 - 100)''' - Sets mob's melee miss chance
- '''/tp mob advanced spellcrit (0 - 100)''' - Sets mob's spell crit chance
- '''/tp mob advanced spellcritbonus''' - Sets mob's spell crit bonus
- '''/tp mob advanced spellmiss (0 - 100)''' - Sets mob's spell miss chance
- '''/tp player sbfreq (0 - 1000)''' - Sets the Shield Block press delay in seconds after Shield Block finishes cooldown
TankPoints Formulas
TankPoints
Melee Total Reduction
- totalReduction[MELEE] = 1 - ((mobCritChance * (1 + mobCritBonus) * mobCritDamageMod) + (mobCrushChance * 1.5) + (1 - mobCrushChance - mobCritChance - blockChance * blockedMod - parryChance - dodgeChance - mobMissChance)) * (1 - armorReduction) * meleeTakenMod
Spell Total Reduction
- totalReduction[SCHOOL] = 1 - ((mobSpellCritChance * (1 + mobSpellCritBonus) * mobSpellCritDamageMod) + (1 - mobSpellCritChance - mobSpellMissChance)) * (1 - schoolReduction[SCHOOL]) * spellTakenMod
Armor Reduction
levelModifier = attackerLevel if ( levelModifier > 59 ) then levelModifier = levelModifier + (4.5 * (levelModifier - 59)) end armorReductionTemp = armor / ((85 * levelModifier) + 400) armorReduction = armorReductionTemp / (armorReductionTemp + 1) if armorReduction > 0.75 then armorReduction = 0.75 end if armorReduction < 0 then armorReduction = 0 end
Defense Effect
- defenseEffect = (defense - attackerLevel * 5) * 0.04 * 0.01
Block Value From Strength
- blockValueFromStrength = floor(totalStr * 0.5 - 10)
Block Value
- blockValue = floor((floor(totalStr * 0.5 - 10) + blockValueFromItems + blockValueFromShield) * blockValueMod)
Mob Damage (default formula)
- mobDamage = (levelModifier * 55) * meleeTakenMod * (1 - armorReduction)
Resilience Effect
- resilienceEffect = ReverseRating(resilience, playerLevel) * 0.01
Mob Crit Chance
- mobCritChance = max(0, 0.05 - defenseEffect - resilienceEffect)
Mob Crit Bonus
- mobCritBonus = 1
Mob Miss Chance
- mobMissChance = max(0, 0.05 + defenseEffect)
Mob Crush Chance (if mobLevel is +4 or more)
- mobCrushChance = (mobLevel - playerLevel) * 0.1 - 0.15
Mob Crit Damage Mod
- mobCritDamageMod = max(0, 1 - resilienceEffect * 2)
Blocked Mod
- blockedMod = min(1, blockValue / mobDamage)
Mob Spell Crit Chance
- mobSpellCritChance = max(0, 0 - resilienceEffect)
Mob Spell Crit Bonus
- mobSpellCritBonus = 0.5
Mob Spell Miss Chance
- mobSpellMissChance = 0
Mob Spell Crit Damage Mod
- mobSpellCritDamageMod = max(0, 1 - resilienceEffect * 2)
Resistance Reduction
- schoolReduction[SCHOOL] = 0.75 * (resistance[SCHOOL] / (mobLevel * 5))
EffectiveHealth (EH)
- effectiveHealth[MELEE] = playerHealth * 1/(1 - (1-armorReduction) * damageTakenMod)
- effectiveHealth[SCHOOL] = playerHealth * 1/(1 - damageTakenMod) In other words: how much health you have times how much that health translates into raw damage when you're hit
EffectiveHealthWithBlock (EHB)
For every swing of the mob (see mobAtkSpeed) until you are out of health if time to press the shield block button given timeBetweenPresses refresh charges on shield block if mobHitChance + mobCrushChance + mobCritChance == 0 or (charges left and mobHitChance + mobCrushChance + mobCritChance <= 75%) use a charge on shield block min(healthLeft, take raw damage from the monster per mobDamage - blockValue) else min(healthLeft, take raw damage from the monster per mobDamage) end end
TODO
Version History
2.8.4
- toc update
- Packaged with new libraries with 3.2.0 class support
- Block Value is now 2/0.65 per statpoint
- Paladin: Fixed Holy Shield talent location
- Default mob damage at level 83 is now 44165, up from 24365 to match current raid difficulty.
- Fixed TankPoints per Defense Rating calculation
- Fixed Effective Health with Block
2.8.3
- toc update
- Packaged with new libraries with 3.1.3 class support
2.8.2
- NEW: Avoidance diminishing returns calculations in Melee DR tooltip will show you how much avoidance you gain for +16 of each stat.
- Diminishing returns for chance to be missed now supported.
- Paladin: Combat table will now reflect the effects of Holy Shield if you set it at 100% uptime. To set 100% Holy Shield uptime, use a sqfreq lower then or equal to 2 secs, ex: /tp player sbfreq 2
- Fixed Block Value formula
- Can set shield block frequency from 0 secs to 1000 secs, set it to 1000 if you don't want TankPoints to calculate the shield block effect
- Defense isn't affected by DR (Defense Rating is)
- Fixed StatFrame data not updated correctly during stance/presence/form/aura change
- Uses LibStatLogic-1.1 and LibTipHooker-1.1 now
- Made the Calculator movable by dragging the sides
- Support for enchant statmods:
- Enchant: Rune of the Stoneskin Gargoyle: +2% Stamina
- Enchant: Rune of Spellshattering: Deflects 4% of all spell damage
- Enchant: Rune of Spellbreaking: Deflects 2% of all spell damage
- Support for meta gem statmods:
- Austere Earthsiege Diamond: 2% Increased Armor Value from Items
- MetaGem: Eternal Earthsiege Diamond:+5% Shield Block Value
- MetaGem: Eternal Earthstorm Diamond: +5% Shield Block Value
- MetaGem: Effulgent Skyflare Diamond: Reduce Spell Damage Taken by 2%
- Fixed Warrior talent detection: Vitality, Strength of Arms, Improved Defensive Stance
- Death Knight: Added Stance: Frost Presence detection fixed
- Death Knight: Added Buff: Bone Shield: Damage reduced by 40%.
- 3.0.8: Death Knight: Updated Stance: Frost Presence: The bonus armor has been increased from 60 to 80% and magic damage reduction increased from 5 to 15%.
- 3.0.8: Death Knight: Updated Buff: Bone Shield: Damage reduced by 20%.
- 3.0.8: Death Knight: Updated Buff: Will of the Necropolis: Reduce the damage of any attack that takes the DK below 35% health by 5%/10%/15% instead of boosting armor when wounded.
- 3.0.8: Druid: Updated Talent: Survival of the Fittest: This talent now grants 22/44/66% bonus armor in Bear Form and Dire Bear Form in addition to all of its previous effects.
- 3.0.8: Shaman: Updated Talent: Elemental Warding: Now reduces all damage taken by 2/4/6%.
- Removed Endurance (Tauren racial)
2.8.1
- Support for Warrior talent: Critical Block
- Fixed Shield Block and Holy Shield calculations
- Default mob damage at level 83 is now 24365 instead of 10505
- Fixed a bug causing "ADD_CRIT_TAKEN" from talents to be capped at MobCritChance
- Paladin: Added Talent: Redoubt - Increases your block value by 10%/20%/30%
- Death Knight BaseDodge changed from 0.758% to 3.4636%.
2.8.0
- Avoidance diminishing returns support: Calculator, ItemTooltip, TankPoints Per Stat, TankPoints Per StatValue
- Supports Death Knight: Forceful Deflection - Increases your Parry Rating by 25% of your total Strength
- Added Str to TankPoints Per Stat, TankPoints Per StatValue
- Fixed EffectiveHealth, EffectiveHealthWithBlock
- Fixed Warrior Shield Block calculations
- Support for Paladin Holy Shield
- Crushing blows only happen when mob is +4 levels
- 1 Strength now gives 0.5 Block Value
- Removed Babble-Spell-2.2, Deformat-2.0, Gratuity-2.0
- Fixed immediate errors in 3.0.2
- Calculator: Fixed error
- Code cleanup and stability tweaks
- toc 30000
2.7.0 by Aliset
- NEW: You can specify pre-mitigation mob damage using /tp mob drdamage
- NEW: Ciderhelm's EffectiveHealth and a derived stat, EffectiveHealthWithBlock
- Moved to StatFrameLib-1.0 for paperdoll stat frames
- Alt events didn't seem to be working, so moved to clicks for per-stat/per-rating change
- Consolidated some aspects of TankPoints calculation
- Pretty print many of the large numbers shown (so 789956 shows up as 789,956)
2.6.8
- NEW: You can now open the options window using /tp optionswin
- Fixed: Error in TankPoints.lua:1286 and TankPoints.lua:947
- Updated Korean localizations by fenlis
2.6.7
- Updated Taiwan localization by Whitetooth
- Improved stat scanning
- Updated German localization
2.6.6
- Updated French localization by Tixu, TankPoints Tooltips now works with the French client
- Fixed a bug causing TankPoints tooltips not showing correctly for languages other then English
- Fixed Parry/SpellHaste rating calculations
- Updated libs
2.6.5
- Pre updated the TOC to 2.1.0
- Support for Shield Block skill, with options to set mobs attack speed(default 2.0) and average time between Shield Block key presses(default 8 sec)
- Fixed error when changing options with the Calculator open
2.6.0
- Calculator: Fixed MobLevel calculations
- Better Talant and Buff support
- Improved Block Value calculation
- Code for smooth transition to 2.1.0
- Updated Libs
2.5.7
- Fixed incorrect tooltip values
- Fixed calculater rounding errors
2.5.6
- Fixed library error
2.5.5
- Added StatLogic deDE localizations by Gailly
2.5.4
- Fixed incorrect armor calculations in tooltips for Druilds
- Added Taiwan localizations by CuteMiyu
2.5.3
- Updated Korean localization by fenlis
2.5.2
- Fixed another StatLogic bug
2.5.1
- Fixed StatLogic bug
- Druid Bear Form formulas updated to 2.0.10 fixes
- Updated French localizations by Tixu
- Added Korean localization by fenlis
2.5.0
- Item tooltips will now show TankPoints (only works for English client until localized)
- Removed Compost
- Removed ReverseRating.lua
- Code cleanup and optimizations
2.4.1
- Fixed Calculator Block Value from Strength calculations
2.4.0
- May now input Armor from items and Armor from non items in the Calculator
- Really fixed Night Elf and Feral Swiftness dodge calculations
- Improved accuracy of calculator stat calculations
- Improved calculator support for Druid Forms
- Calculator support for Druid talant * Heart of the Wild, Balance of Power,
- Calculator support for Rogue talant * Cloak of Shadows
- Calculator support for Paladin talant * Toughness
- Calculator support for Hunter talant * Survivalist, Endurance Training
- Calculator support for Warlock talant * Fel Stamina
- Calculator support for health mods
- Support for Death Wish, Recklessness
2.3.5
- Fixed Druid, Hunter and Night Elf dodge calculation bug
- Fixed Druid talant * Survival of the Fittest not being counted bug
- Fixed Paladin talant * Ardent Defender being always on bug
2.3.3
- Fixed Druid Dire Bear Form armor calculations
2.3.2
- Added support for new pally talants: Spell Warding, Improved Righteous Fury
- Updated Libs
2.3.1
- TOC 20003
- Updated Libs
2.3
- Greatly improved the Calculator algorithms
- Calculator: better support for talants that give bonus strength, agility, stamina, armor
- Calculator: better handling for Defense Rating
- Improved TP per StatValue/Stat calculations in TankPoints tooltips
2.2.3
- Fixed low level resistance calculations
- Fixed Druid Bear Form armor bonus
- Plays nice with other mods that may add to the character dropdown list
2.2.2
- Fixed Tauren health error
2.2.1
- Added German localization by AbbedieD
- Improved support for Druid armor bonuses in various forms
- Removed (%) from Defense in Caculator
- Partially updated French localizations
- Updated libs
2.2
- The improved TankPoints Calculator is now in
- Changed Soul Link formula 30% -> 20%
2.1.1
- Fixed TP per defense rating in tooltip again
- Updated French localizations by Tixu
2.1
- Support for various class specific talants and buffs
- Fixed TP per defense rating in tooltip
- PlayerHasShield() localized
- GetBlockValue() localized
- Fixed a couple slash command's option range
- Partial French localizations by Tixu
2.0.1
- Fixed ReverseRating error
- Updated Libs
- Fixed a display bug in TankPoints tooltips
- Fixed Block Value algorithm not working with some shields
- Set Block% to zero if you don't have a shield on
2.0
- Complete rewrite for the 2.0 client using Ace2
would you like some assistance in making a "tankpoint" differencial rating in item tooltip?
I didn't checked at your code but would like to have tooltip on item, allowing us to see +xx or -xx TP when checking item. sometime we can be really surprised when checking some item.
if your interested, I could help you writing this part.
hi whitetooth,
At this time i cant get tp tooltips working on frFR wow, dunno if you have hardcoded the enUS restriction or not.
(Btw thx for putting tp and RB inthe main ace svs, but could you please update the addon here too, because, using WowAceUpdater just screw files with older release otherwise)
Anyway you can find a frFR update below:
to other, it seems that local libs of rating buster are generating error in Tankpoint. you just have to upgrade both addon to their current version to fix the problem.
--[[ Name: TankPoints frFR locale Revision: $Revision: 1 $ Translated by: - Tixu@Curse ]] -- Global Strings that don't need translations --[[ PLAYERSTAT_MELEE_COMBAT = "Melee" SPELL_SCHOOL0_CAP = "Physical" SPELL_SCHOOL0_NAME = "physical" SPELL_SCHOOL1_CAP = "Holy" SPELL_SCHOOL1_NAME = "holy" SPELL_SCHOOL2_CAP = "Fire" SPELL_SCHOOL2_NAME = "fire" SPELL_SCHOOL3_CAP = "Nature" SPELL_SCHOOL3_NAME = "nature" SPELL_SCHOOL4_CAP = "Frost" SPELL_SCHOOL4_NAME = "frost" SPELL_SCHOOL5_CAP = "Shadow" SPELL_SCHOOL5_NAME = "shadow" SPELL_SCHOOL6_CAP = "Arcane" SPELL_SCHOOL6_NAME = "arcane" SPELL_STAT1_NAME = "Strength" SPELL_STAT2_NAME = "Agility" SPELL_STAT3_NAME = "Stamina" SPELL_STAT4_NAME = "Intellect" SPELL_STAT5_NAME = "Spirit" COMBAT_RATING_NAME1 = "Weapon Skill" COMBAT_RATING_NAME2 = "Defense Rating" COMBAT_RATING_NAME3 = "Dodge Rating" COMBAT_RATING_NAME4 = "Parry Rating" COMBAT_RATING_NAME5 = "Block Rating" COMBAT_RATING_NAME6 = "Hit Rating" COMBAT_RATING_NAME7 = "Hit Rating" -- Ranged hit rating COMBAT_RATING_NAME8 = "Hit Rating" -- Spell hit rating COMBAT_RATING_NAME9 = "Crit Rating" -- Melee crit rating COMBAT_RATING_NAME10 = "Crit Rating" -- Ranged crit rating COMBAT_RATING_NAME11 = "Crit Rating" -- Spell Crit Rating COMBAT_RATING_NAME15 = "Resilience" ARMOR = "Armor" DEFENSE = "Defense" DODGE = "Dodge" PARRY = "Parry" BLOCK = "Block" --]]
TP_STR = 1 TP_AGI = 2 TP_STA = 3 TP_HEALTH = 4 TP_ARMOR = 5 TP_DEFENSE = 6 TP_DODGE = 7 TP_PARRY = 8 TP_BLOCK = 9 TP_BLOCKVALUE = 10 TP_RESILIENCE = 11
local L = AceLibrary("AceLocale-2.2"):new("TankPoints") -- To translate AceLocale strings, replace true with the translation string -- Before: ["Show Item ID"] = true, -- After: ["Show Item ID"] = "顯示物å“編號", L:RegisterTranslations("frFR", function() return { ------------- -- General -- ------------- --["TankPoints"] = true, ["Block Value"] = "blocage", -------------------- -- Character Info -- -------------------- -- Stats [" TP"] = " TP", -- concatenated after a school name for Spell TankPoints, ex: "Nature TP" [" DR"] = "-", -- concatenated after a school name for Damage Reductions, ex: "Nature DR" -- TankPoints Stat Tooltip ["In "] = "En ", -- concatenated before stance name, ex: "In Battle Stance" ["Mob Stats"] = "Stats opposant", ["Mob Level"] = "Niveau opposant", ["Mob Damage"] = "Dommage", ["Mob Crit"] = "Critique opposant", ["Mob Miss"] = "Rat\195\169 opposant", ["Per StatValue"] = "Par score", ["Per Stat"] = "Par pourcentage", ["Hold ALT for Per Stat TankPoints"] = "Presser ALT pour des statistiques par pourcentage", -- Melee Reduction Tooltip [" Damage Reduction"] = ": r\195\169duction des dommages", -- concatenated after a school name for Damage Reductions, ex: "Nature Damage Reduction" ["Player Level"] = "Niveau du joueur", ["Combat Table"] = "Stats de combat", ["Crit"] = "Critique", ["Crushing"] = "D\195\169vastateur (\195\169crase)", ["Hit"] = "Toucher", -- Block Value Tooltip ["Mob Damage before DR"] = "Dommages entrants avant r\195\169duction", ["Mob Damage after DR"] = "Dommages par\195\168s r\195\169duction", ["Blocked Percentage"] = "Pourcentage bloqu\195\169s", ["Equivalent Block Mitigation"] = "Equivalence de r\195\169duction", -- Spell TankPoints Tooltip ["Melee/Spell Damage Ratio"] = "Ratio m\195\169l\195\169e/sort", ["Left click: Show next school"] = "Click gauche: afficher l'\195\169cole suivante", ["Right click: Show strongest school"] = "Click droit: afficher la meilleure \195\169cole ", -- Spell Reduction Tooltip -- Toggle Calculator ["Open Calculator"] = "Ouvrir Calculatrice", ["Close Calculator"] = "Fermer Calculatrice", --------------------------- -- Slash Command Options -- --------------------------- -- /tp calc --["TankPoints Calculator"] = true, ["Shows the TankPoints Calculator"] = "Ouvre le calculateur de TankPoints", -- /tp tooltip ["Tooltip Options"] = "Option Infobulle", ["TankPoints tooltip options"] = "Options pour les infobulles", -- /tp tooltip diff ["Show Tooltips Difference"] = "Afficher les diff\195\169rences", ["Show TankPoints difference in item tooltips"] = "Afficher les diff\195\169rences entre objets dans les infobulles", -- /tp tooltip total ["Show Tooltips Total"] = "Afficher total", ["Show TankPoints total in item tooltips"] = "Afficher le TankPoint total des objets dans les infobulles", -- /tp mob --["Mob Stats"] = true, ["Change default mob stats"] = "Changer les statistiques de votre opposant", -- /tp mob level --["Mob Level"] = true, ["Sets the level difference between the mob and you"] = "D\195\169finir la diff\195\169rence de niveau entre vous et votre opposant", -- /tp mob damage --["Mob Damage"] = true, ["Sets mob's damage before damage reduction"] = "D\195\169finir les dommages moyens de votre opposant", -- /tp mob default ["Restore Default"] = "R\195\169initialiser", ["Restores default mob stats"] = "R\195\169initialiser les statistiques de votre opposant", ["Restored Mob Stats Defaults"] = "Statistiques de votre opposant r\195\169initilis\195\169es", -- command feedback -- /tp mob advanced --["Mob Stats Advanced Settings"] = true, ["Change advanced mob stats"] = "Modifier les statistiques avanc\195\169es pour l'opposant", -- /tp mob advanced crit --["Mob Melee Crit"] = true, ["Sets mob's melee crit chance"] = "D\195\169finir les chances de coup critique en m\195\169l\195\169e de l'opposant", -- /tp mob advanced critbonus --["Mob Melee Crit Bonus"] = true, ["Sets mob's melee crit bonus"] = "D\195\169finir le bonus de coup critique en m\195\169l\195\169e de l'opposant", -- /tp mob advanced miss --["Mob Melee Miss"] = true, ["Sets mob's melee miss chance"] = "D\195\169finir les chances de rat\195\169 en m\195\169l\195\169e de l'opposant", -- /tp mob advanced spellcrit --["Mob Spell Crit"] = true, ["Sets mob's spell crit chance"] = "D\195\169finir les chances de critique des sorts de l'opposant", -- /tp mob advanced spellcritbonus --["Mob Spell Crit Bonus"] = true, ["Sets mob's spell crit bonus"] = "D\195\169finir le bonus de critique des sorts de l'opposant", -- /tp mob advanced spellmiss --["Mob Spell Miss"] = true, ["Sets mob's spell miss chance"] = "D\195\169finir les chances de l'opposant de rater son sort", ---------------------- -- GetDodgePerAgi() -- ---------------------- ["Cat Form"] = "Forme de félin", --------------------------- -- GetTalantBuffEffect() -- --------------------------- ["Soul Link"] = "Lien spirituel", ["Voidwalker"] = "Marcheur du Vide", ["Righteous Fury"] = "Fureur vertueuse", ["Pain Suppression"] = "Suppression de la douleur", ["Shield Wall"] = "Mur protecteur", ["Death Wish"] = "Souhait mortel", ["Recklessness"] = "Témérité", ["Cloak of Shadows"] = "Cape d'ombre", ----------------------- -- AlterDataTable() -- ----------------------- ["Bear Form"] = "Forme d’ours", ["Dire Bear Form"] = "Forme d’ours redoutable", ["Moonkin Form"] = "Forme de sélénien", ----------------------- -- PlayerHasShield() -- ----------------------- ["Shields"] = "Boucliers", --------------------- -- GetBlockValue() -- --------------------- ["^(%d+) Block$"] = "Bloquer.- (%d+)", ------------------------ -- Item Scan Patterns -- ------------------------ ["ItemScan"] = { [TP_BLOCKVALUE] = { {"Augmente la valeur de blocage de votre bouclier de (%d+)"}, {"+(%d+) Valeur de blocage"}, {"+(%d+) \195\160 la valeur de blocage"}, } }, --------------------------- -- TankPoints Calculator -- --------------------------- -- Title ["TankPoints Calculator"] = "Calculatrice TankPoint", ["Left click to drag\nRight click to reset position"] = "Click-gauche pour d\195\169placer\nClick-droit pour initialiser la position", -- Buttons ["Reset"] = "R\195\169initialiser", ["Close"] = "Fermer", -- Option frame box title ["Results"] = "R\195\169sultats", ["Player Stats"] = "Statistiques du joueur", ["Total Reduction"] = "R\195\169duction totale", --["(%)"] = true, ["Max Health"] = "Vie max", ["Items"] = "Objets", ------------------------- -- TankPoints Tooltips -- ------------------------- [" (Top/Bottom):"] = " (Haut/Bas):", [" (Main/Off):"] = " (Main droite/gauche):", [" (Main+Off):"] = " (Main droite+gauche):", ["Gems"] = "Gemmes",
} end)
I notice this error (...dOns\TankPoints\libs\StatLogic-1.0\StatLogic-1.0.lua line 1407: attempt to index global 'RatingBuster' (a nil value)) happens with items that are socketed with gems. Also when looking at unsocketed items, if the equipped item is socketed it gives the error as well.
Heya I have Hob_DKP and ctraid tracker when i hover over the ctraid tracker items i get this error
attempt to index global 'RatingBuster' (a nil value) StatLogic-1.0-5 (TankPoints):1476: in function `GetDiff' TankPoints-2.4.1\TankPointsTooltips.lua:198: in function `handler' TipHooker-1.0-5 (TankPoints):185: in function <in C code>: in function `SetInventoryItem' EQCompare-1.4\EQCompare.lua:298: in function <Interface\AddOns\EQCompare\EQCompare.lua:252> (tail call): ?: Skinner-2.1\UIElements1.lua:18: in function <Interface\AddOns\Skinner\UIElements1.lua:16> (tail call): ?: <in C code>: ? HoB_DKP\HoB_DKP.lua:352: in function <Interface\AddOns\HoB_DKP\HoB_DKP.lua:351> <in C code>: in function `SetHyperlink' CT_RaidTracker\CT_RaidTracker.lua:1216: in function <Interface\AddOns\CT_RaidTracker\CT_RaidTracker.lua:1209> HoB_DKP\HoB_DKP.lua:540: in function `CT_RaidTrackerItem_SetHyperlink' <string>:"CT_RaidTrackerItem3:OnEnter":2: in function
an error window pop with some items that it seems cant obtain the tankpoints calculation when you pass over it the pointer
it happens with marshal plate gauntlets or overlord helmet of second sight for example
2.5.0 - Item tooltips will now show TankPoints (only works for English client until localized) - Removed Compost - Removed ReverseRating.lua - Code cleanup and optimizations
Sorry, the Bear nerf fixes didn't make it into 2.5.0, it will be in 2.5.1.
@zenjamin
The armor nerf should not be hard to fix manually. Open TankPoints.lua in an editor and search for
5.5,
You will find a section that looks like:
[3] = { ["rank"] = { 5.5, --5, }, ["buff"] = L["Dire Bear Form"], },
replace the "5.5," with " 5," and you can delete the line below since its only a comment meant for this change. It should end up looking like:
[3] = { ["rank"] = { 5, }, ["buff"] = L["Dire Bear Form"], },
Works for me atleast. Changing the health nerf is a bit harder though and not really nessesary since it only applies for your base health wich you cannot change and enchantments that gives +health instead of +stamina. I doubt you would need to enter thoose enchants into TP. This change requires you to remove a large section of the script and remove some comments to enable another dorment section. But I won't go into that. Post is allready too long :P
could you pelase update this for the bear nerf?
how do i open it when i play wow?
Reading the description owns :)
"Intergrated in to the Character stats dropdown menu (see screenshots)"
@Rendrir This is fixed in 2.4.1, thanks.
@Rendrir:
Ah, so that's why the TankPoints I get when comparing two items a warrior is actually wearing give massively different tank point final values than entering the stats of the items in the calculator when unequipped. Something is wrong with that.
US English client, v2.4.0. Level 60 warrior in def stance, 1h+shield equipped. Comparing level 60 Bloodscale Legguards of the Champion (733 armor, +21 Str, +32 Stam, +21 Def) vs. level 59 Darkcrest Legguards of Stamina (710 armor, +60 stamina). When equipped, the Darkcrest provides 230 more tank points, both in the character window and the default value in the calculator. There is +1 additional Block Value showing on the Bloodscale, taking into account the +21 Str.
Now take off the pants and enter the stats for each item manually in the TankPoints calculator. Things change. The +21 Str entered in the calculator for the Bloodscale adds a full 200 points to the Block Value, instead of just 1. Consequently, the total TankPoints of the Bloodscale in the calculator turns out to be 78 points higher than the Darkcrest, instead of 230 points less (as what the values are when they are actually equipped).
So which is correct? Until this is resolved, its hard to trust the values TankPoints gives. At least comparing items with Strength to those without.
Hi,
sorry, but just found this addon (again) and tried a bit with the calculator and am a bit confused. Something looks wrong with the strength calculation. Every time i change strengt it results in addiontal 365 block value and as this it adds up 1286 tank points. This is if i add only one point strength or even if i suptract any value of it. Any other stats look like working fine
PS.: Sorry, cant explain it better in english, hope you know what i mean.
BTW, Great addon at all, makrs in tooltips (on wich you are working as i saw) would be great.
This Addon is simply a must have for every serious tank :D
Thanks so much whitetooth.
It is just amazing how much you know about the 'back stage' of WoW calculations :D
Greetings Natur (NECB)
Awsome job! This is really one of the "Must have" addons :)
Still working on the tooltips, I ended up coding my own library that scans and sums up the stats on an item because ItemBonusLib doesn't support the stats TankPoints needs, and so I have full control on the localization and patterns, the core is finished and is looking great, it just opened up a lot of new posibilities for TankPoints.
Well I'm going to take a few days off Addon coding, I expect to start coding this again next week.
Cheers :)
Whitetooth you are my hero. Thanks for all the hard work you do for the community.
Is it just me or is every 10th post or so asking for the tooltip functionality?
@DuncanMcCloud yep, it will be optional :)