Project 1999

Go Back   Project 1999 > Class Discussions > Melee

Reply
 
Thread Tools Display Modes
  #1  
Old 11-25-2024, 05:01 PM
Jimjam Jimjam is online now
Planar Protector


Join Date: Jul 2013
Posts: 12,736
Default

[You must be logged in to view images. Log in or Register.]
I just want to say necro rogue pet has crazy hit distributions on these fm giants! (level 44 pet and -20 AC debuff)
Last edited by Jimjam; 11-25-2024 at 05:11 PM..
Reply With Quote
  #2  
Old 11-25-2024, 06:40 PM
bcbrown bcbrown is online now
Fire Giant


Join Date: Jul 2022
Location: Kedge Keep
Posts: 752
Default

Quote:
Originally Posted by Jimjam [You must be logged in to view images. Log in or Register.]
I just want to say necro rogue pet has crazy hit distributions on these fm giants! (level 44 pet and -20 AC debuff)
Fascinating stuff, Jimjam. Wiki has the giants at level 50, so I'm surprised to see such a huge spike at max hit.

I looked at the giant's hits against DSM, and I saw some weak indications of something similar; 20% at min hit and 13% at max hit.

The other interesting thing I noticed was that your histrogram shows Jibartik with exactly 20 unique hit values. The giants were similar: almost all the values fell into 20 distinct values, but 1% didn't fit that pattern.

Everything I've seen when looking at player damage points toward that pattern not occuring in player hits. DSM's unique hit values on the giants, for example, ranges from 35 in mainhand punches to 93 in IFS hits.

This suggests a conclusion that:
* mob damage and player damage have different calculations
* player damage has something to add some noise to "smear" hit values across more unique values
* this difference in calculation, either intentionally or unintentially, leads to a high percentage of player hits at some value that's right around the average for that weapon.

There's some code in the EquEmu implementation that looks like it might be adding that noise:
Code:
	int basebonus = hit.offense - damage_table.minusfactor;
	basebonus = std::max(10, basebonus / 2);
	int extrapercent = zone->random.Roll0(basebonus);
	int percent = std::min(100 + extrapercent, damage_table.max_extra);
	hit.damage_done = (hit.damage_done * percent) / 100;
I'm starting to seriously wonder if this is a bug in the p99 codebase - I can imagine it might be intentional to treat mob and player damage rolls differently, but I find it harder to believe that the spike around the average value is intentional. I also wonder if the spikes at max and min hit are intentional.

Jimjam, you said you recalled a thread where Rogean discussed the damage calculations. Would you mind doing a little digging? All I could find were some patch notes without a lot of detail.
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 06:45 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.