| 赞 | 164 |
| VIP | |
| 好人卡 | |
| 积分 | 299 |
| 经验 | |
| 最后登录 | 2026-10-2 |
| 在线时间 | 5734 小时 |
- 梦石
- 0
- 星屑
- 29901
- 在线时间
- 5734 小时
- 注册时间
- 2016-3-8
- 回帖
- 1653
|
发表于 2020-10-10 16:20:11
|
显示全部楼层
本帖最后由 alexncf125 于 2020-10-10 18:29 编辑
如果存档A有500G
那么, 开始新游戏时,
新游戏会有0G还是500G??
如果是0G,
那么, 从这0G的新游戏建立存档B时,
存档A会有0G还是500G??
存档B又会有0G还是500G??
还是说, 你的游戏只能开始一次新游戏, 之后就不能开始新游戏, 只能存读档了??
以下是在有500G的存档A时, 开始新游戏会有500G的脚本:
[pre lang="ruby"]=begin
================================================================================
全局变量 By 喵呜喵5
================================================================================
【说明】
在事件中使用脚本命令 save_var 可以把设置好的变量单独储存到一个新文件中
在事件中使用脚本命令 load_var 可以在其他地方
(例如其他存档、或者开始新游戏时……)载入保存了的变量的值
使用全局变量可以用来制作类似记录通关次数或者进入二周目这样的功能
=end
$m5script ||= {};$m5script[:M5GV20140811] = 20151106
$m5script[:ScriptData] ||= {}
module M5GV20140811
#==============================================================================
# 设定部分
#==============================================================================
VAR = [1]
# 在这里设置需要储存的全局变量ID
FILENAME = "Gold.rvdata2"
# 在这里设置储存全局变量的文件名
AUTO = true
# 设置为 true 的话,变量的值发生改变时自动保存全局变量
LOAD = true
# 设置为 true 的话,开始新游戏或者读取存档时,自动读取保存的全局变量
#==============================================================================
# 设定结束
#==============================================================================
class << self
def load
$m5script[:ScriptData][:M5GV20140811] =
(load_data(FILENAME) rescue [nil, {}])
end
def save; save_data($m5script[:ScriptData][:M5GV20140811], FILENAME); end
def load_var
var = $m5script[:ScriptData][:M5GV20140811][0]
return unless var
var.each_with_index{|v,i| $game_variables.m5_20140811_set(VAR, v)}
end
def current_var
var = []
VAR.each {|index| var << $game_variables[index] }
return var
end
def save_var
$m5script[:ScriptData][:M5GV20140811][0] = current_var
save
end
def get_ext; $m5script[:ScriptData][:M5GV20140811][1]; end
def save_ext; save; end
def set_ext(key, value)
get_ext[key] = value
save
end
end # class << self
end
class Game_Variables
alias m5_20140811_set []=
def []=(variable_id, value)
m5_20140811_set(variable_id, value)
return unless M5GV20140811::AUTO
M5GV20140811.save_var if M5GV20140811::VAR.include?(variable_id)
end
end
class << DataManager
alias m5_20150320_load_game load_game
def load_game(index)
result = m5_20150320_load_game(index)
return result unless result && M5GV20140811::LOAD
M5GV20140811.load_var
result
end
alias m5_20150320_create_game_objects create_game_objects
def create_game_objects
m5_20150320_create_game_objects
return unless M5GV20140811::LOAD
M5GV20140811.load_var
end
end
class Game_Interpreter
def save_var; M5GV20140811.save_var; end
def load_var; M5GV20140811.load_var; end
end
#==================================================
class Game_Party
attr_accessor :gold
end
class << DataManager
alias gold_setup_new_game setup_new_game
def setup_new_game
gold_setup_new_game
$game_party.gold = $game_variables[M5GV20140811::VAR[0]]
end
alias gold_save_game save_game
def save_game(index)
$game_variables[M5GV20140811::VAR[0]] = $game_party.gold
gold_save_game(index)
end
end
class Scene_Load < Scene_File
alias gold_on_load_success on_load_success
def on_load_success
gold_on_load_success
$game_party.gold = $game_variables[M5GV20140811::VAR[0]]
end
end
#==================================================
M5GV20140811.load[/pre]
如果是要"开始新游戏时, 新游戏会有0G"+"从这0G的新游戏建立存档B时, 存档A会有0G",
则刪除以下的部分:
- alias gold_setup_new_game setup_new_game
- def setup_new_game
- gold_setup_new_game
- $game_party.gold = $game_variables[M5GV20140811::VAR[0]]
- end
复制代码
至于"从这0G的新游戏建立存档B时, 存档A会有500G, 存档B也会有500G"的情況, 应该(没测试)是把
= $game_party.gold
改成
= [$game_party.gold, $game_variables[M5GV20140811::VAR[0]]].max |
|