{client_process.cpp}
line 302 find:
	Code:
	if (target && GetAA(aaFlurry) > 0) {
					int flurrychance = 0;
					switch (GetAA(aaFlurry)) {
						case 1:
							flurrychance += 10;
							break;
						case 2:
							flurrychance += 20;
							break;
						case 3:
							flurrychance += 30;
							break;
					}
					switch (GetAA(aaRagingFlurry)) {
						case 1:
							flurrychance += 10;
							break;
						case 2:
							flurrychance += 20;
							break;
						case 3:
							flurrychance += 30;
							break;
					}
					if (rand()%1000 < flurrychance) {
						Message_StringID(MT_CritMelee, 128);
						Attack(target, 13, true);
						
						//50% chance for yet another attack?
						if(MakeRandomFloat(0, 1) < 0.5)
							Attack(target, 13, true);
					}
				}
 add after:
	Code:
					if (target && GetAA(aaRapidStrikes))
				{
					int chance_xhit1 = 0;
					int chance_xhit2 = 0;
					switch (GetAA(aaRapidStrikes))
					{
					case 1:
						chance_xhit1 = 10;
						chance_xhit2 = 2;
						break;
					case 2:
						chance_xhit1 = 12;
						chance_xhit2 = 4;
						break;
					case 3:
						chance_xhit1 = 14;
						chance_xhit2 = 6;
						break;
					case 4:
						chance_xhit1 = 16;
						chance_xhit2 = 8;
						break;
					case 5:
						chance_xhit1 = 20;
						chance_xhit2 = 10;
						break;
					}
					if (MakeRandomInt(1,100) < chance_xhit1)
						Attack(target, 13, true);
					if (MakeRandomInt(1,100) < chance_xhit2)
						Attack(target, 13, true);
				}