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

Project1

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

[原创发布] 【教程】如何制作储物箱

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
1
发表于 2021-7-30 15:51:58 | 显示全部楼层
我要好好学习下!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
2
发表于 2021-7-31 01:08:40 | 显示全部楼层
大神我还有一个问题,

你上传脚本里的vscode, main.rb, rpg_desc.rb, scene_storage_base.rb,scene_storage_core.rb, scene_storage_data.rb, scene_storage_item.rb 要怎么打开啊?能直接复制粘贴到RPG Maker XP自带的脚本里吗?

点评

好,我去试试  发表于 2021-7-31 08:30
建议下载vscode:https://code.visualstudio.com/,记事本打开也可以。而且全部脚本在这个帖子里也能找到。  发表于 2021-7-31 01:35
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
3
发表于 2021-8-5 01:51:23 | 显示全部楼层
本帖最后由 taeckle 于 2021-8-5 01:54 编辑
guoxiaomi 发表于 2021-7-27 20:55
@taeckle 你可以照着这个来学习


还有大神请问下我要是想在上面这个脚本的基础上增加个放置在picture文件下的一个背景图片(比如背景图片就叫做"储物箱.png"),是不是直接就在def main里面添加上:

@menu_com.bitmap = RPG::Cache.picture("储物箱.png") 这句就行啦?

此外还需要多写一个释放这个背景图片的dispose吗?



点评

对啊  发表于 2021-8-5 11:11
是RPG Maker XP 默认脚本内的Scene_Battle设置战斗背景部分吗?  发表于 2021-8-5 03:54
参考Scene_Battle设置战斗背景的部分  发表于 2021-8-5 02:06
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
4
发表于 2021-8-9 00:25:53 | 显示全部楼层
本帖最后由 taeckle 于 2021-8-9 00:37 编辑

大神可以把这个脚本所有的相关代码整合到一个版本号里吗? 多谢了

比如你的最终版本(version 0.4)缺少了Scene_Storage类还有Data类,看得有点晕


还有你的0.3版本定义Window_Item的时候都是:

class Window_Item < ::Window_Selectable
    attr_accessor :bind_data

为何到了0.4版本也没继承了,直接一个  class Window_Item。。

看到这里咱又直接晕菜....


点评

已经在前面写过继承关系,后面就可以不写了  发表于 2021-8-9 01:03
把这4个版本按照顺序都拷贝进去就可以了  发表于 2021-8-9 00:54
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
5
发表于 2021-8-12 18:43:31 | 显示全部楼层
本帖最后由 taeckle 于 2021-8-12 18:44 编辑

大神还想请问下initialize里的参数data_vid到底有啥用啊?我只是想设置箱子存储物品数量上限为$game_variable[1]*3, 那个上限99完全不需要啊,这是你上面写的initialize:

    def initialize(data_vid, item_max_size = 99)
      @scene_class = $scene.class
      @item_max_size = [item_max_size, 99].min
      if !$game_variables[data_vid].is_a?(Data)
        $game_variables[data_vid] = Data.new
      end
      @data = $game_variables[data_vid]
    end

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
6
发表于 2021-8-12 19:05:37 | 显示全部楼层
soulsaga 发表于 2021-8-12 18:56
呼叫场景时第一个參数示例的$game_variable[1]*3的就是传进data_vid的变量..
也就是说变量ID为$game_vari ...

好的,多谢大佬指点!
还想请问下呼叫场景第二行中的$scene=Taeckle::Scene_Storage.new(2, size)中的数字2又指的是什么呢?

点评

是的  发表于 2021-8-12 20:43
那把下面的attr_reader :weapons 还有 attr_reader :armors也删了也一样能用的吗?  发表于 2021-8-12 19:49
是的,但是这附近的attr_reader定义删了也一样用,所以没出bug,我就没查出来  发表于 2021-8-12 19:26
好的,还有大神你的版本0.2里第6行"attr_reader :item"item后面是不是少写个"s"。。。  发表于 2021-8-12 19:18
箱子的数据存在第2个变量里  发表于 2021-8-12 19:09
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
7
发表于 2021-8-16 18:32:54 | 显示全部楼层
@guoxiaomi

