Go Back   EQEmulator Home > EQEmulator Forums > Archives > Archive::Development > Archive::Development

Archive::Development Archive area for Development's posts that were moved here after an inactivity period of 90 days.

Reply
 
Thread Tools Display Modes
  #1  
Old 04-19-2003, 11:58 PM
a_Guest03
Demi-God
 
Join Date: Jun 2002
Posts: 1,693
Default EQ damage mitigation equation

EDIT: removed previous theory because it is proven to not work.
__________________
It's never too late to be something great.
Reply With Quote
  #2  
Old 04-20-2003, 05:30 AM
Trumpcard
Demi-God
 
Join Date: Jan 2002
Location: Charlotte, NC
Posts: 2,614
Default

I think MONK needs to fit right up there with warrior, as monks are a pure warrior class, and they dont have the benefit of a high AC.. They probably need a higher weighting factor, like 1.5 since they typically have much lower AC's..
I've been running the general equation through a driver, and it looks really good... Just tag down the class mods and I'll put it in
__________________
Quitters never win, and winners never quit, but those who never win and never quit are idiots.
Reply With Quote
  #3  
Old 04-20-2003, 12:26 PM
a_Guest03
Demi-God
 
Join Date: Jun 2002
Posts: 1,693
Default

I thought that because of their impressive ability to deal damage and avoid injury (dodge/etc.), that they wouldn't have the same tanking skills as warriors. That was just my impression.
__________________
It's never too late to be something great.
Reply With Quote
  #4  
Old 04-20-2003, 01:06 PM
Trumpcard
Demi-God
 
Join Date: Jan 2002
Location: Charlotte, NC
Posts: 2,614
Default

I honestly dont know.. I know they had to be careful to stay under a certain weight or their natural AC suffered, not sure how its really handled though...
__________________
Quitters never win, and winners never quit, but those who never win and never quit are idiots.
Reply With Quote
  #5  
Old 04-20-2003, 01:11 PM
a_Guest03
Demi-God
 
Join Date: Jun 2002
Posts: 1,693
Default

Mbleh - previous theory doesn't work for all situations.
__________________
It's never too late to be something great.
Reply With Quote
  #6  
Old 04-23-2003, 03:02 AM
Bigpull
Discordant
 
Join Date: Feb 2003
Posts: 305
Default

warrior, plate melee, chain melee, leather melee
cleric, chain caster, leather caster, cloth caster

Thats the eq hierarchy for mitigation.
Leather melee make up thier damage absorbtion with a slightly higher avoidance and the block skill.
Bards on the otherhand (plate melee) shift thier damage absorbtion with a lower avoidance.

Based purely on mitigation,
Warrior, Knights/Bard, Rogue, Ranger, Monks, Cleric, Shaman, Int casters

Avoidance
Warror, Knights, Monks, Ranger, Rogue, Bard, Cleric, Shaman, int casters
Reply With Quote
  #7  
Old 04-23-2003, 03:45 AM
monkboy
Fire Beetle
 
Join Date: Apr 2003
Posts: 17
Default

What's missing there tho, is the Beastlord. They're a leather class as well and with the same H2H table and often related to each other somehow. However, I don't think they're on the same mitigation table as monks, at least not on EQ live. The monk mitigation nerf there kinda proved that. Monks took a huge mitigation loss, while beastlords were basically unaffected by it. And my 2c worth, they shouldn't be on the same mitigation table. Monks should be higher up than BLs. =)
Reply With Quote
  #8  
Old 04-23-2003, 04:09 AM
a_Guest03
Demi-God
 
Join Date: Jun 2002
Posts: 1,693
Default

To be honest, I'm still filtering through forums, trying to decide who has valid data, and who is just plain guessing. The AC equation works for now, but I will continue to update with information until I can decypher it.
__________________
It's never too late to be something great.
Reply With Quote
  #9  
Old 04-23-2003, 03:21 PM
a_Guest03
Demi-God
 
Join Date: Jun 2002
Posts: 1,693
Default

This formula should apply to Monks, assuming weight limits are respected. Weight punishments can be applied to AC.

I don't trust the "iksars get a bonus of maybe level -1"

I will post the table referenced in the next post so that this isn't so long and drawn out.

Quote:
Originally Posted by Sylvan, who originally decyphered the equation
Ok I finished the agility table.
Here's the full formula for AC:

Avoidance = (T from table) + trunc(Defense * 16/9), but never less than 0
Caster Mitigation = trunc(Buffs/3) + trunc(Defense/2) + (Equipment + 1)
Anyone else's Mitigation = trunc(Buffs/4) + trunc(Defense/3) + trunc(Equipment * 4/3)
Displayed AC = trunc( (Avoidance + Mitigation) * 1000 / 847 )

