Project 1999

Go Back   Project 1999 > Class Discussions > Melee

Reply
 
Thread Tools Display Modes
  #431  
Old 11-24-2024, 12:11 PM
Troxx Troxx is offline
Planar Protector

Troxx's Avatar

Join Date: Jun 2014
Location: The sands of DSM’s vagina
Posts: 4,285
Default

-Picks 4 random mobs out of a hat: 3x xp mobs and one level 5 mob with 200khp (Bloodmaw at level 20 has 50k)
-Surely this works for all mobs in all zones and in all expansions and at all levels of content

If you want to pick a "group" mob that has higher than expected AC -- think about anything out of the kael arena maybe?

Or just sit in Kael every however many hours and play with vindi pulls when they happen

As another veteran poster has already commented on - Bloodmaw and Corudoth are great for getting precise percentages on dual wield, double attack, and getting a decent idea on how dps will work on "trivial mobs"

Most people care less about "trivial mobs"

I'm proud of you! You've chosen 4 random mobs in this big ol' game and have gotten 4 sets of parses! Keep going!

(PS: many of the parses you will obtain will be comparable to what you did on Corudoth and Mendrak - unless you try a bit harder and think about the harder content most try-hards will want to be killing)
__________________
Quote:
Originally Posted by DeathsSilkyMist View Post
There is no fail message for FD.
https://www.project1999.com/forums/s...43&postcount=2



.
Last edited by Troxx; 11-24-2024 at 12:14 PM..
Reply With Quote
  #432  
Old 11-24-2024, 12:18 PM
DeathsSilkyMist DeathsSilkyMist is offline
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 8,162
Default

As you can see, Troxx is just posting more paragraphs. Argument from authority fallacy is all he has left. He is clearly a charleton at this point. He talks a big game, and that's about it. He has no parses or data that can support his postions. He will ask you for real life money for his data, just like a charleton. He's a proven liar and troll too.

At least he finally admitted he was wrong about Corudoth, in the Troxx fashion of pretending he wasn't wrong. Now he agrees Corudoth will parse fine when compared to most mobs. This means he was wrong in the thread about how STR changes your DPS when he dismissed my Corudoth parse.

The funny part is Jimjam is suggesting "trivial" mobs go up to level 60, with the general classification of "XP Mob". Kael Arena mobs are included in that level range, and can be done with a single group. You'll need to give us some details as to why Kael Arena mobs are classified as "non-trivial" and "non-XP Mob". We know you won't though. You are just playing the game you always do: Dismiss all data, ask for more data, and never provide any data of your own.

For people interested in how the game actually works:

https://www.project1999.com/forums/s...&postcount=430

I've already explained how parses can change on high mitigation targets:

 


The one scenario where the differences will change more significantly between 1h and 2h in a parse is if the Damage Roll gets reduced close to the minumum possible damage via mitigation offset.

For example, lets take two weapons:

2h weapon
100 average damage roll
30 damage bonus

1h weapon
55 average damage roll
10 damage bonus
Attacks 2x as fast

In this scenario, the 1h will match the 2h, as it has 65 x 2 = 130 damage, which is the same as the 2h.

If a mob reduced the damage rolls by 80% via their mitigation offset:

2h weapon
100 average damage roll * 0.2 = 20 damage
30 damage bonus

1h weapon
55 average damage roll * 0.2 = 11 damage
10 damage bonus
Attacks 2x as fast

Now you have 50 2h damage vs 42 1h damage. When your damage roll starts getting too low, then you will see an offset, and Damage bonus becomes a bigger factor for overall DPS. This is the argument made for AoW. His mitigation offset is so high that you will see this effect.

For the vast majority of mobs, I doubt you will see this effect in any significant way, as my data is comparing a level 5 and a level 50. AoW is one exception to the rule for sure, which everybody has always agreed.
Last edited by DeathsSilkyMist; 11-24-2024 at 12:47 PM..
Reply With Quote
  #433  
