Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 08-31-2014, 01:57 AM
Torven
Sarnak
 
Join Date: Aug 2014
Posts: 61
Default NPC Double Attack and Dual Wield Chance Parses

Hello again. My second thread will be about NPC double attack and dual wield chance.

Data Collection Methods and Tools

Parsing logs is sort of my thing. Scripts to count up resists aren't the only parsers I wrote. In my efforts to assist Project EQ/TAKP, I wrote parsers specifically for the purpose of determining NPC attack delays and round sizes.

One of my parsers calculates NPC double attack and dual wield rates. I charmed mobs and gave them two weapons with the same delay but different damage types (piercing, slash) to know which hand the attack came from. I then let them beat on me with my back turned for 3+ hours. (a few were overnight 8+ hours)

My parsing scripts and the logs themselves can be found on my google drive: https://drive.google.com/folderview?...p=sharing#grid

Data Analysis

A more detailed analysis (the output from my parser) of each individual log can be found here: http://pastebin.com/thcZtkYN

Here are the distilled results:
Code:
Double Attack Chance
--------------------
Lvl  MainHand OffHand
75   64.7     65.1
68   63.2     64.8
60   61.3     61.7
55   61       60.8
51   60.9     60.4
50   51.4     52.4
45   51.9     50.6
40   48.6     50.2
39   47.3     47.2
37   45.2     45.7
36   43.6     44.5
35   35.2     0
30   29.5     0
20   19.3     0
10   9.8      0
4    3.8      0


Dual Wield Chance
-----------------
Lvl   DW %
75   86.3
68   84.5
60   82.2
55   80.7
51   80.5
50   69.2
45   67.6
40   65.2
39   63.5
37   60.3
36   59.4
35   45.7
30   39.4
20   27.7
10   13.8
4    5.2
The results as line graphs:


http://i.imgur.com/o4bt8mL.png


http://i.imgur.com/dvViNp0.png


If an NPC can dual wield, and you give it two weapons, then its model will visibly update with the weapons in hand. I gave level 1 and level 3 mobs two weapons and they did not wield the second one, but a level 4 mob did use both and was attacking for both damage types.

I also parsed a level 15 cleric NPC and a level 45 wizard NPC to see what their dual wield rates were:

Level 15 Cleric NPC Dual Wield rate: 21.1%
Level 15 Cleric NPC Double Attack rates: 15.1%, 0%
Level 45 Wizard NPC Dual Wield rate: 68.7%
Level 45 Wizard NPC Double Attack rates: 50.8%, 50.1%

This is in-line with Warrior NPCs. EQ Emulator doesn't currently have casters double attacking, which is sort of a big deal. (Vox is swinging once per round!)


Conclusions
  • NPCs as low as level 4 can double attack, possibly lower.
  • NPCs gain the ability to dual wield at level 4.
  • NPCs do not double attack with their off-hand until level 36.
  • Double attack rates (after 35) for the main-hand and off-hand are the same.
  • NPC double attack rates are roughly 1% per level up to level 35.
  • NPC off-hand attack rates are roughly 1.3% * level up to level 35.
  • NPC double attack rates and off-hand attack rates increase significantly at levels 36 and 51.
  • Caster NPCs double attack and dual wield, and at the same rates Warrior NPCs do.


The Game Logic of NPC Attacks Per Round

The way NPC attacks work in EQ is like this:
  • NPCs get one guaranteed attack per round. This attack has a chance to double, meaning every NPC can at least attack twice per round if it successfully rolls a double attack for the main-hand. (from at least level 4; double attacks from lower levels unconfirmed)
  • If the NPC can wield weapons and has two 1handers in its possession, it will dual wield them (from level 4 onwards) giving them a chance to swing the off-hand. The off-hand cannot double attack until level 36, at which point NPCs have the ability to quad attack when wielding weapons, which requires the NPC to successfully roll a dual wield and two double attacks. The chances of successful rolls increases with level.
  • The off-hand has its own attack delay; the attacks from both hands will not pair up every round unless both weapons have the same attack delay.
  • Every NPC has a weaponless attack delay. The NPC will attack at the faster of the two rates if it is wielding a weapon. Raid boss attack delays are so fast that they will almost always end up using the weaponless attack delay, which is why they quad in logs even when wielding two weapons with different delays.

Not all NPCs can wield weapons. These NPCs can spawn with weapons or be given them while charmed and they will refuse to wield them, meaning they will never quad attack no matter what. (assuming it is not innate dual wield flagged) Examples include animal NPCs in PoP (poor druids); giants in BoT; and robe, cavemen, and alien NPCs in Maiden's Eye. I've not been looking for this so I don't have a long list, but it seems common in PoP. I don't know of any examples before Luclin; giving animal pets weapons in earlier eras on my druid seemed to work fine until PoP. Maybe it's a Luclin addition?

NPC innate quad (which is really innate dual wield) was a feature added to raid bosses in the Velious expansion. (even VP dragons only doubled without weapons) It works as follows:
  • If the NPC has no weapons, then the NPC will quad a weaponless attack. (punch, claw, hit etc)
  • If the NPC has has a 2H weapon, then the NPC will only double even if it would quad without a weapons.
  • If the NPC has a single 1H weapon, then the NPC will main-hand that weapon and off-hand a weaponless attack. (punch, claw, hit etc)
  • If the NPC has two 1H weapons, then the NPC will wield both and output the damage types of both weapons as normal.
Innate quad is basically just dual wield forcibly enabled even without weapons or with just one weapon.

If a NPC does not have this innate quad/dual wield feature enabled, then it will always double attack unless it is wielding two 1H weapons. This flag was generally only enabled on raid bosses, and not every boss had it-- The Statue of Rallos Zek for example did not quad unless it spawned with two weapons. I've only found a few 'trash' mobs that had it, like the level 68 doomfire NPCs in PoFire.

Currently EQ Emulator has three flags related to round sizes: Triple Attack, Quad Attack, and Dual Wield. However enabling Dual Wield for an NPC on EQEmu makes it quad even without weapons. This is either an oversight or a design choice that doesn't match with EQLive. (seems redundant to design it to function like Quad Attack though) On EQLive, dual wield is seemingly enabled for every NPC in the game starting at level 4. (admittedly my sample size isn't huge enough to prove this 100% but I think it likely) So a more accurate functionality would be to hard-code the enabling of dual wield on all NPCs level 4 and above, then replace the Dual Wield flag with a 'Can't Wield' flag. (or a 'Wields Weapons' flag, but this would end up being checked on the vasty majority of NPCs) For more accuracy, Quad Attack should be replaced with 'Innate Dual Wield' which enables off-hand attacks without an off-hand weapon instead of 4 attacks from the main-hand.

Here is some sample data I derived my conclusions from:
Code:
NToV dragons with innate dual wield wielding one weapon

