Project1

标题: 我向着【自动读档】的方向写的脚本,但是有错误 [打印本页]

作者: 白鬼    时间: 2009-7-28 23:19
标题: 我向着【自动读档】的方向写的脚本,但是有错误
终于能够进入游戏了,还要多谢一个朋友:secondsen
但是这个脚本用的时候:
无自动存档时正常进入游戏,正常建立存档(包括自动的和手动的)
      正常进入读取画面,能够读取手动存档

有自动存档时进入游戏,画面显示出来后,一个短暂的停留后

Interpreter 1开始连续报错
目前还没有查看跟别的有没有冲突。
脚本,我是个半吊子。对Interpreter 1更是一点办法都没有,所以希望有达人能够帮忙,或者指点一下也行,感激不尽!
  1. #替换 Scene_Title 全部内容

  2. #==============================================================================
  3. # ■ Scene_Title
  4. #------------------------------------------------------------------------------
  5. #  处理标题画面的类。
  6. #==============================================================================

  7. class Scene_Title #< Scene_File
  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.       # byakki

  34.     if FileTest.exist?("System.rxdata")
  35.       command_continue
  36.     else
  37.       command_new_game
  38.     end
  39.   end

  40.   #--------------------------------------------------------------------------
  41.   # ● 命令 : 新游戏
  42.   #--------------------------------------------------------------------------
  43.   def command_new_game
  44.     # 演奏确定 SE
  45.     $game_system.se_play($data_system.decision_se)
  46.     # 停止 BGM
  47.     Audio.bgm_stop
  48.     # 重置测量游戏时间用的画面计数器
  49.     Graphics.frame_count = 0
  50.     # 生成各种游戏对像
  51.     $game_temp          = Game_Temp.new
  52.     $game_system        = Game_System.new
  53.     $game_switches      = Game_Switches.new
  54.     $game_variables     = Game_Variables.new
  55.     $game_self_switches = Game_SelfSwitches.new
  56.     $game_screen        = Game_Screen.new
  57.     $game_actors        = Game_Actors.new
  58.     $game_party         = Game_Party.new
  59.     $game_troop         = Game_Troop.new
  60.     $game_map           = Game_Map.new
  61.     $game_player        = Game_Player.new
  62.     # 设置初期同伴位置
  63.     $game_party.setup_starting_members
  64.     # 设置初期位置的地图
  65.     $game_map.setup($data_system.start_map_id)
  66.     # 主角向初期位置移动
  67.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  68.     # 刷新主角
  69.     $game_player.refresh
  70.     # 执行地图设置的 BGM 与 BGS 的自动切换
  71.     $game_map.autoplay
  72.     # 刷新地图 (执行并行事件)
  73.     $game_map.update
  74.     # 切换地图画面
  75.     $scene = Scene_Map.new
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 命令 : 继续
  79.   #--------------------------------------------------------------------------
  80.   def command_continue
  81.   ##################################################
  82.     # 写入存档数据
  83.     file = File.open("System.rxdata", "rb")
  84.     read_save_data(file)
  85.     file.close
  86.     # 还原 BGM、BGS
  87.     $game_system.bgm_play($game_system.playing_bgm)
  88.     $game_system.bgs_play($game_system.playing_bgs)
  89.     # 刷新地图 (执行并行事件)
  90.     $game_map.update
  91.     # 切换到地图画面
  92.     $scene = Scene_Map.new
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # ● 读取存档数据
  96.   #     file : 读取用文件对像 (已经打开)
  97.   #--------------------------------------------------------------------------
  98.   def read_save_data(file)
  99.     # 读取描绘存档文件用的角色数据
  100.     characters = Marshal.load(file)
  101.     # 读取测量游戏时间用画面计数
  102.     Graphics.frame_count = Marshal.load(file)
  103.     # 读取各种游戏对像
  104.     $game_system        = Marshal.load(file)
  105.     $game_switches      = Marshal.load(file)
  106.     $game_variables     = Marshal.load(file)
  107.     $game_self_switches = Marshal.load(file)
  108.     $game_screen        = Marshal.load(file)
  109.     $game_actors        = Marshal.load(file)
  110.     $game_party         = Marshal.load(file)
  111.     $game_troop         = Marshal.load(file)
  112.     $game_map           = Marshal.load(file)
  113.     $game_player        = Marshal.load(file)
  114.     # 魔法编号与保存时有差异的情况下
  115.     # (加入编辑器的编辑过的数据)
  116.     if $game_system.magic_number != $data_system.magic_number
  117.       # 重新装载地图
  118.       $game_map.setup($game_map.map_id)
  119.       $game_player.center($game_player.x, $game_player.y)
  120.     end
  121.     # 刷新同伴成员
  122.     $game_party.refresh
  123.   end
  124.   ##############################################################
  125.   #--------------------------------------------------------------------------
  126.   # ● 战斗测试
  127.   #--------------------------------------------------------------------------
  128.   def battle_test
  129.     # 载入数据库 (战斗测试用)
  130.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  131.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  132.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  133.     $data_items         = load_data("Data/BT_Items.rxdata")
  134.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  135.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  136.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  137.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  138.     $data_states        = load_data("Data/BT_States.rxdata")
  139.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  140.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  141.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  142.     $data_system        = load_data("Data/BT_System.rxdata")
  143.     # 重置测量游戏时间用的画面计数器
  144.     Graphics.frame_count = 0
  145.     # 生成各种游戏对像
  146.     $game_temp          = Game_Temp.new
  147.     $game_system        = Game_System.new
  148.     $game_switches      = Game_Switches.new
  149.     $game_variables     = Game_Variables.new
  150.     $game_self_switches = Game_SelfSwitches.new
  151.     $game_screen        = Game_Screen.new
  152.     $game_actors        = Game_Actors.new
  153.     $game_party         = Game_Party.new
  154.     $game_troop         = Game_Troop.new
  155.     $game_map           = Game_Map.new
  156.     $game_player        = Game_Player.new
  157.     # 设置战斗测试用同伴
  158.     $game_party.setup_battle_test_members
  159.     # 设置队伍 ID、可以逃走标志、战斗背景
  160.     $game_temp.battle_troop_id = $data_system.test_troop_id
  161.     $game_temp.battle_can_escape = true
  162.     $game_map.battleback_name = $data_system.battleback_name
  163.     # 演奏战斗开始 BGM
  164.     $game_system.se_play($data_system.battle_start_se)
  165.     # 演奏战斗 BGM
  166.     $game_system.bgm_play($game_system.battle_bgm)
  167.     # 切换到战斗画面
  168.     $scene = Scene_Battle.new
  169.   end
  170. end
复制代码

作者: 白鬼    时间: 2009-7-29 08:15
:'(      求达人........
作者: 玄月    时间: 2009-7-29 15:33
你这个是重新读档时系统变量没有初始化导致的。范例已经发上来了,另外就是分数太少了 - -
自动读档.rar (191.44 KB, 下载次数: 189)




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