утащил с dragonsarmory.com::: ФОРМУЛЫ РАСЧЕТА:
Primary Ability Damage Bonus - I did manage to get the formula from a dev before he got moved off of to EQN, but only for the values past value 1200. Prior to that, is another line estimation:
if (stat < 1200) {
return 60 * stat / 1200;
}
return ((Math.log(stat)/Math.LN2)*0.28 - 1.2 - 1) * 100;
DPS Mod Damage Bonus - Another line estimation based on data points:
if (stat <= 100) {
bonus = stat;
} else if (stat < 200) {
bonus = (stat - 100) / 4 + 100;
} else if (stat >= 200 && stat <= 299) {
bonus = (stat - 200) * 10 / 100 + 125;
} else if (stat >= 300 && stat <= 499) {
bonus = (stat - 300) * 10 / 200 + 135;
} else if (stat >= 500 && stat <= 699) {
bonus = (stat - 500) * 10 / 200 + 145;
} else if (stat >= 700 && stat <= 899) {
bonus = (stat - 700) * 10 / 200 + 155;
} else if (stat >= 900 && stat <= 1199) {
bonus = (stat - 900) * 10 / 300 + 165;
} else if (stat >= 1200) {
bonus = 175;
}
Attack Speed Bonus - This is a fairly limited line estimation as it hard caps at 125:
if (stat <= 100) {
bonus = stat;
} else if (stat <= 200) {
bonus = (stat - 100) / 4 + 100;
} else {
bonus = 125;
}
Haste Overcap to Flurry Bonus - This one has changed since GU62 and it took a bit of looking around and toying with characters to get a decent set of data points:
if (stat > 200 && stat <= 299) {
bonus = (stat - 200) * 6.66 / 100;
} else if (stat >= 300 && stat <= 399) {
bonus = (stat - 300) * 3.33 / 100 + 6.66;
} else if (stat >= 400 && stat <= 499) {
bonus = (stat - 400) * 3.2 / 100 + 9.99;
} else if (stat >= 500 && stat <= 599) {
bonus = (stat - 500) * 3.1 / 100 + 13.19;
} else if (stat >= 600 && stat <= 699) {
bonus = (stat - 600) * 3.1 / 100 + 16.29;
} else if (stat >= 700 && stat <= 799) {
bonus = (stat - 700) * 3.0 / 100 + 19.39;
} else if (stat >= 800 && stat <= 899) {
bonus = (stat - 800) * 3.0 / 100 + 22.39;
} else if (stat >= 900 && stat <= 999) {
bonus = (stat - 900) * 3.0 / 100 + 25.39;
} else if (stat >= 1000) {
bonus = 25.39;
}
Multi-Attack Chance - This is the curve after 600, again another line estimation:
if (stat <= 600) {
bonus = Math.floor(stat / 100)*100 + (stat % 100);
} else if (stat > 600 && stat < 1000) {
bonus = 600 + ((stat - 600) * 100 / 400);
} else if (stat >= 1000 && stat < 1600) {
bonus = 700 + ((stat - 1000) * 100 / 600);
} else if (stat > 1600 && stat < 2300) {
bonus = 800 + ((stat - 1600) * 100 / 700);
} else if (stat >= 2300) {
bonus = 900;
}
Casting Speed Overcap to Doublecast Bonus - This is the worst overcap rate.. again, another line estimation:
if (stat > 100 && stat < 200) {
bonus = (stat - 100) * 0.75 / 100;
} else if (stat >= 200 && stat < 300) {
bonus = (stat - 200) * 1.5 / 100;
} else if (stat >= 300 && stat < 400) {
bonus = (stat - 300) * 2.25 / 100;
} else if (stat >= 400 && stat < 500) {
bonus = (stat - 500) * 3 / 100;
} else if (stat >= 500) {
bonus = '??';
}
Weapon Skills Overcap Minimum Damage Bonus - This includes crushing, piercing, slashing, ranged, focus, and I believe disruption. This is not a line estimation, just a value I tested repeatedly. It's not correct, but fairly close.
bonus = (stat - (5 * character.type.level)) * 0.09
похоже на правду, да.
мне б такие формулы года 3 назад...
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)