[Wed Apr 02 16:13:20 2014] Sevalak tries to slash YOU, but misses!
[Wed Apr 02 16:13:20 2014] Sevalak tries to slash YOU, but YOU block!
[Wed Apr 02 16:13:20 2014] Sevalak tries to claw YOU, but YOU dodge!
[Wed Apr 02 16:13:20 2014] Sevalak tries to claw YOU, but misses!

[Thu Apr 10 02:33:57 2014] Lord Koi`Doken tries to pierce YOU, but YOU block!
[Thu Apr 10 02:33:57 2014] Lord Koi`Doken tries to pierce YOU, but misses!
[Thu Apr 10 02:33:57 2014] Lord Koi`Doken tries to hit YOU, but misses!
[Thu Apr 10 02:33:57 2014] Lord Koi`Doken tries to hit YOU, but misses!


Parse of EQLive log of NToV dragon Telkorenar wielding the 2h piecering lance
from his loot table.  The few rounds with 3-4 swings are 'double rounds' which
are two rounds in the same log second; this is common for raid bosses because
they have low attack delays.  This mob only doubling is unusual because all
NToV dragons have innate dual wield and will quad when not wielding a 2h
weapon.  Another parse, without him piercing, has him quadding.

Fight #2 [2] Telkorenar - Sun Mar 30 18:36:15 2014 - Duration: 7m 47s
Rounds: 305; Bashes: 0; Dmg Type(s): pierce; Swings: 501
rounds with 1 swings: 119 (39%)
rounds with 2 swings: 179 (58.6%)
rounds with 3 swings: 4 (1.3%)
rounds with 4 swings: 3 (0.9%)
-----------------------------------------------------------------------------
Fight #3 [2] Telkorenar - Sun Mar 30 18:46:16 2014 - Duration: 8m 48s
Rounds: 345; Bashes: 0; Dmg Type(s): pierce; Swings: 585
rounds with 1 swings: 118 (34.2%)
rounds with 2 swings: 220 (63.7%)
rounds with 3 swings: 1 (0.2%)
rounds with 4 swings: 6 (1.7%)


Here is an Al'Kabor log of NToV dragon Lord Kreizenn.  In this log I was doing
suicide runs to collect min/max hit data, so it's short.  In nine rounds, 8 were
1-2 hits, and one was a triple.  This NPC has a 2H sword on his loot table,
MySEQ showed him wielding a 'flamberge', and he was procing the weapon's proc.
This NPC is a Monk.  I will explain the triple round below.

[Sun Nov 17 02:12:41 2013] Lord Kreizenn slashes YOU for 950 points of damage.
[Sun Nov 17 02:12:41 2013] Lord Kreizenn slashes YOU for 287 points of damage.

[Sun Nov 17 02:12:43 2013] Lord Kreizenn slashes YOU for 209 points of damage.

[Sun Nov 17 02:15:42 2013] Lord Kreizenn slashes YOU for 209 points of damage.
[Sun Nov 17 02:15:42 2013] Lord Kreizenn tries to slash YOU, but misses!
[Sun Nov 17 02:15:42 2013] Lord Kreizenn tries to slash YOU, but misses!

[Sun Nov 17 02:15:45 2013] Lord Kreizenn slashes YOU for 716 points of damage.

[Sun Nov 17 02:18:36 2013] Lord Kreizenn tries to slash YOU, but misses!

[Sun Nov 17 02:18:38 2013] Lord Kreizenn tries to slash YOU, but misses!

[Sun Nov 17 02:18:39 2013] Lord Kreizenn slashes YOU for 365 points of damage.
[Sun Nov 17 02:18:39 2013] Lord Kreizenn slashes YOU for 911 points of damage.

[Sun Nov 17 02:18:42 2013] Lord Kreizenn tries to slash YOU, but YOU dodge!
[Sun Nov 17 02:18:42 2013] Lord Kreizenn slashes YOU for 404 points of damage.

[Sun Nov 17 02:18:43 2013] Lord Kreizenn tries to slash YOU, but YOU dodge!
NPC Triple Attack in Old EQ

When EverQuest was younger, Warriors and Monks got a hidden innate triple attack at level 60 that was not something that raised up like regular skills. My parses of Al'Kabor and EQ circa 2003 also have every level 60+ Warrior and Monk NPC triple attacking-- it wasn't just given to player characters. I don't know if other classes (like rangers) got it; I think some other classes might have gotten it at a later time.

In modern EQ, level 60+ NPCs no longer triple. I assume NPCs lost triple attack once SOE made triple attack an 'official' skill rather than a small innate chance. I know of no NPCs on EQLive that triple but not quad. (with the exception of sub level 36 mobs that cannot double attack the off-hand) Note that rogue NPCs that backstab the front of a target will display as a normal hit instead of a backstab, which can make the round look like it has one more swing in the log.

As far as I know, triple attack had a small chance to occur on a successful double attack. My parses suggest a 10% chance to occur on a successful double attack round, but this has a wide margin of error. My data collecting efforts began only after the Al'Kabor shutdown notice and my time was spent collecting NPC min hit, max hit, and max hp data, so I wasn't thinking about this kind of data at the time, otherwise I'd have produced an overnight log or two.

Some example Al'Kabor data:

Code:
Level 60+ Warrior NPCs
======================

Fight #603 [331] A jord kjal - Mon Nov 18 01:04:22 2013 - Duration: 1m 37s
Rounds: 38; Bashes: 12; Dmg Type: hits; Swings: 65
rounds with 1 swings: 13 (34.2%)
rounds with 2 swings: 23 (60.5%)
rounds with 3 swings: 2 (5.2%)
-----------------------------------------------------------------------------
Fight #604 [332] A vann militis - Mon Nov 18 01:09:22 2013 - Duration: 1m 22s
Rounds: 33; Bashes: 10; Dmg Type: hit; Swings: 59
rounds with 1 swings: 12 (36.3%)
rounds with 2 swings: 16 (48.4%)
rounds with 3 swings: 5 (15.1%)
-----------------------------------------------------------------------------
Fight #605 [333] A brann kriger - Mon Nov 18 01:14:40 2013 - Duration: 2m 40s
Rounds: 38; Bashes: 11; Dmg Type: hits; Swings: 63
rounds with 1 swings: 14 (36.8%)
rounds with 2 swings: 23 (60.5%)
rounds with 3 swings: 1 (2.6%)
-----------------------------------------------------------------------------
Fight #492 [286] A loathsome creeper - Sun Nov 17 20:46:57 2013 - Duration: 2m 42s
Rounds: 78; Bashes: 20; Dmg Type: bites; Swings: 125
rounds with 1 swings: 37 (47.4%)
rounds with 2 swings: 35 (44.8%)
rounds with 3 swings: 6 (7.6%)
-----------------------------------------------------------------------------
Fight #409 [233] Hero Shrine Guardian - Fri Nov 15 23:35:59 2013 - Duration: 2m 7s
Rounds: 57; Bashes: 16; Dmg Type: punches; Swings: 102
rounds with 1 swings: 18 (31.5%)
rounds with 2 swings: 33 (57.8%)
rounds with 3 swings: 6 (10.5%)
-----------------------------------------------------------------------------
Fight #138 [65] A raging wyvern - Fri Nov 08 20:16:50 2013 - Duration: 6m 41s
Rounds: 192; Bashes: 0; Dmg Type: hits; Swings: 321
rounds with 1 swings: 72 (37.5%)
rounds with 2 swings: 111 (57.8%)
rounds with 3 swings: 9 (4.6%)
-----------------------------------------------------------------------------
Fight #135 [63] A racnar - Fri Nov 08 20:27:13 2013 - Duration: 5m 26s
Rounds: 232; Bashes: 41; Dmg Type: hit; Swings: 390
rounds with 1 swings: 87 (37.5%)
rounds with 2 swings: 132 (56.8%)
rounds with 3 swings: 13 (5.6%)
-----------------------------------------------------------------------------
Fight #128 [61] A fiery guardian - Fri Nov 08 21:31:24 2013 - Duration: 12m 41s
Rounds: 118; Bashes: 39; Dmg Type: claws; Swings: 195
rounds with 1 swings: 53 (44.9%)
rounds with 2 swings: 53 (44.9%)
rounds with 3 swings: 12 (10.1%)
-----------------------------------------------------------------------------
Fight #214 [113] Mist panther - Sat Nov 09 16:15:51 2013 - Duration: 6m 47s
Rounds: 148; Bashes: 51; Dmg Type: claws; Swings: 261
rounds with 1 swings: 46 (31%)
rounds with 2 swings: 91 (61.4%)
rounds with 3 swings: 11 (7.4%)