Old 11-24-2024, 01:28 PM
Jimjam Jimjam is offline
Planar Protector


Join Date: Jul 2013
Posts: 12,760
Default

If anyone is interested, here is a link which produces some of Torcen’s work on eqemu regarding mitigation. Again I don’t know how well it aligns with p99, but for anyone interested in classic eq statistics / emulation / modelling they are pretty interesting reads.

https://www.eqemulator.org/forums/se...rchid=20679267
Reply With Quote
  #434  
Old 11-24-2024, 02:28 PM
Troxx Troxx is offline
Planar Protector

Troxx's Avatar

Join Date: Jun 2014
Location: The sands of DSM’s vagina
Posts: 4,285
Default

Thanks Jim
__________________
Quote:
Originally Posted by DeathsSilkyMist View Post
There is no fail message for FD.
https://www.project1999.com/forums/s...43&postcount=2



.
Reply With Quote
  #435  
Old 11-24-2024, 02:56 PM
Snaggles Snaggles is offline
Planar Protector


Join Date: Jul 2011
Posts: 3,512
Default

A level 5 turtle or a 20 bear is not a valid parse target since the average thing a level 60 fights is upwards of level 45. Nobody cares what they parse on green cons. Not even EQ since the devs gave a lot classes instant kill spells and skills for certain trivial encounters.

As a comparative tool it’s only valid if the increase in levels tracks in a similar way for various weapons from level 5-70 npc’s with varying AC levels. It doesn’t. My two hander despite having only about a 3% better ratio from my DW combination has performed 11% better (max dps vs max dps on the same npc).

Perhaps this is a better question: What is the best dps someone has every gotten from a fist/sos on Vindi? Likewise, what is the best for an IFS or Tstaff?

If someone doesn’t have these, fine…what about another red con raid target where you have enough examples to draw a comparison?

I’ll dig through the internet and you can too. TBH I haven’t seen many monks using that setup on raids since around Chardok 2.0.
Reply With Quote
  #436  
Old 11-24-2024, 03:36 PM
Snaggles Snaggles is offline
Planar Protector


Join Date: Jul 2011
Posts: 3,512
Default

An archived example, not mine. Not sure on ranger buffs but Texas is one so assumed so. No avatar.

3/06/2020
/GU Derakor the Vindicator in 137s, 122k @883 | Swindles 13916 | Bista 11440 | Capricious 11367 | Zalir 9945 | Shaydir 9758 | Duckwalk 9194 | Zigzagdreams 8822 | Enessae 8744 | Apnea 6539 | Apathe 6188 | Arvan 5900| Texas 3942 | Jener 3862 | Suboptimized 3707

Duckwalk tstaff 255 str, 41% haste
Did the pull, zoned and started 15 seconds late.

9194/ 122 seconds (roughly) = 75.36 dps (doesn’t include proc damage)
(If parsed over 137 seconds = 67dps)

Patch notes: 9/8/2019 melee table change, monks can triple attack
https://www.project1999.com/forums/s...amage+bonus%94

Patch Notes: 8/13/2011 Damage bonus based on delay
https://www.project1999.com/forums/s...3Two-handed%94
Last edited by Snaggles; 11-24-2024 at 03:45 PM..
Reply With Quote
  #437  
Old 11-24-2024, 03:51 PM
DeathsSilkyMist DeathsSilkyMist is offline
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 8,162
Default

Quote:
Originally Posted by Jimjam [You must be logged in to view images. Log in or Register.]
If anyone is interested, here is a link which produces some of Torcen’s work on eqemu regarding mitigation. Again I don’t know how well it aligns with p99, but for anyone interested in classic eq statistics / emulation / modelling they are pretty interesting reads.

https://www.eqemulator.org/forums/se...rchid=20679267
Thanks Jimjam. As I explained before, at the end of the day you have a final mitigation value that gets put into the damage roll formula, which adjusts the final outcome:

