Project1

标题: 消除存档类脚本的这两行会不会对游戏造成严重影响? [打印本页]

作者: 怪蜀黍    时间: 2011-9-20 13:31
标题: 消除存档类脚本的这两行会不会对游戏造成严重影响?
本帖最后由 protosssonny 于 2011-9-20 18:44 编辑

进入游戏之后,只要和敌人打几仗,再保存进度就会弹出这样的错误提示:

游戏用了很多其他非默认脚本,我又修改了不少脚本,所以难以找到错误的根源。为了消除这个错误,我想到消除错误提示的这两行:
#    Marshal.dump($game_troop,          file)          #=>这行就是1398行
#    $game_troop          = Marshal.load(file)
就不 知道这样会不会对游戏造成严重影响。按照我的分析,$game_troop类的数据一般都是敌人的数据,而每次打仗,敌人都是不同的,数据也应该相应地重新读取,应该不会造成什么严重的影响。不知道我这样分析对不对,请大家来评价一下。
删除两行之后的脚本贴一下,我的储存进度定义在“随机属性”类里面。
  1. #==============================================================================
  2. # ■ Scene_File
  3. #==============================================================================
  4. class Scene_File < Scene_Base
  5.   #--------------------------------------------------------------------------
  6.   # ● 写入存档数据
  7.   #     file : 写入文件用对象 (已经打开)
  8.   #--------------------------------------------------------------------------
  9.   def write_save_data(file)
  10.     characters = []
  11.     for actor in $game_party.members
  12.       characters.push([actor.character_name, actor.character_index])
  13.     end
  14.     $game_system.save_count += 1
  15.     $game_system.version_id = $data_system.version_id
  16.     @last_bgm = RPG::BGM::last
  17.     @last_bgs = RPG::BGS::last
  18.     Marshal.dump(characters,           file)
  19.     Marshal.dump(Graphics.frame_count, file)
  20.     Marshal.dump(@last_bgm,            file)
  21.     Marshal.dump(@last_bgs,            file)
  22.     Marshal.dump($game_system,         file)
  23.     Marshal.dump($game_message,        file)
  24.     Marshal.dump($game_switches,       file)
  25.     Marshal.dump($game_variables,      file)
  26.     Marshal.dump($game_self_switches,  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.     Marshal.dump($data_weapons,        file)
  33.     Marshal.dump($data_armors,         file)
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 读取存档数据
  37.   #     file : 读取文件用对象 (已经打开)
  38.   #--------------------------------------------------------------------------
  39.   def read_save_data(file)
  40.     characters           = Marshal.load(file)
  41.     Graphics.frame_count = Marshal.load(file)
  42.     @last_bgm            = Marshal.load(file)
  43.     @last_bgs            = Marshal.load(file)
  44.     $game_system         = Marshal.load(file)
  45.     $game_message        = Marshal.load(file)
  46.     $game_switches       = Marshal.load(file)
  47.     $game_variables      = Marshal.load(file)
  48.     $game_self_switches  = Marshal.load(file)
  49.     $game_actors         = Marshal.load(file)
  50.     $game_party          = Marshal.load(file)
  51.     ########(删除)$game_troop          = Marshal.load(file)
  52.     $game_map            = Marshal.load(file)
  53.     $game_player         = Marshal.load(file)
  54.     $data_weapons        = Marshal.load(file)
  55.     $data_armors         = Marshal.load(file)
  56.     if $game_system.version_id != $data_system.version_id
  57.       $game_map.setup($game_map.map_id)
  58.       $game_player.center($game_player.x, $game_player.y)
  59.     end
  60.   end
  61. end
复制代码
请大家说说自己的看法吧,删除这两行会不会对游戏造成严重影响?dsu_plus_rewardpost_czw
作者: 月夜神音    时间: 2011-9-20 14:56
是使用了随机敌人脚本吗?
还有…………打仗……是战斗吗?
作者: 怪蜀黍    时间: 2011-9-20 15:23
用了随机敌人脚本,但是随机敌人脚本在我第一个游戏中也使用了,没有任何问题。
打仗就是战斗。
我估计凭我现阶段的水平是修复不了,所以想放弃修改,直接删除这2行。不知道可以不。
作者: flyfairy    时间: 2011-9-20 20:26
我只知道你删掉这两行,错误就会到其他的行了- -
作者: Kimu    时间: 2011-9-20 22:49
f1中应该有关于Marshal的介绍吧
啥?蝌蚪文看不懂?找谷哥
作者: 月夜神音    时间: 2011-9-21 05:36
试试全局搜索$game_troop 看看(加个空格在后面)
作者: 精灵使者    时间: 2011-9-21 11:12
$game_troop肯定是队伍的问题。
检查下有没有空的队伍,或者是已经删除掉的敌人组成的队伍,如果有请删除 by精灵
作者: 怪蜀黍    时间: 2011-9-27 11:36
我找到问题的根源了,是由于无法储存自定义变量@enemy_state造成的。
于是把我的自定义变量@enemy_state全部改成$enemy_state,即是不需要储存,问题得到完美的解决。




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