Project1

标题: 麻烦大佬帮忙改几个伤害计算公式(已解决) [打印本页]

作者: raisewing    时间: 2020-5-15 12:12
标题: 麻烦大佬帮忙改几个伤害计算公式(已解决)
本帖最后由 raisewing 于 2020-5-16 12:37 编辑

这几个公式都是以前我在VA中用的,但是搬到MV里都不能用了,麻烦大佬帮我改下,万分感激!~
在526396987大佬的帮助下已经全部修改完成了!非常好用!

b.state?(29) ? (a.atk - b.def) * 3 : (a.atk - b.def)
如果被攻击目标有29号状态时,收到3倍伤害
修改后b.isStateAffected(29)? (a.atk - b.def) * 5 : (a.atk - b.def)

((b.hp_rate <= 0.3)&&(b.state_rate(1)!=0))?b.add_state(1):(a.atk-b.def)
如果目标生命值低于30%则秒,杀否则造成基本伤害,对免疫即死的目标无效。
修改后((b.hpRate() <= 0.3) && (b.stateRate(1) !== 0))? item.damage.variance > 0? (b.hp * (1 + item.damage.variance / 100)) : b.hp : (a.atk * 4 - b.def * 2)

(1 / a.hp_rate) * (a.atk - b.def)
残余生命值百分比越少伤害越大的招式。
修改后(1 / a.hpRate()) * (a.atk - b.def)

a.hp -= a.mhp * 0.3 ; a.atk * 3 - b.def * 1
献祭生命最大值的三分之一来使出致命的一击。
修改后a.gainHp(-a.mhp * 0.3);a.atk * 3 - b.def * 1
作者: 脆饼干    时间: 2020-5-15 13:06
666这公式好啊  有没有人整理一下公式的以后方便用
作者: 526396987    时间: 2020-5-15 13:30
①. b.isStateAffected(29)? (a.atk - b.def) * 3 : (a.atk - b.def)
②. ((b.hpRate() <= 0.3) && (b.stateRate(1) != 0))? b.addState(1) : (a.atk-b.def)
③. (1 / a.hpRate()) * (a.atk - b.def)
④. 建议用yep 伤害核心或者动作序列,不想用插件可以在效果栏里设置hp恢复-30%
作者: raisewing    时间: 2020-5-15 20:38
526396987 发表于 2020-5-15 13:30
①. b.isStateAffected(29)? (a.atk - b.def) * 3 : (a.atk - b.def)
②. ((b.hpRate()

谢谢大佬,第二条在不满足条件时伤害正常,满足条件时间并没有给攻击对象添加战斗不能状态,伤害显示0
第四条的话,在效果栏添加-30%无效,正常造成伤害,这2个插件的话我不是很清楚应该用什么命令。
作者: q3226257    时间: 2020-5-15 21:01
血量百分比:a.hpRate()
目标被29号状态影响: b.isStateAffected(29)
添加1号状态,目标死亡:a.addState(1)

最后一个公式看起来应该好使啊
作者: raisewing    时间: 2020-5-15 22:14
q3226257 发表于 2020-5-15 21:01
血量百分比:a.hpRate()
目标被29号状态影响: b.isStateAffected(29)
添加1号状态,目标死亡:a.addState(1 ...

最后一条公式在VA中是好用的,但是到了MV中只对敌人造成伤害,自身不会造成伤害,也不知道什么原因。
作者: q3226257    时间: 2020-5-15 22:32
raisewing 发表于 2020-5-15 22:14
最后一条公式在VA中是好用的,但是到了MV中只对敌人造成伤害,自身不会造成伤害,也不知道什么原因。 ...

a._hp -= a.mhp * 0.3
作者: q3226257    时间: 2020-5-15 22:33
raisewing 发表于 2020-5-15 20:38
谢谢大佬,第二条在不满足条件时伤害正常,满足条件时间并没有给攻击对象添加战斗不能状态,伤害显示0
第 ...

((b.hpRate() <= 0.3) && (b.stateRate(1) != 0))? b.addState(1) : (a.atk-b.def)
楼上这个不好使?
作者: 526396987    时间: 2020-5-16 00:07
本帖最后由 526396987 于 2020-5-16 00:09 编辑
raisewing 发表于 2020-5-15 20:38
谢谢大佬,第二条在不满足条件时伤害正常,满足条件时间并没有给攻击对象添加战斗不能状态,伤害显示0
第 ...

如果你想要即死的话,直接用b.hp也该也可以的
((b.hpRate() <= 0.3) && (b.stateRate(1) != 0))? b.hp : (a.atk-b.def)
这样就是满足条件之后造成的伤害就是目标的当前生命,达到秒杀效果。

既然第4个解决了的话就恭喜你了~

作者: raisewing    时间: 2020-5-16 10:14
526396987 发表于 2020-5-16 00:07
如果你想要即死的话,直接用b.hp也该也可以的
((b.hpRate()

是这样的,我是只想做到秒杀小怪,因为BOSS免疫即死所以排除在外,直接减少HP的话,等于强制BOSS小怪通杀了!
作者: 526396987    时间: 2020-5-16 11:32
raisewing 发表于 2020-5-16 10:14
是这样的,我是只想做到秒杀小怪,因为BOSS免疫即死所以排除在外,直接减少HP的话,等于强制BOSS小怪通杀 ...

你都说了boss免疫即死啊,也就是stateRate是0,那么执行的伤害公式是后面那一块,并不是b.hp,所以按道理来说没有影响。

还有一点是分散度的问题,有时候即使到达了秒杀的条件,也有可能因为分散度而没能秒掉,比如秒掉一只还剩下1000血的怪,但是你有20%的分散度,由于MV伤害计算机制的原因,先计算公式,再计算分散度,你有可能只能打800血,所以这样的公式是有效的:

  1. ((b.hpRate() <= 0.3) && (b.stateRate(1) !== 0))? item.damage.variance > 0? (b.hp * (1 + item.damage.variance / 100)) : b.hp : (a.atk * 4 - b.def * 2)
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1