Quote:
function RollD20(offense, mitigation)
local diff, mult1, mult2;

mitigation = mitigation - (mitigation - offense) / 2;
diff = offense - mitigation;
if ( offense > 30 ) then
mult1 = offense / 200 + 25.75;
if ( mitigation / offense < 0.35 ) then
mult1 = mult1 + 1;
elseif ( mitigation / offense > 0.65 ) then
mult1 = mult1 - 1;
end
else
mult1 = 11.5 + offense / 2;
end
if ( offense > 30 ) then
mult2 = offense / 140 + 18.5;
else
mult2 = 14 + offense / 6;
end

local mean = 0;

if ( offense > mitigation ) then
mean = diff / offense * mult1;
elseif ( mitigation > offense ) then
mean = diff / mitigation * mult2;
end

local stddev = 8.8;
local theta = 2 * math.pi * math.random();
local rho = math.sqrt(-2 * math.log(1 - math.random()));
local d = mean + stddev * rho * math.cos(theta);

if ( d < -9.5 ) then
d = -9.5;
elseif ( d > 9.5 ) then
d = 9.5;
end
d = d + 11;
d = math.floor(d);
return d;
end
This may not be the precise formula used on P99, but the idea is the same. What Troxx and Jimjam call "Trivial" mobs are simply mobs that generally have a less impactful mitigation value after you account for variables like mob level and AC. To be clear, the mitigation variable is the final result of the previous function that is calling RollD20(). That previous function is doing the mitigation calculations.

The reason why I don't like categorizing mobs as "trivial" and "non-trivial" is because it obfuscates the simple fact that damage output is just a scaling formula. People might get the wrong idea and think mobs have some special property that flag them as such.

This is also why we can simplify the damage formula to something like this:

(Damage Roll * Mitigation Offset) + Damage Bonus = Damage Dealt, where Mitigation Offset is a float value from 0.0 to 1.0.

This formula uses the same concept as the formula above, it just combines all of the mitigation math into a final single float value for simplicity.

===============================

Going back to the data I gathered from my level 52 Monk https://www.project1999.com/forums/s...&postcount=430, https://www.project1999.com/forums/s...&postcount=402, https://www.project1999.com/forums/s...&postcount=113:

Quote:
IFS (Primary) Min Damage = 22
IFS (Primary) Max Damage = 171
IFS (Primary) Average Damage = (171 + 22) / 2 = 96.5

Epic Fist (Offhand) Min Damage = 1
Epic Fist (Offhand) Max Damage = 35
Epic Fist (Offhand) Average Damage = (1 + 35) / 2 = 18

207 (222 at 75% dual wield) punch swings / 297 crush swings over 552 seconds using 34% haste on a 40 delay weapon

75% chance to dual wield

------------------------

Epic Fist (Primary) Min Damage = 10
Epic Fist (Primary) Max Damage = 44
Epic Fist (Primary) Average Damage = (44 + 10) / 2 = 27

SoS (Offhand) Min Damage = 1
SoS (Offhand) Max Damage = 68
SoS (Offhand) Average Damage = (1 + 68) / 2 = 34.5

305 crush swings / 730 punch swings over 552 seconds using 34% haste on a 16 delay weapon

42% chance to dual wield
730 punches / 552 seconds = 1.32 primary swings per second, including double attacks.

305 crushes / 552 seconds = 0.55 secondary swings per second, including double attacks.

27 * 1.32 = 35.64 Average Damage at 1.0 Mitigation Offset

34.5 * 0.55 = 18.975 Average Damage at 1.0 Mitigation Offset

35.64 + 18.975 = 54.61 Average Damage at 1.0 Mitigation Offset.

297 crushes / 552 seconds = 0.54 primary swings per second, including double attacks.

222 punches / 552 seconds = 0.4 primary secondary swings per second, including double attacks.

