古树旋律 发表于 2023-6-18 19:40:19

战斗伤害为0时,强制结算的战斗伤害为1

以RMMZ为例,在object.js中,找到下面这一部分:Game_Action.prototype.executeDamage = function(target, value) {
    const result = target.result();
    if (value === 0) {
      result.critical = false;
    }
    if (this.isHpEffect()) {
      this.executeHpDamage(target, value);
    }
    if (this.isMpEffect()) {
      this.executeMpDamage(target, value);
    }
};
其中的value就是结算值,只需要增加一小段代码即可:
if (value === 0) {
value = 1
}
但这样的书写方式其实是有问题的,比如一些无伤害的技能、也会出现伤害为1的情况。所以需要再优化一下,留个空子:
      if (this.isPhysical() && value === 0) {
                value = 1;
      }
                if (this.isMagical() && value === 0) {
                        value = 1;
                }
这样就将物理攻击、魔法攻击的伤害进行了修正。对于治疗、BUFF之类的”必中类技能“,就不受强制1点伤害的影响了。





页: [1]
查看完整版本: 战斗伤害为0时,强制结算的战斗伤害为1