幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3910|回复: 12

[RM2K&2K3] 修改Window_SaveFile时遇到了问题

[复制链接]

14

主题

79

帖子

665

积分

⑤进阶

积分
665
QQ
发表于 2009-7-28 12:56:44 | 显示全部楼层 |阅读模式
Window_SaveFile
我修改了 显示游戏时间 部分,改成如下:   
  1.    self.contents.font.color = normal_color
  2.       save_times = $game_system.save_count
  3.       self.contents.draw_text(4, 8, 600, 32,"存档次数:" + save_times, 2)
复制代码
然后运行游戏,进入存档画面,存档的时候:
  1. 发生了 TypeError。
  2. cannot convert Fixnum into String
复制代码

错误的行数提示,是我些的那些东西的最后一行。
请问,这个怎么弄啊?

另外,
  1. (4, 8, 600, 32,"存档次数:" + save_times, 2)
复制代码
里面,除了
  1. "存档次数" + save_times
复制代码
之外,其他的数字代表什么意思呢?
=============================================
secondsen,你最爱的魔力里面的职业是什么啊?
我是驯兽控,或者说我是个兽控.................
回复

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-7-28 14:05:29 | 显示全部楼层
save_times
是一个数字啊!

"存档次数" + save_times
一个字符串和一个数字怎么能加到一起去啊。。。。那里的参数只能是字符串


"存档次数" + save_times.to_s
这样就可以了
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

14

主题

79

帖子

665

积分

⑤进阶

积分
665
QQ
 楼主| 发表于 2009-7-28 14:37:03 | 显示全部楼层
按照你说的那样做了,貌似也不行啊
我参照playtime写了个这么个东西
  1.       #描绘游戏存档次数 byakki
  2.       #self.contents.font.color = normal_color
  3.       #savetimes = $game_system.save_count
  4.       #text = sprintf("%02d", savetimes)
  5.       #self.contents.draw_text(4, 8, 600, 32,"存档次数:" +  text, 2)
复制代码

不过还是有逻辑上的问题,但是已经能运行游戏了。

对了,有没有自动读档的方法啊……
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-7-28 15:21:31 | 显示全部楼层
不可能不行的。。。。OTZ。。。。谁知道你是什么个情况。。。。你的报错就是数字不能和字符串瞎掺和。。。。。

什么叫自动读档
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

14

主题

79

帖子

665

积分

⑤进阶

积分
665
QQ
 楼主| 发表于 2009-7-28 15:31:33 | 显示全部楼层
自动读挡,就是进入游戏的时候,跳过title,自动读取名为 System.rxdata的存档
(我用了自动存档,把里面"Save#{@file_index + 1}.rxdata"改成了System.rxdata)
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-7-28 16:20:38 | 显示全部楼层
Scene_Title的 def start下面 添加


    $scene = Scene_File.new(false,false,false)
    file = File.open("Save1.rvdata", "rb")
      $scene.read_save_data(file)
    file.close
    $scene = Scene_Map.new
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-7-28 16:21:03 | 显示全部楼层
不保证一定成功。。大致上就是这么做的
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

14

主题

79

帖子

665

积分

⑤进阶

积分
665
QQ
 楼主| 发表于 2009-7-28 16:22:49 | 显示全部楼层
我研究下
回复 支持 反对

使用道具 举报

14

主题

79

帖子

665

积分

⑤进阶

积分
665
QQ
 楼主| 发表于 2009-7-28 16:43:32 | 显示全部楼层
  1.   if FileTest.exist?("System.rxdata")
  2.     $scene = Scene_File.new(false,false,false)
  3.     file = File.open("System.rvdata", "rb")
  4.     $scene.read_save_data(file)
  5.     file.close
  6.     $scene = Scene_Map.new
  7.   else
  8.     command_new_game
  9.   end
复制代码


这是我添加在mail里面的
替换
  1. $scene = Scene_Title.new
复制代码


但是运行起来的时候,
  1. 【command_new_game这一行】   发生了 NameError
  2. undefined local variable or method 'command_new_game' for nil:NilClass
复制代码


new game 不是这么调用的吗?
回复 支持 反对

使用道具 举报

14

主题

79

帖子

665

积分

⑤进阶

积分
665
QQ
 楼主| 发表于 2009-7-28 16:54:39 | 显示全部楼层
小S你太棒了!