Level 60+ Non-Warrior NPCs
==========================

[Cleric NPC]
Fight #132 [62] An ancient guardian wurm - Fri Nov 08 19:52:01 2013 - Duration: 11m 14s
Rounds: 136; Bashes: 38; Dmg Type: claw; Swings: 212
rounds with 1 swings: 60 (44.1%)
rounds with 2 swings: 76 (55.8%)

[Shadowknight NPC]
Fight #146 [68] A greater malevolent drake - Fri Nov 08 20:41:19 2013 - Duration: 3m 38s
Rounds: 96; Bashes: 16; Dmg Type: hits; Swings: 157
rounds with 1 swings: 35 (36.4%)
rounds with 2 swings: 61 (63.5%)

[Shadowknight NPC]
Fight #172 [80] An onyx sky drake - Sun Nov 10 16:21:18 2013 - Duration: 5m 43s
Rounds: 226; Bashes: 42; Dmg Type: hits; Swings: 365
rounds with 1 swings: 87 (38.4%)
rounds with 2 swings: 139 (61.5%)

[Druid NPC]
Fight #174 [81] A glimmering drake - Sun Nov 10 16:31:44 2013 - Duration: 5m 55s
Rounds: 251; Bashes: 43; Dmg Type: hit; Swings: 426
rounds with 1 swings: 76 (30.2%)
rounds with 2 swings: 175 (69.7%)

Some EQLive data:

Code:
Level 60+ Warrior NPCs
======================

Fight #1 [1] A Guardian of Marr - Sat Mar 15 02:18:53 2014 - Duration: 9m 54s
Rounds: 298; Bashes: 74; Dmg Type(s): hit; Swings: 491
rounds with 1 swings: 105 (35.2%)
rounds with 2 swings: 193 (64.7%)
-----------------------------------------------------------------------------
Fight #2 [2] A jord kriger - Sat Aug 30 16:31:06 2014 - Duration: 12m 30s
Rounds: 376; Bashes: 94; Dmg Type(s): hit; Swings: 633
rounds with 1 swings: 119 (31.6%)
rounds with 2 swings: 257 (68.3%)
-----------------------------------------------------------------------------
Fight #3 [3] A vann militis - Sat Aug 30 17:22:38 2014 - Duration: 38m 58s
Rounds: 1170; Bashes: 291; Dmg Type(s): hit; Swings: 1934
rounds with 1 swings: 406 (34.7%)
rounds with 2 swings: 764 (65.2%)
-----------------------------------------------------------------------------
Fight #4 [4] Hero Shrine Guardian - Sat Aug 30 19:40:11 2014 - Duration: 21m 5s
Rounds: 633; Bashes: 158; Dmg Type(s): punch; Swings: 1028
rounds with 1 swings: 239 (37.7%)
rounds with 2 swings: 393 (62%)
rounds with 3 swings: 1 (0.1%)     probably a double round caused by server lag
Since level 60+ Warrior and Monk NPCs in old EQ could triple atack, this lead to the somewhat rare possibility of the mob attacking five times in a single combat round. This required the NPC to successfully roll dual wield, double attack twice, and triple attack all in the same round, so it was uncommon.

Al'Kabor sourced log evidence:

Code:
1.7 delay mob:
[Thu Nov 07 20:10:01 2013] Tranala bashes YOU for 67 points of damage.
[Thu Nov 07 20:10:03 2013] Tranala hits YOU for 181 points of damage.
[Thu Nov 07 20:10:03 2013] Tranala hits YOU for 226 points of damage.
[Thu Nov 07 20:10:03 2013] Tranala tries to hit YOU, but misses!
[Thu Nov 07 20:10:03 2013] Tranala tries to hit YOU, but misses!
[Thu Nov 07 20:10:03 2013] Tranala hits YOU for 118 points of damage.
[Thu Nov 07 20:10:03 2013] You are unstunned.
[Thu Nov 07 20:10:05 2013] Tranala tries to hit YOU, but misses!

1.7 delay mob:
[Thu Nov 07 20:21:10 2013] Travala tries to hit YOU, but misses!
[Thu Nov 07 20:21:10 2013] You begin casting Light of Nife.
[Thu Nov 07 20:21:11 2013] You have been healed for 850 points of damage.
[Thu Nov 07 20:21:11 2013] You are bathed in the light of life.
[Thu Nov 07 20:21:11 2013] Travala hits YOU for 181 points of damage.
[Thu Nov 07 20:21:11 2013] Travala hits YOU for 64 points of damage.
[Thu Nov 07 20:21:11 2013] Travala hits YOU for 199 points of damage.
[Thu Nov 07 20:21:11 2013] Travala tries to hit YOU, but misses!
[Thu Nov 07 20:21:11 2013] Travala hits YOU for 64 points of damage.
[Thu Nov 07 20:21:13 2013] Travala hits YOU for 109 points of damage.

