Project1

标题: 请问如何将指定变量存入/读取RXDATA文件中? [打印本页]

作者: 帕克    时间: 2012-5-17 19:29
标题: 请问如何将指定变量存入/读取RXDATA文件中?
比如说我设置了一个5号变量为10,将此变量存入一个RXDATA中(随便取什么名)
因为这个五号变量在以后的游戏中会变,而之前变化的数据要一直读取,所以我想到了将变量存入RXDATA中
我参考过自动存档脚本,结果啥都没搞出来dsu_plus_rewardpost_czw
作者: tommay    时间: 2012-5-17 20:42
本帖最后由 tommay 于 2012-5-17 20:50 编辑

save_data($game_variables[5], "xx.rxdata")
不过还是没想明白为什么一定要存存储
作者: orzfly    时间: 2012-5-17 20:49
本帖最后由 orzfly 于 2012-5-18 15:11 编辑
  1. class Game_EternalStorage
  2.   attr_reader :filename
  3.   def initialize(fn)
  4.     @filename = fn
  5.     @data = (open fn, "rb" do |f| Marshal.load(f) end rescue nil) || {}
  6.   end
  7.   def save
  8.     open @filename, "wb" do |f| Marshal.dump(@data, f) end
  9.   end
  10.   def [](key); @data[key] || 0; end
  11.   def []=(k, v); @data[k] = v; end
  12. end

  13. $ges = Game_EternalStorage.new("Save9999.rxdata")
复制代码
读取:$ges[:key]
设置:$ges[:key] = 233
保存:$ges.save


‘‘──orzfly于2012-5-17 20:52补充以下内容

例子
事件里

脚本:$ges["一周目通关次数"] += 1
脚本:$ges.save
’’���
作者: 帕克    时间: 2012-5-17 21:31
本帖最后由 帕克 于 2012-5-17 21:37 编辑
orzfly 发表于 2012-5-17 20:49
读取:$ges[:key]
设置:$ges[:key] = 233
保存:$ges.save


$ges[$game_variables[9].to_s] = 10
$ges.save

$ges["$game_variables[9].to_s"] = 10
$ges.save

$ges["$game_variables[9]"] = 10
$ges.save

$ges[$game_variables[9]] = 10
$ges.save

均不可以这样输出,我想写入变量
作者: orzfly    时间: 2012-5-17 22:06
本帖最后由 orzfly 于 2012-5-17 22:07 编辑

$ges[10] = $game_variables[9]
$ges.save

= =b

游戏一开始的时候,执行
$game_variables[9] = $ges[10]
读入变量不就可以了……
作者: 帕克    时间: 2012-5-18 12:29
orzfly 发表于 2012-5-17 22:06
$ges[10] = $game_variables[9]
$ges.save



该错误频繁出现
作者: orzfly    时间: 2012-5-18 12:31
抱歉疏忽了
那个脚本第八行的 Marshal.save 改成 Marshal.dump
作者: 帕克    时间: 2012-5-20 13:04
好吧- -我纠结了0.0,两个都可以用,不过orzfly的开创了新的方法- -所以认可他的吧= =




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