作者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
1F:推 Darkword1987:头推? 07/04 17:20
2F:推 BloodyMay :我是bliz负责人的话一定雇请原po弄台湾官方网~ 07/04 17:23
3F:推 c60203 :妈我上电视了._./~ 07/04 17:23
4F:推 s88995 :很好!!很深奥!!不错!!(不懂装懂) 07/04 17:30
5F:推 Timelag :哇底加哇底加!! 07/04 17:30
6F:推 q0r0p :快推 不然别人会以为我们看不懂 07/04 17:33
7F:→ elvis533 :我看不懂 有结论吗?? XDD 07/04 17:34
8F:→ statue :没结论... 很多技能的计算方式和曲线都不同.. 07/04 17:48
9F:推 tcangel :嗯!大概看懂了一部份。 07/04 18:22
10F:→ statue :等等加入物品的计算... 07/04 18:46