Project 1999

Go Back   Project 1999 > Blue Community > Blue Server Chat

Closed Thread
 
Thread Tools Display Modes
  #1  
Old 02-21-2014, 10:28 AM
Mirana Mirana is offline
Kobold


Join Date: Nov 2010
Posts: 171
Default Effect of attack rating on DPS

(I did a search and could not find anything, so please don't yell at me).

I'm trying to understand the exact implications of strength and attack on my damage (sorry, I'm an engineer, I need transparency).

I was looking at Yaolin's monk/warrior weapon dps charts. He mentions that:

"DMG ratio" = (dmg*2+Bonus)/delay &
"Max Hit" =(((OFFENSE+STR)/100)*DMG)+DMG BONUS

And I'm good with all that, it makes sense. Every 10 strength or 10 "offense" increases your max hit by one point of damage. But what I can't find is how attack rating impacts how often you hit in the higher end of your range. Obviously, more weapon skill and strength = more attack rating which means you will hit for your max (or near your max) more often. I understand it also depends on monster AC. Does anyone have the formula for calculating effective DPS, taking into account attack rating?

Please don't tell me to parse it, I've already looked at several parses. I'm interested in a formula. I like being able to calculate the exact dps increase I will get from buying a hero bracer, because I'm a nerd and it's fun to me.

Thanks.
  #2  
Old 02-21-2014, 10:47 AM
Buriedpast Buriedpast is offline
Banned


Join Date: Nov 2013
Posts: 359
Default

STR is not ATK.

Dont confuse them.
  #3  
Old 02-21-2014, 10:54 AM
Weltmacht Weltmacht is offline
Aviak


Join Date: May 2010
Posts: 58
Default

It would seem as if OP is doing an extraordinary job of *not* confusing them. Would you happen to know the answer to his question?
  #4  
Old 02-21-2014, 10:59 AM
imajester imajester is offline
Orc


Join Date: May 2010
Posts: 31
Default

Wouldn't it be possible to just look at the eqemu source to see how the calculation is done?
  #5  
Old 02-21-2014, 11:05 AM
Mirana Mirana is offline
Kobold


Join Date: Nov 2010
Posts: 171
Default

Quote:
Originally Posted by imajester [You must be logged in to view images. Log in or Register.]
Wouldn't it be possible to just look at the eqemu source to see how the calculation is done?
Where would I find this? I'm guessing it's a text document in my program files? I'm familiar with basic coding language and stuff but not much of a computer whiz.
  #6  
Old 02-21-2014, 02:06 PM
tristantio tristantio is offline
Fire Giant

tristantio's Avatar

Join Date: Nov 2010
Posts: 888
Default

You know how you know someone is an engineer?

They'll tell you!
__________________
Realtime auction logger: http://ahungry.com/eqauctions/
  #7  
Old 02-21-2014, 02:14 PM
imajester imajester is offline
Orc


Join Date: May 2010
Posts: 31
Default

