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

Project1

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

[已经过期] 这个脚本能不能加个开关

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
25 小时
注册时间
2013-8-15
帖子
3
跳转到指定楼层
1
发表于 2017-6-16 23:04:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 RyanBern 于 2017-6-17 16:55 编辑
  1. #=======这个是自动读档====================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  处理标题画面的类。
  5. #   感谢:secondsen
  6. #==============================================================================

  7. class Scene_Title
  8.   #--------------------------------------------------------------------------
  9.   # ● 主处理
  10.   #--------------------------------------------------------------------------
  11.   def main
  12.     # 战斗测试的情况下
  13.     if $BTEST
  14.       battle_test
  15.       return
  16.     end
  17.     # 载入数据库
  18.     $data_actors        = load_data("Data/Actors.rxdata")
  19.     $data_classes       = load_data("Data/Classes.rxdata")
  20.     $data_skills        = load_data("Data/Skills.rxdata")
  21.     $data_items         = load_data("Data/Items.rxdata")
  22.     $data_weapons       = load_data("Data/Weapons.rxdata")
  23.     $data_armors        = load_data("Data/Armors.rxdata")
  24.     $data_enemies       = load_data("Data/Enemies.rxdata")
  25.     $data_troops        = load_data("Data/Troops.rxdata")
  26.     $data_states        = load_data("Data/States.rxdata")
  27.     $data_animations    = load_data("Data/Animations.rxdata")
  28.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  29.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  30.     $data_system        = load_data("Data/System.rxdata")
  31.     # 生成系统对像
  32.     $game_system = Game_System.new
  33.     if FileTest.exist?("System.rxdata")
  34.       $scene = Scene_Load.new
  35.       $scene.on_decision("System.rxdata")
  36.     else
  37.       command_new_game
  38.     end
  39.   end
  40.    
  41.   #--------------------------------------------------------------------------
  42.   # ● 命令 : 新游戏
  43.   #--------------------------------------------------------------------------
  44.   def command_new_game
  45.     # 演奏确定 SE
  46.     $game_system.se_play($data_system.decision_se)
  47.     # 停止 BGM
  48.     Audio.bgm_stop
  49.     # 重置测量游戏时间用的画面计数器
  50.     Graphics.frame_count = 0
  51.     # 生成各种游戏对像
  52.     $game_temp          = Game_Temp.new
  53.     $game_system        = Game_System.new
  54.     $game_switches      = Game_Switches.new
  55.     $game_variables     = Game_Variables.new
  56.     $game_self_switches = Game_SelfSwitches.new
  57.     $game_screen        = Game_Screen.new
  58.     $game_actors        = Game_Actors.new
  59.     $game_party         = Game_Party.new
  60.     $game_troop         = Game_Troop.new
  61.     $game_map           = Game_Map.new
  62.     $game_player        = Game_Player.new
  63.     # 设置初期同伴位置
  64.     $game_party.setup_starting_members
  65.     # 设置初期位置的地图
  66.     $game_map.setup($data_system.start_map_id)
  67.     # 主角向初期位置移动
  68.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  69.     # 刷新主角
  70.     $game_player.refresh
  71.     # 执行地图设置的 BGM 与 BGS 的自动切换
  72.     $game_map.autoplay
  73.     # 刷新地图 (执行并行事件)
  74.     $game_map.update
  75.     # 切换地图画面
  76.     $scene = Scene_Map.new
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 战斗测试
  80.   #--------------------------------------------------------------------------
  81.   def battle_test
  82.     # 载入数据库 (战斗测试用)
  83.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  84.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  85.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  86.     $data_items         = load_data("Data/BT_Items.rxdata")
  87.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  88.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  89.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  90.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  91.     $data_states        = load_data("Data/BT_States.rxdata")
  92.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  93.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  94.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  95.     $data_system        = load_data("Data/BT_System.rxdata")
  96.     # 重置测量游戏时间用的画面计数器
  97.     Graphics.frame_count = 0
  98.     # 生成各种游戏对像
  99.     $game_temp          = Game_Temp.new
  100.     $game_system        = Game_System.new
  101.     $game_switches      = Game_Switches.new
  102.     $game_variables     = Game_Variables.new
  103.     $game_self_switches = Game_SelfSwitches.new
  104.     $game_screen        = Game_Screen.new
  105.     $game_actors        = Game_Actors.new
  106.     $game_party         = Game_Party.new
  107.     $game_troop         = Game_Troop.new
  108.     $game_map           = Game_Map.new
  109.     $game_player        = Game_Player.new
  110.     # 设置战斗测试用同伴
  111.     $game_party.setup_battle_test_members
  112.     # 设置队伍 ID、可以逃走标志、战斗背景
  113.     $game_temp.battle_troop_id = $data_system.test_troop_id
  114.     $game_temp.battle_can_escape = true
  115.     $game_map.battleback_name = $data_system.battleback_name
  116.     # 演奏战斗开始 BGM
  117.     $game_system.se_play($data_system.battle_start_se)
  118.     # 演奏战斗 BGM
  119.     $game_system.bgm_play($game_system.battle_bgm)
  120.     # 切换到战斗画面
  121.     $scene = Scene_Battle.new
  122.   end
  123. end
