Project1
标题:
【XP】变量和开关如何在进入游戏后一部分不被初始化
[打印本页]
作者:
露璐
时间:
2011-12-8 18:37
标题:
【XP】变量和开关如何在进入游戏后一部分不被初始化
本帖最后由 各种压力的猫君 于 2011-12-8 19:16 编辑
只要一部分被初始化,一部分不被初始化就可以了
作者:
小白玩家
时间:
2011-12-8 18:40
已经存档的变量和开关都不会被初始话
作者:
各种压力的猫君
时间:
2011-12-8 18:45
本帖最后由 各种压力的猫君 于 2011-12-8 19:17 编辑
把这部分不需要初始化的变量储存到文件,
然后修改脚本每次新游戏时判断是否有这个文件,
如果有就在初始化变量之后读取这个文件,如果没有则只初始化。
请编辑标题加上制作工具种类。
module DUMPVARSWISETTINGS
# 不需要初始化的变量的范围,以下代表从11号-13号变量。
VAR_MIN = 11
VAR_MAX = 13
# 不需要初始化的开关的范围,以下代表从12号-16号变量。
SWI_MIN = 12
SWI_MAX = 16
# 保存的文件名
FILENAME = "Data/save_varswi.rxdata"
end
#==============================================================================
# ■ Scene_Save
#------------------------------------------------------------------------------
# 处理存档画面的类。
#==============================================================================
class Scene_Save < Scene_File
alias old_on_decision on_decision
def on_decision(filename)
save_variables
old_on_decision(filename)
end
def save_variables
file = File.open(DUMPVARSWISETTINGS::FILENAME, "wb")
$save_variables = []
for i in DUMPVARSWISETTINGS::VAR_MIN..DUMPVARSWISETTINGS::VAR_MAX
$save_variables.push $game_variables[i]
end
Marshal.dump($save_variables, file)
$save_switches = []
for i in DUMPVARSWISETTINGS::SWI_MIN..DUMPVARSWISETTINGS::SWI_MAX
$save_switches.push $game_switches[i]
end
Marshal.dump($save_switches, file)
file.close
end
end
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
# 处理标题画面的类。
#==============================================================================
class Scene_Title
alias old_command_new_game command_new_game
def command_new_game
old_command_new_game
if FileTest.exist?(DUMPVARSWISETTINGS::FILENAME)
file = File.open(DUMPVARSWISETTINGS::FILENAME, "rb")
$save_variables = Marshal.load(file)
$save_switches = Marshal.load(file)
file.close
for i in DUMPVARSWISETTINGS::VAR_MIN..DUMPVARSWISETTINGS::VAR_MAX
$game_variables[i] = $save_variables[i - DUMPVARSWISETTINGS::VAR_MIN]
end
for i in DUMPVARSWISETTINGS::SWI_MIN..DUMPVARSWISETTINGS::SWI_MAX
$game_switches[i] = $save_switches[i - DUMPVARSWISETTINGS::SWI_MIN]
end
end
end
end
复制代码
以上脚本插入到MAIN以上,在脚本头部可以设置不被初始化的变量、开关范围以及保存的文件名。
选择新游戏时以上设定好的变量/开关会保持最后一次存档的状态。
作者:
退屈£无聊
时间:
2011-12-8 19:56
http://rpg.blue/thread-158035-1-1.html
超级变量外引中……
至于开关……JIONG,其实开关就是0和1,单纯变量也可以实现的吧(其实是没找到又懒的写的某人
作者:
zhangbanxian
时间:
2011-12-12 12:20
本帖最后由 zhangbanxian 于 2011-12-12 12:59 编辑
这个放到退出游戏的地方
UNINITIALIZE_ID = [1,2,3,4]
variables = []
for i in UNINITIALIZE_ID
variables[UNINITIALIZE_ID] = $game_variables[UNINITIALIZE_ID]]
save_data(variables,"不初始化的变量")
end
复制代码
这个放到新游戏的地方,反正就是换掉有$game_variables=Game_Variables.new的地方就对了
$game_variables= (FileTest.exist?("不初始化的变量")? load_data("不初始化的变量") :Game_Variables.new
复制代码
具体哪里我已经忘了- -b,开关同理
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1