Project1

标题: 游戏结束时选择继续游戏无效 [打印本页]

作者: 纸飞机哟    时间: 2011-2-12 14:08
标题: 游戏结束时选择继续游戏无效
我修改了Gameover,让游戏结束时可以继续存档-2继续游戏,
#--------------------------------------------------------------------------
  # ● 选择命令 [继续] 时的处理
  #--------------------------------------------------------------------------
  def command_to_again
    # 演奏确定 SE
    if FileTest.exist?("Save/Mysave_2.rxdata")
     $Save_id = 1
    $game_switches[24] = true
    #$game_map.update
    $scene = Scene_Map.new
    $game_map.refresh
    return
  else
    $game_system.se_play($data_system.buzzer_se)
    end
  end

也就是选择继续时开启24号开关,然后返回地图。
在公共事件中设定,如果24号开关开启时,并行处理此公共事件。
公共事件中调用了read_save_data。也就是下面的脚本。
#==============================================================================
# ■ Interpreter (分割定义 7)
#------------------------------------------------------------------------------
#  执行事件命令的解释器。本类在 Game_System 类
# 和 Game_Event 类的内部使用。
#==============================================================================

class Interpreter  
#--------------------------------------------------------------------------
# ● 写入存档数据
#     file : 写入用文件对像 (已经打开)
#--------------------------------------------------------------------------
def write_save_data#(i=1)
   if $Save_id ==0
   file = File.open("Save/Mysave.rxdata", "wb")
end
    if $Save_id ==1
   file = File.open("Save/Mysave_2.rxdata", "wb")
   end
   characters = []
   for i in 0...$game_party.actors.size
     actor = $game_party.actors[i]
     characters.push([actor.character_name, actor.character_hue])
   end
   Marshal.dump(characters, file)
   Marshal.dump(Graphics.frame_count, file)
   $game_system.save_count += 1
   $game_system.magic_number = $data_system.magic_number
   Marshal.dump($game_system, file)
   Marshal.dump($game_switches, file)
   Marshal.dump($game_variables, file)
   Marshal.dump($game_self_switches, file)
   Marshal.dump($game_screen, 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)
   file.close
end
#--------------------------------------------------------------------------
# ● 读取存档数据
#     file : 读取用文件对像 (已经打开)
#--------------------------------------------------------------------------
def read_save_data#(i=1)
   $game_temp = Game_Temp.new
   if $Save_id ==0
   file = File.open("Save/Mysave.rxdata", "rb")
   end
    if $Save_id ==1
   file = File.open("Save/Mysave_2.rxdata", "rb")
   end
   characters = Marshal.load(file)
   Graphics.frame_count = Marshal.load(file)
   $game_system        = Marshal.load(file)
   $game_switches      = Marshal.load(file)
   $game_variables     = Marshal.load(file)
   $game_self_switches = Marshal.load(file)
   $game_screen        = Marshal.load(file)
   $game_actors        = Marshal.load(file)
   $game_party         = Marshal.load(file)
   $game_troop         = Marshal.load(file)
   $game_map           = Marshal.load(file)
   $game_player        = Marshal.load(file)
   if $game_system.magic_number != $data_system.magic_number
     $game_map.setup($game_map.map_id)
     $game_player.center($game_player.x, $game_player.y)
   end
   $game_party.refresh
   file.close
   # 还原 BGM、BGS
   $game_system.bgm_play($game_system.playing_bgm)
   $game_system.bgs_play($game_system.playing_bgs)
   # 刷新地图 (执行并行事件)
   $game_map.update
   # 切换到地图画面
   $scene = Scene_Map.new
   #$game_map.refresh
end
end


但是游戏中,游戏结束时,选择继续后会返回地图然后马上又回到游戏结束时的选项。
并不会读取存档-2.为什么呢dsu_plus_rewardpost_czw
作者: IamI    时间: 2011-2-12 15:16
Gameover MS 处理优先。要么除去GameOver标记,或者
我说你内容都拿出来了不会把read_data扔command处理里啊...
作者: Wind2010    时间: 2011-2-12 15:52
直接在command_to_again里读取存档后再回到地图
作者: IamI    时间: 2011-2-12 19:46
GameOver处理里面加一行
$game_temp.gameover = false 试试




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1