96.5 * 0.54 = 52.11 Average Damage at 1.0 Mitigation Offset

18 * 0.4 = 7.2 Average Damage at 1.0 Mitigation Offset.

52.11 + 7.2 = 59.31 Average Damage with perfect fistweaving at 1.0 Mitigation Offset

52.1 Average Damage without fistweaving at 1.0 Mitigation Offset

In summary, you end up with the following values:

Epic + SoS using 34% haste at level 52 with double attacks does:
Epic + SoS = 54.615 DPS at 1.0 Mitigation Offset at level 52.

IFS using 34% haste at level 52 with double attacks does:
IFS = 59.31 DPS with perfect fistweaving at 1.0 Mitigation Offset at level 52.
IFS = 52.1 DPS without fistweaving at 1.0 Mitigation Offset at level 52.

This math matches our DPS data, where Epic + SoS does more damage than IFS without Fistweaving, and IFS pulls ahead with perfect fistweaving.

This 54.61 DPS from Epic + SoS vs 59.31 DPS from IFS + Fistweaving is close to the 55.7 DPS vs 56.8 DPS numbers I got from Corudoth.

===============================

Looking at my DPS data, I did 55.7 DPS using Epic + SoS to Corudoth, and 56.8 DPS with IFS. This matches quite nicely with the data above. For simplicity, I will assume Corudoth has a 1.0 Mitigation Offset. Looking at the data above and his low level, he should be close to a 1.0 Mitigation Offset, but we don't have the precise value. This means the Mitigation Offset for FM Giants against my level 52 is 30.67 / 55.7 = 0.55 Mitigation Offset compared to Corudoth roughly speaking.

We go back to our formula using the 0.55 Mitigation Offset, using the weapon damage table https://lucy.allakhazam.com/dmgbonus.html . I am also going to strip out the Damage bonus from the rolls:

Quote:
IFS (Primary) Min Damage = 22 - 18 Damage Bonus = 4
IFS (Primary) Max Damage = 171 - 18 Damage Bonus = 153
IFS (Primary) Average Damage = (153 + 4) / 2 = 78.5

Epic Fist (Offhand) Min Damage = 1
Epic Fist (Offhand) Max Damage = 35
Epic Fist (Offhand) Average Damage = (1 + 35) / 2 = 18

--------------------------

Epic Fist (Primary) Min Damage = 10 - 9 Damage Bonus = 1
Epic Fist (Primary) Max Damage = 44 - 9 Damage Bonus = 35
Epic Fist (Primary) Average Damage = (1 + 35) / 2 = 18

SoS (Offhand) Min Damage = 1
SoS (Offhand) Max Damage = 68
SoS (Offhand) Average Damage = (1 + 68) / 2 = 34.5
(78.5 Average IFS Damage * 0.55 Mitigation Offset) + 18 Damage Bonus = 61.17
(18 Average Punch Damage * 0.55 Mitigation Offset) + 0 Damage Bonus = 9.9

(18 Average Punch Damage * 0.55 Mitigation Offset) + 10 Damage Bonus = 19.9
(34.5 Average SoS Damage * 0.55 Mitigation Offset) + 0 Damage Bonus = 18.97

Epic Fist got 1.32 swings per second, and IFS got 0.54 swings per second, so Epic Fist gets 2.44 swings for every 1 IFS swing at 34% haste.

19.9 Average Epic Fist Damage * 2.44 swings = 48.556 Average Damage
(18.97 Average * 0.42 Dual Wield Chance) * 2.44 swings = 19.4 Average Damage

48.556 Average Damage + 19.4 Average Damage = 68.0 Average Damage with Epic Fist + SoS at 0.55 Mitigation Offset at level 52.

61.17 Average Damage + (9.9 Average Damage * 0.75 Dual Wield Chance) = 68.6 Average Damage with IFS at 0.55 Mitigation Offset at level 52.

