查看: 818|回复: 2

[有事请教] yep的buffstates插件react部分的多个value变化计算顺序是怎么样...

[复制链接]
梦石
0
星屑
686
在线时间
99 小时
注册时间
2023-8-23
回帖
18
发表于 2025-5-4 14:27:13 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
比如这段
<Custom React Effect>
if(this.isHpEffect() && this.item().damage.elementId !== 8 && value > 0){
value-=Math.min(target.level*5,value);}
</Custom React Effect>
如果还有多个被动效果例如value*=1.2;value=0;
那么是按照什么顺序计算的呢?状态编号的顺序还是计算公式加减乘除的顺序?
梦石
0
星屑
29896
在线时间
5733 小时
注册时间
2016-3-8
回帖
1653
发表于 2025-5-4 16:12:06 | 显示全部楼层
本帖最后由 alexncf125 于 2025-5-4 19:54 编辑

[fold=是"先按状态优先度, 再按状态编号"的顺序~][pre lang="javascript"]Game_Action.prototype.onReactStateEffects = function(target, value) {
    var states = target.states();
    var length = states.length;
    for (var i = 0; i < length; ++i) {
      var state = states;
      if (!state) continue;
      value = this.reactStateEffects(target, state.id, value);
    }
    return value;
};


Game_BattlerBase.prototype.addNewState = function (stateId) {
    if (stateId === this.deathStateId()) {
        this.die();
    }
    var restricted = this.isRestricted();
    this._states.push(stateId);
    this.sortStates();
    if (!restricted && this.isRestricted()) {
        this.onRestrict();
    }
};

Game_BattlerBase.prototype.sortStates = function () {
    this._states.sort(function (a, b) {
        var p1 = $dataStates[a].priority;
        var p2 = $dataStates.priority;
        if (p1 !== p2) {
            return p2 - p1;
        }
        return a - b;
    });
};[/pre][/fold]
回复

使用道具 举报

梦石
0
星屑
686
在线时间
99 小时
注册时间
2023-8-23
回帖
18
 楼主| 发表于 2025-5-4 18:53:53 | 显示全部楼层
alexncf125 发表于 2025-5-4 16:12
[fold=是"先按优先度, 再按状态编号"的顺序~]Game_Action.prototype.onReactStateEffects = function(targe ...

感谢解答!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部