Project1

标题: 定义了新的全局变量后在游戏中改变了怎么储存? [打印本页]

作者: il4j    时间: 2016-7-18 11:52
标题: 定义了新的全局变量后在游戏中改变了怎么储存?
比如我写一个新的模块
module NengLi
    $WuXing = { # 悟性
    1=>100,
    2=>90,
    3=>80,
    4=>100
    }
end

如果1号角色的悟性在游戏中提高了5,当时游戏中$WuXing[1]的值是变成105了
但是保存后重新打开游戏,$WuXing[1]的值又初始化变成90了
请问如何保存这个值呢?
作者: 喵呜喵5    时间: 2016-7-18 12:22
save_data
load_data
作者: il4j    时间: 2016-7-18 12:39
喵呜喵5 发表于 2016-7-18 12:22
save_data
load_data

想请问一下好像在怪物图鉴的范例里,储存敌人辨识度的全局变量好像并没有使用这两个功能,为何也能储存?
作者: il4j    时间: 2016-7-19 22:08
喵呜喵5 发表于 2016-7-18 12:22
save_data
load_data

{:2_249:}我已经找到方法了,新的全局变量是需要SAVE和LOAD的,如果储存在已有的类里比如$game_party当作实例变量通过方法调用和更改就可以保存了
作者: taeckle    时间: 2019-11-29 09:01
il4j 发表于 2016-7-19 22:08
{:2_249:}我已经找到方法了,新的全局变量是需要SAVE和LOAD的,如果储存在已有的类里比如$game_party当作 ...

请问下怎么SAVE和LOAD全局变量呢?可否给个具体例子
作者: xsrong2    时间: 2019-11-29 15:58
taeckle 发表于 2019-11-29 09:01
请问下怎么SAVE和LOAD全局变量呢?可否给个具体例子

以下以$game_defeated_enemies全局变量为例,新开始游戏将自动增加一个全局变量,保存时将该全局变量保存到存档中,读取时也从存档中读取。

  1. module DataManager
  2.   # 开始新游戏时增加$game_defeated_enemies变量
  3.   DataManager.singleton_class.send(:alias_method, :xsrong_create_game_objects, :create_game_objects)
  4.   def self.create_game_objects
  5.     xsrong_create_game_objects
  6.     $game_defeated_enemies = Array.new($data_enemies.length){0}
  7.   end
  8.   
  9.   # 存档时保存$game_defeated_enemies变量
  10.   DataManager.singleton_class.send(:alias_method, :xsrong_make_save_contents, :make_save_contents)
  11.   def self.make_save_contents
  12.     contents = xsrong_make_save_contents
  13.     contents[:defeated_enemies] = $game_defeated_enemies
  14.     contents
  15.   end
  16.   
  17.   # 读档时读取$game_defeated_enemies变量
  18.   DataManager.singleton_class.send(:alias_method, :xsrong_extract_save_contents, :extract_save_contents)
  19.   def self.extract_save_contents(contents)
  20.     xsrong_extract_save_contents(contents)
  21.     $game_defeated_enemies = contents[:defeated_enemies]
  22.   end
  23. end
复制代码

作者: fox370    时间: 2019-12-20 22:55
我倒是很想看看这个成品范例




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