1.7-2 delay mob:
[Thu Nov 07 21:32:27 2013] Tantor tries to gore YOU, but misses!
[Thu Nov 07 21:32:29 2013] You slash Tantor for 124 points of damage.
[Thu Nov 07 21:32:29 2013] You try to slash Tantor, but miss!
[Thu Nov 07 21:32:29 2013] Torvie begins to cast a spell.
[Thu Nov 07 21:32:29 2013] Tantor tries to gore YOU, but misses!
[Thu Nov 07 21:32:29 2013] Tantor tries to gore YOU, but misses!
[Thu Nov 07 21:32:29 2013] Tantor tries to gore YOU, but misses!
[Thu Nov 07 21:32:29 2013] Tantor tries to gore YOU, but YOU parry!
[Thu Nov 07 21:32:29 2013] Tantor tries to gore YOU, but misses!
[Thu Nov 07 21:32:30 2013] Tantor glances nervously about.
[Thu Nov 07 21:32:30 2013] You slash Tantor for 160 points of damage.
[Thu Nov 07 21:32:30 2013] You try to slash Tantor, but miss!
[Thu Nov 07 21:32:31 2013] Tantor tries to gore YOU, but misses!

[Thu Nov 07 23:16:39 2013] Sontalak begins to cast a spell.
[Thu Nov 07 23:16:39 2013] Sontalak has been dispelled.
[Thu Nov 07 23:16:41 2013] Sontalak tries to bash YOU, but misses!
[Thu Nov 07 23:16:41 2013] Sontalak claws YOU for 215 points of damage.
[Thu Nov 07 23:16:41 2013] Sontalak tries to claw YOU, but misses!
[Thu Nov 07 23:16:41 2013] Sontalak tries to claw YOU, but YOU parry!
[Thu Nov 07 23:16:41 2013] Sontalak claws YOU for 350 points of damage.
[Thu Nov 07 23:16:41 2013] Sontalak claws YOU for 305 points of damage.
[Thu Nov 07 23:16:43 2013] Sontalak tries to claw YOU, but misses!

[Fri Nov 08 23:27:52 2013] Supernal elixir pumps through your body.
[Fri Nov 08 23:27:57 2013] Auto attack is on.
[Fri Nov 08 23:27:57 2013] You try to slash Telkorenar, but miss!
[Fri Nov 08 23:27:57 2013] Telkorenar tries to claw YOU, but misses!
[Fri Nov 08 23:27:57 2013] Telkorenar claws YOU for 240 points of damage.
[Fri Nov 08 23:27:57 2013] Telkorenar tries to claw YOU, but YOU parry!
[Fri Nov 08 23:27:57 2013] Telkorenar tries to claw YOU, but misses!
[Fri Nov 08 23:27:57 2013] Telkorenar claws YOU for 195 points of damage.
[Fri Nov 08 23:27:57 2013] Auto attack is off.
[Fri Nov 08 23:27:58 2013] Your eyes stop tingling.
[Fri Nov 08 23:27:58 2013] Your body combusts as the lava hits you. You have taken 125 points of damage.
[Fri Nov 08 23:28:00 2013] Telkorenar claws YOU for 480 points of damage.

That round from Telk was his first round, which makes it very unlikely to be a 'double round'.

[Fri Nov 15 23:25:35 2013] Jekn slashes Nevor Jikman for 58 points of damage.
[Fri Nov 15 23:25:36 2013] Nevor Jikman was hit by non-melee for 64 points of damage.
[Fri Nov 15 23:25:36 2013] Nevor Jikman was pierced by thorns.
[Fri Nov 15 23:25:36 2013] Nevor Jikman hits YOU for 193 points of damage.
[Fri Nov 15 23:25:36 2013] Nevor Jikman tries to hit YOU, but misses!
[Fri Nov 15 23:25:36 2013] Nevor Jikman tries to hit YOU, but misses!
[Fri Nov 15 23:25:36 2013] Nevor Jikman was hit by non-melee for 64 points of damage.
[Fri Nov 15 23:25:36 2013] Nevor Jikman was pierced by thorns.
[Fri Nov 15 23:25:36 2013] Nevor Jikman hits YOU for 667 points of damage.
[Fri Nov 15 23:25:36 2013] Nevor Jikman tries to hit YOU, but misses!
[Fri Nov 15 23:25:36 2013] Torvia slashes Nevor Jikman for 52 points of damage.
[Fri Nov 15 23:25:36 2013] Torvia slashes Nevor Jikman for 72 points of damage.
[Fri Nov 15 23:25:37 2013] Torria begins to cast a spell.

Nevor was fully 70% slowed in that log.
I couldn't tell you if triple attack was possible in the off-hand, enabling six attack rounds. If it was possible, it would have been extremely rare.
Reply With Quote
  #2  
Old 10-25-2014, 07:53 AM
Torven
Sarnak
 
Join Date: Aug 2014
Posts: 61
Default

I'm a bit sad to not see a reply to this post, because certain inaccuracies are hugely imbalancing to the game on emu servers right now, and preventing me from some database entry work.

Having a little more knowledge of how EQEmu works under the hood now, it's obvious to me that what needs to be done is to decouple the NPC logic from the PC logic. NPC monks on EQEmu were for example using attack delay values from the bare fists delay table for PCs, which is silly. (demonstar fixed this I believe) It's clear to me that NPCs have their own separate simplified combat logic. Even the ability to bash isn't linked to class-- Trakanon for example is a necromancer that bashes. SOE devs seemingly set if NPCs can bash or not independent of class, and just often not gave it to caster NPCs. Class also has no bearing on dual wield or double attack availability or rates, as I mentioned previously.

Caster NPCs not double attacking is a huge, huge balance issue and easily resolved. Right now it's impossible to make Trakanon double as he should be; it's either single attack rounds (which should never happen for any NPC in the entire game, minus perhaps level 1 mobs which I have not confirmed either way) or quad rounds without weapons-- there is no other state to set the mob without changing its class to a melee class.

Also, flagging an NPC as dual wield capable is making it quad without weapons, so nothing can be set to dual wield in the database right now without making the mobs always quad. This has large implications for charmed pets and NPCs that naturally spawn with two weapons, like guards.

Lastly, I learned two more important things since I started this thread: One, level 2 mobs can double attack (just very rarely of course), and Two, NPCs cannot wield a weapon in a particular hand unless the weapon is flagged for that hand just like PCs can't. I.e. Trakanon was only doubling me even though he had multiple teeth (which are daggers) because he couldn't offhand one because it was PRIMARY only.
Reply With Quote
  #3  
Old 10-25-2014, 04:40 PM
vsab's Avatar
vsab
Discordant
 
Join Date: Apr 2014
Location: United Kingdom
Posts: 276
Default

I have to admit, this thread passed me by. Interesting stuff, and will prob take a few days to digest.

Of course the consequences are massive both in code terms but also I imagine the peq database would have to have every mob tweaked....
Reply With Quote
  #4  
Old 12-07-2014, 03:12 AM
MethodAir
Fire Beetle
 
Join Date: Jan 2011
Posts: 1
Default

This is impressive, nicely done Torven. Hope this information is put to good use.
Reply With Quote
  #5  
Old 06-28-2015, 11:30 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,164
Default

DA chance: rand(500) <= skill
DW chance: rand(375) <= skill

