View Single Post
  #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