Proposed new melee equation
I know I'm cranking out a lot of equations, but I think eqemu is to the point where we can have accurate spawns, aggro, and equations. I keep hearing that it's off, and I can't understand why some of the variables in the current equations exist in their locations... Why would level have anything to do with damage?? Skill has to do with level, so use that variable to replace all references to level. Characters with advanced skill benefits (some monk skills) shouldn't be hampered by their levels.
Anyway, another proposed equation: standard melee equation Maxdamage = 3 + damagebonus (from weapon) + weapondmg * CUBEROOT(STR^2)*meleeskill)*.05 EDIT: this equation isn't cutting it :P We'll work it out some more and post an update. I'll keep cramming numbers in to get max damage, and assorted damage sets. The reason I put STR^2 is to punish all wussy casters in melee. No matter how high the skill, they will never succeed. I need data to test this with, and complaints about situations where this data doesn't work. If anyone thinks there should be a class modifier for the groups, I think that can be arranged. I think basic weapon sets are just more effective for each group. While rogues may not have much strength, they have much faster weapons with good damage. Give me feedback!! |
Quote:
Hrmm So Max dam with a Dmg 12 weapon, using 100 str and 100 skill would be 281.5? That seems resonable. 958 damage with 252 str and skill(forgot caps) That looks good to me, considering most times you see a 12 damage weapons it has a decent delay. Yep yep (calculations may be wrong, did them as I was going to the doctors office =) |
Graypaint, I think your equations are off... I'm seeing 100 str, 100 skill, 12 damage weapon does 63 max damage. Does this seem unreasonable? Assume that's a level 19 guy, with a decent weapon. 63 damage at 19? I think that's fair.
|
Where is attack rating in this? Is it only used to see if you land a hit?
Your damage seems a bit high for a 19th lvl with a 12 dmg weapon, he should see a max hit of around 25 (2xdmg+1) until around 40th level or so (been a couple years since I was that lvl). I do distinctly remember that each time leveled from around 25-40 my max hit increased by 2 (or was it ever other level it increased by 2?...bah, don't remember) -- VetoEQ |
lol I had wrong time for appointment.
Yeah, lemme took at what I did for those equations hehe =) |
Would 39 be too high for a level 19 with a 12 damage weapon? I can adjust the equation a bit.
Also, what's the highest hit anyone has seen dealt with a melee weapon without a crit, and what weapon damage was it? |
data point
I looked at some old logs:
60th level SK with 41dmg weapon and 255str (avatar) max hit for 302. (post 2h dmg upgrade) Actual weapon in question was rocksmasher. -- VetoEQ |
Alright, I didn't know there was a 2hand damage bonus. I'll have to figure that out. Anyway, give me more feedback. I'm changing the equation still... I'm not satisfied that it captures all circumstances. The CUBEROOT and STR squared seem wrong. Caster classes are punished by caps on skills. I need more advice.
|
I never was an expert on combat stats, I left that to the monks/rogues/rangers, they seem very in tune with those stats and their effect. You might try on the Safehouse, Monkly Business or Ranger Glade for some insight, I would think you might get some interesting info from those folks between the spam.
I'll be happy to give as much input as I can from old logs and what feels right, however, my info will be based off when I actually looked at people hitting during groups/raids and those logs. -- VetoEQ |
I DID NOT SOLVE THIS. This was calculated very meticulously by people in the know. Very special thanks to Graypaint for finding this link!
I'm quoting most of it because I don't think many of you will go there to read it. It's very impressive. http://pub14.ezboard.com/fthesteelwa...cID=1656.topic Quote:
Can we use this data? We can redo the database again (yeah, pain in the ass), and use these formulae. Most of the uber mobs already exist here. If we can figure out minimum damage levels for BASIC mobs, then we can resolve the minimum, and if we can figure out maximum, we apply that to the npc_types table. We may have to guess ATK ratings of NPCs. |
This is VERY good stuff...this is exactly the type of info I was suggesting to go fishing for as I know there are some folks out there that are 'in the know'.
It seems like a very good starting point, if nothing else. /cheer's to you guys for hunting it down. -- VetoEQ |
Jeggred made me a driver to test values. Whatever is missing in the DB, I think we can solve using test values from his driver and logs of real data.
Just an update to what's going on with the equations. The equation we use to test damage values is: Roundint(DB + (1-AC/ATK)*randint(1,20)*DI) DI is a float value truncated to 1 decimal place, loaded from database for NPCs. It is the damage interval. For each of 20 rolls of the "dice", you can multiply that by the damage interval. DB + (1-AC/ATK) * 1 * DI will be different than: DB + (1-AC/ATK) * 20 * DI. randint(1,20) will give 20 different integers to multiply the damage intervals by, meaning that assuming AC, ATK, DI and DB don't change, attacks have 20 damage outcomes. DB is an integer, loaded from the database for NPCs. It is a damage bonus, which is should be able to be evaluated using an equation from currently existing values in the database. The NPC will always deal this much damage ON TOP OF what it can get out of the 1-20 roll described above. If Cazic Thule hits you, it won't be for 200, but his DB is 200. His DI is 20. You might get hit for 220 or 240 or 210, but never for DB, always above. AC is the target's AC. That's pretty self-explanatory. I don't know how we'll solve these for the database yet... It may be interesting. This will apply to PCs and NPCs. ATK is the attacker's ATK. We'll also have to put these values into the database if they don't exist yet. NPCs will need to have them for this equation to work. If the equation comes out negative, the hit becomes a miss: Damage won't heal, so negative damage becomes 0. More to come as we uncover it. |
Here is more information we can use to figure out the database values for much of Norrath.
Quote:
|
Quote:
|
DB table
GN,
I found this URL that has DB values for delays and level...might be useful: http://lucy.fnord.net/dmgbonus.html |
Thanks, Veto.
|
Trying to figure out how to make this previous equation that we've proved out to work with regular PC attacks on NPCs and PCs is proving to be more complex than I thought. Here is what I've discovered so far:
1hs damage bonus: TRUNCATE(( Level-25 )/3) Already solved in code, presumably by Kaiyodo! Thanks for making this easy! I've verified it on MANY websites, with lots of empirical data giving credit to this equation. This part is right! YAY! 2hs damage bonus ( if delay <28 ) : 1hs formula + 1!! Believe it or not, it's that easy! If you check http://lucy.fnord.net/dmgbonus.html?setcookie=1 , you will see that this is correct. You may wonder why there is a condition here! Well, I think I figured it out. The numbers actually formed a pattern, which I found a bit weird. If you flip the table on its side and look for, say 4, you'll see that the side beyond 27 delay forms a bell curve. If you made that bell curve extend to the left, your less-delayed weapons would have big damage bonuses. They cut the curve in half and only applied it to the delays I haven't figured out how to normalize the equation, but I pulled out my stats book to find out how to extend and shrink bell curves. More will be posted as I figure it out. |
I believe I have 2h damage for level 28 (yeah, it's not much), and there is an equation for it so far. More to come as I resolve it:
Assuming level 28, beyond delay 42... TRUNCATE((DELAY - 30) / 3) EDIT: Equations on Monkly business dispute this equation. I guess I'll go with Monkly. The bonus damage minimum is 1, so we round that up. That gives us a base damage. Now if I can just figure out how that damn level figures into the equation... |
Great news, so you are solving for delay > 27 only, since it's different at <=27?
|
You can find some nice info about damage calculations and modals here..
http://www.monkly-business.com/artic...?ArticleNum=66 |
This absolutely contradicts what I found on Lucy! :( I apply the monkly equations to Lucy data, and they don't match at all.
I would be satisfied with the data that currently exists on monkly business. I think that model is a more fair representation of the melee classes anyway. The following equations are offered for weapon damage bonus: 1 handed weapons, including fists, and will include bash and kick, if I am correct: TRUNCATE((LEVEL-25)/3) 2 handed weapons: You will notice that many of these equations are modifications of the one-handed weapon equation, and equations listed below. LIGHT WEAPONS - Weapons with delays less than 28 1 + TRUNCATE((LEVEL-25)/3) shorthand: 1hb equation + 1 MEDIUM WEAPONS - Weapons with delays between and including 28 and 39 TRUNCATE((LEVEL-25)/3) + (LEVEL-27)/4) shorthand: Light weapons equation - 1 + TRUNCATE((LEVEL-27)/4) SLOW WEAPONS - Weapons with delays between and including 40 and 42 TRUNCATE((LEVEL-25)/3) + (LEVEL-27)/4) + 1) - shorthand: Medium weapons equation + 1 VERY SLOW WEAPONS - Weapons with delays greater than 42 TRUNCATE((LEVEL-25)/3) + (LEVEL-27)/4) + (DELAY-34)/3) + 1) - shorthand: Slow weapons equation + TRUNCATE((DELAY-34)/3) I think these are probably the real values. If they aren't, the equations are so easy compared to the difficult ones, that we should probably follow these instead. I trust Lucy, but I also trust monkly. Let's go with the one that we can do. More to come. |
GN, are the values from Lucy and Monklybusiness WAY off or just don't quite jive (possible rounding errors, etc.)?
Next: I assume that next we take the level/delay DB and add the actual weapon DB to arrive at a final DB? Follow on: Okay, I just plugged this into Excel to compare against a known value. 60sk/255str/~1250atk/Rocksmasher(41/47 DB=31) and got a weird number. TRUNCATE((LEVEL-25)/3) + (LEVEL-27)/4) + 1) TRUNCATE(((60-25)/3)+((60-27)/4)+1)=20 (20.92) Now we take that and I assume add the weapon DB of 31 to arrive at 51. Now on the the next part (assuming a 100ac target and DI = delay of weapon (41)) DB + (1-AC/ATK) * 20 * DI 51+(1-100/1250) * 20 * 41 = 805.4 Thats very high, so I messed with AC of target to solve to the known value of 302 max hit with that combo and end up with a minimum AC of 867 or it may be that the ac/attack ratio cannot go below 0.3....or it could be that I'm broken in about 100 other ways :) STR comes to mind, but it's partially in there since any increase in STR has a direct corelation to increase in ATTK (1 to 1). Now I'm guessing at the DI value being weapon delay, it might be something else entirely. I don't think it can be the effective delay of attack since that would mean that a hasted (hence lower DI) attacker would hit for less than a unhasted one; which isn't the case. -- VetoEQ |
DI value for weapons hasn't been posted yet. I have found it, but it's not up there. Your initial Damage bonus value looked correct.
|
Quote:
So, to calculate DI: First we find maxdamage: maxdamage= ((STR + SKILL + LEVEL)/100)*weapondmg + DB DI = (maxdamage - DB)/20 Using algebra, we solve equation 2 for maxdamage so that we can have two equations that equal maxdamage. We use substitution to figure out PC DI. DI = (maxdamage - DB)/20 20DI = maxdamage - DB maxdamage = 20DI + DB and maxdamage = ((STR + SKILL + LEVEL)/100)*weapondmg + DB Substitute one equation for maxdamage, because both equations equal the same thing. 20DI + DB = ((STR + SKILL + LEVEL)/100)*weapondmg + DB 20DI = ((STR + SKILL + LEVEL)/100) * weapondmg // (+ DB - DB) cancels out so DI = ((STR + SKILL + LEVEL)/100) * weapondmg / 20 And finally!! DI = ((STR+SKILL+LEVEL)*weapondmg) / 2000 We plug this in for vetoeq's example: Let's assume maximum level, effective STR, and skill so that we find maximum damage. (okay, strength is WAY high, but I'll explain) For every 20 strength, you get another .01 * damage per DI in this example. That comes out to an overall addition of .2 * damage for 20 strength to the final equation, or .01 * damage per strength addition. I'm wondering if maybe we shouldn't cap strength. DI = ((310 + 250 + 65)*41) / 2000 = 12.813 (maxdamage = 307.25) (damage bonus of 51) DI = ((290 + 250 + 65)*41) / 2000 = 12.403 (maxdamage = 299.05) (damage bonus remains the same) DI = ((270 + 250 + 65)*41) / 2000 = 11.993 (maxdamage = 290.85) DI = ((250 + 250 + 65)*41) / 2000 = 11.583 (maxdamage = 282.65) Let's assume a level 50 has several str, and several skill levels, with your rocksmasher. DI = ((200 + 200 + 50)*41) / 2000 = 10.25 (maxdamage = 224.42) (damage bonus of 19.417) DI = ((100 + 200 + 50)*41) / 2000 = 7.175 (maxdamage = 162.92) (damage bonus is same) DI = ((80 + 200 + 50)*41) / 2000 = 6.765 (maxdamage = 154.72) DI = ((250 + 15 + 50)*41) / 2000 = 1.435 (maxdamage = 52.217) (damage bonus at level 50 with this weapon remains the same) This is with 15 skill. Okay, so rocksmasher works. Let's take a peak at a 1hb monk weapon. Posting to ensure my research doesn't get lost :P Will update. |
Let's take a look at the poor wittle n00bs!
Using the same formulae for low levels and high levels gives us this: Level 1!! YAYYYY!! We'll go through a 2 damage weapon (intense!!) with wuuuuussssy characters, and work our way up to the big Ogre Manmammoths DB = 0 (they're noobs!!) Assuming there are circumstances where newbies have badass + damage bonus weapons, we can either cap their damage bonus or their overall damage. It would be smarter to cap their damage bonuses at (level-14)/4 or something like that. We will cap their overall damage at some point anyway. Try to read the strength first, skill second, level third, and weapondamage as the multiplier Okay, back to our DI equations: DI = ((STR+SKILL+LEVEL)*weapondmg) / 2000 Level 1 and 2 WEAK casters DI = ((65 + 0 + 1)*2 / 2000 = .066 ( maxdamage = 1.32 ) DI = ((65 + 0 + 1)*3 / 2000 = .099 ( maxdamage = 1.98 ) DI = ((65 + 0 + 1)*4 / 2000 = .132 ( maxdamage = 2.64 ) DI = ((65 + 3 + 2)*2 / 2000 = .07 ( maxdamage = 1.4 ) DI = ((65 + 3 + 2)*4 / 2000 = .14 ( maxdamage = 2.8 ) Early level monks DI = ((103 + 0 + 1)*2 / 2000 = .104 ( maxdamage = 2.08 ) DI = ((103 + 20 + 3)*2 / 2000 = .126 ( maxdamage = 2.52 ) (put some sticks in his hands) DI = ((103 + 20 + 3)*6 / 2000 = .378 ( maxdamage = 7.56 ) Early level Ogres DI = ((153 + 0 + 1)*7 / 2000 = .539 ( maxdamage = 10.78 ) Damage caps will exist to limit twinking. We should probably make damage caps a database check. Up to the devs :P |
Okay, I figured out how to get modals to happen the way they should.
Equation for melee combat (so far), modalvalue = round((rand(0,1)*20*(ATK/AC)) if modalvalue < 1, modalvalue = 1 if modalvalue > 20, modalvalue = 20 DB + DI * modalvalue That should give damage values along the modals, with peaks at (1-AC/ATK)*20. and minimum or maximum. I haven't tested these yet. I'll bring this all together into a sleek piece of logic that shouldn't be too hard to interpret into code by any programmer. |
http://pub14.ezboard.com/fthesteelwa...cID=3094.topic
Quote:
Anyway, more to come. There is a lot of data on that link that I will continue to dissect. |
AGI/Defense, and other natural defenses should allow someone to evade attack. I hypothesize that I should be able to create an avoidance AC that gets added to mitigation AC to create total AC. Mitigation AC would decrease damage on one scale, while avoidance AC would decrease enemy accuracy on another scale. Has anyone heard this theory before, or can anyone offer me a link or raw data that may or may not support my theory?
Anyone can contribute any data, and it will be more helpful than what I know now. |
Players don't get a damage bonus on weapons until a certain level...I think it's 20, it's been a while since I leveled a melee though.
|
Thank you for the contribution, killspree. So, if you have a weapon with stats:
40/54 with a damage bonus of 13 You really just have 40/54 weapon up until 20? |
Aye, until 20 you have a chance to hit for 1 with a weapon in mainhand, after 20 it's 1+damage bonus for minimum damage you can hit for.
Casters and priests don't get damage bonuses at all of course. |
I'm seeing level 28 as the crossing over level for any damage bonuses based on weapon, level, etc.
Here is more spam to support my theories. I will continue to verify them. EDIT: removed Graal the Dorf's quote - putting in Sylvan's quote, the original writer of the AGI sequence. His work is more accurate to EQLive. Quote:
|
killspree is right, there is alway the spot where your damage actually starts increasing to some extent for melee. It's in the range 20-25. I seem to remember 24th lvl on my SK, but that was back in early 2000.
Additionally, my parsing shows similar numbers for me hitting mobs for percent hits. I always hit around 60% (+/- a few percent) on normal xp mobs. I'll see if I can drag up some old logfiles to parse to verify. -- VetoEQ |
Hmm yeah, it may be 28...I just remembered it being a level in the 20s where damage bonus began.
|
Okay, maybe not 20-25...maybe ->> 28 <<- =)
It might have once been earlier than that (i.e. orig EQ) |
Hitpoints calculated thanks to Maurice of Magelo
Natural durability AA increases HP by 2%, 5%, or 7%. I think possible ND values for the following equation are 1, 1.02, 1.05, 1.07. If the AA of Natural Durability is 0, the ND value is 1, for 100%. If the AA of Natural Durability is 1, the ND value is 1.02, for 102%. If Natural Durability AA is 2, the ND value is 1.05, for 105%. If Natural Durability AA is 3, the ND value is 1.07, for 107%. A quick way to figure it out is: Assume NatDurAAvalue is the shown value of the AA Natural durability in the inventory in the client. Their ND value is equal to the equation below. ND = TRUNC [100+2.5*NatDurAAvalue] / 100 Quote:
|
Quote:
I'm pretty sure that slow will work with negative percents being added (subtracting percents for those who forget how to add a negative), and that the equation should hold up the same way. The guy has a suitable formula, and no complaints or outliers have been found, so I think he hit the nail on the head. I assume we'll have 1 or 2 delay errors, but I'm willing to live with that. |
I'm not a number cruncher by nature, though I do understand your equations. Creating them, well... :) I'll try to help where I can, based on my last four years of experience with my monk.
First off, at least level 51+ (and I suspect the vast majority of dmg equations on monkly-business is *for* this area), monks are on an entirely different damage table from all the other classes. Most of the damage tables on mb were created so that monks could figure out their tables, so I suspect this is why your equations, designed for that level/skilllevel, don't jive. I am not entire sure you can eschew level completely from the equation. I believe you will need to end making two equations to be accurate, one for 50 and below, the other for 51-65, and include a check for level. I know the monk's damage changes based on level there, and *not* skill. Another thing to consider in your equations, and this may be affecting some of your error, is duel wielding. Primary and secondary weapons do not get the same damage output. There is a primary hand bonus to all weapons. The secondary weapons, however, either do not have a damage bonues applied or have a miniscule one. Try structuring the equations with this to model damage, and see if that doesn't yield a more accurate result. I've created a spreadsheet to keep some data. As a middle-level raiding guild, I see a fair amount of action against mobs like SoRZ, CT, Tormax, ToV, etc. I'm going to keep tabs on min/max damage given and received, and keep tabs on the AC and ATK at the time (as possible... the last part may prove more difficult to do then say). Grummet |
Re: Haste
I am not sure I am following the table you posted. I understand the first column is the weapon delay, but the second the total haste, the third the weapon delay after haste, and the fourth the item haste needed on top of shissar? Assuming that, his data is incorrect.
Regardless, from my own extensive parsing and others (namely monks at monkly-business), the guy's equation is incorrect. Using it, for example a 40 haste item on a 16 delay weapon, you would get a delay of 11.42, rounding to 11, which is incorrect. The delay, as calcuated out, should be 12.8. The haste percentage is actually run a counterintuitive way. 100% haste is what is needed to halve the delay. Based off that, then you can easily make a calculation for the delay, one which has been held up in actual parsing. The error I've noted across a variety of weapons is only .4, but usually it's right on or .1; I attribute this to not understanding how the game rounds the numbers. Hasted Dly = WeapDLY - ((WeapDLY/2)*PercentHaste) I am not entirely sure where the INT value should be applied, or even if it should at all. There is no reason why the program cannot handle tenths of a delay, is there? Regardless, I feel confident that that equation will hold up under testing within a small error (for any possible rounding, only). Try it... to get a slow, merely use a negative value for percent haste, and that will yield the necessary increase in speed. Coding wise, you need to just make sure there is a trigger for spell haste to be bypassed during the duration of a slow if a slow lands. Of course, that does necessitate an accurate delay for every mob in the database, nothing which a dedicate core of parsers can't find. Grummet |
Thanks for the input buddy! I read most of the MB damage stuff. They have a lot of useful info. As for damage tables being all different, I wouldn't say that I agree yet, but I'm continuing to research and post until we have something that works.
I do think that my kick and flying kick are pretty damn close. |
All times are GMT -4. The time now is 09:07 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.