Project1
标题:
如何做到一鍵存档与载入?
[打印本页]
作者:
嵐。
时间:
2010-9-30 16:14
标题:
如何做到一鍵存档与载入?
本帖最后由 嵐。 于 2010-10-1 22:52 编辑
因为使用了事件做标题。希望能够实现这样的效果:事件设置,按下某键后激活一段脚本,直接载入游戏而不弹出存档口。另外在系统菜单栏内的存档选项被按下的时候不弹出存档窗口直接存档。有什么办法能够实现这种不弹出存档窗口,单一存档和读档的效果吗?
作者:
wsmyzc
时间:
2010-9-30 20:34
搜索。。我记得有一键存档的
作者:
38571240
时间:
2010-9-30 22:45
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
# ————————————————————————————————————
#———版权:carol3————
#———使用方法与效果————
#——默认状态下,将本脚本插入到main之前,在游戏进行中普通地图界面:
#——按下F5将自动存档到4号进度,打开开关1号将存档到4号进度
#——可修改内容:存档编号,开关编号,声效,以及可以自动存档的时候调用公共事件
#———自定义内容
#———1、你希望使用的自动存档开关编号,填写在下面,否则使用1号开关。
#———2、你希望的自动存档编号,填写在下面,否则使用F5存档在4号
#———3、按下F5后的音效,这个音效一定要存在,否则必然出错
#———4、公共事件(可以没有)
#—— 包括:打开开关的时候调用的公共事件,按下F5之后可以存档与禁止存档的公共事件
#——(你可以在公共事件弹出一个对话框提示你已经自动存档了,播放一段音乐音效,补血或者什么别的),默认=0是不调用任何公共事件
#——(注意这个编号如果不正确(比如该编号没有设置内容),程序将自动忽略这项功能)
#########################################################################
$carol3_打开自动存档用的开关编号 = 3
$carol3_自动存档位置 = 4
$carol3_按下F5之后的自动存档的音效 = "Audio/SE/Decision1"
$carol3_按下F5之后禁止存档时候的音效 = "Audio/Se/Buzzer1"
$carol3_打开自动存档开关之后调用的公共事件 = 0 #——默认未定义
$carol3_按下F5之后可以存档调用的公共事件 = 0 #——默认未定义
$carol3_按下F5之后禁止存档调用的公共事件 = 0 #——默认未定义
#########################################################################
#从此处往下的部分如果进行了修改出现问题后果自负。
#########################################################################
class Scene_Map
alias carol3_update update
def update
carol3_update
#——按下F5的时候自动存档,可以修改为F5,F6,F7,F8,也可以修改成默认按键但是不推荐。
#——注意在不可存档的时候是无效的
if Input.trigger?(Input::F5)
unless $game_map.interpreter.running?
if $game_system.save_disabled
Audio.se_play($carol3_按下F5之后禁止存档时候的音效)
$game_temp.common_event_id = $carol3_按下F5之后禁止存档调用的公共事件
else
Audio.se_play($carol3_按下F5之后的自动存档的音效)
$game_temp.common_event_id = $carol3_按下F5之后可以存档调用的公共事件
carol3_save
end
end
end
#——当BOSS战之前打开一下定义的开关,即可自动存档
if $game_switches[$carol3_打开自动存档用的开关编号] == true
$game_switches[$carol3_打开自动存档用的开关编号] = false
$game_temp.common_event_id = $carol3_打开自动存档开关之后调用的公共事件
carol3_save
end
end
def carol3_save
#——这里定义了储存的文件,如果不希望用Save4可以自己修改编号
#——默认情况可以修改为Save1到Save4,如果你增添了存档编号也可以自定义
carol3_file = File.open("Save#{$carol3_自动存档位置}.rvdata", "wb")
carol3_save_data(carol3_file)
carol3_file.close
end
def carol3_save_data(file)
#——以下定义内容和Scene_Save的write_save_data(file)完全一样
#——如果你修改过该存档方法,不要忘记用你修改的覆盖这部分内容。
characters = []
for actor in $game_party.members
characters.push([actor.character_name, actor.character_index])
end
$game_system.save_count += 1
$game_system.version_id = $data_system.version_id
@last_bgm = RPG::BGM::last
@last_bgs = RPG::BGS::last
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
Marshal.dump(@last_bgm, file)
Marshal.dump(@last_bgs, file)
Marshal.dump($game_system, file)
Marshal.dump($game_message, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
复制代码
作者:
嵐。
时间:
2010-10-1 08:08
回复
38571240
的帖子
虽然和我的意思有出入。不过还是谢谢你了。
作者:
冰舞蝶恋
时间:
2010-10-1 08:11
#事件中使用脚本
#save(编号)
#load(编号)
#就可以存读进度了。
class Scene_File
#--------------------------------------------------------------------------
# ● 执行保存
#--------------------------------------------------------------------------
def do_save(id = @index, from_interpreter = false)
if from_interpreter
file = File.open(make_filename(id), "wb")
else
file = File.open(@savefile_windows[id].filename, "wb")
end
write_save_data(file)
file.close
return_scene
end
#--------------------------------------------------------------------------
# ● 执行读取
#--------------------------------------------------------------------------
def do_load(id = @index, from_interpreter = false)
if from_interpreter
file = File.open(make_filename(id), "rb")
else
file = File.open(@savefile_windows[id].filename, "rb")
end
read_save_data(file)
file.close
$scene = Scene_Map.new
RPG::BGM.fade(1500)
Graphics.fadeout(60)
Graphics.wait(40)
@last_bgm.play
@last_bgs.play
end
end
class Game_Interpreter
#------------------------------------------------------------------
# ● 用事件脚本储存进度。方法:save(编号)
#------------------------------------------------------------------
def save(index = 0)
ts = Scene_File.new(true,false,true).do_save(index, true)
end
#------------------------------------------------------------------
# ● 用事件脚本读取进度。方法:load(编号)
#------------------------------------------------------------------
def load(index = 0)
ts = Scene_File.new(false,false,true).do_load(index, true)
end
end
复制代码
这个么?编号0=1号档,1=2号……以此类推。
作者:
嵐。
时间:
2010-10-1 23:26
回复
冰舞蝶恋
的帖子
测试的时候发生了错误..事件-脚本:save(1)
作者:
沉影不器
时间:
2010-10-1 23:55
提示:
作者被禁止或删除 内容自动屏蔽
作者:
嵐。
时间:
2010-10-2 11:51
回复
沉影不器
的帖子
谢谢沉影前辈。谢谢冰舞~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1