Project1

标题: 【搬运+改进】怎么改进“物品合成简易优化版 Ver 1.1”? [打印本页]

作者: 纯属小虫    时间: 2021-6-18 21:07
标题: 【搬运+改进】怎么改进“物品合成简易优化版 Ver 1.1”?
本帖最后由 纯属小虫 于 2021-6-18 22:11 编辑

一直用公共事件物品合成,觉得不够华丽,而且很难对比目标素材需求量和已有素材数量
于是决定把合成系统大换血,就找到了版主发的早期的一个物品合成脚本——

https://rpg.blue/thread-374803-1-1.html

这是版主所做的合成系统脚本的窗口效果:


由于之前用公共事件做物品合成的时候,还加入了大量对合成目标的说明,这里不希望因为更新合成系统而把这些说明阉割了!!!
所以自己稍微修改了一下脚本,将布局修改成这样:

到这一步为止,出现了两个问题,脚本小白研究了三天的RUBY和正则表达式还是没有弄清版主的脚本中的奥秘——
1、该合成系统是通过在根目录建记事本,然后通过脚本读取的合成列表信息的。
      记事本中原存在合成目标物的【种类】和【编号】,合成素材的【种类】、【编号】和【需求量】这两个信息,那么,我要如何其中添入【合成说明】的信息?

2、右下角窗口中的需求量是固定的,如何添加变量算法使得【素材需求量】会随着【当前合成数量】变化?
附上原版脚本:

附上目前对问题1.的尝试结果的改动脚本:


附上被引用的TXT


脚本已经被我改得乱七八糟了,备注都用麻了......
但依然没有成功,所以在此向大侠们江湖救急~~~











作者: RyanBern    时间: 2021-6-19 00:32
本帖最后由 RyanBern 于 2021-6-19 00:33 编辑

现在居然还有人在用这么简陋的脚本么……

提示几点吧:
1. 配方(Recipe)中因为说明文字只有一组,所以不必新建一个 class 来表示说明文字,用一个字符串就好。Recipe.txt 中可以直接写
<txt>说明文字</txt>,读取后直接令 recipe.txt = $1 即可
2. 因为 txt 已经在 @recipe对象里面了,每次左侧光标移动会重新设置 @recipe的值,因此你的 355-361 行就不要了,404 行直接对 @recipe.txt 进行绘制
3. 如果需要根据合成数量变化,得想办法上右下面板获取到右上面板的 @number,并且在 @number 改动的时候同时刷新右侧两个窗口
作者: 纯属小虫    时间: 2021-6-19 03:14
本帖最后由 纯属小虫 于 2021-6-19 14:41 编辑
RyanBern 发表于 2021-6-19 00:32
现在居然还有人在用这么简陋的脚本么……

提示几点吧:


感谢版主这么晚了还回复得这么快,能得到作者的亲自回复真是受宠若惊~~
合成说明已经成功加入了,虽然方法比较笨,但实现了编辑起来比较便捷的分行说明:(图片在附件)


以下是修正后的脚本
增添了说明的合成脚本


【素材需求量变动】还没有尝试,接下来打算拼入主工程中进行合成系统换血~~~
再次感谢版主大大~~~


==========================================================================================
这里尝试解决第二个问题:让需求量随着合成数量变化,但是失败了:
添加的脚本为 336行-341行 400行-405行
但是运行时会报错:
339行发生了 TypeError, nil can't be coerced into Fixnum
有点诡异,我明明判断了nil,可是为什么还会出错
还有 ingredient.number.to_i 这一句是不是有问题,ingredient的数据结构有点弄不清楚
附上脚本 20210619

E{G0MQKU5IK2B}EVOQ)3WBE.png (122.35 KB, 下载次数: 7)

E{G0MQKU5IK2B}EVOQ)3WBE.png

作者: RyanBern    时间: 2021-6-21 23:36
纯属小虫 发表于 2021-6-19 03:14
感谢版主这么晚了还回复得这么快,能得到作者的亲自回复真是受宠若惊~~
合成说明已经成功加入了,虽然方 ...

值为 nil 的不是被判断的变量,而是那个用于传递的全局变量。因为只有右上窗口先生成的时候才会设置这个值,如果生成顺序不对的话就会造成没有初始化的问题。

其实有关传递变量,更常见的做法是直接将两个窗口互相关联,这样更新右上窗口的时候顺带刷新右下窗口。需要改动右上窗口的 update 方法。




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