设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1000|回复: 5
打印 上一主题 下一主题

[有事请教] 批量处理不连续的变量的问题..

[复制链接]

Lv2.观梦者

梦石
0
星屑
929
在线时间
105 小时
注册时间
2022-7-30
帖子
47
跳转到指定楼层
1
发表于 2023-5-4 13:03:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
新人,自己试着做农场系统,挑战不用插件全用脚本做,

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

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

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

以前做传奇SF,它的脚本可以用记事本打开编写,记事本有批量查找替换功能,觉得很好用,如果MV也可以就好了......

Lv2.观梦者

梦石
0
星屑
929
在线时间
105 小时
注册时间
2022-7-30
帖子
47
2
 楼主| 发表于 2023-5-4 13:12:19 | 只看该作者
也许有人说重新编排变量不就好了,但是我的整个农场框架、脚本已经定型,制作和测试BUG花了好久,重新编排就类似再做一次农场系统,感觉得不偿失...
怎么批量处理不连续的变量?怎么批量处理不连续的变量?怎么批量处理不连续的变量?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
21995
在线时间
1057 小时
注册时间
2019-3-5
帖子
1424
3
发表于 2023-5-4 13:51:34 | 只看该作者
一开始应该用数组来做的。那样写个for循环就行了。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1360
在线时间
579 小时
注册时间
2019-6-30
帖子
259
4
发表于 2023-5-4 14:43:55 | 只看该作者
const arr = [1, 4, 7, 10, 13];
const newArr = arr.map(n =>  $gameVariables.setValue(n,10));
用数组这样,比如这样每个变量赋值为10
不过不用插件脚本做感觉很多功能会很难实现
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1385
在线时间
120 小时
注册时间
2022-5-22
帖子
70
5
发表于 2023-5-5 06:42:15 | 只看该作者
如果变量是等距的, 而且改变的值比较固定,在循环里做,比如循环变量为i=0,变量按1.4.7.10改变,改变后的值为100,则可在循环的脚本里以$gameVariables.setValue(i*3+1,100));改变。但是这种改变限制条件较多。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4139
在线时间
500 小时
注册时间
2011-3-26
帖子
110
6
发表于 2023-5-5 14:23:39 | 只看该作者
这个是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号变量),就这样写:
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 13:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表