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 09-07-2014, 01:56 AM
Torven
Sarnak
 
Join Date: Aug 2014
Posts: 52
Default 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.
Reply With Quote
  #2  
Old 09-08-2014, 02:15 AM
chrsschb's Avatar
chrsschb
Dragon
 
Join Date: Nov 2008
Location: GA
Posts: 905
Default

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.
__________________
Clumsy's World: Resurgence
Clumsy's World [2006-2012]
Reply With Quote
  #3  
Old 09-08-2014, 03:10 AM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,165
Default

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

Last edited by demonstar55; 09-08-2014 at 03:48 AM..
Reply With Quote
  #4  
Old 09-08-2014, 08:00 PM
Torven
Sarnak
 
Join Date: Aug 2014
Posts: 52
Default

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
Reply With Quote
  #5  
Old 09-08-2014, 08:32 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,165
Default

Quote:
Originally Posted by Torven View Post
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)
Reply With Quote
  #6  
Old 09-08-2014, 09:34 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,165
Default

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

Last edited by demonstar55; 09-08-2014 at 11:16 PM..
Reply With Quote
  #7  
Old 09-08-2014, 11:54 PM
Torven
Sarnak
 
Join Date: Aug 2014
Posts: 52
Default

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.
Reply With Quote
  #8  
Old 09-09-2014, 12:35 AM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,165
Default

If someone else doesn't I'll look into getting the bash/kick stuff too.
Reply With Quote
  #9  
Old 09-09-2014, 03:00 AM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,165
Default

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

Last edited by demonstar55; 09-09-2014 at 03:15 AM..
Reply With Quote
  #10  
Old 09-09-2014, 03:45 AM
vsab's Avatar
vsab
Discordant
 
Join Date: Apr 2014
Location: United Kingdom
Posts: 276
Default

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.
Reply With Quote
  #11  
Old 09-09-2014, 06:14 AM
Torven
Sarnak
 
Join Date: Aug 2014
Posts: 52
Default

Quote:
Originally Posted by demonstar55 View Post
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 View Post
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.
Reply With Quote
  #12  
Old 09-09-2014, 06:56 AM
vsab's Avatar
vsab
Discordant
 
Join Date: Apr 2014
Location: United Kingdom
Posts: 276
Default

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
Reply With Quote
  #13  
Old 09-09-2014, 10:44 AM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,165
Default

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.

Last edited by demonstar55; 09-09-2014 at 03:24 PM..
Reply With Quote
  #14  
Old 09-09-2014, 05:22 PM
Torven
Sarnak
 
Join Date: Aug 2014
Posts: 52
Default

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.
Reply With Quote
  #15  
Old 09-09-2014, 05:25 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,165
Default

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

Last edited by demonstar55; 09-09-2014 at 11:27 PM..
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 02:10 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