EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=590)
-   -   NPC Attack Rates Explained (https://www.eqemulator.org/forums/showthread.php?t=38734)

Torven 09-07-2014 01:56 AM

NPC Attack Rates Explained
 
In this post, I will detail everything I know about NPC rates of attack and offer a few recommendations as to how EQ Emulator can be made to be a more accurate recreation of EQLive.


Attack Rate Defined

Attack rate can be represented in two ways: the time delay between attacks (attack delay) and attacks per unit time (attack speed). It is important to understand the difference when dealing with the code or an NPC database, because the two are sort of inverse to each other-- when one gets larger the other gets smaller and vice versa.

Example: An NPC with an attack delay of 2 seconds would have an attack speed of 0.5 attacks per second.

Be mindful which term I use when discussing an issue in this post. EQ Emulator's code actually uses 'attack_speed' as the variable name for a mob's attack delay, which should probably be renamed for clarity.


The Default NPC Attack Rate

There isn't one. There is no common rate of attack that the vast majority of NPCs have.

As evidence I have this spreadsheet that I made myself using data I collected entirely myself using a parser I wrote myself:

https://docs.google.com/spreadsheets...gid=1227743551

That is a google sheets copy of my NPC spreadsheet which is where I put all my NPC data I gather for TAKP. The actual logs I used to parse the majority of NPCs on that list (almost all of the non-raid boss NPCs) as well as the parser script I wrote can be found on my google drive here:

https://drive.google.com/folderview?...p=sharing#grid

There are however some patterns:
  • The slowest attack rate is 3 seconds, and every NPC below level 25 has this attack rate. The vast majority of NPCs in classic (pre-Kunark) have this attack rate.
  • Starting in Kunark, common NPCs start getting faster attack rates around level 25. They progressively get faster as level increases.
  • Named NPCs have faster attack rates.
  • Raid bosses have very fast attack rates.
  • Most PoP mobs seem to have an attack delay of 2 seconds.

EQ Emulator's input variable for attack rate is a percentile modifier to a default attack delay of 3.6 seconds (3600 milliseconds). So if somebody wanted to make an NPC attack faster, they would input something like -50% to get an attack delay of 1.8 seconds.

That is certainly usable, however it is unintuitive and very cumbersome as it requires a calculator to figure out what input EQ Emulator requires to produce the desired attack delay for an NPC. My first recommendation would be to replace this input with an absolute attack delay value in the tens of seconds. I.e. '18' for an attack delay of 1.8 seconds. This appears to be the unit SOE uses because every NPC I was ever able to parse to a high degree of accuracy had an attack delay rounded to the nearest tens of seconds. Also, weapon delays in the item stats box uses the tens of seconds unit. An NPC with a value of 0 could be made to default to 30 (3 seconds).

One more thing before getting into spell effects: The weapon an NPC uses will sometimes change its attack delay. An NPC will have the lower of the two attack delays from either the weapon it wields or its set weaponless rate. I have not checked to see if EQ Emulator handles this as it's sort of a minor issue.


Attack Rate Modifying Spell Effects

Slow spells on EQ Emulator are bugged, very bugged. The formula used in the code is wrong.

Allakhazam's Lucy lists the spell Turgur's Insects as having this effect:

Decrease Attack Speed by 66% (L51) to 75% (L60)

Recall earlier when I made the distinction between attack speed and attack delay. Attack rate modifying spells adjust the speed not the delay. What the EQ Emulator code is doing right now is multiplying the attack delay by 1.75 in the case of a level 60 Turgur's, when it should be multiplying it by 4. How do I get 4? 75% less of something is 1/4th, which means 4 times the attack delay.

But don't just take my word for it:

Code:

Unslowed NPC:

Fight #8 [2] A Valorian Guardian - Sat Mar 15 03:53:37 2014 - Duration: 9m 56s
Rounds: 299; Bashes: 75; Dmg Type(s): punch; Swings: 490
rounds with 1 swings: 108 (36.1%)
rounds with 2 swings: 191 (63.8%)

Avg post-slow round delay: 2; Rounds/sec: 0.5; Swings/sec: 0.822
Postslow Swings: 490;  Postslow time: 596
(2)2(2)2(2)2(2)2(2)3(2)2(2)1(1)2(2)2(2)2(1)3(2)1(2)2(1)2(2)2(1)3(1)2(2)1(2)2
(2)2(1)2(2)2(1)2(1)2(1)2(1)2(2)2(1)2(2)2(1)3(1)1(2)2(2)2(1)2(1)2(2)2(2)2(2)2
(2)2(2)2(2)3(1)1(2)2(1)2(1)2(1)2(1)2(2)2(2)2(1)2(1)2(2)2(2)2(2)2(1)2(2)2(2)2
(2)2(1)2(1)2(2)2(2)2(1)2(1)2(1)2(2)2(2)2(2)2(1)2(2)3(1)1(1)3(2)1(1)2(2)2(2)2
(2)2(2)2(2)2(1)2(2)3(1)1(2)2(2)2(2)2(1)2(2)2(2)2(1)2(1)2(2)2(2)2(2)2(2)2(2)2
(2)2(1)2(1)2(2)2(2)2(2)2(1)2(1)2(2)2(1)2(2)2(2)2(2)2(2)2(1)2(2)2(2)2(1)2(1)2
(2)2(2)2(1)2(1)2(1)2(1)2(2)2(1)2(2)2(1)2(2)2(2)2(2)2(2)2(2)2(1)2(2)2(2)2(2)2
(1)2(2)2(2)2(1)2(1)2(1)2(2)2(2)2(2)2(1)2(2)2(2)2(2)2(2)2(1)2(1)2(1)2(1)2(1)2
(2)2(2)2(1)2(2)2(2)2(2)2(2)3(2)1(2)2(1)2(1)2(2)2(1)2(2)2(2)2(1)2(2)2(1)2(2)2
(1)2(1)2(2)2(2)2(2)2(1)2(2)2(2)2(2)2(2)2(2)2(1)3(2)1(2)2(2)2(2)2(2)2(1)2(1)2
(2)2(2)2(2)2(1)2(2)2(2)2(1)2(2)2(2)2(2)2(1)2(1)2(1)2(1)2(2)2(1)2(2)2(1)2(2)2
(1)2(1)2(2)2(2)2(2)2(2)2(2)2(2)2(1)2(1)2(2)2(2)2(2)2(2)2(2)2(1)2(1)2(2)2(2)2
(2)2(1)2(1)2(2)2(2)2(2)2(2)2(2)2(1)2(1)2(2)2(1)2(2)2(2)2(2)2(2)2(2)2(2)2(2)2
(1)2(2)2(2)2(2)2(2)2(1)2(2)2(2)2(1)2(2)2(2)2(2)2(2)2(2)2(2)2(1)2(1)2(1)2(2)2
(2)2(2)2(1)2(2)2(2)2(2)2(1)2(2)2(2)2(2)2(2)2(2)2(1)2(2)2(1)2(1)2(2)2(2)2(2)2
(2)2(2)2(2)2(1)2(2)2(1)2(2)2(1)2(2)2(2)2(2)2(2)2(1)2(2)

Avg post-slow bash delay: 8.027; Bashes per second: 0.124
8-8-8-9-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-9-8-8-7-9-
8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8
-----------------------------------------------------------------------------

NPC slowed with Tigir's Insects: (50% slow)

Fight #6 [2] A Valorian Guardian - Sat Mar 15 04:27:29 2014 - Duration: 9m 48s
Rounds: 148; Bashes: 37; Dmg Type(s): punch; Swings: 233
rounds with 1 swings: 63 (42.5%)
rounds with 2 swings: 85 (57.4%)

Avg post-slow round delay: 4; Rounds/sec: 0.25; Swings/sec: 0.396
Postslow Swings: 233;  Postslow time: 588
(2)4(1)4(2)4(1)4(2)5(2)3(2)4(1)4(1)4(2)4(1)4(2)4(2)4(2)4(2)4(1)4(1)4(1)4(2)4
(2)4(2)4(1)4(2)4(2)4(2)4(2)4(1)4(2)4(2)4(1)4(2)5(1)3(2)4(2)4(1)4(1)4(1)4(2)4
(2)4(2)4(1)4(1)4(1)4(2)4(2)4(2)4(1)4(1)4(2)4(2)4(1)4(2)4(2)4(2)4(2)4(2)4(2)4
(1)4(2)4(2)4(1)4(2)4(2)4(2)4(1)4(2)4(2)4(2)4(2)4(2)4(1)4(2)4(1)4(2)4(2)4(2)4
(1)4(1)4(1)4(1)4(2)4(2)4(2)4(2)4(2)4(2)4(1)4(1)4(2)4(2)4(2)4(1)4(1)4(2)4(2)4
(1)4(1)4(2)4(2)4(1)4(1)4(1)4(1)4(2)4(2)4(2)4(2)4(1)4(2)4(1)4(2)4(1)4(1)4(2)4
(2)4(2)4(1)4(1)4(2)4(2)4(1)4(2)4(1)4(2)4(1)4(1)4(1)4(2)4(1)4(1)4(1)4(2)4(2)4
(2)4(1)4(2)4(1)4(2)4(1)4(1)4(1)4(1)4(2)4(1)4(1)4(1)4(2)4(2)

Avg post-slow bash delay: 16.027; Bashes per second: 0.062
16-16-16-16-16-16-16-16-16-16-16-16-16-16-16-16-16-16-16-16-16-16-16-16-16-16
-17-16-16-16-16-16-16-16-16-16
-----------------------------------------------------------------------------

NPC slowed with Turgur's Insects: (75% slow)

Fight #7 [2] A Valorian Guardian - Sat Mar 15 04:11:15 2014 - Duration: 9m 52s
Rounds: 75; Bashes: 18; Dmg Type(s): punch; Swings: 122
rounds with 1 swings: 28 (37.3%)
rounds with 2 swings: 47 (62.6%)

Avg post-slow round delay: 8; Rounds/sec: 0.125; Swings/sec: 0.206
Postslow Swings: 122;  Postslow time: 592
(1)8(2)8(2)7(1)8(1)9(1)8(2)8(1)8(2)8(2)8(2)8(2)8(2)8(1)8(1)8(2)8(1)7(2)9(2)8
(2)8(2)8(1)8(2)7(2)9(2)8(2)8(2)8(2)8(2)7(2)8(1)9(1)8(1)8(2)8(2)8(2)8(2)8(2)8
(2)8(2)8(1)8(2)8(2)7(2)8(1)8(2)9(1)8(2)8(2)7(1)9(1)8(2)7(2)9(1)8(1)8(1)8(2)7
(2)9(1)7(1)8(2)8(2)9(2)7(2)9(1)8(1)8(2)7(2)8(2)8(1)8(1)8(1)8(1)9(2)8(2)

Avg post-slow bash delay: 32; Bashes per second: 0.031
32-32-32-32-32-32-32-32-32-32-32-32-32-32-32-32-32
-----------------------------------------------------------------------------

NPC slowed with Drowsy: (25% slow)

Fight #1 [1] A Guardian of Marr - Sat Mar 15 02:51:31 2014 - Duration: 11m 4s
Rounds: 260; Bashes: 65; Dmg Type(s): hit; Swings: 424
rounds with 1 swings: 96 (36.9%)
rounds with 2 swings: 164 (63%)

Avg post-slow round delay: 2.563; Rounds/sec: 0.39; Swings/sec: 0.638
Postslow Swings: 424;  Postslow time: 664
(1)3(2)2(2)3(1)2(1)3(2)3(2)2(1)3(2)2(2)3(1)2(1)3(2)2(1)3(2)3(1)2(2)3(2)2(1)3
(1)2(2)3(2)3(1)2(2)3(1)2(2)3(2)2(2)3(2)3(1)2(2)3(2)2(1)3(2)2(2)3(2)2(2)3(1)2
(2)3(2)3(1)2(2)3(1)2(2)3(2)3(2)2(2)3(2)2(2)3(2)2(1)3(2)2(2)3(1)3(1)2(2)3(2)2
(2)3(2)2(1)3(1)3(2)2(2)3(1)2(2)3(2)2(2)3(2)3(2)2(2)3(2)2(2)3(1)2(1)3(1)2(2)3
(2)3(2)2(2)3(2)2(2)3(2)2(2)3(1)3(2)2(2)3(2)2(1)3(1)2(1)3(1)3(2)2(1)3(2)2(1)3
(2)2(2)3(1)2(2)3(2)3(2)2(2)3(2)2(2)3(2)2(2)3(2)2(2)3(2)3(2)2(2)3(2)2(1)3(2)2
(2)3(2)3(2)2(1)3(2)2(1)3(1)2(1)3(1)3(2)2(1)3(2)2(2)3(2)2(2)3(1)2(2)3(2)3(1)2
(1)3(1)2(2)3(2)2(2)3(1)2(1)3(2)3(2)2(1)3(1)2(2)3(2)3(2)2(1)3(1)2(1)3(1)2(2)3
(1)2(2)3(1)3(2)2(2)3(2)2(2)3(2)2(2)3(2)3(1)2(2)3(1)2(2)3(1)2(1)3(2)2(2)3(1)3
(2)2(2)3(1)2(1)3(2)2(2)3(1)3(2)2(1)3(2)2(2)3(2)2(1)3(2)2(2)3(2)3(2)2(2)3(2)2
(2)3(1)2(2)3(2)3(1)2(1)3(2)2(1)3(2)2(2)3(2)2(2)3(2)3(2)2(1)3(1)2(1)3(1)2(2)3
(1)3(2)2(2)3(1)2(2)3(1)2(2)3(1)3(1)2(2)3(1)2(2)3(1)2(2)3(2)2(2)3(2)3(1)2(1)3
(2)2(1)3(1)2(1)3(2)2(1)3(2)3(1)2(1)3(2)2(2)3(1)3(1)2(2)3(1)2(2)3(1)2(2)3(2)2
(1)3(1)3(2)2(1)3(1)2(2)3(2)2(2)3(2)2(2)3(2)3(2)2(2)

Avg post-slow bash delay: 10.296; Bashes per second: 0.097
10-11-10-10-10-11-10-10-11-10-10-11-10-10-10-11-10-10-11-10-10-10-11-10-10-11
-10-10-10-11-10-10-11-10-10-10-11-10-10-11-10-10-11-10-10-10-11-10-10-11-10-
10-10-11-10-10-10-11-10-10-11-10-10-11

That is the output of my parser. The numbers inside ()s are the number of attacks per round, and the numbers outside ()s are the seconds between rounds. The numbers between dashes are the seconds between bashes/kicks.

This is also very easily verified by using a stopwatch or looking at logs. Yes, an unmitigated Turgur's Insectsed NPC will bash/kick every 32 seconds instead of 8.

The solution is simple: in mob.cpp, change

Code:

        if(GetHaste() > 0)
                PermaHaste = 1 / (1 + (float)GetHaste()/100);
        else if(GetHaste() < 0)
                PermaHaste = 1 * (1 - (float)GetHaste()/100);
        else
                PermaHaste = 1.0f;

to

Code:

        if(GetHaste() != 0)
                PermaHaste = 1 / (1 + (float)GetHaste()/100);
        else
                PermaHaste = 1.0f;

The formula for haste and slows is the same, but for whatever reason, whoever coded this thought they should be different.

Dividing one by the haste% inverts it to modify the attack delay instead of speed. The incorrect slow code multiplies by 1 which does nothing. Note that these formula are used in two places. (they really should be consolidated)

One last note regarding slow mitigation: as far as I can tell, it's implemented correctly in EQ Emulator, and GetHaste() gets modified correctly. Since the problem with slows not functioning correctly is in code executed after GetHaste(), slow mitigation code does not need to be altered and will work correctly with the fix.


Bash and Kick Rates

NPCs have a bash delay that is separate from the attack delay. When that timer is up, they will either kick or bash choosing one with some unknown logic. The important item of note here is that this timer is ALWAYS 8 seconds unslowed/unhasted. Changing the NPC's attack delay will not alter the bash delay on EQLive, but it currently does in EQ Emulator: if you give an NPC a -50% attack rate in the editor, it will bash twice as fast. This is a problem because the default attack delay on EQ Emulator is so high that making NPCs with correct attack delays will make them bash/kick far too often. The fix is, of course, to ignore the attack rate modifier for bashes.

Some parses to back my claim:

Code:

Here is a level 10 mob I parsed dual wield rates with.  His normal attack rate
is 3 seconds, but it is using 29 delay weapons.

Fight #2 [2] A goblin warrior - Sat Jul 19 23:26:46 2014 - Duration: 188m 16s
Rounds: 3895; Bashes: 1407; Dmg Type(s): pierce, slash; Swings: 4817
Mainhand swings: 4278 (88.8%);  Offhand Swings: 539 (11.1%)
rounds with 1 swings: 3024 (77.6%)
rounds with 2 swings: 820 (21%)
rounds with 3 swings: 51 (1.3%)

Avg pre-slow round delay: 2.9; Rounds/sec: 0.344; Swings/sec: 0.426
Preslow Swings: 4817;  Preslow time: 11296
Adjusting for 1 outliers, 0 double rounds, and 0 post-cast rounds
Adjusted avg pre-slow round delay: 2.898; Adjusted rounds per second: 0.345
(2)3(1)3(1)2(2)3(1)3(1)3(1)3(2)3(1)3(1)3(1)3(1)3(1)3(1)2(2)3(1)3(1)3(2)3(1)3
(1)3(1)3(1)3(1)3(1)2(1)3(1)3(1)3(1)3(1)3(1)3(1)3(1)3(1)2(1)3(2)3(1)3(2)3(1)3
(2)3(1)3(1)3(1)3(1)2(1)3(1)3(1)3(2)3(3)3(1)3(1)3(1)3(1)2(1)4(2)2(1)3(1)3(1)3
(1)3(1)3(1)3(1)3(1)3(1)2(1)3(2)3(2)3(1)3(1)3(1)3(1)3(1)3(1)2(1)3(1)3(1)3(2)3
(2)3(2)3(1)3(1)3(1)3(1)3(1)2(2)3(1)3(1)3(1)3(1)3(2)3(1)3(2)3(2)3(2)2(1)3(2)3
(1)3(2)3(1)3(1)3(1)3(1)3(1)2(1)4(1)2(1)3(1)3(1)3(2)3(2)3(1)3(1)3(1)3(1)2(2)3
(2)3(1)3(1)3(1)3(1)3(1)3(1)3(1)3(1)2(1)3(1)3(1)3(1)3(1)3(1)3(1)3(1)3(2)3(2)3
(1)2(1)3(1)3(1)3(1)3(1)3(1)3(1)3(1)2(2)3(2)3(1)3(2)3(1)3(1)3(2)3(1)3(1)3(1)3
(2)2(1)3(1)3(1)3(2)3(1)3(1)3(1)3(1)3(1)2(2)3(1)3(1)3(1)3(2)3(1)3(1)3(1)3(1)3
(1)3(1)2(1)3(1)3(1)3(2)3(1)3(2)3(2)3(2)3(1)3(1)2(2)3(1)3(1)3(1)3(1)3(2)3(1)3
(1)3(1)2(1)3(2)3(1)3(1)3(1)3(1)3(2)3(1)3(1)3(2)3(1)2(1)3(1)3(1)3(1)3(1)3(1)3
(1)3(1)3(1)3(1)2(1)3(1)3(1)3(1)3(2)3(2)3(2)3(1)3(1)2(1)3(1)3(2)3(1)3(1)3(1)3
(1)3(1)3(1)3(1)3(1)2(1)3(1)3(1)3(1)3(2)3(1)3(2)3(2)3(1)2(1)3(1)3(2)3(1)3(1)3
(truncated for brevity)

Avg pre-slow bash delay: 8.033; Bashes per second: 0.124
Adjusted avg pre-slow bash delay: 8.025; Bashes per second: 0.124
8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-9-8-8-8-8-8-8-8-8-8-8-
8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-9-8-8-8-7-8-9-8-8-7-9-8-8-8-8-8-8-8-8-
8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-9-7-8-9-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-
8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-9-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-
8-8-8-8-8-8-8-8-8-8-8-8-8-8-9-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-
8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-9-8-7-9-8-7-9-8-8-8-8-8-8-8-8-8-8-8-8-
8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-9-8-7-9-8-8-8-8-8-8-8-8-8-8-8-8-
8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-9-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-
8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-9-7-9-8-8-8-8-8-8-8-8-
8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-9-8-8-8-8-8-8-8-8-
8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-9-7
(truncated for brevity)

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

Raid boss Aaryonar.  His attack delay is 1.3 seconds.  In this log he is
slowed.  His unslowed attack rate is fast enough that 'double rounds' occur in
the log, so it's more accurate to parse him slowed and divide by four.


Fight #2 [1] Aaryonar - Sun Mar 30 19:27:53 2014 - Duration: 7m 28s
Rounds: 87; Bashes: 14; Dmg Type: claw; Swings: 258
rounds with 1 swings: 9 (10.3%)
rounds with 2 swings: 14 (16%)
rounds with 3 swings: 35 (40.2%)
rounds with 4 swings: 29 (33.3%)

Avg pre-slow round delay: 5.209; Rounds per second: 0.191
(4)6(C4)5(C3)5(C4)6(C4)4(3)6(C4)5(C3)5(C2)5(C2)5(C4)5(C4)6(C4)5(C3)5(C2)5(C1)
5(C3)7(C2)4(C2)5(C1)5(4)5(C3)6(3)5(C4)5(C4)5(C2)6(C2)5(C3)5(C4)6(C4)5(C4)5(3)
5(C4)5(C4)5(C3)6(C3)4(4)7(C4)4(3)6(C1)4(C3)6(C3)6(C4)4(C3)5(C3)5(2)6(C3)5(C4)
5(4)5(4)5(C3)6(C4)5(C1)5(C3)5(C3)6(C3)5(1)5(C2)5(C1)5(C3)5(C2)5(C2)6(C4)6(C3)
4(3)5(C2)5(C4)6(C4)5(C1)5(C3)6(C4)4(C3)6(C3)5(C3)6(C3)4(4)6(3)5(C3)5(C3)5(C1)
6(C3)4(4)6(C3)6(C2)4(C1)5(C2)6(3)

Avg pre-slow bash delay: 32.307; Bashes per second: 0.03
C33-C32-C32-C33-C32-C32-C32-C33-C32-C32-C32-C32-C33
-----------------------------------------------------------------------------

A 3 second, 2 second, and 1.3 second attack delay mob all have 8 second unslowed bash timers.

Incidentally bashes having a static 8 second delay on unhasted/unslowed NPCs makes it easier to calculate slow mitigation using bash delays or to simply tell if the mob is hasted/slowed in parses.

One more thing about this bash timer: it resets when an NPC flurries. It currently does not reset on EQ Emulator. EQLive log proof:

Code:

eqlog_Torven_test mobs 1.txt        89141        [Mon Jan 27 07:27:18 2014] Hydrotha bashes YOU for 386 points of damage.
eqlog_Torven_test mobs 1.txt        89152        [Mon Jan 27 07:27:23 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        89157        [Mon Jan 27 07:27:23 2014] Hydrotha bashes YOU for 386 points of damage.
eqlog_Torven_test mobs 1.txt        89200        [Mon Jan 27 07:34:48 2014] Hydrotha tries to bash YOU, but YOU dodge!
eqlog_Torven_test mobs 1.txt        89205        [Mon Jan 27 07:34:48 2014] A greater anglerfish tries to bash YOU, but misses!
eqlog_Torven_test mobs 1.txt        89208        [Mon Jan 27 07:34:50 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        89211        [Mon Jan 27 07:34:50 2014] Hydrotha tries to bash YOU, but YOU dodge!
eqlog_Torven_test mobs 1.txt        89214        [Mon Jan 27 07:34:52 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        89219        [Mon Jan 27 07:34:52 2014] Hydrotha tries to bash YOU, but misses!
eqlog_Torven_test mobs 1.txt        89229        [Mon Jan 27 07:35:26 2014] Hydrotha tries to bash YOU, but misses!
eqlog_Torven_test mobs 1.txt        89285        [Mon Jan 27 07:35:31 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        89291        [Mon Jan 27 07:35:31 2014] Hydrotha bashes YOU for 252 points of damage.
eqlog_Torven_test mobs 1.txt        89423        [Mon Jan 27 07:35:39 2014] Hydrotha tries to bash YOU, but misses!
eqlog_Torven_test mobs 1.txt        89498        [Mon Jan 27 07:35:43 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        89502        [Mon Jan 27 07:35:43 2014] Hydrotha tries to bash YOU, but YOU block!
eqlog_Torven_test mobs 1.txt        89624        [Mon Jan 27 07:35:51 2014] Hydrotha tries to bash YOU, but YOU block!
eqlog_Torven_test mobs 1.txt        89715        [Mon Jan 27 07:35:57 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        89718        [Mon Jan 27 07:35:57 2014] Hydrotha tries to bash YOU, but YOU dodge!
eqlog_Torven_test mobs 1.txt        89875        [Mon Jan 27 07:36:05 2014] Hydrotha bashes YOU for 252 points of damage.
eqlog_Torven_test mobs 1.txt        90000        [Mon Jan 27 07:36:13 2014] Hydrotha tries to bash YOU, but misses!
eqlog_Torven_test mobs 1.txt        90012        [Mon Jan 27 07:36:14 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        90017        [Mon Jan 27 07:36:14 2014] Hydrotha bashes YOU for 252 points of damage.

It bashes twice in the same second here:

eqlog_Torven_test mobs 1.txt        90138        [Mon Jan 27 07:36:22 2014] Hydrotha tries to bash YOU, but YOU block!
eqlog_Torven_test mobs 1.txt        90148        [Mon Jan 27 07:36:22 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        90152        [Mon Jan 27 07:36:22 2014] Hydrotha tries to bash YOU, but misses!

eqlog_Torven_test mobs 1.txt        90164        [Mon Jan 27 07:36:24 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        90169        [Mon Jan 27 07:36:24 2014] Hydrotha tries to bash YOU, but YOU block!
eqlog_Torven_test mobs 1.txt        90274        [Mon Jan 27 07:36:32 2014] Hydrotha bashes YOU for 252 points of damage.
eqlog_Torven_test mobs 1.txt        90362        [Mon Jan 27 07:36:38 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        90365        [Mon Jan 27 07:36:38 2014] Hydrotha tries to bash YOU, but misses!
eqlog_Torven_test mobs 1.txt        90443        [Mon Jan 27 07:36:43 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        90448        [Mon Jan 27 07:36:43 2014] Hydrotha tries to bash YOU, but misses!
eqlog_Torven_test mobs 1.txt        90491        [Mon Jan 27 07:36:46 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        90496        [Mon Jan 27 07:36:46 2014] Hydrotha tries to bash YOU, but YOU block!
eqlog_Torven_test mobs 1.txt        90594        [Mon Jan 27 07:36:55 2014] Hydrotha bashes YOU for 252 points of damage.
eqlog_Torven_test mobs 1.txt        90668        [Mon Jan 27 07:37:00 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        90672        [Mon Jan 27 07:37:00 2014] Hydrotha tries to bash YOU, but misses!
eqlog_Torven_test mobs 1.txt        90687        [Mon Jan 27 07:37:02 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        90689        [Mon Jan 27 07:37:02 2014] Hydrotha tries to bash YOU, but YOU block!
eqlog_Torven_test mobs 1.txt        90745        [Mon Jan 27 07:37:07 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        90748        [Mon Jan 27 07:37:07 2014] Hydrotha tries to bash YOU, but misses!
eqlog_Torven_test mobs 1.txt        90820        [Mon Jan 27 07:37:12 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        90823        [Mon Jan 27 07:37:12 2014] Hydrotha tries to bash YOU, but misses!
eqlog_Torven_test mobs 1.txt        90865        [Mon Jan 27 07:37:15 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        90870        [Mon Jan 27 07:37:15 2014] Hydrotha bashes YOU for 252 points of damage.
eqlog_Torven_test mobs 1.txt        90887        [Mon Jan 27 07:37:17 2014] Hydrotha executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        90890        [Mon Jan 27 07:37:17 2014] Hydrotha tries to bash YOU, but misses!

eqlog_Torven_test mobs 1.txt        121535        [Tue Jan 28 08:23:04 2014] The Avatar of War executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        121538        [Tue Jan 28 08:23:04 2014] The Avatar of War bashes YOU for 255 points of damage.
eqlog_Torven_test mobs 1.txt        121550        [Tue Jan 28 08:23:09 2014] The Avatar of War executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        121554        [Tue Jan 28 08:23:09 2014] The Avatar of War tries to bash YOU, but misses!
eqlog_Torven_test mobs 1.txt        121573        [Tue Jan 28 08:23:17 2014] The Avatar of War kicks YOU for 255 points of damage.
eqlog_Torven_test mobs 1.txt        121585        [Tue Jan 28 08:23:29 2014] The Avatar of War tries to kick YOU, but misses!
eqlog_Torven_test mobs 1.txt        121587        [Tue Jan 28 08:23:29 2014] The Avatar of War executes a FLURRY of attacks on Torven!
eqlog_Torven_test mobs 1.txt        121592        [Tue Jan 28 08:23:29 2014] The Avatar of War tries to kick YOU, but YOU block!

On Al'Kabor and in old EQ, Rampages also reset the bash timer but they don't on EQLive currently.

chrsschb 09-08-2014 02:15 AM

For once a wall of text is worth reading. I always felt slows were off but didn't really know enough to diagnose it. Glad you posted this.

demonstar55 09-08-2014 03:10 AM

Would it be possible to get some comparison parses up? I would just like to see some before and after shit I guess :P (like parse on current EQEmu, parse with change, see if it reflects live etc)

I do think your suggestion is probably correct. I mean, Turgur's Insects (at max efficiency at least) is a 25% attack speed mod (75% slow) and Vallon's Quickening is a 168% attack speed mod (68% haste)

Edit: slows OP

Torven 09-08-2014 08:00 PM

What, my other two walls of text weren't worth reading? :P

I'm using the TAKP codebase and Cavedude added some things to #showstats there. One of which is NPC attack delay. This makes testing this much easier.

The Idol of Zek is my current guinea pig NPC. Here's a pre-fix log:

Code:

Fight #5 [3] The Idol of Rallos Zek - Mon Sep 08 16:11:27 2014 - Duration: 12m 55s
Rounds: 216; Bashes: 152; Dmg Type(s): hit; Swings: 401
Rampages: 39 (chance per round: 18%; chance per swing: 9.7%)
rounds with 1 swings: 24 (13.5%)
rounds with 2 swings: 153 (86.4%)
39 rounds excluded for having special attacks or being double

Avg pre-slow round delay: 3.604; Rounds/sec: 0.277; Swings/sec: 0.517
Preslow Swings: 401;  Preslow time: 775
(R2)3(1)4(2)4(2)3(2)4(2)3(2)4(2)4(2)3(2)4(1)3(2)4(2)4(2)3(1)4(2)3(2)4(2)4(2)
3(1)4(2)4(R2)3(2)4(2)3(2)4(2)4(2)3(1)4(1)3(2)4(2)4(2)3(2)4(1)3(2)4(R2)4(2)3(
2)4(2)3(2)4(2)4(2)3(2)4(2)3(2)4(2)4(2)3(R1)4(2)3(R2)4(2)4(R1)3(2)4(R2)3(R2)4
(2)4(1)3(2)4(R2)3(R1)4(2)4(2)3(2)4(2)3(2)4(2)4(2)3(2)4(2)3(2)4(2)4(2)3(R2)4(
2)3(2)4(2)4(2)3(2)4(2)4(2)3(R2)4(2)3(2)4(2)4(R2)3(2)4(R2)3(2)4(2)4(2)3(2)4(1
)3(1)4(2)4(R2)3(2)4(2)3(2)4(2)4(2)3(2)4(1)3(1)4(R2)4(2)3(2)4(1)3(2)4(R2)4(2)
3(2)4(2)3(2)4(R2)4(2)3(2)4(R2)3(2)4(2)4(2)3(1)4(2)3(R2)4(2)4(R2)3(1)4(R2)3(2
)4(2)4(2)3(2)4(2)3(2)4(2)4(2)3(2)4(2)4(2)3(2)4(2)3(2)4(2)4(2)3(2)4(2)3(2)4(2
)4(R2)3(2)4(1)3(R1)4(R2)4(2)3(2)4(2)3(1)4(2)4(R2)3(2)4(2)3(2)4(2)4(2)3(2)4(R
1)3(R2)4(2)4(R1)3(2)4(2)3(2)4(2)4(1)3(2)4(1)3(2)4(2)4(2)3(2)4(2)3(R2)4(2)4(2
)3(2)4(2)4(R2)3(2)4(2)3(1)4(R2)4(R1)3(R2)4(R2)3(2)4(2)4(1)3(2)4(2)3(2)4(2)4(
R2)3(R2)4(2)3(1)4(2)4(2)3(2)4(R2)3(2)4(2)4(1)3(2)4(2)3(1)4(2)4(R2)

Avg pre-slow bash delay: 5.139; Bashes per second: 0.194
5-5-5-5-5-6-5-5-5-5-5-6-5-5-5-5-5-5-6-5-5-5-5-5-6-5-5-5-5-5-5-5-6-5-5-5-5-5-
5-6-5-5-5-5-5-5-5-5-6-5-5-5-5-5-5-5-6-5-R5-5-5-5-5-6-5-R5-5-5-5-5-6-5-5-5-5-
5-6-5-5-5-5-5-5-6-5-5-R5-5-5-5-6-5-5-5-5-5-5-5-6-5-5-5-5-5-5-R5-5-5-5-5-6-5-
5-5-5-5-6-5-5-5-5-5-5-6-5-5-5-5-5-R5-6-5-5-5-5-5-6-5-5-5-5-5-5-6-5-5-5-5-5-5
-6
-----------------------------------------------------------------------------
Fight #6 [3] The Idol of Rallos Zek - Mon Sep 08 16:28:09 2014 - Duration: 6m 31s
Rounds: 63; Bashes: 45; Dmg Type(s): hit; Swings: 117
Rampages: 13 (chance per round: 20.6%; chance per swing: 11.1%)
rounds with 1 swings: 7 (14%)
rounds with 2 swings: 43 (86%)
13 rounds excluded for having special attacks or being double

Avg post-slow round delay: 6.306; Rounds/sec: 0.158; Swings/sec: 0.299
Postslow Swings: 117;  Postslow time: 391
(R2)6(2)6(2)7(1)6(1)6(2)7(R1)6(2)6(R1)7(2)6(R2)6(2)6(2)7(2)6(2)6(2)7(2)6(2)6
(2)7(2)6(2)6(R2)6(R2)7(2)6(2)6(2)7(2)6(2)6(2)7(2)6(1)6(2)7(2)6(2)6(R2)6(2)7(
R2)6(1)6(2)7(2)6(R2)6(1)7(2)6(2)6(R2)6(2)7(2)6(2)6(2)7(2)6(R2)6(2)7(R2)6(2)6
(2)6(2)7(2)6(1)6(2)7(2)6(1)6(2)7(R2)

Avg post-slow bash delay: 8.886; Bashes per second: 0.112
9-9-8-9-9-9-9-9-9-9-9-8-9-9-9-9-9-9-9-9-9-8-9-9-9-9-9-9-9-9-8-9-9-9-9-9-9-9-
8-9-9-9-9-R9

That is a slowed and unslowed parse with a 0% attack rate modifier, so the attack delay unslowed is 3600. Here's the #showstats:

Code:

[Mon Sep 08 16:35:40 2014] You say, '#showstats'
[Mon Sep 08 16:35:40 2014]  Level: 66  AC: 1057  Class: 1  Size: 15.0  Haste: 0
[Mon Sep 08 16:35:40 2014]  HP: 2265000  Max HP: 2265000
[Mon Sep 08 16:35:40 2014]  Mana: 0  Max Mana: 0
[Mon Sep 08 16:35:40 2014]  Total ATK: 0  Worn/Spell ATK (Cap 250): 0
[Mon Sep 08 16:35:40 2014]  STR: 225  STA: 225  DEX: 225  AGI: 225  INT: 225  WIS: 225  CHA: 225
[Mon Sep 08 16:35:40 2014]  MR: 1  PR: 128  FR: 400  CR: 570  DR: 128 Corruption: 15
[Mon Sep 08 16:35:40 2014]  Race: 66  BaseRace: 66  Texture: 1  HelmTexture: 0  Gender: 2  BaseGender: 2
[Mon Sep 08 16:35:40 2014]  Face:  0 Beard: 255  BeardColor: 255  Hair: 255  HairColor: 255
[Mon Sep 08 16:35:40 2014]  EntityID: 792  PetID: 0  OwnerID: 0 AIControlled: 1 Targetted: 1
[Mon Sep 08 16:35:40 2014]  NPCID: 113341  SpawnGroupID: 113341 Grid: 0 LootTable: 0 FactionID: 545 SpellsID: 0
[Mon Sep 08 16:35:40 2014]  Accuracy: 0 MerchantID: 0 EmoteID: 0 Runspeed: 1.250000 Walkspeed: 0.662500
[Mon Sep 08 16:35:40 2014]  Attack Speed: 3600 SeeInvis: 1 SeeInvUndead: 1 SeeHide: 1 SeeImpHide: 0
[Mon Sep 08 16:35:40 2014] Coin: 0p 0g 0s 0c
[Mon Sep 08 16:35:40 2014] 0 items on #The_Idol_of_Rallos_Zek000.
[Mon Sep 08 16:35:40 2014]  AggroRange: 75  AssistRange: 75

[Mon Sep 08 16:28:26 2014] You say, '#showstats'
[Mon Sep 08 16:28:26 2014]  Level: 66  AC: 1057  Class: 1  Size: 15.0  Haste: -75
[Mon Sep 08 16:28:26 2014]  HP: 2265000  Max HP: 2265000
[Mon Sep 08 16:28:26 2014]  Mana: 0  Max Mana: 0
[Mon Sep 08 16:28:26 2014]  Total ATK: 0  Worn/Spell ATK (Cap 250): 0
[Mon Sep 08 16:28:26 2014]  STR: 225  STA: 225  DEX: 225  AGI: 225  INT: 225  WIS: 225  CHA: 225
[Mon Sep 08 16:28:26 2014]  MR: 1  PR: 128  FR: 400  CR: 570  DR: 128 Corruption: 15
[Mon Sep 08 16:28:26 2014]  Race: 66  BaseRace: 66  Texture: 1  HelmTexture: 0  Gender: 2  BaseGender: 2
[Mon Sep 08 16:28:26 2014]  Face:  0 Beard: 255  BeardColor: 255  Hair: 255  HairColor: 255
[Mon Sep 08 16:28:26 2014]  EntityID: 792  PetID: 0  OwnerID: 0 AIControlled: 1 Targetted: 1
[Mon Sep 08 16:28:26 2014]  NPCID: 113341  SpawnGroupID: 113341 Grid: 0 LootTable: 0 FactionID: 545 SpellsID: 0
[Mon Sep 08 16:28:26 2014]  Accuracy: 0 MerchantID: 0 EmoteID: 0 Runspeed: 1.250000 Walkspeed: 0.662500
[Mon Sep 08 16:28:26 2014]  Attack Speed: 6300 SeeInvis: 1 SeeInvUndead: 1 SeeHide: 1 SeeImpHide: 0
[Mon Sep 08 16:28:26 2014] Coin: 0p 0g 0s 0c
[Mon Sep 08 16:28:26 2014] 0 items on #The_Idol_of_Rallos_Zek000.
[Mon Sep 08 16:28:26 2014]  AggroRange: 75  AssistRange: 75


Now here's a post-fix log:

Code:

Fight #5 [3] The Idol of Rallos Zek - Mon Sep 08 16:53:27 2014 - Duration: 10m 34s
Rounds: 96; Bashes: 92; Dmg Type(s): hit; Swings: 179
Rampages: 17 (chance per round: 17.7%; chance per swing: 9.4%)
rounds with 1 swings: 11 (13.9%)
rounds with 2 swings: 68 (86%)
17 rounds excluded for having special attacks or being double

Avg pre-slow round delay: 3.597; Rounds/sec: 0.278; Swings/sec: 0.526
Preslow Swings: 127;  Preslow time: 241
(2)4(2)3(2)4(2)3(2)4(2)4(2)3(2)4(1)3(2)4(2)4(2)3(1)4(2)3(R2)4(2)4(2)3(2)4(2)
3(2)4(2)4(2)3(2)4(R2)3(2)4(2)4(2)3(R1)4(2)4(R2)3(2)4(R1)3(2)4(2)4(R2)3(1)4(2
)3(2)4(2)4(2)3(2)4(2)3(2)4(2)4(R2)3(1)4(2)3(2)4(2)4(2)3(2)4(2)3(R2)4(R2)4(2)
3(2)4(R2)3(1)4(R2)4(2)3(1)4(2)3(1)4(R2)4(2)3(R2)4(2)3(2)
Avg post-slow round delay: 14.555; Rounds/sec: 0.068; Swings/sec: 0.132
Postslow Swings: 52;  Postslow time: 393
4(2)15(R2)14(2)14(2)15(1)14(2)15(2)14(2)14(2)15(2)14(2)15(2)14(2)14(R2)15(2)
14(2)15(1)14(R2)14(1)15(2)14(1)15(2)14(2)14(R2)15(2)14(2)15(2)14(2)

Avg pre-slow bash delay: 5.148; Bashes per second: 0.194
5-5-5-5-6-5-5-5-5-5-5-6-5-5-5-5-5-5-6-5-5-5-5-R5-5-6-5-5-5-5-R5-5-6-5-5-5-5-
5-6-5-5-5-5-5-5-6-5
Avg post-slow bash delay: 8.883; Bashes per second: 0.112
-5-9-9-9-8-9-9-9-9-9-9-9-9-9-8-9-9-9-9-9-9-9-8-9-9-9-9-9-9-9-9-8-9-9-9-9-9-9
-9-9-9-8-9-9

And the #showstats:

Code:

[Mon Sep 08 16:53:23 2014] You say, '#showstats'
[Mon Sep 08 16:53:23 2014]  Level: 66  AC: 1057  Class: 1  Size: 15.0  Haste: 0
[Mon Sep 08 16:53:23 2014]  HP: 2265000  Max HP: 2265000
[Mon Sep 08 16:53:23 2014]  Mana: 0  Max Mana: 0
[Mon Sep 08 16:53:23 2014]  Total ATK: 0  Worn/Spell ATK (Cap 250): 0
[Mon Sep 08 16:53:23 2014]  STR: 225  STA: 225  DEX: 225  AGI: 225  INT: 225  WIS: 225  CHA: 225
[Mon Sep 08 16:53:23 2014]  MR: 1  PR: 128  FR: 400  CR: 570  DR: 128 Corruption: 15
[Mon Sep 08 16:53:23 2014]  Race: 66  BaseRace: 66  Texture: 1  HelmTexture: 0  Gender: 2  BaseGender: 2
[Mon Sep 08 16:53:23 2014]  Face:  0 Beard: 255  BeardColor: 255  Hair: 255  HairColor: 255
[Mon Sep 08 16:53:23 2014]  EntityID: 309  PetID: 0  OwnerID: 0 AIControlled: 1 Targetted: 1
[Mon Sep 08 16:53:23 2014]  NPCID: 113341  SpawnGroupID: 113341 Grid: 0 LootTable: 0 FactionID: 545 SpellsID: 0
[Mon Sep 08 16:53:23 2014]  Accuracy: 0 MerchantID: 0 EmoteID: 0 Runspeed: 1.250000 Walkspeed: 0.662500
[Mon Sep 08 16:53:23 2014]  Attack Speed: 3600 SeeInvis: 1 SeeInvUndead: 1 SeeHide: 1 SeeImpHide: 0
[Mon Sep 08 16:53:23 2014] Coin: 0p 0g 0s 0c
[Mon Sep 08 16:53:23 2014] 0 items on #The_Idol_of_Rallos_Zek000.
[Mon Sep 08 16:53:23 2014]  AggroRange: 75  AssistRange: 75


[Mon Sep 08 16:57:32 2014] You say, '#showstats'
[Mon Sep 08 16:57:32 2014]  Level: 66  AC: 1057  Class: 1  Size: 15.0  Haste: -75
[Mon Sep 08 16:57:32 2014]  HP: 2265000  Max HP: 2265000
[Mon Sep 08 16:57:32 2014]  Mana: 0  Max Mana: 0
[Mon Sep 08 16:57:32 2014]  Total ATK: 0  Worn/Spell ATK (Cap 250): 0
[Mon Sep 08 16:57:32 2014]  STR: 225  STA: 225  DEX: 225  AGI: 225  INT: 225  WIS: 225  CHA: 225
[Mon Sep 08 16:57:32 2014]  MR: 1  PR: 128  FR: 400  CR: 570  DR: 128 Corruption: 15
[Mon Sep 08 16:57:32 2014]  Race: 66  BaseRace: 66  Texture: 1  HelmTexture: 0  Gender: 2  BaseGender: 2
[Mon Sep 08 16:57:32 2014]  Face:  0 Beard: 255  BeardColor: 255  Hair: 255  HairColor: 255
[Mon Sep 08 16:57:32 2014]  EntityID: 309  PetID: 0  OwnerID: 0 AIControlled: 1 Targetted: 1
[Mon Sep 08 16:57:32 2014]  NPCID: 113341  SpawnGroupID: 113341 Grid: 0 LootTable: 0 FactionID: 545 SpellsID: 0
[Mon Sep 08 16:57:32 2014]  Accuracy: 0 MerchantID: 0 EmoteID: 0 Runspeed: 1.250000 Walkspeed: 0.662500
[Mon Sep 08 16:57:32 2014]  Attack Speed: 14400 SeeInvis: 1 SeeInvUndead: 1 SeeHide: 1 SeeImpHide: 0
[Mon Sep 08 16:57:32 2014] Coin: 0p 0g 0s 0c
[Mon Sep 08 16:57:32 2014] 0 items on #The_Idol_of_Rallos_Zek000.
[Mon Sep 08 16:57:32 2014]  AggroRange: 75  AssistRange: 75


demonstar55 09-08-2014 08:32 PM

Quote:

Originally Posted by Torven (Post 233736)
What, my other two walls of text weren't worth reading? :P

No, they are :P Although the spell resist one less so since that was pretty much correct besides for partials and I haven't read the double attack one yet ...

If no one else does, I'll probably push this changes after a quick verification on live :P (like 1min parses max XD)

demonstar55 09-08-2014 09:34 PM

Okay, tested on live, verified your logs. Commited now.

Edit: In regards to the DB changes, I have no problem with them, but I'd want some input from the devs that deal more with that shit :P Also, if we could just change so the DB entry is what you suggested but it translates into what our code currently does, that could be fine as well :P

Torven 09-08-2014 11:54 PM

I have a big correction to make. EQ Emulator is not currently changing the bash timer when you adjust a NPC's attack rate. I made this error because Cavedude globally reduced the attack rate of every NPC to a maximum of 3 seconds per my data in the database, and I assumed the faster bash rates I was seeing from NPCs was because of that and I stupidly didn't verify this.

So, the problem is merely that NPCs are just bashing too fast. It should be 8 seconds instead of 5.

demonstar55 09-09-2014 12:35 AM

If someone else doesn't I'll look into getting the bash/kick stuff too.

demonstar55 09-09-2014 03:00 AM

On the bash/kick, do you have for hasted at all? What about other special attacks? (our code they all go through the same function to do class attacks)

EDIT: I have a tentative fix if I can verify the other concerns I have :P

vsab 09-09-2014 03:45 AM

Actually my (EQLive) guild were experimenting with this and a chanter/shammy started testing out their slows and had this data:-

Quote:

- 331s baseline with no slow at all. 551 hits + 42 bash
- 475s with turgur's. 631 hits + 41 bash
- 460s with turgur's and fatigue. 615 hits + 21 bash
- 539s with fatigue. 821 hits + 25 bash
- 455s with chanter's slow. 603 hits + 14 bash
Parsed on live versus lvl 98 Mob vs lvl 100 chanter, lvl 100 shammy. Chanter slow was the 73% AA slow. Slow was mitigated to approx 20% and bash was all over the place. May be an artifact of the short parses or the parsing program.

Sadly I can't log in to live to test if there is a level based threshold as I still only have half a house so my home PC is packed away.

Torven 09-09-2014 06:14 AM

Quote:

Originally Posted by demonstar55 (Post 233751)
On the bash/kick, do you have for hasted at all? What about other special attacks? (our code they all go through the same function to do class attacks)

I'm about as certain as can be at that 8 second number. I've parsed many, many logs and it's always 8 seconds (unslowed/unhasted). In fact I use bash delays to determine slow mitigation values because I can be certain the base delay is 8 seconds.

NPCs play by different rules. They get dual wield earlier, double attack earlier, and casters get both. Caster NPCs do not bash/kick though.

As far as I know, HT and LoH have the same timers as PCs. (haven't really parsed for that though)

Not sure what else NPCs have that might be relevant.

Quote:

Originally Posted by vsab (Post 233753)
Actually my (EQLive) guild were experimenting with this and a chanter/shammy started testing out their slows and had this data:

Remember that when an NPC's bash timer is up, it will either bash or kick-- you have to search for both in logs.

I would encourage you guys to run my attackspeed.lua script. (which can be found on my google drive in the Parsing Tools folder) I spent a lot of time on it. I made too many WoW addons to use something other than Lua for it. (lua fanboy here) You'll have to make some edits to the file opening code to run it on Linux though if you run that.

None of the traditional parsers handle attack speed well, if at all. EQCompanion lists a crude attack speed value for fights but my 1000 line script was written specifically for it.

vsab 09-09-2014 06:56 AM

I will try to get their raw logs and use your parser.

I did forget to mention that they were snake mobs.... but they probably still have the snake kicking bug from '99 for 'ole times sake ;)

demonstar55 09-09-2014 10:44 AM

I need to find out the effect of haste on them. Rogue mobs also backstab so that's important.


EDIT: Okay, I pushed some fixes that reflect what you parsed, I would still like to get some parses on everything else just to verify though.

Torven 09-09-2014 05:22 PM

Oh yes, backstab. How could I forget. NPC backstab delay is 10 seconds.

This is from Al'Kabor, but I highly doubt SOE changed the delay:

Code:

Torrin DB DI collecting 1.txt        20073        [Fri Nov 01 18:34:15 2013] Kerosh Blackhand tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        20082        [Fri Nov 01 18:34:25 2013] Kerosh Blackhand backstabs YOU for 144 points of damage.
Torrin DB DI collecting 1.txt        20090        [Fri Nov 01 18:34:35 2013] Kerosh Blackhand tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        20097        [Fri Nov 01 18:34:45 2013] Kerosh Blackhand backstabs YOU for 66 points of damage.
Torrin DB DI collecting 1.txt        20105        [Fri Nov 01 18:34:55 2013] Kerosh Blackhand tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        20112        [Fri Nov 01 18:35:06 2013] Kerosh Blackhand tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        20119        [Fri Nov 01 18:35:16 2013] Kerosh Blackhand backstabs YOU for 122 points of damage.
Torrin DB DI collecting 1.txt        20130        [Fri Nov 01 18:35:26 2013] Kerosh Blackhand tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        20139        [Fri Nov 01 18:35:36 2013] Kerosh Blackhand backstabs YOU for 66 points of damage.
Torrin DB DI collecting 1.txt        20148        [Fri Nov 01 18:35:46 2013] Kerosh Blackhand tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        20157        [Fri Nov 01 18:35:56 2013] Kerosh Blackhand backstabs YOU for 77 points of damage.
Torrin DB DI collecting 1.txt        20162        [Fri Nov 01 18:36:06 2013] Kerosh Blackhand tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        20169        [Fri Nov 01 18:36:16 2013] Kerosh Blackhand tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        20177        [Fri Nov 01 18:36:26 2013] Kerosh Blackhand tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        20187        [Fri Nov 01 18:36:36 2013] Kerosh Blackhand backstabs YOU for 43 points of damage.
Torrin DB DI collecting 1.txt        20195        [Fri Nov 01 18:36:46 2013] Kerosh Blackhand tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        20201        [Fri Nov 01 18:36:56 2013] Kerosh Blackhand tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        20210        [Fri Nov 01 18:37:06 2013] Kerosh Blackhand backstabs YOU for 77 points of damage.
Torrin DB DI collecting 1.txt        20215        [Fri Nov 01 18:37:16 2013] Kerosh Blackhand backstabs YOU for 43 points of damage.

Torrin DB DI collecting 1.txt        26950        [Sat Nov 02 18:34:45 2013] A ghoul assassin tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        26959        [Sat Nov 02 18:34:55 2013] A ghoul assassin tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        26968        [Sat Nov 02 18:35:05 2013] A ghoul assassin tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        26974        [Sat Nov 02 18:35:15 2013] A ghoul assassin tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        26983        [Sat Nov 02 18:35:25 2013] A ghoul assassin tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        26993        [Sat Nov 02 18:35:35 2013] A ghoul assassin tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        27000        [Sat Nov 02 18:35:45 2013] A ghoul assassin tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        27005        [Sat Nov 02 18:35:55 2013] A ghoul assassin tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        27014        [Sat Nov 02 18:36:05 2013] A ghoul assassin backstabs YOU for 52 points of damage.
Torrin DB DI collecting 1.txt        27019        [Sat Nov 02 18:36:15 2013] A ghoul assassin tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        27027        [Sat Nov 02 18:36:25 2013] A ghoul assassin tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        27036        [Sat Nov 02 18:36:35 2013] A ghoul assassin backstabs YOU for 52 points of damage.
Torrin DB DI collecting 1.txt        27043        [Sat Nov 02 18:36:46 2013] A ghoul assassin tries to backstab YOU, but misses!

Torrin DB DI collecting 1.txt        72052        [Sun Nov 03 18:55:56 2013] An undead barkeep tries to backstab Torvia, but misses!
Torrin DB DI collecting 1.txt        72079        [Sun Nov 03 18:56:26 2013] An undead barkeep backstabs Torvia for 25 points of damage.
Torrin DB DI collecting 1.txt        72116        [Sun Nov 03 18:56:36 2013] An undead barkeep tries to backstab Torvia, but misses!
Torrin DB DI collecting 1.txt        72131        [Sun Nov 03 18:56:46 2013] An undead barkeep backstabs Torvia for 25 points of damage.
Torrin DB DI collecting 1.txt        72139        [Sun Nov 03 18:56:57 2013] An undead barkeep backstabs YOU for 25 points of damage.
Torrin DB DI collecting 1.txt        72144        [Sun Nov 03 18:57:07 2013] An undead barkeep tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        72149        [Sun Nov 03 18:57:17 2013] An undead barkeep tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        72155        [Sun Nov 03 18:57:27 2013] An undead barkeep tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        72162        [Sun Nov 03 18:57:37 2013] An undead barkeep tries to backstab YOU, but misses!

Torrin DB DI collecting 1.txt        87792        [Mon Nov 04 20:04:37 2013] A crystalline watcher backstabs YOU for 272 points of damage.
Torrin DB DI collecting 1.txt        87799        [Mon Nov 04 20:04:47 2013] A crystalline watcher backstabs YOU for 63 points of damage.
Torrin DB DI collecting 1.txt        87807        [Mon Nov 04 20:04:57 2013] A crystalline watcher backstabs YOU for 183 points of damage.
Torrin DB DI collecting 1.txt        87813        [Mon Nov 04 20:05:07 2013] A crystalline watcher tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        87820        [Mon Nov 04 20:05:17 2013] A crystalline watcher tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        87826        [Mon Nov 04 20:05:28 2013] A crystalline watcher tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        87834        [Mon Nov 04 20:05:38 2013] A crystalline watcher backstabs YOU for 63 points of damage.
Torrin DB DI collecting 1.txt        87844        [Mon Nov 04 20:05:48 2013] A crystalline watcher tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        87852        [Mon Nov 04 20:05:58 2013] A crystalline watcher tries to backstab YOU, but misses!
Torrin DB DI collecting 1.txt        87862        [Mon Nov 04 20:06:08 2013] A crystalline watcher tries to backstab YOU, but misses!

Note that if an NPC backstabs the front of you, it will display in the log as a normal hit, which is important to know when parsing for round sizes of rogue NPCs. In those logs I was collecting min/max hit and max hp data, so it involved sitting with my back turned to NPCs which allowed for a good backstab grep.

demonstar55 09-09-2014 05:25 PM

At least on live, rogue NPCs should only give frontal backstabs I'd they have a piercer (per devs realizing why the rog mobs in powar were OP at zone launch)

EDIT: Pushed some changes to hopefully bring all these findings into EQEmu :P


All times are GMT -4. The time now is 02:20 PM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.