Project 1999

Go Back   Project 1999 > Class Discussions > Melee

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 04-07-2025, 01:53 AM
DeathsSilkyMist DeathsSilkyMist is online now
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 7,264
Default I made a P99 DPS calculator for melee classes based on EQEMU code

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.
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 02:23 PM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.