精華區beta DIABLO 關於我們 聯絡資訊
新手心得 - 火彈(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