作者statue (statue)
看板DIABLO
標題[閒聊] 新手心得 - 火彈(Fire Bolt)的傷害計算
時間Fri Jul 4 17:17:49 2008
新手心得 - 火彈(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
推 Darkword1987:頭推? 07/04 17:20
推 BloodyMay :我是bliz負責人的話一定雇請原po弄台灣官方網~ 07/04 17:23
推 c60203 :媽我上電視了._./~ 07/04 17:23
推 s88995 :很好!!很深奧!!不錯!!(不懂裝懂) 07/04 17:30
推 Timelag :哇底加哇底加!! 07/04 17:30
推 q0r0p :快推 不然別人會以為我們看不懂 07/04 17:33
→ elvis533 :我看不懂 有結論嗎?? XDD 07/04 17:34
→ statue :沒結論... 很多技能的計算方式和曲線都不同.. 07/04 17:48
推 tcangel :嗯!大概看懂了一部份。 07/04 18:22
→ statue :等等加入物品的計算... 07/04 18:46