+ Reply to Thread
Page 1 of 2 1 2 LastLast
Results 1 to 20 of 23

Thread: TankForge

  1. #1
    Join Date
    Mar 2009
    Posts
    17

    TankForge

    I have released an addon for Tanks, TankForge, designed to assist in Gemming, Enchanting and Reforging. Currently typing /tf or /tankforge will print your raid buffed Health, Armor (and its Damage Reduction against 88s), Dodge/Parry(and their DR%), Block, and your CTC.

    It supports all tanks, and can detect buffs on the player. Testing would be appreciated.

    Check it out on Wowinterface, and Curse.

    Straata

  2. #2
    Join Date
    Feb 2009
    Location
    New Mexico
    Posts
    105
    I'll be testing this for sure, tho I don't have accounts on Curse or Wowinterface.

    Are you okay with feedback ether post here or PMed to your tankspot account?
    |Kaad|Warrior|Protection|The Milk Drinkers|Runetotem|US|

  3. #3
    Join Date
    Mar 2009
    Posts
    17
    Absolutely, I have the thread subscribed for just that occasion.

    I will note that initial testing has suggested that my druid module is wildly inaccurate, though I have yet to confirm it. If anyone finds that the stats it prints out are wrong let me know please. I need to know what it printed out, as well as your Raid buffed Hp, stam, str (plate tanks), agi (druids), dodge/parry%, block%, armor.

    Thanks

  4. #4
    Join Date
    Nov 2009
    Location
    WI, USA
    Posts
    2,614
    I think you need a bit more understanding of the math because there are quite a few mistakes in this addon in it's present form. If you don't have a firm grasp of the concepts and the math you can't really write an addon for it (a program can only be as correct as the logic it was programmed with).

    For example to list a few issues...

    1. You don't count the night elf racial.

    2. You preset miss to 4.4% but are shooting for 102.4% CTC. These numbers are in direct conflict because 4.4% is taking into account the 3 level shift of 0.6%, if you're shifting values on the combat table then the target percentage should be 100% and all values should be shifted.

    3. Your calculation of what counts towards deminishing returns appears to be incorrect as you're only discounting base value which isn't the only source that isn't subject to deminishing returns. In fact it is way off. A druid for example gains 10% dodge from talents which is not subject to deminishing returns. The addon doesn't check at all on talent selection.

    4. Everything is hardcoded for level 85 against a level 88 (raid boss) instead of using datatables or dynamically determining such values.
    "In anything, if you want to go from just a beginner to a pro, you need a montage." /w TankSpot WTB Montage for Raiders.

  5. #5
    Join Date
    Nov 2009
    Location
    WI, USA
    Posts
    2,614
    ...


    5. GetDodgeChance() returns total dodge from all sources, so for a druid this already includes dodge from Agility (yet you're trying to add it).

    6. Primary and secondary stats can't be in non-whole numbers. Your percentage modifier and static modifier buffs to agility and strength do not round the result before using the value in a calculation.

    7. You multiply percentage multipliers incorrectly. You're applying kings as a 0 or 0.05 multiplier instead of 1 or 1.05. I never knew kings reduced my stats by 95%, I thought it increased them by 5%.

    8. Your calculation on Stamina doesn't account for class specific modifiers to stamina. For example, a Druid has a 20% modifier on Stamina when in Bear Form and a 6% modifier on stamina from Heart of the Wild.

    9. Professions are neglected. For example and Alchemist gains more stamina from a Stamina flask or more Agility from an Agility flask (also case of tanking there isn't only one flask option either, a Druid is likely to use Agility under some circumstances instead of Stamina, for that matter Elixirs could be used as well which could yeild more CTC for shield tanks). You hardcode and assume everything.

    10. Your armor calculation is assuming armor from cloak enchant isn't included, permanent enchants would be included.



    Shall I keep going?
    "In anything, if you want to go from just a beginner to a pro, you need a montage." /w TankSpot WTB Montage for Raiders.

  6. #6
    Join Date
    Nov 2009
    Location
    WI, USA
    Posts
    2,614
    11. You use the weak unit id of player name instead of the strong unit id of "player". This could result in an issue if you are grouped ever with a player that has a pet with the same name as your character where the game can't resolve the unit id uniquely. Granted this isn't likely but could cause your script to error.
    "In anything, if you want to go from just a beginner to a pro, you need a montage." /w TankSpot WTB Montage for Raiders.

  7. #7
    Join Date
    Nov 2009
    Location
    WI, USA
    Posts
    2,614
    102.4 = 100 + 0.6 + 0.6 + 0.6 + 0.6

    You lose 0.2% chance of any CTC event that is applicable to your character per level difference. In the case of a shield tank... this is 0.6% taken from Dodge, Parry, Block and Miss (those four stats reduced by 0.6% is why you need 2.4% higher than 100%).

    Which actually does raise a different concept completely. 102.4% as a target only applies to shield tanks, because you don't suffer the 0.6% reduction in a stat that doesn't apply to your class.

    Death Knights need 101.8% because they only lose 0.6% on Dodge, Parry and Miss.
    Druids need 101.2% because they only lose 0.6% to Dodge and Miss.

    You can not reduce a stat you do not have, 0% is the minimum so the level difference does not reduce combat events you don't have.
    "In anything, if you want to go from just a beginner to a pro, you need a montage." /w TankSpot WTB Montage for Raiders.

  8. #8
    Join Date
    Nov 2009
    Location
    WI, USA
    Posts
    2,614
    The truth is however the functional cap of combat events is 100%, the whole 102.4% is just a simpler way of representing what is happening without accounting for the shift in values. Think about it, over the course of a fight if a boss takes 500 swings at you, there aren't 550 combat events, there are 500 events. So in practice the actual numbers are limited to the 100% functional cap, each possible outcome is just reduced slightly cause of the level difference.
    "In anything, if you want to go from just a beginner to a pro, you need a montage." /w TankSpot WTB Montage for Raiders.

  9. #9
    Join Date
    Aug 2009
    Location
    Esbjerg, Denmark
    Posts
    167
    Just downloaded this addon, will test it out tomorrow evening. Will update from Curse if youi update it before then.
    The box said: "Requires Windows 98 or better.", so I installed Linux.

  10. #10
    Join Date
    Nov 2009
    Location
    WI, USA
    Posts
    2,614
    5% is your base chance to be missed. (target 102.4%, easier math)
    4.4% is your actual chance to be missed by a raid boss. (target 100%, actual results)

    You only reduce that which applies. Against a level 1 mob, a level 85 druid will have 0% blocks. Against a level 138 mob a druid will have 0% blocks. No matter what the level is, this value can never be altered. If the mob is lower in level a druid doesn't gain the ability to block where previously they could not. Likewise no matter how high the target level is a you can never not-block more events than occur (if the boss swings at me 500 times, I will not block it 500 times, it can never be more).
    "In anything, if you want to go from just a beginner to a pro, you need a montage." /w TankSpot WTB Montage for Raiders.

  11. #11
    Join Date
    Mar 2009
    Posts
    17
    I had decided to reply to the thread before, but you quickly out paced me, which is why I deleted the text.

    Yes a lot of assumptions were made, but as I had said, its an early working prototype basically. Ill do some more research before I reply, that said a few of the things you recommended are not possible within the API, and would require hardcoding a lot more data.

  12. #12
    Join Date
    Mar 2009
    Posts
    17
    Thank you for the Druid info though, I know so little about Druids that I need a lot of help in regards to their stats.

  13. #13
    Join Date
    Nov 2009
    Location
    WI, USA
    Posts
    2,614
    Design level considerations when writing a program usually come from years of experience programming and understanding how to write clean and efficient code. I will conceed that yes, some information needs to be hardcoded, however your method of hardcoding is also not very clean. You are droping values directly into equations making them more difficult to maintain and limiting future growth of your program. Rather, hardcoded data should be in a data store of some kind separate from the calculations, in the case of LUA this is typically done in multi-dimensional tables. For example, yes you need to store a constant value for constants used in deminishing returns calculation, but they don't need to be put in the code, rather they can be put into a data table. Then you could build out the data table to include these constants at levels other than just 85. Same with buff effects. Battle Shout has a different effect at level 80 than at level 85. If you have the value of the buff stored in a data table rather than directly in the calculation you can store the value of it at all levels. Since this is your first addon and perhaps your first experience programming in general it isn't surprising that design level considerations of this nature aren't being made for the future growth and ease of maintenance of the program going forward. For example, if I have values stored in a data table and Blizzard patches and changes the value, I have to change the value in one place, the data table. I don't have to look through my code for every occurance of where the value was used.

    The larger concern though is that you really do need to do a lot more research before you're ready to tackle such a task. Your understanding of the mechanics isn't strong enough for you to properly represent them in code and calculations. If you have people help you write out the corrections to every calculation that is incorrect, is it really your addon anymore? You need a firm grasp of the concept so that you can get significantly closer to your goal before troubleshooting of smaller issues is required.
    "In anything, if you want to go from just a beginner to a pro, you need a montage." /w TankSpot WTB Montage for Raiders.

  14. #14
    Join Date
    Mar 2009
    Posts
    17
    As it stands right now, I have no intent to support characters of any level except max level, when max level changes, I will update values to represent those changes. I dont think a level 80 really cares if they are CTC capped, though I'm sure there are exceptions (players who refuse to upgrade, or cannot I would guess)

    I am actually working on adapting the code to feature more easily updated values, the buff check functions were the first step.
    I did have to make a lot of assumptions, but my plan is to eliminate them as I go, mostly by allowing the user to choose what buffs they are looking for. That wont happen until I get some sort of GUI going.

    As for mechanics, I will be the first to admit my Druid knowledge is minimal. I have yet to adjust anything to adjust for differences in DK/Warrior/Paladin mechanics since it was a prototype up until yesterday. I am certain that DK Health and Armor are wrong. Thats why I am seeking testing data.

    I will probably switch a few elements to tables though, my first few tries were just bad so I went with something that worked for now. And yes its my first addon, but I have worked a bit with VB, C++, and Java...LUA is just unfamiliar territory for me, but all that is irrelevant as far as I am concerned. As long as the program works, the data is accurate, and the users are happy Ill be happy.

  15. #15
    Join Date
    Mar 2009
    Posts
    17
    Of course at the moment the data isnt accurate

  16. #16
    Join Date
    Dec 2008
    Posts
    1,744
    What exactly did you need me to test?

    I mean, I could run it on my druid, but my main feedback is that the addon gives the wrong numbers, and you already know that bit.
    Quote Originally Posted by Kahmal
    ...there is no true progression for a casual anymore, just hand outs.

  17. #17
    Join Date
    Mar 2009
    Posts
    17
    I was mainly looking to see if I was obtaining the right HP Armor and Dodge. I know that Dodge is at least 10% off, and if it is more than that it either comes from Agility or Dodge rating, so I need the printed value and the actual one. For Armor I need to know what it printed out, and what your actual Armor is, same for HP.

    For now I assume no Dodge / AGI food and no AGI Flask, which I will change in the future.

  18. #18
    Join Date
    Nov 2009
    Location
    WI, USA
    Posts
    2,614
    If you know something is wrong, you don't need testing. You need testing when the correction is made to validate the correction. Basically what you're looking for is for us to provide the corrected calculations for you, effectively writing the addon for you. If you know something is wrong, why do we need to tell you it's wrong?
    "In anything, if you want to go from just a beginner to a pro, you need a montage." /w TankSpot WTB Montage for Raiders.

  19. #19
    Join Date
    Nov 2009
    Location
    WI, USA
    Posts
    2,614
    Also, you really shouldn't be posting your addon as a release version. It's really an alpha version because it isn't ready for general user testing even.
    "In anything, if you want to go from just a beginner to a pro, you need a montage." /w TankSpot WTB Montage for Raiders.

  20. #20
    Join Date
    Mar 2009
    Posts
    17
    No what I need is raw data so I can verify my calculations, and update them. Yes I know theyre wrong in their present state, but that doesnt mean I dont have a local version that has changes.

    Example: EJ says the Bear Form Armor modifier is 4.393. I have this coded in now, but I wont know if the result is accurate without some data for comparison.

    If I wanted you to write it then I wouldnt have asked for Raw Data, I would have just said "What should I code [here]?".

    Again, thus far the only major issues I get in calculation are Druids (Ive fixed the Miss issue, as well as the Night Elf Miss locally), and a now fixed issue with DK HP (leaving armor to be calculated, assuming that BP armor doesnt show on UnitArmor("player") like Bear Form Armor)

    Come to think of it Ive already come up with a fix for the Armor Issue, aside from verifying the Armor Mod values...

    I dont know if I have personally offended you or what, but it honestly seems like you are trying to just kill the project. I mean you provide great responses as to what is wrong, and then bash me for seeking data through testing. Sure if this were a corporation I would run testing through a Q&A team before opening it up to public testing, but in this case public testing is my only source of Q&A, tagging it as anything other than 'Release' would lower my available testers (since most users dont allow Curse to download Alpha and Beta mods) unless they use the site explicitly.

    Still Im working on getting all the fixes in, once the calculations are accurate I will start cleaning up the code, and adding a GUI for user config.

+ Reply to Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts