Project1

标题: 批量处理不连续的变量的问题.. [打印本页]

作者: gxlmx2    时间: 2023-5-4 13:03
标题: 批量处理不连续的变量的问题..
新人,自己试着做农场系统,挑战不用插件全用脚本做,

减量的脚本已全部测试通过,现需要扩充完整脚本,有300多个变量需要反复赋值、再根据值来做加减乘除操作,发现工作量不是一般的大!还容易看花眼写错,
MV的事件编辑器只能批量处理连续的变量,为减少工作量,请教大家怎么批量处理不连续的变量。。

农场系统用到的全部变量已经规划好,比如耕地用的变量排列循序是株1状态、株1时间、株1计算用、株2状态、株2的时间、株2计算用。。。这样的形式,
有的功能是一次处理全部植物的状态,有的功能是一次处理全部植物的时间,计算某一株植物的种植天数有时也要一次处理好多个。。。

怎么批量处理不连续的变量?比如把变量1、4、7、10、13批量赋值?一个个变量分别写最终是可以做好的,只是手会抽筋、会熬几次夜。。。
有没有什么方法简便些来完成?

以前做传奇SF,它的脚本可以用记事本打开编写,记事本有批量查找替换功能,觉得很好用,如果MV也可以就好了......
作者: gxlmx2    时间: 2023-5-4 13:12
也许有人说重新编排变量不就好了,但是我的整个农场框架、脚本已经定型,制作和测试BUG花了好久,重新编排就类似再做一次农场系统,感觉得不偿失...
怎么批量处理不连续的变量?怎么批量处理不连续的变量?怎么批量处理不连续的变量?
作者: Zeldashu    时间: 2023-5-4 13:51
一开始应该用数组来做的。那样写个for循环就行了。
作者: 入坑小萌新    时间: 2023-5-4 14:43
const arr = [1, 4, 7, 10, 13];
const newArr = arr.map(n =>  $gameVariables.setValue(n,10));
用数组这样,比如这样每个变量赋值为10
不过不用插件脚本做感觉很多功能会很难实现
作者: testevil    时间: 2023-5-5 06:42
如果变量是等距的, 而且改变的值比较固定,在循环里做,比如循环变量为i=0,变量按1.4.7.10改变,改变后的值为100,则可在循环的脚本里以$gameVariables.setValue(i*3+1,100));改变。但是这种改变限制条件较多。
作者: rfvtgbzxc    时间: 2023-5-5 14:23
这个是MZ的变量处理,事件指令里面不能指定变量的值作为变量id的问题,看下这个方案怎么样:
首先,可以用脚本来让变量作为变量id:$gameVariables.setValue($gameVariables(123), 345)
这个脚本的话,假如123号变量存的值是3,那就是把3号变量赋值345,这样,只需要修改变量123的值,可以手动控制要把值写到哪个变量里。
但是楼主希望少用代码,所以在脚本这里的改动肯定是越少越好,我们就可以这样约定:
1.所有脚本都是$gameVariables.setValue($gameVariables(123), $gameVariables(345)),这个脚本用来完成最后的赋值,至于赋值前要做哪些事情,参考下面的内容:
2.123号变量称为“变量地址”变量,楼主可以自由的在事件中修改这个变量,以此确定要把变量写入到哪里。
3.345号变量称为"值"变量,这个变量也可以通过事件自由修改,以此确定写入的变量值是多少。

这样,不需要修改给出的这行代码,就可以以比较小的代价完成楼主的目的。最后到底要写入什么值,写入到哪个变量,完全由楼主在事件的变量处理指令里完成。
举例,如果想实现1,3,5,7变量各自加上当前的“时间变量”(3号变量),就这样写:





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