我写出来了这么个东东:
  1. #==============================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  处理标题画面的类。
  5. #==============================================================================
  6. class Scene_Title
  7.   #--------------------------------------------------------------------------
  8.   # ● 主处理
  9.   #--------------------------------------------------------------------------
  10.   def main
  11.     # 战斗测试的情况下
  12.     if $BTEST
  13.       battle_test
  14.       return
  15.     end
  16.     # 载入数据库
  17.     $data_actors        = load_data("Data/Actors.rxdata")
  18.     $data_classes       = load_data("Data/Classes.rxdata")
  19.     $data_skills        = load_data("Data/Skills.rxdata")
  20.     $data_items         = load_data("Data/Items.rxdata")
  21.     $data_weapons       = load_data("Data/Weapons.rxdata")
  22.     $data_armors        = load_data("Data/Armors.rxdata")
  23.     $data_enemies       = load_data("Data/Enemies.rxdata")
  24.     $data_troops        = load_data("Data/Troops.rxdata")
  25.     $data_states        = load_data("Data/States.rxdata")
  26.     $data_animations    = load_data("Data/Animations.rxdata")
  27.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  28.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  29.     $data_system        = load_data("Data/System.rxdata")
  30.     # 生成系统对像
  31.     $game_system = Game_System.new
  32.       # byakki
  33.     if FileTest.exist?("System.rxdata")
  34.       $scene = Scene_File.new(false,false,false)
  35.       file = File.open("System.rvdata", "rb")
  36.       $scene.read_save_data(file)
  37.       file.close
  38.       $scene = Scene_Map.new
  39.     else
  40.       command_new_game
  41.     end
  42.   end
  43.   
  44. 【【【【【【【【下面的我没改了】】】】】】】】】
  45.   #--------------------------------------------------------------------------
  46.   # ● 命令 : 新游戏
  47.   #--------------------------------------------------------------------------
  48.   def command_new_game
  49.     # 演奏确定 SE
  50.     $game_system.se_play($data_system.decision_se)
  51.     # 停止 BGM
  52.     Audio.bgm_stop
  53.     # 重置测量游戏时间用的画面计数器
  54.     Graphics.frame_count = 0
  55.     # 生成各种游戏对像
  56.     $game_temp          = Game_Temp.new
  57.     $game_system        = Game_System.new
  58.     $game_switches      = Game_Switches.new
  59.     $game_variables     = Game_Variables.new
  60.     $game_self_switches = Game_SelfSwitches.new
  61.     $game_screen        = Game_Screen.new
  62.     $game_actors        = Game_Actors.new
  63.     $game_party         = Game_Party.new
  64.     $game_troop         = Game_Troop.new
  65.     $game_map           = Game_Map.new
  66.     $game_player        = Game_Player.new
  67.     # 设置初期同伴位置
  68.     $game_party.setup_starting_members
  69.     # 设置初期位置的地图
  70.     $game_map.setup($data_system.start_map_id)
  71.     # 主角向初期位置移动
  72.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  73.     # 刷新主角
  74.     $game_player.refresh
  75.     # 执行地图设置的 BGM 与 BGS 的自动切换
  76.     $game_map.autoplay
  77.     # 刷新地图 (执行并行事件)
  78.     $game_map.update
  79.     # 切换地图画面
  80.     $scene = Scene_Map.new
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● 命令 : 继续
  84.   #--------------------------------------------------------------------------
  85. #  def command_continue
  86.     # 继续无效的情况下
  87. #    unless @continue_enabled
  88.       # 演奏无效 SE
  89. #      $game_system.se_play($data_system.buzzer_se)
  90. #      return
  91. #    end
  92.     # 演奏确定 SE
  93. #    $game_system.se_play($data_system.decision_se)
  94.     # 切换到读档画面
  95. #    $scene = Scene_Load.new
  96. #  end
  97.   #--------------------------------------------------------------------------
  98.   # ● 命令 : 退出
  99.   #--------------------------------------------------------------------------
  100. #  def command_shutdown
  101.     # 演奏确定 SE
  102. #    $game_system.se_play($data_system.decision_se)
  103.     # BGM、BGS、ME 的淡入淡出
  104. #    Audio.bgm_fade(800)
  105. #    Audio.bgs_fade(800)
  106. #    Audio.me_fade(800)
  107.     # 退出
  108. #    $scene = nil
  109. #  end
  110.   #--------------------------------------------------------------------------
  111.   # ● 战斗测试
  112.   #--------------------------------------------------------------------------
  113.   def battle_test
  114.     # 载入数据库 (战斗测试用)
  115.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  116.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  117.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  118.     $data_items         = load_data("Data/BT_Items.rxdata")
  119.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  120.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  121.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  122.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  123.     $data_states        = load_data("Data/BT_States.rxdata")
  124.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  125.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  126.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  127.     $data_system        = load_data("Data/BT_System.rxdata")
  128.     # 重置测量游戏时间用的画面计数器
  129.     Graphics.frame_count = 0
  130.     # 生成各种游戏对像
  131.     $game_temp          = Game_Temp.new
  132.     $game_system        = Game_System.new
  133.     $game_switches      = Game_Switches.new
  134.     $game_variables     = Game_Variables.new
  135.     $game_self_switches = Game_SelfSwitches.new
  136.     $game_screen        = Game_Screen.new
  137.     $game_actors        = Game_Actors.new
  138.     $game_party         = Game_Party.new
  139.     $game_troop         = Game_Troop.new
  140.     $game_map           = Game_Map.new
  141.     $game_player        = Game_Player.new
  142.     # 设置战斗测试用同伴
  143.     $game_party.setup_battle_test_members
  144.     # 设置队伍 ID、可以逃走标志、战斗背景
  145.     $game_temp.battle_troop_id = $data_system.test_troop_id
  146.     $game_temp.battle_can_escape = true
  147.     $game_map.battleback_name = $data_system.battleback_name
  148.     # 演奏战斗开始 BGM
  149.     $game_system.se_play($data_system.battle_start_se)
  150.     # 演奏战斗 BGM
  151.     $game_system.bgm_play($game_system.battle_bgm)
  152.     # 切换到战斗画面
  153.     $scene = Scene_Battle.new
  154.   end
  155. end
复制代码

没有 System.rxdata 的时候,可以直接进入游戏,退出的时候也有自动存档。
但是 当有 System.rxdata  的时候,
  1. 脚本的  $scene = Scene_File.new(false,false,false)    发生了ArgumentError。
  2. wrong number of arguments (3 for 1)
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-20 20:10 , Processed in 0.021106 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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