68.0 Average Damage * 0.5 Hit Rate = 34 DPS
68.7 Average Damage * 0.5 Hit Rate = 34.34 DPS

This 34 DPS from Epic + SoS vs 34.34 DPS from IFS + Fistweaving is close to the 30.67 DPS vs 31.5 DPS numbers I got from the FM Giants.

===============================

Lets do the same thing above, but with a more extreme Mitigation Offset of 0.25:

(78.5 Average IFS Damage * 0.25 Mitigation Offset) + 18 Damage Bonus = 37.63
(18 Average Punch Damage * 0.25 Mitigation Offset) + 0 Damage Bonus = 4.5

(18 Average Punch Damage * 0.25 Mitigation Offset) + 10 Damage Bonus = 14.5
(34.5 Average SoS Damage * 0.25 Mitigation Offset) + 0 Damage Bonus = 8.63

Epic Fist got 1.32 swings per second, and IFS got 0.54 swings per second, so Epic Fist gets 2.44 swings for every 1 IFS swing at 34% haste.

14.5 Average Epic Fist Damage * 2.44 swings = 35.38 Average Damage
(8.63 Average * 0.42 Dual Wield Chance) * 2.44 swings = 8.84 Average Damage

35.38 Average Damage + 8.84 Average Damage = 44.2 Average Damage with Epic Fist + SoS at 0.25 Mitigation Offset at level 52.

37.63 Average Damage + (4.5 Average Damage * 0.75 Dual Wield Chance) = 41 Average Damage with IFS at 0.25 Mitigation Offset at level 52.

44.2 Average Damage * 0.5 Hit Rate = 22.1 DPS
41 Average Damage * 0.5 Hit Rate = 20.5 DPS

Epic + SoS does 22.1 DPS compared to 20.5 DPS from IFS + Fistweaving in this scenario. You can see how Damage Bonus starts to play a bigger factor as the Mitigation Offset becomes more extreme. At level 52, Epic + SoS becomes better than IFS, even after fistweaving.

===============================

Lets do the same thing above with 0.25 Mitigation Offset, using level 60 Damage Bonuses:

(78.5 Average IFS Damage * 0.25 Mitigation Offset) + 34 Damage Bonus = 53.63
(18 Average Punch Damage * 0.25 Mitigation Offset) + 0 Damage Bonus = 4.5

(18 Average Punch Damage * 0.25 Mitigation Offset) + 11 Damage Bonus = 15.5
(34.5 Average SoS Damage * 0.25 Mitigation Offset) + 0 Damage Bonus = 8.63

Epic Fist got 1.32 swings per second, and IFS got 0.54 swings per second, so Epic Fist gets 2.44 swings for every 1 IFS swing at 34% haste.

15.5 Average Epic Fist Damage * 2.44 swings = 37.82 Average Damage
(8.63 Average * 0.42 Dual Wield Chance) * 2.44 swings = 8.84 Average Damage

37.82 Average Damage + 8.84 Average Damage = 46.66 Average Damage with Epic Fist + SoS at 0.25 Mitigation Offset at level 60.

53.63 Average Damage + (4.5 Average Damage * 0.75 Dual Wield Chance) = 57 Average Damage with IFS at 0.25 Mitigation Offset at level 60.

46.66 Average Damage * 0.5 Hit Rate = 23.33 DPS
57.0 Average Damage * 0.5 Hit rate = 28.5 DPS

Epic + SoS does 23.33 DPS compared to 28.5 DPS from IFS + Fistweaving in this scenario. This shows how Damage Bonus plays a bigger role at level 60, and why people prefer using 2h weapons at level 60 when fighting mobs with an extreme Mitigation offset. However, this doesn't mean that 2h is always better than 1h at level 60. You can do the same calculations I've done above to see at which point one weapon set overtakes the other based on the Mitigation Offset. If you want to know how much Mitigation Offset a mob has compared to another, that will need to be parsed. You may be surprised at what you find when looking at some weapons. Sometimes the Mitigation Offset is not as bad as you think compared to the DPS a weapon can offer. Also, do not believe people who claim you can't math this stuff out. I just did it. This game uses math formulas for all of these calculations.
Last edited by DeathsSilkyMist; 11-24-2024 at 04:19 PM..
Reply With Quote
  #438  