大神我还有个地方不太明白,请问下你上面的脚本里是怎么计算存储箱子内已经存储的物品武器防具(item, weapon, armor)的数量之和的呢?

在version_0.2里那个num_storage指代的好像仅仅是在存储箱里的物品武器防具中一类的数量之和吧。咱想达到的效果是所有物品武器防具的数量之和+打算存入的东西数量<=$game_variables[1]*3

点评

这个留给你当作业吧,等你编程水平上来了自然就知道这里很简单了  发表于 2021-8-17 12:15
你的这个脚本也该更新个version_0.5啦  发表于 2021-8-16 21:36
大神可以帮忙写一下吗,那个@data咱也不知道该怎么增加新属性。。。  发表于 2021-8-16 21:31
顺便你也要修改can_store?方法,改成你的判断条件  发表于 2021-8-16 19:19
给@data增加新的属性,total_numbers,然后在fetch和store方法里修改。  发表于 2021-8-16 19:19
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
8
发表于 2021-8-22 12:18:16 | 显示全部楼层
本帖最后由 taeckle 于 2021-8-22 12:19 编辑

@guoxiaomi

大神请问下你脚本version 0.1 里第12行的"$scene.class"还有第14行if !$game_variables[data_vid].is_a?(Data)中的"Data"是指的是什么东西啊,
都起到了什么作用啊?

点评

可以,随便什么名字都行  发表于 2021-8-22 14:38
那在定义的时候必须在开头"class Data"这么写吗?可以写成"class storage_Data"吗?  发表于 2021-8-22 13:56
Data是定义的数据类,用来保存存储箱里的物品情况。  发表于 2021-8-22 12:35
$scene.class在正文里有说明,记录调用转入此场景之前的场景,然后在退出的时候回到对应场景。  发表于 2021-8-22 12:33
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
9
发表于 2021-8-23 03:53:50 | 显示全部楼层
本帖最后由 taeckle 于 2021-8-23 03:54 编辑

大神这个脚本里你写那个"attr_accessor :bind_data"主要起到什么作用的呢?仅仅只是用来保证实例变量@bind_data即可读取也可写入的嘛?

点评

我觉得不行,但是如果测试没问题的话你就删了呗  发表于 2021-8-23 15:23
那咱这句"attr_accessor :bind_data"不写可以嘛?我昨天自己测试也没发现啥问题。。  发表于 2021-8-23 14:23
是啊……  发表于 2021-8-23 08:29
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
10
发表于 2021-8-23 15:48:14 | 显示全部楼层
本帖最后由 taeckle 于 2021-8-23 15:50 编辑

@guoxiaomi

好的,大神我还有个问题:

在你的这个脚本中第2号公共变量($game_variables[2])是设置为存储箱子内部信息的, 我在你上面的脚本(version 0.1)里第16行(end)后面加了一句"print #{$game_variables[2]}",我主要是想看看这个$game_variable[2]里面到底长什么样,里面到底是个2维数组还是2维哈希表,可print之后测试的时候显示的是一串乱码,

请问下怎样才能把这个已经含有箱子存放信息的$game_variable[2]的具体内容p出来(或者显示出来)呢?

点评

晚上回去就发!  发表于 2021-8-23 21:44
真的吗,我不信,除非你发个截图?  发表于 2021-8-23 19:14
好的,直接p $game_variables[2]貌似不行,出来的是一串乱码,你知道除了p还有其他方法能让其显示出来吗?  发表于 2021-8-23 16:59
还有,这帖楼主就是我,你回帖不需要重复@我  发表于 2021-8-23 16:37
直接p $game_variables[2]不行吗  发表于 2021-8-23 15:52
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-5 18:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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