At least until 36. then it changes a bit :(

Last edited by demonstar55; 06-28-2015 at 11:36 PM..
Reply With Quote
  #6  
Old 06-29-2015, 08:41 AM
chrsschb's Avatar
chrsschb
Dragon
 
Join Date: Nov 2008
Location: GA
Posts: 904
Default

Great read, makes me want to go do some internal testing.
__________________
Clumsy's World: Resurgence [2019-Present]
Clumsy's World 2.0 [2014-2016]
Clumsy's World [2006-2012]
Reply With Quote
  #7  
Old 06-29-2015, 06:47 PM
rhyotte
Hill Giant
 
Join Date: Jul 2012
Location: Oklahoma
Posts: 222
Default

Nicely done. Planning to start a server to tinker with in the next week or two.
Reply With Quote
  #8  
Old 07-03-2015, 03:17 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,164
Default

From the parses it seems mobs skills follow: 5 * level until 51 where it becomes 250. (for DA and DW for all the mobs that Torven parsed)

36+ there is a level bonus added into their checks.

DA uses rand(500), DW uses rand(375)

Clients require 150 DA to offhand double attack, mobs appear to require level 36+
Reply With Quote
  #9  
Old 07-06-2015, 02:45 AM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,164
Default

Triple Attack for clients on live appears to be: rand(1000) <= skill (plus that TA% chance SPA)

Although I only did rather short parses (27m) rand(1000) worked out for all 3 toons (85 mnk, 85 brd, 67 rog) I was parsing with error of 1-3%.
Reply With Quote
  #10  
Old 11-09-2017, 08:02 AM
Torven
Sarnak
 
Join Date: Aug 2014
Posts: 61
Default

This seems to fit the data well:

Code:
		uint16 skillLevel = std::min(moblevel * 5, 200);
		if (moblevel > 50)
		{
			skillLevel = 250 + moblevel;
		}
		else if (moblevel > 40)
		{
			skillLevel += moblevel + 10;
		}
		else if (moblevel > 35)
		{
			skillLevel += moblevel + 5;
		}
		skills[SkillDoubleAttack] = skillLevel;
		skills[SkillDualWield] = skillLevel;
Reply With Quote
  #11  
Old 11-11-2017, 01:12 PM
Torven
Sarnak
 
Join Date: Aug 2014
Posts: 61
Default

So that satisfies non-pet NPC rates, but what about pets?

Two years ago I parsed all the pets up to PoP era, but never posted it. The data can be found here: https://drive.google.com/open?id=10c...9Zu1xUHSgsZL9U

I'm told that Daybreak is screwing with pet stats lately, so who knows if it's current. However in 2015, pet effective skill levels were min(level * 5, 225) + level for both double attack and dual wield for mage, necro and enchanter pets at all levels. This resulted in rates higher than non-pet NPCs for most levels.

Beastlord and shaman pets had lower rates: min(level * 5, 200) + level after level 35 for both double and dual. Under level 35, shaman pets were level * 5 for double attack, but not dual wield. Beastlord pet double attack seemed to be lower still at level * 5 - (35 - level) or at least that fit pretty well. Sub 35 pet dual wield rates were quite low for both classes-- less than half the rate as the other classes. Beastlord pets below level 25 did not dual wield at all, even when given weapons. This makes beastlord pets theoretically worse dps than shaman pets at some of the lower levels. (assuming they have equal offense/atk and to-hit and discounting procs) Beastlord pets however do get the block skill incidentally. (they seem to block at half the rate or so of PC monks)


https://i.imgur.com/sq7UcKc.png


So that's Live circa 2015. But what about old EQ? Time for the hard stuff.

I searched logs from Al'Kabor for pet combat, copy and pasted into new files and ran scripts on them to get attacks per round. I happened to have logs of myself raising defense skill with pets in the Arena, which were extremely useful. Demonstar finding the precise function for Double Attack and Dual Wield in the client allowed me to create a simulator script that I ran to know what the round sizes would look like at various skill levels. I could then compare this data to parsed logs. The resuts were remarkably conclusive:

Code:
Enchanter pet Aanya's Animation; Level 29-33
Fight #1 [1] Vonanab - Tue Dec 18 02:43:16 2012 - Duration: 90m 50s
Rounds: 2457; Bashes: 872; Dmg Type(s): pierce, slash; Swings: 3732; Swings/Round: 1.518
Mainhand Swings: 3222 (86.3%), Offhand Swings: 510 (13.6%)
rounds with 1 swings: 1334 (54.2%)
rounds with 2 swings: 971 (39.5%)
rounds with 3 swings: 152 (6.1%)
rounds with 1 mainhand swings: 1692 (68.8%)
rounds with 2 mainhand swings: 765 (31.1%)
rounds with 1 offhand swings: 510 (100%) (note: weapons are different delay, and off-hand isn't doubling)

Mage pet Greater Conjuration Earth; Level 37-41
Fight #3 [3] Jontik - Fri Oct 04 02:02:44 2013 - Duration: 68m 59s
Rounds: 2383; Bashes: 845; Dmg Type(s): pierce, slash; Swings: 5771; Swings/Round: 2.421
Mainhand Swings: 3519 (60.9%), Offhand Swings: 2252 (39%)
rounds with 1 swings: 428 (17.9%)
rounds with 2 swings: 862 (36.1%)
rounds with 3 swings: 753 (31.5%)
rounds with 4 swings: 340 (14.2%)
rounds with 1 mainhand swings: 1247 (52.3%)
rounds with 2 mainhand swings: 1136 (47.6%)
rounds with 1 offhand swings: 818 (53.2%)
rounds with 2 offhand swings: 717 (46.7%)
Estimated Dual Wield Chance: 64.4%

Enchanter pet Kintaz`s Animation; Level 37-41
Fight #2 [2] Zoner - Fri Oct 04 02:02:42 2013 - Duration: 69m 0s
Rounds: 2297; Bashes: 816; Dmg Type(s): pierce, slash; Swings: 5569; Swings/Round: 2.424
Mainhand Swings: 3376 (60.6%), Offhand Swings: 2193 (39.3%)
rounds with 1 swings: 453 (19.7%)
rounds with 2 swings: 754 (32.8%)
rounds with 3 swings: 752 (32.7%)
rounds with 4 swings: 338 (14.7%)
rounds with 1 mainhand swings: 1218 (53%)
rounds with 2 mainhand swings: 1079 (46.9%)
rounds with 1 offhand swings: 767 (51.8%)
rounds with 2 offhand swings: 713 (48.1%)
Estimated Dual Wield Chance: 64.4%

Enchanter pet Aeldorb's Animation; level 58; max hit 60
Fight #1 [1] Karantik - Sat Oct 26 02:26:32 2013 - Duration: 57m 36s
Rounds: 944; Bashes: 335; Dmg Type(s): slash; Swings: 2379; Swings/Round: 2.52
rounds with 1 swings: 146 (15.4%)
rounds with 2 swings: 310 (32.8%)
rounds with 3 swings: 339 (35.9%)
rounds with 4 swings: 149 (15.7%)

Shaman pet True Spirit; level 58; max hit 60;
Fight #2 [2] Zareker - Sat Nov 16 17:12:30 2013 - Duration: 3m 58s
Rounds: 126; Bashes: 45; Dmg Type(s): bite; Swings: 187; Swings/Round: 1.484
rounds with 1 swings: 65 (51.5%)
rounds with 2 swings: 61 (48.4%)

Mage pet Ward of Xegony; level 60; max hit 83; triples so swings/round will be slightly higher
Fight #24 [25] Kenantik - Sun Nov 17 17:55:16 2013 - Duration: 16m 9s
Rounds: 109; Bashes: 44; Dmg Type(s): hit; Swings: 285; Swings/Round: 2.614
rounds with 1 swings: 21 (19.2%)
rounds with 2 swings: 27 (24.7%)
rounds with 3 swings: 37 (33.9%)
rounds with 4 swings: 21 (19.2%)
rounds with 5 swings: 3 (2.7%)

fight was in a duel; max hit = 47, probably Spirit of Sorsha (base/DI damage is half in pvp for pets); probably also triples since it's level 60
Fight #1 [1] Deathro`s warder - Mon Mar 25 12:15:47 2013 - Duration: 230m 39s
Rounds: 4704; Bashes: 1642; Dmg Type(s): bite; Swings: 12303; Swings/Round: 2.615
rounds with 1 swings: 752 (15.9%)
rounds with 2 swings: 1430 (30.3%)
rounds with 3 swings: 1569 (33.3%)
rounds with 4 swings: 840 (17.8%)
rounds with 5 swings: 92 (1.9%)
rounds with 6 swings: 7 (0.1%)
rounds with 7 swings: 5 (0.1%)
rounds with 8 swings: 2 (0%)
rounds with 9 swings: 4 (0%)  log had 'too far away' text creating double rounds somehow
And the simulator output:

Code:
Double Attack / Dual Wield Simulator: 10000000 rounds; Level = 40; Double Attack skill = 240;  Dual Wield skill = 240
Double Attack chance: 48.00%;  Dual Wield chance: 64.00%
one swing rounds: 1893922 (18.93922%)
two swing rounds: 3470669 (34.70669%)
three swing rounds: 3177897 (31.77897%)
four swing rounds: 1457512 (14.57512%)
swings: 24198999
avg swings/round: 2.4198999

Double Attack / Dual Wield Simulator: 10000000 rounds; Level = 60; Double Attack skill = 260;  Dual Wield skill = 260
Double Attack chance: 52.00%;  Dual Wield chance: 69.33%
one swing rounds: 1488780 (14.8878%)
two swing rounds: 3208549 (32.08549%)
three swing rounds: 3446487 (34.46487%)
four swing rounds: 1856184 (18.56184%)
swings: 25670075
avg swings/round: 2.5670075

Double Attack / Dual Wield Simulator: 10000000 rounds; Level = 60; Double Attack skill = 285;  Dual Wield skill = 285
Double Attack chance: 57.00%;  Dual Wield chance: 76.00%
one swing rounds: 1047858 (10.47858%)
two swing rounds: 2791844 (27.91844%)
three swing rounds: 3715972 (37.15972%)
four swing rounds: 2444326 (24.44326%)
swings: 27556766
avg swings/round: 2.7556766

Double Attack / Dual Wield Simulator: 10000000 rounds; Level = 60; Double Attack skill = 310;  Dual Wield skill = 310
Double Attack chance: 62.00%;  Dual Wield chance: 82.67%
one swing rounds: 670322 (6.70322%)
two swing rounds: 2290299 (22.90299%)
three swing rounds: 3890358 (38.90358%)
four swing rounds: 3149021 (31.49021%)
swings: 29518078
avg swings/round: 2.9518078
The results match min(level * 5, 200) + level very well for pets > 35. You can also immediately see that the level 29-33 pet was not double attacking in the off-hand, indicating a skill of < 150, and the rates also match level * 5. It seems old EQ had rates for mage, necro and enchanter pets equal to shaman pets on Live circa 2015 (minus the unusually low dual wield rate at low levels). I would guess that Sony upgraded those and left shaman/beast pets alone. It makes sense for them to have upgraded pets when they granted PCs higher skill caps.

I've also discovered that PCs get the +level added to their doubles and duals at level 30, not 36. (at least on Al'Kabor) Data:

Code:
File: I:\Parse\monk level 29-30.txt
Rounds: 673
Rounds with 1 swings: 206 (30.61%)
Rounds with 2 swings: 329 (48.89%)
Rounds with 3 swings: 129 (19.17%)
Rounds with 4 swings: 9 (1.34%)
------------------------------------------------------------
File: I:\Parse\monk level 30-31.txt
Rounds: 752
Rounds with 1 swings: 216 (28.72%)
Rounds with 2 swings: 294 (39.10%)
Rounds with 3 swings: 187 (24.87%)
Rounds with 4 swings: 55 (7.31%)
------------------------------------------------------------
File: I:\Parse\monk level 31-32.txt
Rounds: 645
Rounds with 1 swings: 163 (25.27%)
Rounds with 2 swings: 220 (34.11%)
Rounds with 3 swings: 210 (32.56%)
Rounds with 4 swings: 52 (8.06%)
------------------------------------------------------------
File: I:\Parse\monk level 34-35.txt
Rounds: 854
Rounds with 1 swings: 184 (21.55%)
Rounds with 2 swings: 298 (34.89%)
Rounds with 3 swings: 268 (31.38%)
Rounds with 4 swings: 100 (11.71%)
Rounds with 5 swings: 2 (0.23%)
Rounds with 6 swings: 2 (0.23%)
------------------------------------------------------------
File: I:\Parse\monk level 35-36.txt
Rounds: 1052
Rounds with 1 swings: 221 (21.01%)
Rounds with 2 swings: 372 (35.36%)
Rounds with 3 swings: 342 (32.51%)
Rounds with 4 swings: 115 (10.93%)
Rounds with 5 swings: 1 (0.10%)
Rounds with 6 swings: 1 (0.10%)
------------------------------------------------------------
File: I:\Parse\monk level 36-37.txt
Rounds: 1053
Rounds with 1 swings: 203 (19.28%)
Rounds with 2 swings: 352 (33.43%)
Rounds with 3 swings: 364 (34.57%)
Rounds with 4 swings: 134 (12.73%)
Reply With Quote
  #12  
Old 12-07-2017, 04:25 AM
Torven
Sarnak
 
Join Date: Aug 2014
Posts: 61
Default

I went on Live and parsed some pet avoidance rates to estimate skill caps. I also parsed my 2015 logs and the results matched logs that I produced in November, so they don't appear to have been modified in the last couple of years.

At some point Sony granted pets (Mage, Ench and Necro pets anyway) the block skill and raised avoidance skill caps considerably, while still leaving the parry skill (monks don't parry). Block is a very effective avoidance skill, so all 4 combined result in avoidance rates of around 30% BEFORE avoidance AC checks which is insane. This is a large reason why modern pets are so much more powerful than they used to be, and yet another reason why I wonder why the TLPs are so popular when TAKP and P99 are significantly better classic EQ experiences. (although I'm unfamiliar with p99's pet stats)

Beastlord and Shaman pets have lower skill caps, shaman pets don't have block, and beaslord pets don't parry. Beastlord pets had block instead of parry on AK as well and were the only pets that did as far as I'm aware.

I updated my pet data spreadsheet with the avoidance skill data, which is located here: https://docs.google.com/spreadsheets...Zu1xUHSgsZL9U/

The following are simple skill formulae that match the data:

Beastlord
Riposte = min(level * 5, 100) add 25 for PoP pets
Block = min(level * 5, 50) add 25 for the highest Kunark pet, the Luclin pet and PoP pets
Parry = 0
Dodge = min(level * 5, 125)

Enchanter
Riposte = min(level * 5, 200)
Block = min(level * 5, 225)
Parry = min(level * 5, 200)
Dodge = min(level * 5, 150) add 25 for PoP pet

Mage
Riposte = min(level * 5, 200)
Block = min(level * 5, 225)
Parry = min(level * 5, 150) add 25 for Kunark and PoP pets
Dodge = min(level * 5, 150) add 25 for Kunark and PoP pets

Necro (not Emissary of Thule)
Riposte = min(level * 5, 200)
Block = min(level * 5, 200) add 25 for PoP pets
Parry = min(level * 5, 175)
Dodge = min(level * 5, 175)

Emissary of Thule - this had atypically low skill levels
Riposte = 150
Block = 0
Parry = 200
Dodge = 225

Shaman
Riposte = min((level - 12) * 5, 100)
Block = 0
Parry = min((level - 7) * 5, 125)
Dodge = min((level - 11) * 5, 125)

Caveats:

* I didn't parse anywhere near every pet, because these took 8 hours each to make.
* It's possible/likely that RNG resulted in a few estimates that were off by a percent, but the above formulae all fit the data except for one case I believe. Again, not all pets were parsed so it's likely not perfect.
* The avoidance rolls are ints, so a parsed result even if accurate would indicate a range of possible skill caps. It's possible, for example, that the 175 caps I have up there could actually be 200, but the avoidance rate would be the same regardless.
* The level 9 beastlord pet did not rip, parry or dodge. It did block however. The level 11 enchanter pet did use skills. On AK, NPCs didn't use avoidance skills until level 11ish, so it's possible that the very low level pets all don't have avoidance skills like AK's normal NPCs. (other than the blocking) I only parsed the one pet under level 11 though.


Now on to old EQ. Old EQ logs of pets tanking are hard to come by; let alone the same pet tanking for thousands of hits and not getting hit from behind. I do however have two logs of pets with known summons used in the arena to raise skills:

Code:
Al'Kabor pets

level 65 Beastlord pet Spirit of Sorsha
Total Swings: 18633;  Landed Blows: 10196 (54.72%);  Avoided Swings: 7363 (39.515%)
 - Misses: 6074 (32.598%)
 - Dodged: 685 (3.676%)
 - Parried: 0 (0%)
 - Riposted: 604 (3.241%)
 - Blocks: 1074 (5.763%)

Greater Conjuration Earth + 2 Kintaz`s Animation (attacker rotated to keep them aggro)
Total Swings: 2641;  Landed Blows: 705 (26.694%);  Avoided Swings: 1936 (73.305%)
 - Misses: 1701 (64.407%)
 - Dodged: 75 (2.839%)
 - Parried: 90 (3.407%)
 - Riposted: 70 (2.65%)
 - Blocks: 0 (0%)
Total Swings: 1052;  Landed Blows: 311 (29.562%);  Avoided Swings: 741 (70.437%) - off-hand
 - Misses: 646 (61.406%)
 - Dodged: 28 (2.661%)
 - Parried: 41 (3.897%)
 - Riposted: 26 (2.471%)
 - Blocks: 0 (0%)
The avoidance rates are much lower than Live's, indicating significantly lower skill caps, which is unsurprising since the double attack and dual wield skills were modified as mentioned previously.

I do however think that the avoidance formulae were also modified at some point. My old EQ logs show lower avoidance rates for riposte and parry. Dodge i'm not as sure about as it is harder to estimate since it comes after rips and parries. On TAKP I just increased the avoidance divisors for Riposte and Parry by 5, to 55 and 50 respectively, but I'm far from certain of those values. It makes sense however for Sony to have modified these because they added a bunch of strikethrough in the game, and it's much easier to change the code literals than it is to modify skill caps for every NPC and PC. Block rates seem the same; my old EQ log actually parsed above expected. Block is so strong that it makes sense that they left it alone.

Back in 2003, I created some prepared logs to compare Monk vs. Warrior defensive ability. Since these were carefully prepared, no hits were from behind, and all from the same two NPCs, so it's good data; albeit still not as much as we would like for this case.

Code:
Level 65 Monk w/ Ton Po Chestwrap defending vs Defender Filorou (Shadowhaven Guard), Oct 30 2003:
Total Swings: 3381;  Landed Blows: 1139 (33.688%);  Avoided Swings: 2242 (66.311%)
 - Blocks: 500 (14.788%)
 - Parried: 0 (0%)
 - Riposted: 152 (4.495%)
 - Dodged: 196 (5.797%)
 - Misses: 1394 (41.23%)


Level 65 Warrior w/ Raex BP defending vs Defender Kealren (Shadowhaven Guard), Oct 30 2003:
Total Swings: 3373;  Landed Blows: 1340 (39.727%);  Avoided Swings: 2033 (60.272%)
 - Parried: 184 (5.455%)
 - Riposted: 178 (5.277%)
 - Dodged: 172 (5.099%)
 - Misses: 1499 (44.441%)
Using the modern EQ formulae, expected avoidance rates would be:
Monk block: (100+230)*1.08/25 = 14%
Monk riposte: (100+225)/50 = 6%
Monk dodge: (100+230)/45 = 7%
Warrior parry: (100+230)/45 = 7%
Warrior riposte: (100+225)*1.08/50 = 7%
Warrior dodge: (100+190)/45 = 6%

Keep in mind however that avoidance order back then was: Block, Parry, Riposte, Dodge. Parsed riposte and dodge rates will parse a bit lower due to skill order.

For TAKP pets, I capped avoidance skills at 100 and added another 25 points for PoP pets. Along with the +5 to the skill divisors, it comes about to what the parsed results above were. (a bit too forgiving if anything) Beastlord pets I capped at 50 block.
Reply With Quote
  #13  
Old 05-18-2020, 03:56 PM
Torven
Sarnak
 
Join Date: Aug 2014
Posts: 61
Default

From what I can tell, innate dual wield is just granted to level 66+ NPCs by hardcoding; every level 66+ NPC I've looked at quad attacks. Even NPCs of the same type with level variance will double at 65 and quad at 66.

This would help explain why boss NPCs were often level 66 (particularly in Luclin). Along with the old taunt skill becoming unusable on NPCs 6 or more levels above the player, as well as the resist algorithm behaving differently at level 66+.
Reply With Quote
  #14  
Old 02-17-2024, 07:51 AM
Torven
Sarnak
 
Join Date: Aug 2014
Posts: 61
Default

Recently I've done some more old EQ pet research and I'm posting the conclusions here. I'll include some of the previous conclusions with it as well as some skill caps I've figured out previously but never mentioned before for completeness. Note that this applies to PoP era/levels and earlier and I can't say how later eras may differ.

Sony buffed pets at some point after the year 2004 and before 2015. In this post, "Live EQ" means the post-buff pets, and "Old EQ" means 2004 and earlier.

This post also talks about stuff I outline in the Melee Combat Routines Analyzed and Modeled thread. See that thread for more information.

Parse data mentioned in this post can be found in my AC and ATK data spreadsheet.

See also my pet stats spreadsheet.


NPC Dual Wield and Double Attack Skill Caps

Level 1-50 non-pet NPCs: Skills capped at 200
Level 51+ non-pet NPCs: Skills are 250

Old EQ summoned pets: Skills capped at 200, this includes PoP pets
Live EQ summoned pets: Mage, Necro, Enchnater pets cap at 225; Beastlord and Shaman pets cap at 200


These were determined with a high amount of certainty and I explained how I came up with it in a previous post in this thread. I rechecked it recently.


NPC Offense and Weapon Skill Caps

Level 1-50 pre-PoP non-pet NPCs: Skills capped at 210
Level 51+ pre-PoP non-pet NPCs: Skills are 250

Level 1-50 PoP non-pet NPCs: Skills capped at 275 (skills are level*6 up to cap instead of level*5)
Level 51+ PoP non-pet NPCs: Skills are 250+level

Old EQ summoned pets: Skills capped at 225, even PoP pets (shaman pets might have been 215, unverified)
Live EQ summoned pets: Skills capped at 225 for non-PoP pets; 235 for PoP pets; 215 for shaman pets



This was much harder to figure out and has less certainty. The way I figured this out is by parsing pets' hit/miss rates. NPC and PC To-Hit is simple to calculate and did not change with equipment or buffs until the late PoP era/LDoN equipment mods showed up. It is simply: offense_skill + weapon_skill + 7.

Years ago Mackal gave me a little MQ2 plugin and I was able to get precise To-Hit values from a handful of NPCs because (oddly) the To-Hit value of NPCs is sent over the wire if the NPC has a contact proc that is a beneficial spell and it hits you. This is the only known way to get actual NPC statistics from the server. I was able to detmine that old world non-pet NPCs cap their weapon skills and offense skills at 210 up to level 50. At 51 and up the skills jump to 250 for all non-pet NPCs through Luclin. That is true for NPCs earlier than PoP, but In PoP and later NPCs have level*6 for skills with a 275 cap up to level 50, then at 51+ they do 250+level. Arena dummies use the higher PoP skill caps as well. Note that the number in the packet is the value after the 1.21 multiplication and +10 -- read my other melee damage thread to understand what that means. Anyway, this confirms that NPCs calculate To-Hit like players do.

So, if you have logs of pets attacking targets with known Avoidance values, you can estimate a To-Hit from that. I made (very) long logs of characters with known To-Hit values attacking Area dummies on the Test server to get Avoidance estimates for those dummy NPCs. I then logged pets attacking them. From this I could estimate the pets' To-Hit value. With the To-Hit value I could deduce the Offense and Weapon skills by assuming that both were the same and subtracting 7.

It's worth mentioning that old skill caps for players were 200 for weapon skills and 210 for Offense, so NPCs seemingly had a higher weapon skill cap. NPCs however had skills of level*5 instead of (level+1)*5.


NPC Offense ATK

ATK as a stat is comprised of two parts which are added together, similar to AC. Those two parts are To-Hit (the chance to land a blow) and Offense (the chance the blow will hit harder). This is easily confused with the Offense skill, but is a different stat. Offense ATK determines how frequently the attacks will hit for one of the 20 possible damage values. It's the actual number the server rolls against the target's Defense stat (the mitigation stat) in the final calculation. I explain this in the other thread.

Offense ATK is calculated simply: weapon_skill + (strength_over_75 * 2 / 3) + atk_bonus

atk_bonus is ATK from items, spells, or other sources like AAs or a database field. Also debuffs with negative values.

Non-pet NPC offense up to level 60 is rather linear and is roughly between level*6 to level*7 up to around level 43 where it goes flat until level 51, then becomes less predictable up to around 400 then becomes much more shallow. Generally level 60+ NPCs (PoP and earlier eras) have around 400-430. See the other thread for a chart.

I recently discovered some new data for summoned pet Offense ATK and is largely the reason for this post. I had parsed pet Offense ATK years ago on Live servers but I couldn't tell if the current Live estimates would apply to old EQ or not. So TAKP had the Live numbers for this. When Quarm launched it was obvious that pets were doing crazy damage (upwards of 2x rogue DPS) so this got me resarching this again, and I discovered that Live's pets were buffed at some point.

I checked old EQ logs and looked for cases of summoned pets attacking similar NPCs for extended periods of time. In one case I found mage pets from January 2000 (which is before Kunark) attacking Seafuries. I then carefully parsed the mitigation AC for these NPCs where possible and tried to estimate some ATK offense for the pets. In all cases they were significantly under the Live pet estimates and ended up roughly about equal (there is significant margin of error) to the expected weapon skill of the pets after adjusting for the pet buffs.

So presumably, pets had 75 strength in old EQ, meaning pet Offense ATK is equal to its weapon skill. Sony might have just granted pets strength some time after 2004, or granted the pets ATK in some other way. It makes some sense for old pets to not have innate ATK because the pet buff spells grant a lot of strength. Sony seemingly wanted players to have to give it to them that way originally.

The one exception I found was the Mage epic pet which seemed to have a higher ATK value than expected, which may have been upwards of 50 points but again the certainty of this is not very high.


NPC Defense Skill

I'll mention Defense skill here briefly for completeness. As far as I can tell, Defense is also capped at 210 like weapon skills for non-pet NPCs. NPC avoidance shows the same flattening around level 43, then it jumps at level 51 to what I assume is also 250. See the other melee thread for a chart.

I could not figure about how NPC mitigation scaled with Defense skill however. It doesn't seem to be computed like player mitigation is. It goes up mostly linerally (with a slight curve) until level 50 where it ends up around 200 AC and stays flat. Even most PoP NPCs have about 200 mitigation. Again see the other thread for a chart. I mainly mention this again here because I was able to confirm the NPC skill caps. Also knowing that AC ends up around 200 allows one to estimate pet Offense ATK from logs.

Live pet mitigation usually follows the non-pet NPC scale but some pets are well above 200.
Reply With Quote
Reply

Thread Tools
Display Modes

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:28 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3