Caster means Enchanter, Magician, Necromancer, Wizard.
Defense is the character's Defense skill.
Equipment is just the sum total of the raw AC from everything worn. Don't forget the range slot.
Buffs is the sum of the bonuses from all buffs. You'd have to check your spdat file to see those numbers, but for reference Skin Like Wood adds 15 and Skin Like Nature adds 55.
T comes from the agility table below, use the column corresponding to the character's level.
trunc means truncate, to remove the fraction; keep only the integer part of the value.

Some qualifications: Iksars get a bonus, I'm not sure how much but I suspect it might be adding (Level - 1) to Mitigation. The formula hasn't actually been tested on Beastlords or Vah Shir yet. The formula doesn't work for monks because of the weight limit thing, but it should work if they keep their weight under the limit. There is a 'never less than 0' issue with Mitigation too, but it only matters if you get hit with an AC debuff while wearing little or no equipment... it won't affect most people. The formula doesn't work right if your character has been drinking but it works in every other situation, including illusions, hunger, thirst, drowning, encumbered, low health, low stamina, stacked buffs and debuffs, and resurrection sickness. I have no proof that these are the actual Avoidance and Mitigation values, there isn't even any proof that Avoidance and Mitigation are ever used seperately in actual combat calculations... I just know that the first few factors are rounded up to 0 and are the same for all classes, so it seemed like a sensible division.
__________________
It's never too late to be something great.
Reply With Quote
  #10  
Old 04-23-2003, 03:45 PM
a_Guest03
Demi-God
 
Join Date: Jun 2002
Posts: 1,693
Default

I don't think it's worth the time to make every AC completely accurate. To be honest, i don't think we'll ever do it. The equation I will post should never be wrong by more than 7-10AC in low levels, and 90 (yeah 90, sorry!) in realllllly high values. What's 7 AC anyway? Anyway, it's in favor of the PC.

