Project1

标题: 問一下 怎麼讓更新之後 之前的存檔不能用 [打印本页]

作者: 小叮鈴    时间: 2015-12-20 11:54
标题: 問一下 怎麼讓更新之後 之前的存檔不能用
之前做的遊戲有BUG 能刷錢刷等 怎麼讓更新之後存檔作廢?
作者: duzine    时间: 2015-12-20 12:00
太簡單了,你多插幾個新腳本試試
舊存檔很快就廢了
當大家都在努力延續存檔可用性
這裡居然有人逆向而行XDDD
作者: 小叮鈴    时间: 2015-12-20 12:02
duzine 发表于 2015-12-20 12:00
太簡單了,你多插幾個新腳本試試
舊存檔很快就廢了
當大家都在努力延續存檔可用性

之前檔案有BUG 不過我每次更新都能用之前的存檔繼續玩的說{:8_457:}
作者: duzine    时间: 2015-12-20 12:10
有一招
你可以新增一個變數,然後公共事件設定為一個你一定會開啟的開關
然後設定為自動執行
除非偵測到新版這個變數的變化,否則就跳出版本過低,請重來的訊息
作者: duzine    时间: 2015-12-20 12:15

基本上就是這樣
希望有幫到你
作者: 小叮鈴    时间: 2015-12-20 12:47
本帖最后由 小叮鈴 于 2015-12-20 12:53 编辑
duzine 发表于 2015-12-20 12:15
基本上就是這樣
希望有幫到你


問題我不知道要設定甚麼變數才能達到這種效果

還有一個問題 開關條件@@

因為載入之後開關未必會相同 如果是後來才觸發 可能導致重新玩到一半跳出偵測訊息
作者: asdfa是打    时间: 2015-12-20 13:10


我看了一下,好像是 用Marshal  那个本来的函数存的。

要保持存档可以继续执行,大概必须贯彻 class 一模一样才行,

你就随便给class 增加个功能 ,应该就会发生错误了。




要 试玩版 可以继续使用,应该是试玩版把所有的要素都囊括完了, 只是一些固定的 文件扩展,例如地图文件。怪物等等
或者预留了  功能 位置在那里的。

  吧?
作者: asdfa是打    时间: 2015-12-20 13:12
就随便找个  class, 在 DOTA manager 里面   save contents 下面 列到过的  class 里面

随便写个

def vup

  return  1

end

可能 以前的存档就会错误了


没试 ,只是 推测哈
作者: 小叮鈴    时间: 2015-12-20 14:29
asdfa是打 发表于 2015-12-20 13:12
就随便找个  class, 在 DOTA manager 里面   save contents 下面 列到过的  class 里面

随便写个

不懂 妳這個太專業了
作者: 喵呜喵5    时间: 2015-12-20 14:34
  1. class << DataManager
  2.   M5_DATA_VERSION_ID = 1
  3.   alias m5_20151220_make_save_contents make_save_contents
  4.   def make_save_contents
  5.     contents = m5_20151220_make_save_contents
  6.     contents[:version] = M5_DATA_VERSION_ID
  7.     contents
  8.   end
  9.   alias m5_20151220_extract_save_contents extract_save_contents
  10.   def extract_save_contents(contents)   
  11.     raise if contents[:version] != M5_DATA_VERSION_ID
  12.     m5_20151220_extract_save_contents(contents)
  13.   end
  14. end
复制代码
插入脚本,之后要让新版的玩家无法读取 旧版存档时,修改第二行的数字即可




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