新手心得 - 火彈(Fire Bolt)的傷害計算 - 暗黑

Table of Contents


新手心得 - 火彈(Fire Bolt)的傷害計算

在研究每個技能的傷害方式, 所以找了最簡單的火彈(Fire Bolt)當作例子.

在 skills.txt 中可以找到幾個需要的參數, 以火彈(Fire Bolt)為例
EMin 6 LV1 的每等級最小傷害
EMinLev1 3 LV2-LV8 的每等級最小傷害
EMinLev2 4 LV9-LV16 的每等級最小傷害
EMinLev3 8 LV17-LV22 的每等級最小傷害
EMinLev4 18 LV23-LV28 的每等級最小傷害
EMinLev5 54 LV29 的每等級最小傷害
EMax 12 LV1 的每等級最大傷害
EMaxLev1 3 LV2-LV8 的每等級最大傷害
EMaxLev2 6 LV9-LV16 的每等級最大傷害
EMaxLev3 10 LV17-LV22 的每等級最大傷害
EMaxLev4 20 LV23-LV28 的每等級最大傷害
EMaxLev5 56 LV29 的每等級最大傷害

所以取得該等級的最小傷害的方式就大概如下
function FormulaDam(lvl,dam,dam1,dam2,dam3,dam4,dam5) {
if (lvl==1) return dam;
if (lvl>=2 && lvl<=8) return (dam+(lvl-1)*dam1);
if (lvl>=9 && lvl<=16) return (dam+7*dam1+(lvl-8)*dam2);
if (lvl>=17 && lvl<=22) return (dam+7*dam1+8*dam2+(lvl-16)*dam3);
if (lvl>=23 && lvl<=28) return (dam+7*dam1+8*dam2+6*dam3+(lvl-22)*dam4);
if (lvl>=29) return (dam+7*dam1+8*dam2+6*dam3+6*dam4+(lvl-28)*dam5);
}
EMinDam =
FormulaDam(Fire_Bolt_Lvl,EMin,EMinLev1,EMinLev2,EMinLev3,EMinLev4,EMinLev5);

然後計算 Synergy Modifier, 有兩個技能會影響 Fire Bolt 的傷害, 分別是
Fire Ball: 每等級 16%
Meteor: 每等級 16%
SynEMultiplicator = Fire_Ball_Lvl*16 + Meteor_Lvl*16;
EMinDam = MinDam*(1+SynEMultiplicator/100);

接著計算 Damage Modifier, Fire Bolt 的 Damage Modifier 是 50%
EMinDam = EMinDam * 0.5;

最後計算 Fire Mastery, Fire Mastery 基礎值 30%, 之後每等級 +7%.
function FormulaLn(lvl,a,b) {
if (lvl>0) return a+((lvl-1)*b);
else return 0;
}
MasteryMultiplicator = FormulaLn(Fire_Mastery_Lvl,30,7);
EMinDam = EMinDam*(1+MasteryMultiplicator/100);


--

All Comments

Joe avatarJoe2008-07-07
頭推?
Joe avatarJoe2008-07-12
我是bliz負責人的話一定雇請原po弄台灣官方網~
Christine avatarChristine2008-07-13
媽我上電視了._./~
Frederica avatarFrederica2008-07-14
很好!!很深奧!!不錯!!(不懂裝懂)
Jacky avatarJacky2008-07-16
哇底加哇底加!!
Necoo avatarNecoo2008-07-17
快推 不然別人會以為我們看不懂
George avatarGeorge2008-07-21
我看不懂 有結論嗎?? XDD
Kelly avatarKelly2008-07-24
沒結論... 很多技能的計算方式和曲線都不同..
Eden avatarEden2008-07-27
嗯!大概看懂了一部份。
Iris avatarIris2008-07-30
等等加入物品的計算...