![]() |
#1
|
|||
|
![]() As the title says, I made a P99 DPS calculator for melee classes using the EQEMU code.
Based on how close the current results seem to be compared to the game parses I have done, it seems pretty clear that P99 mostly uses the EQEMU code as-is for melee combat. They simply ignore all of the out-of-era code that has to deal with AA's, item bonuses, etc. Right now it has a few small issues, like max damage values sometimes being 1-5 points above what they parse in game. This isn't enough to significantly throw off the DPS calculation, as rolling the max damage is rare anyway. The EQEMU codebase is full of magic numbers, so it is possible P99 has some minor tuning to said magic numbers that isn't in the EQEMU code. For people not familiar with coding, the term "magic number" simply refers to a constant value found in the code. As a simple example, when determining Riposte chance, they take the Riposte Skill, add 100, and then divide the result by 50. These numbers were probably arrived at based on various balancing tests. The calculator currently doesn't have triple attack in it. Here is a link to the full code, it is in Javascript. Feel free to look around and see how the calculations are done: https://drive.google.com/file/d/114b...ew?usp=sharing Here is a link to the minified code: https://drive.google.com/file/d/1ks0...ew?usp=sharing You can run both versions for free in your browser via https://playcode.io/javascript . Just copy/paste the code in, and you can see the results in the console window. There's a little green play button on the web view window if you want to re-run the calculation. It has randomized elements in it, so you'll get slightly different DPS numbers every time it's run. The minified version is better for playcode, as playcode has a 8 code line limit before it starts bothering you to pay. To use it, there is a struct at the top of the document called "playerStats". Modify the variables in the "playerStats" to adjust the values for your character's level, weapon damage, skill levels, etc. To turn off dual wielding, set the "offHandWeaponDamage" to 0. You can also modify the mob variables using the struct "mobStats". They are currently set to what a level 50's stats are roughly speaking. Take a look at the non-minified version of the code to see some comments for basic rules of thumb for how to adjust the values. Let me know what you think, and let me know if it is close to your actual in-game parses! There is always room for improvement.
__________________
| ||
Thread Tools | |
Display Modes | |
|
|