复制代码



下面是读档的脚本
  1. #==============================================================================
  2. # ■ Scene_Save
  3. #------------------------------------------------------------------------------
  4. #  处理存档画面的类。
  5. #==============================================================================

  6. class Scene_ASave < Scene_File
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #--------------------------------------------------------------------------
  10.   def initialize
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   # ● 确定时的处理
  14.   #--------------------------------------------------------------------------
  15.   def on_decision(filename)
  16.     # 演奏存档 SE
  17.     $game_system.se_play($data_system.save_se)
  18.     # 写入存档数据
  19.     file = File.open(filename, "wb")
  20.     write_save_data(file)
  21.     file.close
  22.     $scene = Scene_Map.new
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 写入存档数据
  26.   #     file : 写入用文件对像 (已经打开)
  27.   #--------------------------------------------------------------------------
  28.   def write_save_data(file)
  29.     # 生成描绘存档文件用的角色图形
  30.     characters = []
  31.     for i in 0...$game_party.actors.size
  32.       actor = $game_party.actors[i]
  33.       characters.push([actor.character_name, actor.character_hue])
  34.     end
  35.     # 写入描绘存档文件用的角色数据
  36.     Marshal.dump(characters, file)
  37.     # 写入测量游戏时间用画面计数
  38.     Marshal.dump(Graphics.frame_count, file)
  39.     # 增加 1 次存档次数
  40.     $game_system.save_count += 1
  41.     # 保存魔法编号
  42.     # (将编辑器保存的值以随机值替换)
  43.     $game_system.magic_number = $data_system.magic_number
  44.     # 写入各种游戏对像
  45.     Marshal.dump($game_system, file)
  46.     Marshal.dump($game_switches, file)
  47.     Marshal.dump($game_variables, file)
  48.     Marshal.dump($game_self_switches, file)
  49.     Marshal.dump($game_screen, file)
  50.     Marshal.dump($game_actors, file)
  51.     Marshal.dump($game_party, file)
  52.     Marshal.dump($game_troop, file)
  53.     Marshal.dump($game_map, file)
  54.     Marshal.dump($game_player, file)
  55.   end
  56. end
复制代码


主要想要的是这种效果,无存档的时候只显示开始游戏,有存档的时候就显示读取存档,玩家可以直接进入游戏
就像网游一样,开始的时候,没有角色,存档的时候就有了一个角色,我本来是用变量,变量1=存档的次数,但是在跳过标题以后,只显示新的游戏
不显示读取存档

具体设置  变量1=存档次数,开始游戏以后,并行处理  当变量1大于等于1的时候   读取存档 除此以外 显示 新的游戏  但是 我在游戏中 已经存档 了  
还是只显示 新的游戏  
求指教

Lv2.观梦者

梦石
0
星屑
501
在线时间
301 小时
注册时间
2010-7-3
帖子
133
2
发表于 2017-6-16 23:27:19 | 只看该作者
本帖最后由 a111a 于 2017-6-16 23:29 编辑

