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

Project1

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

[已经解决] 关于文件写入与读取。

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3574
在线时间
2338 小时
注册时间
2015-8-25
帖子
960

开拓者

跳转到指定楼层
1
发表于 2016-10-9 14:25:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
参考着夜酱写的一个功能,照猫画虎弄着试试看的。。

想法是:读取当前持有物品的实例数组储存在$temp_items,并用Marshal.dump方法保存起来,在需要的时候读取,以达到“成就物品在多周目游戏中也可以保留”的效果。

虽然用共有变数脚本也能做,但是感觉这个思路方便一些。

--
保存:
Dir.mkdir("Folder")
@file=File.open("Folder/Global_items.rvdata2","wb")
Marshal.dump($temp_items, @file)
@file.close

这样操作看起来文件夹是可以生成出来的,但是对于这个功能我有很多不清楚的地方。
比如像是版本的检测还有可以储存的数据类型。。

--
尝试一下读取
$save_items = Marshal.load("Floder/Global_items.rvdata2","rb")

提示失败。

--
只是想了解一下这个思路是否可行。

Lv3.寻梦者

梦石
0
星屑
1358
在线时间
1295 小时
注册时间
2012-8-4
帖子
749
2
发表于 2016-10-9 15:12:23 | 只看该作者
本帖最后由 夜狠简单 于 2016-10-9 15:52 编辑

@file=File.open("Floder/Global_items.rvdata2","rb")
$save_items = Marshal.load(@file)
     

感觉这个文件夹有点特殊
试试运行这个
Dir.mkdir("Fold") if !FileTest.directory?("Fold")
file=File.open("Fold/Global_items.rvdata2","wb")
[1,2,3,4,[5,6,7]].each{|i|Marshal.dump(i, file)}
file.close

Dir.glob("Fold/*.rvdata2") {|filename|
p filename
$save_items=[]
File.open(filename,"rb"){|i|
$save_items<<Marshal.load(i)
$save_items<<Marshal.load(i)
$save_items<<Marshal.load(i)
$save_items<<Marshal.load(i)
$save_items<<Marshal.load(i)}
p $save_items}

点评

回复你的补充:开始的解答实测可以达到所需。  发表于 2016-10-9 16:00

评分

参与人数 2星屑 +270 梦石 +1 收起 理由
RaidenInfinity + 250 + 1 楼主认可的解答
七重 + 20 太棒了QAQ,这个功能真的让我感动起来了。.

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3574
在线时间
2338 小时
注册时间
2015-8-25
帖子
960

开拓者

3
 楼主| 发表于 2016-10-9 16:50:33 | 只看该作者
本帖最后由 七重 于 2016-10-9 16:51 编辑
夜狠简单 发表于 2016-10-9 15:12
@file=File.open("Floder/Global_items.rvdata2","rb")
$save_items = Marshal.load(@file)
     


补充的方法看起来更加适合“多周目物品”的构思。

其实我最初的想法里没有保存数量这个功能。

单纯是打算每获得一次成就物品,就将记录下来的道具和当前的道具合并一次,再记录起来。
何等不优雅。。

点评

嗚來晚了,我回家再慢慢看。  发表于 2016-10-10 16:48
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
105
在线时间
111 小时
注册时间
2005-10-29
帖子
212
4
发表于 2016-10-17 13:04:59 | 只看该作者
这个也太高深了些 大神写个傻瓜版出来吧
运筹帷幄之中,决胜千里之外。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

5
发表于 2016-10-17 13:38:07 | 只看该作者
  1. class Game_Party
  2.   def m5_20161017_save
  3.     save_data(@items, 'global_items.rvdata2')
  4.   end
  5.   def m5_20161017_load
  6.     @items = load_data('global_items.rvdata2')
  7.   end
  8. end
复制代码

保存时调用 $game_party.m5_20161017_save
读取时调用 $game_party.m5_20161017_load,读取时,当前的物品会被覆盖,要想不被覆盖的话修改相应的代码处理一下即可
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 00:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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