Project 1999

Go Back   Project 1999 > Class Discussions > Melee

Reply
 
Thread Tools Display Modes
  #81  
Old 12-11-2025, 07:35 PM
Jimjam Jimjam is offline
Planar Protector


Join Date: Jul 2013
Posts: 12,821
Default

Quote:
Originally Posted by Duik [You must be logged in to view images. Log in or Register.]
what
Reply With Quote
  #82  
Old 12-11-2025, 09:17 PM
Duik Duik is offline
Planar Protector

Duik's Avatar

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

Hehe
Reply With Quote
  #83  
Old 12-13-2025, 11:25 AM
Snaggles Snaggles is offline
Planar Protector


Join Date: Jul 2011
Posts: 3,561
Default

It really doesn’t matter what TAKP did/does. We will never have auto fire or AA’s.

I’d take auto fire if nothing else. Outside a BFG shooting bows is a PITA (I’ve killed Lucan about 20 times with a bow…).
Reply With Quote
  #84  
Old 12-15-2025, 01:22 AM
bcbrown bcbrown is online now
Fire Giant


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

I've spent the past quarter-level farting around killing frost giant elites with a mixture of melee and bow-rotting. This wasn't a controlled experiment, it was just leveling and gaining faction. I swapped between Rain Caller for stats and Huntsman for better bow dps. Sometimes I had 1h in melee, sometimes Swarmcaller, and sometimes OT hammer for the better damage bonus. I tried to keep up a full complement of buffs (spikecoat, skin like diamond, call of earth, strength of nature, storm strength, chloro, greater wolf form, levitate, call of flame, shield of brambles/spikes) but there's definitely fights where one or more faded midfight or I didn't bother to refresh before the next fight. So for anyone inclined to skim/misread this post let me say in bold that this data is very messy. Strength ranged from 180 to 240, dex was usually 145-150; just swapping my 1hs for a 2-hander drops strength by 25 and dex by 5, not to mention the haste or +atk. Also early into this dataset I leveled from 57 to 58.

First attachment is a chart of bow damage. You can see the main peak at 60 which corresponds to OT hammer: 20+1+3+36. There's also another lower spike for the swarmcaller 20+1+3+29 = 53. The 1h peak of 20+1+3+11=35 is mostly drowned out, so I guess I did a pretty good job overall of swapping out of 1hs whenever I was bow-rotting.

2519 hits, 1217 misses, 67.43% hit rate. That's 186 stacks of arrows, or 46 minutes spent summoning. Max hit discounting crits and double damage is 98. Average damage is 57.66, but that's going to be heavily affected by the mix of various mainhand damage bonuses. Crit rate of 6.43%; second attachment is a graph of the crits. If I squint I can see a repeating pattern of succesively decreasing peaks at 28, 49, 79, and 98; perhaps worthy of further investigation but just as possible to be randomness. I know almost nothing about crits and if anyone has a sense of the conventional wisdom around how they're calculated I'd love to hear it.

Quote:
Originally Posted by Goregasmic [You must be logged in to view images. Log in or Register.]
If it is the melee formula then:

[Max Damage] = ([Mod] x [Weapon Damage]) + [Main Hand Bonus] (rounded down)
[Mod] is calculated as: ([Offense Skill] + [STR]) / 100
Where did you get this formula? The more I think about it and look at it the more dubious I am about it. But I see it referenced in this 2011 thread. I also found this TAKP thread where Torven talks about archery. What jumps out to me is "I did some investigating on this today and it appears that there's some rounding error somewhere making normal shots do a couple extra damage and Trueshot damage is a bit too low." That seems to reinforce that the +1 modal damage I noticed is real, but perhaps unintentional or an artifact of rounding somewhere.

I'm gonna do another experiment, keeping str and dex constant while adding +atk from swiftwind, greater wolf form, strength of nature. I'll be fighting frost giant elites and I'm interested in the impact on hit %, max hit, average hit.
Attached Images
File Type: jpg Screenshot 2025-12-14 at 8.41.49 PM.jpg (21.4 KB, 0 views)
File Type: jpg Screenshot 2025-12-14 at 8.42.02 PM.jpg (21.7 KB, 0 views)
Reply With Quote
  #85  
