设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1726|回复: 3
打印 上一主题 下一主题

[已经解决] 求改个存档脚本

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
324
在线时间
890 小时
注册时间
2009-10-12
帖子
1829
跳转到指定楼层
1
发表于 2013-12-29 17:51:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 日月星辰 于 2013-12-29 17:56 编辑

主要涉及scene load和scene save 我想把自带脚本更改一下,改成只有一个存档位置。

换句话说:点下菜单的save直接存储,点下标题菜单的load直接读取。。这样很简洁不是么~

求大家帮忙更改~我自己尝试后。。表示弱渣无果==!

谢~!!!


补充:不是把scene那里4改成1就好了。。。。。而是。。不要这个界面了~!【这才是我的最终目的唔==~~~】

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
2
发表于 2013-12-29 18:02:00 | 只看该作者
本帖最后由 恋′挂机 于 2013-12-29 18:21 编辑

默认Scene_Title 47行改为
  1. @continue_enabled = false
  2. if FileTest.exist?("Save.rxdata")
  3.    @continue_enabled = true
  4. end
复制代码
145行左右改为
  1. def command_continue
  2.    # 继续无效的情况下
  3.   unless @continue_enabled
  4.      # 演奏无效 SE
  5.      $game_system.se_play($data_system.buzzer_se)
  6.      return
  7.   end
  8.   # 演奏读档 SE
  9.   $game_system.se_play($data_system.load_se)
  10.   $game_temp = Game_Temp.new  
  11.   # 写入存档数据
  12. file = File.open(filename, "rb")
  13.   read_save_data(file)
  14.   file.close
  15.   # 还原 BGM、BGS
  16.   $game_system.bgm_play($game_system.playing_bgm)
  17.   $game_system.bgs_play($game_system.playing_bgs)
  18.   # 刷新地图 (执行并行事件)
  19.   $game_map.update
  20.   # 切换到地图画面
  21. $scene = Scene_Map.new
  22. end
复制代码
新加一个方法
  1. #--------------------------------------------------------------------------
  2.   # ● 读取存档数据
  3.   #     file : 读取用文件对像 (已经打开)
  4.   #--------------------------------------------------------------------------
  5.   def read_save_data(file)
  6.     # 读取描绘存档文件用的角色数据
  7.     characters = Marshal.load(file)
  8.     # 读取测量游戏时间用画面计数
  9.     Graphics.frame_count = Marshal.load(file)
  10.     # 读取各种游戏对像
  11.     $game_system        = Marshal.load(file)
  12.     $game_switches      = Marshal.load(file)
  13.     $game_variables     = Marshal.load(file)
  14.     $game_self_switches = Marshal.load(file)
  15.     $game_screen        = Marshal.load(file)
  16.     $game_actors        = Marshal.load(file)
  17.     $game_party         = Marshal.load(file)
  18.     $game_troop         = Marshal.load(file)
  19.     $game_map           = Marshal.load(file)
  20.     $game_player        = Marshal.load(file)
  21.     # 魔法编号与保存时有差异的情况下
  22.     # (加入编辑器的编辑过的数据)
  23.     if $game_system.magic_number != $data_system.magic_number
  24.       # 重新装载地图
  25.       $game_map.setup($game_map.map_id)
  26.       $game_player.center($game_player.x, $game_player.y)
  27.     end
  28.     # 刷新同伴成员
  29.     $game_party.refresh
  30.   end
复制代码
并在main前插入这段
  1. class Scene_Save
  2.   #--------------------------------------------------------------------------
  3.   # ● 确定时的处理
  4.   #--------------------------------------------------------------------------
  5.   def on_decision(占场子)
  6.     # 演奏存档 SE
  7.     $game_system.se_play($data_system.save_se)
  8.     # 写入存档数据
  9.     file = File.open("Save.rxdata", "wb")
  10.     write_save_data(file)
  11.     file.close
  12.     # 如果被事件调用
  13.     if $game_temp.save_calling
  14.       # 清除存档调用标志
  15.       $game_temp.save_calling = false
  16.       # 切换到地图画面
  17.       $scene = Scene_Map.new
  18.       return
  19.     end
  20.     # 切换到菜单画面
  21.     #$scene = Scene_Menu.new(4)
  22.   end
  23. end