可以加个 判定 if FileTest.exist?("Save/save1)
如果有存档的情况下 就生成
command.new(999[继续,离开])
没存档的情况下生成
command.new(999[开始,离开])



以上
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
25 小时
注册时间
2013-8-15
帖子
3
3
 楼主| 发表于 2017-6-17 06:40:19 | 只看该作者
本帖最后由 1023026923 于 2017-6-18 05:53 编辑

谢谢您的指教,能不能详细点  我需要把您的答案 加到那个位置 可不可以详细一点 ,最好是全脚本,可以直接复制
我是事件党 脚本盲
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
501
在线时间
301 小时
注册时间
2010-7-3
帖子
133
4
发表于 2017-6-19 23:15:56 | 只看该作者
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  处理标题画面的类。
  5. #==============================================================================
  6.  
  7. class Scene_Title
  8.   #--------------------------------------------------------------------------
  9.   # ● 主处理
  10.   #--------------------------------------------------------------------------
  11.   def main
  12.     # 战斗测试的情况下
  13.     if $BTEST
  14.       battle_test
  15.       return
  16.     end
  17.     # 载入数据库
  18.     $data_actors        = load_data("Data/Actors.rxdata")
  19.     $data_classes       = load_data("Data/Classes.rxdata")
  20.     $data_skills        = load_data("Data/Skills.rxdata")
  21.     $data_items         = load_data("Data/Items.rxdata")
  22.     $data_weapons       = load_data("Data/Weapons.rxdata")
  23.     $data_armors        = load_data("Data/Armors.rxdata")
  24.     $data_enemies       = load_data("Data/Enemies.rxdata")
  25.     $data_troops        = load_data("Data/Troops.rxdata")
  26.     $data_states        = load_data("Data/States.rxdata")
  27.     $data_animations    = load_data("Data/Animations.rxdata")
  28.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  29.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  30.     $data_system        = load_data("Data/System.rxdata")
  31.     # 生成系统对像
  32.     $game_system = Game_System.new
  33.     # 生成标题图形
  34.     @sprite = Sprite.new
  35.     @sprite.bitmap = RPG::Cache.title($data_system.title_name)
  36.     # 生成命令窗口
  37.  
  38.     @continue_enabled = false
  39.     for i in 0..3
  40.       if FileTest.exist?("Save#{i+1}.rxdata")
  41.         @continue_enabled = true
  42.       end
  43.     end
  44.  
  45.  
  46.       if @continue_enabled == true
  47.      s1 = "继续"
  48.       else
  49.     s1 = "新游戏"        
  50.   end
  51.  
  52.  
  53.     s2 = "退出"
  54.     @command_window = Window_Command.new(192, [s1, s2])
  55.     @command_window.back_opacity = 160
  56.     @command_window.x = 320 - @command_window.width / 2
  57.     @command_window.y = 288
  58. #   end
  59.     # 判定继续的有效性
  60.     # 存档文件一个也不存在的时候也调查
  61.     # 有効为 @continue_enabled 为 true、无效为 false
  62.  
  63.     # 继续为有效的情况下、光标停止在继续上
  64.     # 无效的情况下、继续的文字显示为灰色
  65.     if @continue_enabled
  66.       @command_window.index = 1
  67.     else
  68.       @command_window.disable_item(1)
  69.     end
  70.     # 演奏标题 BGM
  71.     $game_system.bgm_play($data_system.title_bgm)
  72.     # 停止演奏 ME、BGS
  73.     Audio.me_stop
  74.     Audio.bgs_stop
  75.     # 执行过渡
  76.     Graphics.transition
  77.     # 主循环
  78.     loop do
  79.       # 刷新游戏画面
  80.       Graphics.update
  81.       # 刷新输入信息
  82.       Input.update
  83.       # 刷新画面
  84.       update
  85.       # 如果画面被切换就中断循环
  86.       if $scene != self
  87.         break
  88.       end
  89.     end
  90.     # 装备过渡
  91.     Graphics.freeze
  92.     # 释放命令窗口
  93.     @command_window.dispose
  94.     # 释放标题图形
  95.     @sprite.bitmap.dispose
  96.     @sprite.dispose
  97.   end
  98.   #--------------------------------------------------------------------------
  99.   # ● 刷新画面
  100.   #--------------------------------------------------------------------------
  101.   def update
  102.     # 刷新命令窗口
  103.     @command_window.update
  104.     # 按下 C 键的情况下
  105.     if Input.trigger?(Input::C)
  106.       # 命令窗口的光标位置的分支
  107.       case @command_window.index
  108.      # when 0  # 新游戏
  109.      #   command_new_game
  110.       when 0  # 继续
  111.        if  @continue_enabled == true
  112.          command_continue
  113.          else
  114.         command_new_game
  115.         end
  116.       when 1  # 退出
  117.         command_shutdown
  118.       end
  119.     end
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● 命令 : 新游戏
  123.   #--------------------------------------------------------------------------
  124.   def command_new_game
  125.     # 演奏确定 SE
  126.     $game_system.se_play($data_system.decision_se)
  127.     # 停止 BGM
  128.     Audio.bgm_stop
  129.     # 重置测量游戏时间用的画面计数器
  130.     Graphics.frame_count = 0
  131.     # 生成各种游戏对像
  132.     $game_temp          = Game_Temp.new
  133.     $game_system        = Game_System.new
  134.     $game_switches      = Game_Switches.new
  135.     $game_variables     = Game_Variables.new
  136.     $game_self_switches = Game_SelfSwitches.new
  137.     $game_screen        = Game_Screen.new
  138.     $game_actors        = Game_Actors.new
  139.     $game_party         = Game_Party.new
  140.     $game_troop         = Game_Troop.new
  141.     $game_map           = Game_Map.new
  142.     $game_player        = Game_Player.new
  143.     # 设置初期同伴位置
  144.     $game_party.setup_starting_members
  145.     # 设置初期位置的地图
  146.     $game_map.setup($data_system.start_map_id)
  147.     # 主角向初期位置移动
  148.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  149.     # 刷新主角
  150.     $game_player.refresh
  151.     # 执行地图设置的 BGM 与 BGS 的自动切换
  152.     $game_map.autoplay
  153.     # 刷新地图 (执行并行事件)
  154.     $game_map.update
  155.     # 切换地图画面
  156.     $scene = Scene_Map.new
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● 命令 : 继续
  160.   #--------------------------------------------------------------------------
  161.   def command_continue
  162.     # 继续无效的情况下
  163.     unless @continue_enabled
  164.       # 演奏无效 SE
  165.       $game_system.se_play($data_system.buzzer_se)
  166.       return
  167.     end
  168.     # 演奏确定 SE
  169.     $game_system.se_play($data_system.decision_se)
  170.     # 切换到读档画面
  171.     $scene = Scene_Load.new
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ● 命令 : 退出
  175.   #--------------------------------------------------------------------------
  176.   def command_shutdown
  177.     # 演奏确定 SE
  178.     $game_system.se_play($data_system.decision_se)
  179.     # BGM、BGS、ME 的淡入淡出
  180.     Audio.bgm_fade(800)
  181.     Audio.bgs_fade(800)
  182.     Audio.me_fade(800)
  183.     # 退出
  184.     $scene = nil
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ● 战斗测试
  188.   #--------------------------------------------------------------------------
  189.   def battle_test
  190.     # 载入数据库 (战斗测试用)
  191.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  192.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  193.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  194.     $data_items         = load_data("Data/BT_Items.rxdata")
  195.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  196.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  197.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  198.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  199.     $data_states        = load_data("Data/BT_States.rxdata")
  200.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  201.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  202.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  203.     $data_system        = load_data("Data/BT_System.rxdata")
  204.     # 重置测量游戏时间用的画面计数器
  205.     Graphics.frame_count = 0
  206.     # 生成各种游戏对像
  207.     $game_temp          = Game_Temp.new
  208.     $game_system        = Game_System.new
  209.     $game_switches      = Game_Switches.new
  210.     $game_variables     = Game_Variables.new
  211.     $game_self_switches = Game_SelfSwitches.new
  212.     $game_screen        = Game_Screen.new
  213.     $game_actors        = Game_Actors.new
  214.     $game_party         = Game_Party.new
  215.     $game_troop         = Game_Troop.new
  216.     $game_map           = Game_Map.new
  217.     $game_player        = Game_Player.new
  218.     # 设置战斗测试用同伴
  219.     $game_party.setup_battle_test_members
  220.     # 设置队伍 ID、可以逃走标志、战斗背景
  221.     $game_temp.battle_troop_id = $data_system.test_troop_id
  222.     $game_temp.battle_can_escape = true
  223.     $game_map.battleback_name = $data_system.battleback_name
  224.     # 演奏战斗开始 BGM
  225.     $game_system.se_play($data_system.battle_start_se)
  226.     # 演奏战斗 BGM
  227.     $game_system.bgm_play($game_system.battle_bgm)
  228.     # 切换到战斗画面
  229.     $scene = Scene_Battle.new
  230.   end
  231. end
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
501
在线时间
301 小时
注册时间
2010-7-3
帖子
133
5
发表于 2017-6-19 23:56:04 | 只看该作者
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Scene_File
  3. #------------------------------------------------------------------------------
  4. #  存档画面及读档画面的超级类。
  5. #==============================================================================
  6.  
  7. class Scene_File
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对像
  10.   #     help_text : 帮助窗口显示的字符串
  11.   #--------------------------------------------------------------------------
  12.   def initialize(help_text)
  13.     @help_text = help_text
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 主处理
  17.   #--------------------------------------------------------------------------
  18.   def main
  19.     # 生成帮助窗口
  20.     @help_window = Window_Help.new
  21.     @help_window.set_text(@help_text)
  22.     # 生成存档文件窗口
  23.     @savefile_windows = []
  24.     for i in 0..3
  25.       @savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
  26.     end
  27.     # 选择最后操作的文件
  28.     @file_index = 3 #$game_temp.last_file_index
  29.     #p  @file_index
  30.     @savefile_windows[@file_index].selected = true
  31.     # 执行过渡
  32.     Graphics.transition
  33.     # 主循环
  34.     loop do
  35.       # 刷新游戏画面
  36.       Graphics.update
  37.       # 刷新输入信息
  38.       Input.update
  39.       # 刷新画面
  40.       update
  41.       # 如果画面被切换的话就中断循环
  42.       if $scene != self
  43.         break
  44.       end
  45.     end
  46.     # 准备过渡
  47.     Graphics.freeze
  48.     # 释放窗口
  49.     @help_window.dispose
  50.     for i in @savefile_windows
  51.       i.dispose
  52.     end
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 刷新画面
  56.   #--------------------------------------------------------------------------
  57.   def update
  58.     # 刷新窗口
  59.     @help_window.update
  60.     for i in @savefile_windows
  61.       i.update
  62.     end
  63.     # 按下 C 键的情况下
  64.     if Input.trigger?(Input::C)
  65.       # 调用过程 on_decision (定义继承目标)
  66.       on_decision(make_filename(@file_index))
  67.       $game_temp.last_file_index = @file_index
  68.  
  69.       return
  70.     end
  71.     # 按下 B 键的情况下
  72.     if Input.trigger?(Input::B)
  73.       # 调用过程 on_cancel (定义继承目标)
  74.       on_cancel
  75.       return
  76.     end
  77.     # 按下方向键下的情况下
  78.  
  79.     if  $load == true
  80.         for @file_index in 0..3
  81.         if FileTest.exist?("Save#{@file_index+1}.rxdata")  
  82.   on_decision(make_filename(@file_index))
  83.   $load = false
  84.   end
  85. end   
  86. end
  87.  
  88.     if Input.repeat?(Input::DOWN)
  89.       # 方向键下的按下状态不是重复的情况下、
  90.       # 并且光标的位置在 3 以前的情况下
  91.       if Input.trigger?(Input::DOWN) or @file_index < 3
  92.         # 演奏光标 SE
  93.         $game_system.se_play($data_system.cursor_se)
  94.         # 光标向下移动
  95.         @savefile_windows[@file_index].selected = false
  96.         @file_index = (@file_index + 1) % 4
  97.         @savefile_windows[@file_index].selected = true
  98.         return
  99.       end
  100.     end
  101.     # 按下方向键上的情况下
  102.     if Input.repeat?(Input::UP)
  103.       # 方向键上的按下状态不是重复的情况下、
  104.       # 并且光标的位置在 0 以后的情况下
  105.       if Input.trigger?(Input::UP) or @file_index > 0
  106.         # 演奏光标 SE
  107.         $game_system.se_play($data_system.cursor_se)
  108.         # 光标向上移动
  109.         @savefile_windows[@file_index].selected = false
  110.         @file_index = (@file_index + 3) % 4
  111.         @savefile_windows[@file_index].selected = true
  112.         return
  113.       end
  114.     end
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● 生成文件名
  118.   #     file_index : 文件名的索引 (0~3)
  119.   #--------------------------------------------------------------------------
  120.   def make_filename(file_index)
  121.     return "Save#{file_index + 1}.rxdata"
  122.   end
  123. end
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
501
在线时间
301 小时
注册时间
2010-7-3
帖子
133
6
发表于 2017-6-19 23:56:28 | 只看该作者
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Scene_Load
  3. #------------------------------------------------------------------------------
  4. #  处理读档画面的类。
  5. #==============================================================================
  6.  
  7. class Scene_Load < Scene_File
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对像
  10.   #--------------------------------------------------------------------------
  11.   def initialize
  12.     # 再生成临时对像
  13.     $game_temp = Game_Temp.new
  14.     # 选择存档时间最新的文件
  15.     $game_temp.last_file_index = 0
  16.     $load = true
  17.     latest_time = Time.at(0)
  18.     for i in 0..3
  19.       filename = make_filename(i)
  20.  
  21.       if FileTest.exist?(filename)
  22.         file = File.open(filename, "r")
  23.         if file.mtime > latest_time
  24.           latest_time = file.mtime
  25.           $game_temp.last_file_index = i
  26.           on_decision(filename)         
  27.  
  28.  
  29.  
  30.         end
  31.  
  32.         file.close
  33.  
  34.  
  35.  
  36.  
  37.       end
  38.     end      
  39.  
  40.  
  41.     super("要载入哪个文件?")
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 确定时的处理
  45.   #--------------------------------------------------------------------------
  46.   def on_decision(filename)
  47.     # 文件不存在的情况下
  48.     unless FileTest.exist?(filename)
  49.       # 演奏冻结 SE
  50.       $game_system.se_play($data_system.buzzer_se)
  51.       return
  52.     end
  53.     # 演奏读档 SE
  54.     $game_system.se_play($data_system.load_se)
  55.     # 写入存档数据
  56.     file = File.open(filename, "rb")
  57.     read_save_data(file)
  58. #    p file
  59.     file.close
  60.     # 还原 BGM、BGS
  61.     $game_system.bgm_play($game_system.playing_bgm)
  62.     $game_system.bgs_play($game_system.playing_bgs)
  63.     # 刷新地图 (执行并行事件)
  64.     $game_map.update
  65.     # 切换到地图画面
  66.     $scene = Scene_Map.new
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● 取消时的处理
  70.   #--------------------------------------------------------------------------
  71.   def on_cancel
  72.     # 演奏取消 SE
  73.     $game_system.se_play($data_system.cancel_se)
  74.     # 切换到标题画面
  75.     $scene = Scene_Title.new
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 读取存档数据
  79.   #     file : 读取用文件对像 (已经打开)
  80.   #--------------------------------------------------------------------------
  81.   def read_save_data(file)
  82.     # 读取描绘存档文件用的角色数据
  83.     characters = Marshal.load(file)
  84.     # 读取测量游戏时间用画面计数
  85.     Graphics.frame_count = Marshal.load(file)
  86.     # 读取各种游戏对像
  87.     $game_system        = Marshal.load(file)
  88.     $game_switches      = Marshal.load(file)
  89.     $game_variables     = Marshal.load(file)
  90.     $game_self_switches = Marshal.load(file)
  91.     $game_screen        = Marshal.load(file)
  92.     $game_actors        = Marshal.load(file)
  93.     $game_party         = Marshal.load(file)
  94.     $game_troop         = Marshal.load(file)
  95.     $game_map           = Marshal.load(file)
  96.     $game_player        = Marshal.load(file)
  97.     # 魔法编号与保存时有差异的情况下
  98.     # (加入编辑器的编辑过的数据)
  99.     if $game_system.magic_number != $data_system.magic_number
  100.       # 重新装载地图
  101.       $game_map.setup($game_map.map_id)
  102.       $game_player.center($game_player.x, $game_player.y)
  103.     end
  104.     # 刷新同伴成员
  105.     $game_party.refresh
  106.   end
  107. end
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
501
在线时间
301 小时
注册时间
2010-7-3
帖子
133
7
发表于 2017-6-19 23:59:12 | 只看该作者
这三行脚本 分别 是 scene_title , scene_file  scene_load

自动读取  自动进入游戏

据要求  有存档情况下 显示 继续游戏,没存档情况下显示新开始游戏,

默认情况下是 自动读取1号存档,如有需求在说
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 10:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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