If AGI > 74
Tvar = (AGI - 76) * .155
If Level < 7 then
Tbase = 10
if class=monk then
Tbase = Tbase + 7 endif
if race=iksar then
Tbase = Tbase + 10 endif
else If Level > 7 and < 20
Tbase = 24
if class=monk then
(hell, I don't know yet) endif
if race=iksar then
(hell, I don't know yet) endif
If level >20 and < 40
Tbase = 34
....

The table for T:

Level ..... -- 40+:20-39:7-19:1-6
---------------------------------
Agi 1...... ---24 :-24 :-24 :-24
Agi 2-3.... ---23 :-23 :-23 :-23
Agi 4...... ---22 :-22 :-22 :-22
Agi 5-6.... ---21 :-21 :-21 :-21
Agi 7-8.... ---20 :-20 :-20 :-20
Agi 9...... ---19 :-19 :-19 :-19
Agi 10-11.. ---18 :-18 :-18 :-18
Agi 12..... ---17 :-17 :-17 :-17
Agi 13-14.. ---16 :-16 :-16 :-16
Agi 15-16.. ---15 :-15 :-15 :-15
Agi 17..... ---14 :-14 :-14 :-14
Agi 18-19.. ---13 :-13 :-13 :-13
Agi 20..... ---12 :-12 :-12 :-12
Agi 21-22.. ---11 :-11 :-11 :-11
Agi 23-24.. ---10 :-10 :-10 :-10
Agi 25..... -- -9 : -9 : -9 : -9
Agi 26-27.. -- -8 : -8 : -8 : -8
Agi 28..... -- -7 : -7 : -7 : -7
Agi 29-30.. -- -6 : -6 : -6 : -6
Agi 31-32.. -- -5 : -5 : -5 : -5
Agi 33..... -- -4 : -4 : -4 : -4
Agi 34-35.. -- -3 : -3 : -3 : -3
Agi 36..... -- -2 : -2 : -2 : -2
Agi 37-38.. -- -1 : -1 : -1 : -1
Agi 39-65.. -- 00 : 00 : 00 : 00
Agi 66-70.. -- 01 : 01 : 01 : 01
Agi 71-74.. -- 05 : 05 : 05 : 05
Agi 75..... -- 39 : 33 : 23 : 09
Agi 76-79.. -- 40 : 33 : 23 : 10
Agi 80..... -- 41 : 34 : 24 : 11
Agi 81-85.. -- 42 : 35 : 25 : 12
Agi 86-90.. -- 42 : 36 : 26 : 12
Agi 91-95.. -- 43 : 36 : 26 : 13
Agi 96-99.. -- 44 : 37 : 27 : 14
Agi 100.... -- 45 : 38 : 28 : 15
Agi 101-105 -- 45 : 39 : 29 : 15
Agi 106-110 -- 46 : 39 : 29 : 16
Agi 111-115 -- 47 : 40 : 30 : 17
Agi 116-119 -- 47 : 41 : 31 : 17
Agi 120.... -- 48 : 42 : 32 : 18
Agi 121-125 -- 49 : 42 : 32 : 19
Agi 126-130 -- 50 : 43 : 33 : 20
Agi 131-135 -- 50 : 44 : 34 : 20
Agi 136-139 -- 51 : 44 : 34 : 21
Agi 140.... -- 52 : 45 : 35 : 22
Agi 141-145 -- 53 : 46 : 36 : 23
Agi 146-150 -- 53 : 47 : 37 : 23
Agi 151-155 -- 54 : 47 : 37 : 24
Agi 156-159 -- 55 : 48 : 38 : 25
Agi 160.... -- 56 : 49 : 39 : 26
Agi 161-165 -- 56 : 50 : 40 : 26
Agi 166-170 -- 57 : 50 : 40 : 27
Agi 171-175 -- 58 : 51 : 41 : 28
Agi 176-179 -- 58 : 52 : 42 : 28
Agi 180.... -- 59 : 53 : 43 : 29
Agi 181-185 -- 60 : 53 : 43 : 30
Agi 186-190 -- 61 : 54 : 44 : 31
Agi 191-195 -- 61 : 55 : 45 : 31
Agi 196-199 -- 62 : 55 : 45 : 32
Agi 200-219 -- 63 : 56 : 46 : 33
Agi 220-239 -- 64 : 57 : 47 : 34
Agi 240-255 -- 65 : 58 : 48 : 35
__________________
It's never too late to be something great.
Reply With Quote
  #11  
Old 04-23-2003, 04:45 PM
a_Guest03
Demi-God
 
Join Date: Jun 2002
Posts: 1,693
Default

Trying to retrieve values for iksar monks, human monks, generic melee other, iksar generic. Guessing the values to put in...

Thanks to killspree for collecting this data for me.

We collected data for Vah Shir and Beastlords because they were untested prior to our work here. The Vah Shir have no bonus - they follow standard rules. The Beastlords follow standard rules.

To find T values: T = DisplayAC * 847/1000 - 16/9*defense

DispAC = 1000/847*(16/9 * defense + T)
847/1000*DispAC = 16/9 * defense + T
T = 847/1000*DispAC - 16/9 * defense

-----------------------------------Tier 1 research----------------------------

Verified to be correct - research complete on Tier 1 for all but Vah Shir and Beastlords.

All test subjects had 0 defense skill, so no defense AC was awarded - AC listed is purely avoidance AC.

iksar monk (iksar bonus), (monk bonus)
AGI:AC
100:37 // 37*847/1000 = 31.339 base (32) (15 from std. table)
103:37 // 31.339 base (32) (15 from std. table)
108:38 // 32.186 base (33) (16 from std. table)
113:40 // 33.88 base (34) (17 from std. table)
118:40 // 33.88 base (34) (17 from std. table)
120:41 // 34.7 base (35) (18 from std. table)

human monk (monk bonus only)
AGI:AC
85:22 // 22*847/1000 = 18.643 base (19) (12 from std. table)
87:22 // 18.643 base (19) (12 from std. table)
92:23 // 19.481 base (20) (13 from std. table)
97:24 // 20.328 base (21) (14 from std. table)
100:25 // 21.175 base (22) (15 from std. table)
103:25 // 21.175 base (22) (15 from std. table)

human cleric: control set
AGI:AC
75:10 // 8.47 base (guess it shrunk! Should be 9) 9*1000/847 gives 10 AC

iksar warrior: (iksar bonus only)
AGI:AC
95:27 // 22.869 base (23 ) (13 from std. table)
97:28 // 23.716 base (24 ) (14 from std. table)
100:29 // 24.563 base (25 ) (15 from std. table)
106:30 // 25.41 base (26 ) (16 from std. table)
111:31 // 26.257 base (27 ) (17 from std. table)
120:33 // 27.951 base (28 ) (18 from std. table)

On the first tier of levels (Levels 1-6), being a monk increases the T value 7. Being iksar increases T value by 10.

iksar monks: 32 = 15 (basic T) + 17 (both bonuses)
iksar warrior: 23 = 13 (basic T) + 10 (iksar bonus)
human monk: 19 = 12 (basic T) + 7 (monk bonus)

------------------------End Tier 1 Research----------------------------
---------------------------Tier 2 Research-------------------------------
iksar monk Agility 120 AC 327 Level 11 Defense 50
T-value = 188.08 (189) (std table is 32)
Discrepency is 157... Big difference! Does block have anything to do with this??
---------------------------Tier 3 Research-------------------------------
Example of Level 36 iksar SK (thanks UrineTrouble)
Level 36, 180 defense skill
Naked AC on EQLive: 536AC
AGI:T
110:133.992 //T = 133.992 (134) (std. table value is 35) Difference = 99

28 iksar beastlord 440 naked AC, 95 AGI, 139 defense skill Block skill 106 dodge 125
AGI:T
95:125.57 //(126) - std table (36) - 90 difference


-------------------------End Tier 3 Research---------------------------
---------------------------Tier 4 Research-------------------------------
Remind me to recalc these.
Still compiling data

Example from Magelo's board:
Naked Iksar Monk, 252 defense skill, level 58 (tier 4)
AC on EQLive = 820

T = 246.54 (247?)


Iksar Beastlord - Remember I determined that beastlord is standard, but iksar gets a bonus. Here come the stats:
65 Iksar Beastlord

naked stats:
AC: 710 //while defense is NOT posted (bastard!), I will assume 252. What 65 BL doesn't have that?
AGI: 105
T-value = 153.37 (154?)... (std. table 45)
Corrupted data (don't know defense skill)
109 difference

iksar Monk AC 749/lvl 49/AGI 100, defense skill 230
T-value - 225.51 (226) - (std table 45)
181 difference between iksar monk and standard

Same char, AC 750/level 49/AGI 106 unknown defense skill (again)
T-value - 226.36 (227) - (std table 46)
181 difference between iksar monk and standard

Iksar 65 Shaman, naked AC 587, 90 AGI, 200 defense
T-value = 141.63 (142?) - (std table 42)
100 difference between iksar and standard

Gnome 65 Rogue, naked AC 695, 100AGI, 252 defense
T-value = 140.66 (141) - (std table 42)
99 difference between this value and standard

65 Barbarian Warrior, naked AC 681, Defense 252, AGI 100, 190 Dodge, 230 parry
T-value = 128.81 (129) - (std table 42)
87 difference between this value and standard (could this have to do with dodge values)?
__________________
It's never too late to be something great.
Reply With Quote
  #12  
Old 04-23-2003, 04:54 PM
monkboy
Fire Beetle
 
Join Date: Apr 2003
Posts: 17
Default

Speaking about AC.. I don't know if this is a bug or working as intended (tm):

My monk on my local EQEmu server currently got 1066 AC. Checking his AC value with #showstats, only returns a total of 316 raw AC points. Now, I tried to fiddle around with some of the numbers checking and changing the EQemu code. From what I can tell ( doesn't mean much =) ) it's the value that's shown with #showstats that's calculated with GetAC.. not the value showed to the player on his character information screen. The old mitigation test

if (damage > 1 && spell_id == 0xFFFF){
//Reduce Dmg based on AC
//.5 less damage at 1000 AC
double damage2=damage;
double calc1=(1000+this->GetAC())/1000+.5;
double calc2=(damage2/calc1);
damage=damage-(sint32)calc2;
}

doesn't work. If you replace the 1000 with 310 (which seem to be the "internal" AC value), you'll get a .5 reduction worth of damage.

Sorry if I ramble and this is a known issue, just wanted to give you a heads up about it =)
Reply With Quote
  #13  
Old 04-23-2003, 05:26 PM
a_Guest03
Demi-God
 
Join Date: Jun 2002
Posts: 1,693
Default

I don't know if you're trying to tell me that the eqemu code is broken or if you're giving me new information. :P I'm tired.
__________________
It's never too late to be something great.
Reply With Quote
  #14  
Old 04-23-2003, 05:54 PM
monkboy
Fire Beetle
 
Join Date: Apr 2003
Posts: 17
Default

Frankly, I don't know that either =) The code I mentioned has been around for a while I think, and has been commented out in attack.cpp. So maybe somebody is aware of the different AC numbers server- and client side, or they just commented it because they it didn't work with their current numbers (1000 AC while the server reports 310.. which is the server AC for 1000 AC client side I beleive).

And yes, I'm quite sleepy too, and I'm not 100% aware of what I'm typing =)
Reply With Quote
  #15  
Old 04-23-2003, 06:13 PM
vetoeq
Hill Giant
 
Join Date: Apr 2003
Posts: 125
Default

I'm taking a stab in the dark here, but was your is your nekkid AC 1066-310=756? That would make the 310 your armor AC and 756 your base AC.
Reply With Quote
Reply


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 07:42 AM.


 

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