Old 12-15-2025, 03:43 PM
Baugi Baugi is offline
Sarnak

Baugi's Avatar

Join Date: Jan 2015
Posts: 293
Default

Quote:
Originally Posted by bcbrown [You must be logged in to view images. Log in or Register.]
Where did you get this formula? The more I think about it and look at it the more dubious I am about it. But I see it referenced in this 2011 thread.
My understanding is that kanras implies he implemented the p99 code based on that formula in the thread, e.g.

Quote:
Originally Posted by kanras [You must be logged in to view images. Log in or Register.]
Round two of hit distribution is done, pending update. The distribution of hits that are not min/max/magic will more closely follow the general curvature seen in any large parse.
Presumably it could have changed again or been implemented slightly differently though. There's also this code from the EQ dev Prathun that's generally considered gospel for Emus, but it doesn't cover the attack calculation. -

https://archive.is/eViT6
Reply With Quote
  #86  
Old 12-15-2025, 10:15 PM
Snaggles Snaggles is offline
Planar Protector


Join Date: Jul 2011
Posts: 3,561
Default

While I’m a fan of the Tolan bracer it seems a huge quality of life increase would be to load up a lowbie mule (even a level 5) with toolboxes and 1dmg vendor arrows. Or use your Druid for a quick bag-buy and fill up in EC and a port to GD and Egress to drop them. They sell them in Thurg too so that’s likely even quicker.

Those elites are pretty nasty. Good work taking them down [You must be logged in to view images. Log in or Register.] .
Reply With Quote
  #87  
Old 12-16-2025, 02:42 AM
DeathsSilkyMist DeathsSilkyMist is offline
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 8,207
Default

Quote:
Originally Posted by Goregasmic [You must be logged in to view images. Log in or Register.]
Do we know the formula? After some googling I haven't found anything conclusive.
I can show how the damage calculation is done. P99 may have slightly different magic numbers than the EQEMU, but this formula is very close to P99 numbers.

I have some P99 parse data as well against Corudoth. Corudoth is a great test target for archery, as his model size does not match his actual size. This means his melee range is quite large, so he can hit you from far enough away to where you can just use archery in "melee" range. This will remove the need to root targets if you are testing with a Ranger.

================================================== ====
Talisen Bow, 1 DMG Arrow, and Weighted Axe - 60 SK, STR 206, 68 Archery Skill
AoB Worn 1x, AoB Spell 1x, Grim Aura Spell 1x, Firefist Worn 1x
================================================== ====

_DV = Damage Value

_DV, Count
116, 1
117, 1
118, 3
119, 6
120, 1
121, 2
122, 2
123, 4
124, 3
126, 3
127, 2
129, 2
130, 1
131, 3
132, 2
133, 1
134, 1
136, 70
137, 6
138, 7
139, 5
140, 1
141, 5
142, 8
143, 4
144, 11
145, 8
146, 3
147, 7
148, 6
149, 6
150, 3
151, 5
152, 3
153, 1
154, 2
155, 1

Here is a breakdown of the damage calculation in a hopefully simplified format. Please note that I cannot confirm all of the magic numbers for P99, so a few of them may differ slightly from the EQEMU code. This is why the formula may be a few damage points off when looking at P99 damage numbers.

=======================
Damage Multiplier Table
=======================
Levels 01-50 = maxExtra: 210, maxExtraChance: 49, minusFactor: 105
Levels 51-54 = maxExtra: 245, maxExtraChance: 35, minusFactor: 80
Levels 55-59 = maxExtra: 265, maxExtraChance: 28, minusFactor: 70
Levels 60-60 = maxExtra: 285, maxExtraChance: 23, minusFactor: 65

===================
1. Calculate Wrath
===================
1a. StrengthModifier = ((2 * STR) - 150) / 3
1b. If STR is less than 75, StrengthModifier = 0

