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

Project1

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

[已经解决] 【搬运+改进】怎么改进“物品合成简易优化版 Ver 1.1”?

[复制链接]

Lv5.捕梦者

梦石
24
星屑
7027
在线时间
247 小时
注册时间
2020-12-4
帖子
306

极短24获奖极短23获奖极短22获奖

跳转到指定楼层
1
发表于 2021-6-18 21:07:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 纯属小虫 于 2021-6-18 22:11 编辑

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

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

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


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

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

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

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


附上被引用的TXT


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










Lv4.逐梦者 (版主)

梦石
0
星屑
9497
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

2
发表于 2021-6-19 00:32:38 | 只看该作者
本帖最后由 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 改动的时候同时刷新右侧两个窗口
回复 支持 1 反对 0

使用道具 举报

Lv5.捕梦者

梦石
24
星屑
7027
在线时间
247 小时
注册时间
2020-12-4
帖子
306

极短24获奖极短23获奖极短22获奖

3
 楼主| 发表于 2021-6-19 03:14:58 | 只看该作者
本帖最后由 纯属小虫 于 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, 下载次数: 2)

E{G0MQKU5IK2B}EVOQ)3WBE.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9497
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

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

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

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-1 22:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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