Project1

标题: 请问如何在变量改变时自动为另一个变量赋值 [打印本页]

作者: ws6tbz    时间: 2023-7-27 09:16
标题: 请问如何在变量改变时自动为另一个变量赋值
我的目标是当某一变量A改变时,根据一个公式,自动推出另一个变量B的值。

现在的设计思路是,设定了一个公共事件,在里面根据A的值以及公式,给B赋值。然后我想问问能不能通过某种方式,让A的数值变动时,自动启动公共事件。

如果上面这个思路不可行,请问是否还有别的方法,请各位大佬赐教。
作者: 小秋橙    时间: 2023-7-27 09:16
Game_Variables.prototype.setValue = function(variableId, value) {
    if (variableId > 0 && variableId < $dataSystem.variables.length) {
        if (typeof value === 'number') {
            value = Math.floor(value);
        }
        this._data[variableId] = value;
        if (variableId === 114) this._data[514] = value * 2 - 1; // 本行为新增内容
        this.onChange();
    } // 本行为 rpg_objects.js 第570行
}; // 可以像这样,每当114号变量变化时,就把514号变量绑定为114号变量的2倍减1。
作者: RyanYe    时间: 2023-7-27 10:33
楼主会在很多很多地方或者不可预期的地方给A变量赋值吗?如果没有的话,直接就在A变化的地方给B赋值是否更简单一点呢?

如果上述操作无法实现,那么可以设定一个并行的公共事件,每过5帧就把A的值给B,不过不建议这样做,因为会显得非常的不decent
如果楼主想要更好一点的办法,那最好描述一下到底A和B是干嘛的,发点截图之类的
作者: esin    时间: 2023-7-27 17:13
如果你的变量A不需要重置,那么就用不到B,直接调用A就可以了。
如果A达到某个条件重置,那可以用条件分歧设置A达到某个条件,B=A,然后A=0。
作者: ws6tbz    时间: 2023-8-8 13:12
RyanYe 发表于 2023-7-27 10:33
楼主会在很多很多地方或者不可预期的地方给A变量赋值吗?如果没有的话,直接就在A变化的地方给B赋值是否更 ...

抱歉最近太忙了没有及时回帖,我的目标是:
当A改变,根据公式使B发生变动。因为我把B放进了伤害公式,所以将导致伤害值发生变动。
作者: ws6tbz    时间: 2023-8-8 13:14
小秋橙 发表于 2023-7-27 11:47
Game_Variables.prototype.setValue = function(variableId, value) {
    if (variableId > 0 && variable ...

感谢大佬回答,但请问可以用这种方式同时触发其他事件吗?

考虑到当A的值变动时,除了要启动公式使B变动,还会触发其他一系列事件。因为被触发的内容较多,所以才打算用公共事件来实现。




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