Wrath = Weapon Skill + StrengthModifier + Total ATK

============
2. Roll D20
============
2a. Calculate how to weight the D20 (won't show that here)

RolledD20 = Weighted Dice Roll / 10

========================
3. Calculate DamageDone
========================
3a. If Wrath is less than 115, DamageDone = Weapon Damage * RolledD20
3b. Continue if Wrath is greater than or equal to 115
3c. Roll D100. If Rolled D100 is less than maxExtraChance, DamageDone = Weapon Damage * RolledD20
3d. Continue if Rolled D100 is greater than or equal to maxExtraChance
3e. Base Bonus = (Wrath - minusFactor) / 2
3f. Get Random Value between 0 and 1.0 (EX: 0.234)
3g. Extra Percent = 100 + (Base Bonus * Random Value)
3h. If Extra Percent is greater than maxExtra, Extra Percent = maxExtra

DamageDone = (Weapon Damage * RolledD20 * Extra Percent) / 100

=========================
4. Calculate FinalDamage
=========================
4a. If using Archery, DamageDone = DamageDone / 2
4b. If using Archery as a Ranger and target is stationary, skip 4a
4c. Do Critical Hit calculation if applicable (won't show that here)

FinalDamage = DamageDone + Main Hand Damage Bonus

As a practical example, I will plug in the variables from my Corudoth parse above, assuming a max damage hit.

1. Wrath = 68 Archery Skill + ((206 STR * 2) - 150) / 3 + 36 Total ATK = 191
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (191 Wrath - 65 minusFactor) / 2 = 63
3b. Extra Percent = 100 + (63 Base Bonus * 1.0 Random Value) = 163
3c. DamageDone = (26 Weapon Damage * 2 RolledD20 * 163 ExtraPercent) / 100 = 85 rounded up

Max Damage = (85 DamageDone / 2 Archery Penalty) + 110 Main Hand Damage Bonus = 153 Damage rounded up

The max damage calculated is 153, and my max damage recorded was 155. As I said, this formula is close, but most likely a few of the P99 magic numbers are a bit different from EQEMU. The rounding rules may also be a factor, as I don't know for certain when they round up or down.
Reply With Quote
  #88  
Old 12-16-2025, 07:15 PM
bcbrown bcbrown is online now
Fire Giant


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

Quote:
Originally Posted by Baugi [You must be logged in to view images. Log in or Register.]
My understanding is that kanras implies he implemented the p99 code based on that formula in the thread, e.g.

Presumably it could have changed again or been implemented slightly differently though. There's also this code from the EQ dev Prathun that's generally considered gospel for Emus, but it doesn't cover the attack calculation. -

https://archive.is/eViT6
Appreciate the links!

Quote:
Originally Posted by Snaggles [You must be logged in to view images. Log in or Register.]
While I’m a fan of the Tolan bracer it seems a huge quality of life increase would be to load up a lowbie mule (even a level 5) with toolboxes and 1dmg vendor arrows. Or use your Druid for a quick bag-buy and fill up in EC and a port to GD and Egress to drop them. They sell them in Thurg too so that’s likely even quicker.

Those elites are pretty nasty. Good work taking them down [You must be logged in to view images. Log in or Register.] .
That's a great idea. Unfortunately my bags are a mess, especially right now carrying a bunch of extra stuff to swap out to vary str/dex values. I've got four bags filled with nonsense and I try to leave a slot open for peggy cloak so I've only got three bags for loot, bandages, and arrows, one of those three being my fleeting quiver. I've been drop transferring heads, toes, and weapons to my druid in exchange for bandages.

I also don't mind the summoning time too much. It fits pretty well into a cycle I've developed with very little downtime. Starting at full hp/mana, I'll facetank an elite, usually ending around 20hp/90mana. Then I'll bandage up, and with some gear swaps I can get up to 57%. Then after bow-rotting another elite and re-summoning arrows I'll usually be back up to ~90% hp and be ready to start again. I think one of the aspects of ranger that I really enjoy is the gameplay complexity and the interactions between chloroplast, medding, bow-rotting, face tanking, bandaging, swarmcaller, and damage shields. The other hybrids don't really have the same range of offensive + defensive spells; paladins are mostly defensive plus stuns and undead nukes while SKs are almost purely offensive.

It feels like there's a lot more mini-games while rangering. Especially since the frost giants aren't kos yet, it's a ton of fun to track the nearest elite and pull it back to a safe spot, dodging social aggro from wandering lower-level giants. And tracking is so helpful at ensuring I get my share of targets when there's competition. In comparison I found fear-kiting on my SK incredibly repetitive, as well as much more mana-intensive before the kunark clickies.

Quote:
Originally Posted by DeathsSilkyMist [You must be logged in to view images. Log in or Register.]
I can show how the damage calculation is done. P99 may have slightly different magic numbers than the EQEMU, but this formula is very close to P99 numbers.
This is much better work, good job! That's a good explanation and it matches my understanding of the EQEmu damage calculation. Unfortunately I think the p99 actual max damages are different enough that it's not especially useful for predicting p99 max damages. Here's a comparison for some of my parses:

Code:
target       strength  atk predicted actual
bloodmaw     239       40  69.49     74
bloodmaw     162       40  63.59     67
bloodmaw     196       40  66.20     71
bloodmaw     197       40  66.27     71
frost elite  184       95  75.4      72
frost elite  185       0   66        63
The 40atk values are from Greater Wolf Form, the 95 is that plus Strength of Nature and Swiftwind, using the wiki values. Used 238 archery skill for bloodmaw, 239 for the elites. Level 57 and 58 respectively. This is using a base weapon damage of 23 (huntsman + tolan) not 24, but that didn't make a big improvement. Here's a fully worked example for the first row in case I missed something:

1. Wrath = 238 Archery Skill + ((239 STR * 2) - 150) / 3 + 40 Total ATK = 387
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (350 Wrath - 70 minusFactor) / 2 = 158.6
3b. Extra Percent = 100 + (158 Base Bonus * 1.0 Random Value) = 258
3c. DamageDone = (23 Weapon Damage * 2 RolledD20 * 258 ExtraPercent) / 100 = 118
118/2 + 10 = 69
Reply With Quote
  #89  
Old 12-16-2025, 07:40 PM
DeathsSilkyMist DeathsSilkyMist is offline
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 8,207
Default

Quote:
Originally Posted by bcbrown [You must be logged in to view images. Log in or Register.]
This is much better work, good job! That's a good explanation and it matches my understanding of the EQEmu damage calculation. Unfortunately I think the p99 actual max damages are different enough that it's not especially useful for predicting p99 max damages. Here's a comparison for some of my parses:

Code:
target       strength  atk predicted actual
bloodmaw     239       40  69.49     74
bloodmaw     162       40  63.59     67
bloodmaw     196       40  66.20     71
bloodmaw     197       40  66.27     71
frost elite  184       95  75.4      72
frost elite  185       0   66        63
The 40atk values are from Greater Wolf Form, the 95 is that plus Strength of Nature and Swiftwind, using the wiki values. Used 238 archery skill for bloodmaw, 239 for the elites. Level 57 and 58 respectively. This is using a base weapon damage of 23 (huntsman + tolan) not 24, but that didn't make a big improvement. Here's a fully worked example for the first row in case I missed something:

1. Wrath = 238 Archery Skill + ((239 STR * 2) - 150) / 3 + 40 Total ATK = 387
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (350 Wrath - 70 minusFactor) / 2 = 158.6
3b. Extra Percent = 100 + (158 Base Bonus * 1.0 Random Value) = 258
3c. DamageDone = (23 Weapon Damage * 2 RolledD20 * 258 ExtraPercent) / 100 = 118
118/2 + 10 = 69
The formula matches P99 DPS quite closely, which is the most important part for proving it out. All of the datasets from myself and others posted on these forums confirm this is the correct formula for damage.

The magic numbers probably need a bit of tweaking, but 4 damage off of the actual max isn't really an issue. The chances of getting a max hit is very low, so losing like 10 damage across a few max hits won't change anything DPS-wise.

Feel free to do some parsing to try and figure out where the magic numbers should be tweaked for P99. You should post your raw logs as well. Your messy data sets could be getting numbers from different tests, crits, etc.
Reply With Quote
  #90  
Old 12-16-2025, 08:49 PM
DeathsSilkyMist DeathsSilkyMist is offline
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 8,207
Default

Quote:
Originally Posted by bcbrown [You must be logged in to view images. Log in or Register.]
Unfortunately I think the p99 actual max damages are different enough that it's not especially useful for predicting p99 max damages.
Here are two different classes at two different levels using four different weapons, 1h and 2h weapons. All of the max damage calculations match very closely. Logs are in the video descriptions. The formula is very close and works across weapons, levels, and classes. It would be silly to simply throw it away due to it being off by 1-4 damage.

Level 52 Monk with Epic Fist Main hand

https://www.youtube.com/watch?v=YXh1lQyRZ_A

1. Wrath = 231 Hand to Hand Skill + ((141 STR * 2) - 150) / 3 + 0 Total ATK = 275
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (275 Wrath - 80 minusFactor) / 2 = 98
3b. Extra Percent = 100 + (98 Base Bonus * 1.0 Random Value) = 198
3c. DamageDone = (9 Weapon Damage * 2 RolledD20 * 198 ExtraPercent) / 100 = 36 rounded up
4. 36 + 9 Main Hand Damage Bonus = 45

Max Damage Calculated = 45
Max Damage Recorded = 44

Level 52 Monk with IFS Main Hand

https://www.youtube.com/watch?v=YXh1lQyRZ_A

1. Wrath = 244 2Hand Blunt Skill + ((141 STR * 2) - 150) / 3 + 0 Total ATK = 288
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (288 Wrath - 80 minusFactor) / 2 = 104
3b. Extra Percent = 100 + (104 Base Bonus * 1.0 Random Value) = 204
3c. DamageDone = (38 Weapon Damage * 2 RolledD20 * 204 ExtraPercent) / 100 = 155 rounded down
4. 155 + 18 Main Hand Damage Bonus = 173

Max Damage Calculated = 173
Max Damage Recorded = 171

Level 60 SK with Frostwrath Main Hand

https://www.youtube.com/watch?v=P5ouLQOBAoE

1. Wrath = 225 1Hand Slash Skill + ((231 STR * 2) - 150) / 3 + 16 Total ATK = 345
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (345 Wrath - 65 minusFactor) / 2 = 140
3b. Extra Percent = 100 + (140 Base Bonus * 1.0 Random Value) = 240
3c. DamageDone = (24 Weapon Damage * 2 RolledD20 * 240 ExtraPercent) / 100 = 115 rounded down
4. 115 + 11 Main Hand Damage Bonus = 126

Max Damage Calculated = 126
Max Damage Recorded = 126

Level 60 SK with Ancient Fire Etched Flamberge Main Hand

https://youtu.be/Py96jk2NflU?si=s2RIoXwCW6M-vUbB

1. Wrath = 225 2Hand Slash Skill + ((231 STR * 2) - 150) / 3 + 16 Total ATK = 345
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (345 Wrath - 65 minusFactor) / 2 = 140
3b. Extra Percent = 100 + (140 Base Bonus * 1.0 Random Value) = 240
3c. DamageDone = (46 Weapon Damage * 2 RolledD20 * 240 ExtraPercent) / 100 = 221 rounded up
4. 221 + 37 Main Hand Damage Bonus = 258

Max Damage Calculated = 258
Max Damage Recorded = 258
Last edited by DeathsSilkyMist; 12-16-2025 at 09:10 PM..
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 07:46 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 - 2026, Jelsoft Enterprises Ltd.