Project1

标题: 儲存變數問題 [打印本页]

作者: hsun770916    时间: 2011-8-13 00:47
标题: 儲存變數問題
請問各位~首先
  1. file = File.open("Save/data.rvdata", "wb")
  2. Marshal.dump($game_system.gallery, file)
  3. file.close
复制代码
產生儲存CG變數的檔案,

然後
  1. $game_system.gallery[2] = true
  2. file = File.open("Save/data.rvdata", "wb")
  3. Marshal.dump($game_system.gallery, file)
  4. file.close
复制代码
將2號CG打開。

但是如果在執行
  1. $game_system.gallery[3] = true
  2. file = File.open("Save/data.rvdata", "wb")
  3. Marshal.dump($game_system.gallery, file)
  4. file.close
复制代码
將3號CG打開,就變成3號CG打開。但2號CG卻關閉了!

請問如何才能寫入新變數但卻不覆蓋已存在的變數?!

dsu_plus_rewardpost_czw
作者: 忧雪の伤    时间: 2011-8-13 01:04
那个……
第三段脚本前,加上:
  1. p $game_system.gallery
复制代码
然后把图贴上来,就能弥补我看不出具体情况的问题……
作者: hsun770916    时间: 2011-8-13 01:25
好的~以下是P出來的圖↓


上圖是CG2打開的狀況,下圖是CG3打開的狀況

看了內容之後稍微測試下,發現如果打開CG2之後關掉遊戲再進入之後打開CG3
則CG2變成關閉CG3打開

若是同時打開CG2與CG3的話則沒問題~兩個都正常開啟(於是加入CG4測試)

測試之後判斷因為寫入之前沒有讀取先前紀錄的檔案↓
  1. file = File.open("Save/data.rvdata", "rb")
  2. $game_system.gallery = Marshal.load(file)
  3. file.close
复制代码
所以會直接生成新的檔案(不知是不是如此...自己猜測的)

所以只要在寫入新變數之前使用↑讀取之後應該就沒問題了???對嗎?
作者: 忧雪の伤    时间: 2011-8-13 01:35
hsun770916 发表于 2011-8-13 01:25
好的~以下是P出來的圖↓

我只能说,如果两次不一样是会覆盖的……那么你必须在第二次分开使用的时候先读取……好吧,理解能力不错,不需要我说明已经想到了。
作者: hsun770916    时间: 2011-8-13 01:40
感謝幫助~不然自己一個人還真的不知道怎麼找問題解決方法!






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