复制代码
Scene_Menu 150行左右
  1.       when 4  # 存档
  2.         # 禁止存档的情况下
  3.         if $game_system.save_disabled
  4.           # 演奏冻结 SE
  5.           $game_system.se_play($data_system.buzzer_se)
  6.           return
  7.         end
  8.         # 演奏确定 SE
  9.         $game_system.se_play($data_system.decision_se)
  10.         # 切换到存档画面
  11.         #$scene = Scene_Save.new
  12.         file = File.open("Save.rxdata", "wb")
  13.         write_save_data(file)
  14.         file.close
复制代码
新加一个方法
  1.   #--------------------------------------------------------------------------
  2.   # ● 写入存档数据
  3.   #     file : 写入用文件对像 (已经打开)
  4.   #--------------------------------------------------------------------------
  5.   def write_save_data(file)
  6.     # 生成描绘存档文件用的角色图形
  7.     characters = []
  8.     for i in 0...$game_party.actors.size
  9.       actor = $game_party.actors[i]
  10.       characters.push([actor.character_name, actor.character_hue])
  11.     end
  12.     # 写入描绘存档文件用的角色数据
  13.     Marshal.dump(characters, file)
  14.     # 写入测量游戏时间用画面计数
  15.     Marshal.dump(Graphics.frame_count, file)
  16.     # 增加 1 次存档次数
  17.     $game_system.save_count += 1
  18.     # 保存魔法编号
  19.     # (将编辑器保存的值以随机值替换)
  20.     $game_system.magic_number = $data_system.magic_number
  21.     # 写入各种游戏对像
  22.     Marshal.dump($game_system, file)
  23.     Marshal.dump($game_switches, file)
  24.     Marshal.dump($game_variables, file)
  25.     Marshal.dump($game_self_switches, file)
  26.     Marshal.dump($game_screen, file)
  27.     Marshal.dump($game_actors, file)
  28.     Marshal.dump($game_party, file)
  29.     Marshal.dump($game_troop, file)
  30.     Marshal.dump($game_map, file)
  31.     Marshal.dump($game_player, file)
  32.   end
复制代码

点评

先谢之~嗯存档问题解决了,但是读档不成功啊。。scene title那里,145---147【command continue】那段,到底怎么改?ls这两段代码。。  发表于 2013-12-29 19:43

评分

参与人数 1星屑 +150 收起 理由
fux2 + 150 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
324
在线时间
890 小时
注册时间
2009-10-12
帖子
1829
3
 楼主| 发表于 2013-12-29 20:21:25 | 只看该作者
恋′挂机 发表于 2013-12-29 18:02
默认Scene_Title 47行改为145行左右改为新加一个方法并在main前插入这段Scene_Menu 150行左右新加一个方法 ...


嗯。。。或者帮忙换个思路?  在事件里判断是否有存档,在事件里保存【调用一下你的写入数据】,在事件里读取【用一下 读取存档数据 这个方法】

如果能实现的话。。帮忙写几句吧~?谢谢~!

点评

一样的,建议你去看看柳柳大人的二周目录像你就会了  发表于 2013-12-30 12:11
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
324
在线时间
890 小时
注册时间
2009-10-12
帖子
1829
4
 楼主| 发表于 2013-12-30 18:40:08 | 只看该作者
恋′挂机 发表于 2013-12-29 18:02
默认Scene_Title 47行改为145行左右改为新加一个方法并在main前插入这段Scene_Menu 150行左右新加一个方法 ...

嗯,,赶紧去学习了~成功咯谢谢~ bz结贴吧~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-30 08:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表