你好,我正在使用 RPG Maker MV。目前我正在尝试制作一个降低敌人防御力 25% 的防御减益效果。问题是,即使我的减益效果设置为:
技能的伤害仍然没有变化。是的,我确实在技能的公式中考虑了敌人的防御力,所以我非常困惑为什么会发生这种情况。
![]()
你好,我正在使用 RPG Maker MV。目前我正在尝试制作一个降低敌人防御力 25% 的防御减益效果。问题是,即使我的减益效果设置为:
技能的伤害仍然没有变化。是的,我确实在技能的公式中考虑了敌人的防御力,所以我非常困惑为什么会发生这种情况。
![]()
造成伤害的技能也是施加负面状态的技能吗?如果是的话,伤害值(MV)的计算是在状态应用之前进行的,所以实际上只会在下一次攻击时生效。
另外,当我使用所有默认怪物和角色进行测试,并将波动率设置为 0%、暴击关闭时,我确实观察到了大约 14 点的伤害变化。你确定完全没有变化吗?会不会只是伤害波动造成的差异?
因为 b.def * 2 是在进行伤害减免,防御力降低 25% 始终会使伤害增加量等于敌人基础防御力的一半。如果伤害变化很小,比如那 10 点,标准波动可能会掩盖实际造成的伤害增加。
是的,我很确定,但我已经设法大致修复了。我将效果改为:原本是对敌人施加降低防御的减益效果,现在改为让被归类为物理属性的招式造成更高的伤害。
现在这个减益效果终于符合我的预期了(受到物理招式伤害增加)。
答案是,RPG Maker MV 实际上并不读取括号,因此游戏会忽略括号内的所有内容。
就像我试过用很多公式来像那样分隔东西,结果却被引擎归零了,这很奇怪。
但这样的话,他们的问题会是攻击始终造成 0 点伤害,而不是有无状态时伤害相同。我完全照搬了他们展示的伤害公式,结果也生效了。
明白了,我找到了一个帖子
看来我之前对此的理解有误
RMMV 不会忽略括号。此链接将说明它们是如何处理的的
JavaScript 运算符优先级
按 F12 打开开发者控制台并输入一些代码。我认为如果你能直接检查战斗者的防御属性变成了多少,可能会更有帮助。这虽然不能立即解决或揭示 bug,但希望能提供一个线索

我猜要么是你的防御属性太低,导致效果不明显,要么是有什么东西干扰了你的防御公式。
只需将任一行代码复制粘贴到控制台中,按回车运行,然后看看它返回的数字是多少
$gameTroop._enemies[0].def
$gameActors.actor(1).def
如果引擎将其归零,可能是存在语法错误,或者你执行了诸如除以零之类的无效操作。
我可能把末尾当成了隐含的乘法,毕竟过去挺久了,我都记不太清了