Old 11-24-2024, 04:18 PM
Snaggles Snaggles is offline
Planar Protector


Join Date: Jul 2011
Posts: 3,512
Default

https://www.project1999.com/forums/s...d.php?t=367831

This post provided better info and more efficient heckling in only two pages.
Hopefully you hit 60 and get to take some swings at ol’Derakor.
Reply With Quote
  #439  
Old 11-24-2024, 04:37 PM
Jimjam Jimjam is offline
Planar Protector


Join Date: Jul 2013
Posts: 12,760
Default

Really interesting code there. Thanks for posting it. What is the source? If I understand correctly it creates a loaded d20 dice where the weighting of the faces is derived from a complex comparison of offense and mitigation.

It seems mitigation gets scaled to the attacker's offense by subtracting the average between the attacker's offence and the defender's mitigation from the mob's mitigation, producing the adjusted scaled mitigation. I supose this is to make it so that while it is possible to squelch a weaker' mob's mitigation to some degree, they always have at least some chance to mitigate?

The code then does some comparisons of the adjusted mitigation value to offence to create a multiplier based on offense.

The next bit I'm not sure of, but the presence of a mean and standard deviation along with other values suggests a normal distribution is created, the mean for which is set based on the offence mitigation comparisons.

This explains why we have spikes counts of the lower and highest hit values. As a normal distribution has been generated, theoretically there are no limits to the highest and lowest values of d generated, so the values which are out of bounds are getting lumped into the dice as rolls of 1 or 20 (i.e. min or max damage).

Can stats/code fans verify I'm understanding this snippet of code correctly? Are there any details where you can provide deeper understanding either? My interpretation seems to match my previously reported understanding, but I admit my interpretation was likely coloured by my existing beliefs.

Edit: Here is the code DSM kindly shared, which I interpret as creating a loaded d20 damage roll with the faces weighted by a complex comparison of offence and mitigation transformed into a normal distribution.
 

function RollD20(offense, mitigation)
local diff, mult1, mult2;

mitigation = mitigation - (mitigation - offense) / 2;
diff = offense - mitigation;
if ( offense > 30 ) then
mult1 = offense / 200 + 25.75;
if ( mitigation / offense < 0.35 ) then
mult1 = mult1 + 1;
elseif ( mitigation / offense > 0.65 ) then
mult1 = mult1 - 1;
end
else
mult1 = 11.5 + offense / 2;
end
if ( offense > 30 ) then
mult2 = offense / 140 + 18.5;
else
mult2 = 14 + offense / 6;
end

local mean = 0;

if ( offense > mitigation ) then
mean = diff / offense * mult1;
elseif ( mitigation > offense ) then
mean = diff / mitigation * mult2;
end

local stddev = 8.8;
local theta = 2 * math.pi * math.random();
local rho = math.sqrt(-2 * math.log(1 - math.random()));
local d = mean + stddev * rho * math.cos(theta);

if ( d < -9.5 ) then
d = -9.5;
elseif ( d > 9.5 ) then
d = 9.5;
end
d = d + 11;
d = math.floor(d);
return d;
end
Last edited by Jimjam; 11-24-2024 at 04:51 PM..
Reply With Quote
  #440  
Old 11-24-2024, 04:48 PM
Duik Duik is offline
Planar Protector

Duik's Avatar

Join Date: Oct 2017
Location: Near the largest canyon in the world!
Posts: 2,946
Default

That's bold statement!
Reply With Quote
Reply


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 04:36 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.