古树旋律 发表于 2023-3-8 15:16:09

修改暴击伤害和暴击率

YEP插件中有可以修改暴击相关的功能。但据玩家和部分作者反映,暴击插件会导致在发生暴击时出现卡顿,这就很影响游戏体验了。所以我们可以直接修改RM自带的代码来DIY。
暴击相关的代码在object.js中,以RMMZ为例。

Game_Action.prototype.applyCritical = function(damage) {
    return damage * 3;
};
这段是暴击伤害的代码,意思是伤害变为3倍。这个很好理解,不赘述了。

我们再看看RM默认的暴击概率计算方法:暴击成功率 = 角色拥有的暴击概率×(1-目标暴击回避率)
Game_Action.prototype.itemCri = function(target) {
    return this.item().damage.critical
                ? this.subject().cri * (1 - target.cev)
      : 0;
};


而这个角色拥有的暴击概率又是很粗暴地直接使用 【追加能力值 暴击率】来设定。
    cri: {
      get: function() {
                        return this.xparam(2);
      },
      configurable: true
    },
掌握到这两点之后,修改就变得简单了。比如可以设计成 双方幸运度的差值、战斗力的差值、自身血量比例等等,很多的玩法。


古树旋律 发表于 2023-5-17 16:43:29

举例,比如暴击伤害设置成和使用者的幸运值有关。在3倍的基础上,每拥有1点幸运值,提高1%的比率。

Game_Action.prototype.applyCritical = function(damage) {
    return damage * (3 + this.subject().luk /100);
};

设置暴击率和使用者的幸运者有关的方法同样。灵活使用this.subject()和target:
Game_Action.prototype.itemCri = function(target) {
    return this.item().damage.critical
                ? (this.subject().cri + this.subject().luk /100)* (1 - target.cev)
      : 0;
};
页: [1]
查看完整版本: 修改暴击伤害和暴击率