Code:
//o--------------------------------------------------------------
//| GetHitChance; Yeahlight, Nov 24, 2008
//o--------------------------------------------------------------
//| Returns the chance to hit between attacker and defender
//o--------------------------------------------------------------
int16 Mob::GetHitChance(Mob* attacker, Mob* defender, int skill_num)
{
	bool debugFlag = true;

	//Yeahlight: If the target is sitting, the chance to hit them is 100%
	if(defender->GetAppearance() == SittingAppearance)
		return 999;

	sint16 ATKadjustment = (attacker->GetLevel() - defender->GetLevel()) * 3;
	sint16 hitRateAdjustment = (attacker->GetLevel() - defender->GetLevel());
	int16 hitChance = 70;
	int16 weaponSkill = 0;
	if(ATKadjustment < 0)
		ATKadjustment = 0;
	if(attacker->IsClient())
		weaponSkill = attacker->CastToClient()->GetSkill(skill_num);
	else
		weaponSkill = attacker->GetSkill(skill_num);
	int16 accuracyATK = (int)((float)weaponSkill * 2.70f) + 5 + ATKadjustment;
	if(accuracyATK == 0)
		accuracyATK = 1;
	int16 avoidanceAC = defender->GetAvoidanceAC();

	//Yeahlight: 5% bonus evasion for defensive monks
	if(defender->GetClass() == MONK || defender->GetClass() == MONKGM)
		hitChance = hitChance - 5;
	//Yeahlight: 5% bonus accuracy for offensive rogues
	if(attacker->GetClass() == ROGUE || attacker->GetClass() == ROGUEGM)
		hitChance = hitChance + 5;

	//Yeahlight: As the attacker falls further under the level of the defender, it becomes harder to land a hit
	//           Note: This will become a major tweak for class balancing! We must keep this on par with spell casting level penalties
	if(hitRateAdjustment < 0)
	{
		hitRateAdjustment = abs(hitRateAdjustment);
		if(hitRateAdjustment > 15)
			hitRateAdjustment = 15;
		float tempAdjustment = (float)hitRateAdjustment * 2.00f / 3.00f;
		hitRateAdjustment = (int)tempAdjustment;
		hitChance = hitChance - hitRateAdjustment;
	}

	//Yeahlight: Adjust hit rate based on the gap between accuracy and avoidance AC
	sint16 gapPercent = (sint16)(((float)(accuracyATK - avoidanceAC) / (float)(accuracyATK)) * 100.00f);
	sint16 gapAdjustment = ((float)gapPercent / 5.00f);
	if(gapAdjustment > 5)
		gapAdjustment = 5;
	else if(gapAdjustment < -5)
		gapAdjustment = -5;
	hitChance = hitChance + gapAdjustment;

	//Yeahlight: Debug messages
	if(debugFlag && defender->IsClient() && defender->CastToClient()->GetDebugMe())
		defender->Message(LIGHTEN_BLUE, "Debug: %s's ATK accuracy: %i; Your AC evasion: %i; Hit rate: %i%s", attacker->GetName(), accuracyATK, avoidanceAC, hitChance, "%");
	if(debugFlag && attacker->IsClient() && attacker->CastToClient()->GetDebugMe())
		attacker->Message(LIGHTEN_BLUE, "Debug: Your ATK accuracy: %i; %s's AC evasion: %i; Hit rate: %i%s", accuracyATK, defender->GetName(), avoidanceAC, hitChance, "%");
	CAST_CLIENT_DEBUG_PTR(attacker)->Log(CP_ATTACK, "Mob::GetHitChance: Your hit chance: %f", hitChance);
	CAST_CLIENT_DEBUG_PTR(defender)->Log(CP_ATTACK, "Mob::GetHitChance: %s's hit chance: %f", attacker->GetName(), hitChance);

	return hitChance;
}
  #8  
Old 02-21-2014, 02:15 PM
drktmplr12 drktmplr12 is offline
Sarnak

drktmplr12's Avatar

Join Date: Feb 2012
Posts: 483
Default

Quote:
Originally Posted by tristantio [You must be logged in to view images. Log in or Register.]
You know how you know someone is an engineer?

They'll tell you!
i am an engineer, and this is true.
__________________
[52 Disciple] Downgrade (Human) <Azure Guard>
[31 Druid] Edarg (Halfling)
  #9  
Old 02-21-2014, 02:46 PM
koros koros is offline
Planar Protector


Join Date: Mar 2011
Posts: 1,127
Default

Interesting code snippet. However, that doesn't tell us how ATK functions(in the eq sense uses it). The code you posted looks to be for hit rate %, which ATK doesn't affect.
  #10  
Old 02-21-2014, 11:12 AM
imajester imajester is offline
Orc


Join Date: May 2010
Posts: 31
Default

I believe here...

https://code.google.com/p/projecteqemu/source/browse/

I am going to dig around and see if I can find the calc.
Closed Thread


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 01:58 AM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.