[閒聊] 新手心得 - 火彈(Fire Bolt)的傷害計算
新手心得 - 火彈(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);
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.20.132.153
推
07/04 17:20, , 1F
07/04 17:20, 1F
推
07/04 17:23, , 2F
07/04 17:23, 2F
推
07/04 17:23, , 3F
07/04 17:23, 3F
推
07/04 17:30, , 4F
07/04 17:30, 4F
推
07/04 17:30, , 5F
07/04 17:30, 5F
推
07/04 17:33, , 6F
07/04 17:33, 6F
→
07/04 17:34, , 7F
07/04 17:34, 7F
→
07/04 17:48, , 8F
07/04 17:48, 8F
推
07/04 18:22, , 9F
07/04 18:22, 9F
→
07/04 18:46, , 10F
07/04 18:46, 10F