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: 35
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: 35
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: 278
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
Developer
 
Join Date: Apr 2008
Location: MA
Posts: 981
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: Miami
Posts: 764
Default

Great read, makes me want to go do some internal testing.
Reply With Quote
  #7  
Old 06-29-2015, 06:47 PM
rhyotte
Hill Giant
 
Join Date: Jul 2012
Location: So.Cal.
Posts: 223
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
Developer
 
Join Date: Apr 2008
Location: MA
Posts: 981
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
Developer
 
Join Date: Apr 2008
Location: MA
Posts: 981
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: 35
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: 35
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
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 05:11 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 - 2017, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3