Project1

标题: 怎麼做存檔繼承? [打印本页]

作者: 黑雪哲也    时间: 2017-5-8 21:21
标题: 怎麼做存檔繼承?
如標題,怎麼做成存檔繼承?
現在還有繼承腳本嗎?

作者: QQ蚊子湯    时间: 2017-5-8 21:39
搜尋滿多的
這個是我之前翻譯過的
https://rpg.blue/forum.php?mod=viewthread&tid=398896
作者: qq784339982    时间: 2017-5-19 14:47
存档继承你只需要把全部变量和全部开关全部还原就行了。

然后跳到开始游戏的地方,在那个方法之前你可以把自己需要的一些变量或开关保存起来,
还原之后再赋值过去,比如 有个门我要做到开启一次之后每周目他都是开启的。
作者: qq784339982    时间: 2017-5-25 14:53
qq784339982 发表于 2017-5-19 14:47
存档继承你只需要把全部变量和全部开关全部还原就行了。

然后跳到开始游戏的地方,在那个方法之前你可以把 ...

Game_Switches  这个是开关类
Game_Variables   这个是变量类
你可以在里面加一个清空的clear方法,里面清空,清空就相当于初始化,加方法可以在里面保留一些需要的变量或开关。如果不需要的话就直接new得了。
到时候直接调用一下就行了
调用清空方法:
$game_switches.clear()
$game_variables.clear()

重新new:
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new


例子:
#encoding:utf-8
#==============================================================================
# ■ Game_Variables
#------------------------------------------------------------------------------
#  处理变量的类。本质上是套了个壳的 Array 。本类的实例请参考 $game_variables 。
#==============================================================================

class Game_Variables
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize
    @data = []
  end
  #--------------------------------------------------------------------------
  # ● 获取变量
  #--------------------------------------------------------------------------
  def [](variable_id)
    @data[variable_id] || 0
  end
  #--------------------------------------------------------------------------
  # ● 设置变量
  #--------------------------------------------------------------------------
  def []=(variable_id, value)
    @data[variable_id] = value
    on_change
  end
  #--------------------------------------------------------------------------
  # ● 设置变量时的处理
  #--------------------------------------------------------------------------
  def on_change
    $game_map.need_refresh = true
  end
  
  def clear
#~     清空前保留999号变量
    data999 =  @data[999]
   
    @data = [];
#~     清空后把999号变量还原回去
    @data[999] = data999
  end  
end








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