Project1

标题: [夜想曲 改]读档错误 [打印本页]

作者: tyrpg    时间: 2012-1-14 14:17
标题: [夜想曲 改]读档错误
---------------------------
天剑传:方剑军·陈
---------------------------
脚本 'Window_SaveFile' 的 61 行 发生了 NoMethodError。

undefined method `character_name' for ["方剑", 0]:Array
---------------------------
确定   
---------------------------


脚本发上:
  1. #==============================================================================
  2. # ■ Window_SaveFile
  3. #------------------------------------------------------------------------------
  4. #  显示存档以及读档画面、保存文件的窗口。
  5. #==============================================================================

  6. class Window_SaveFile < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 定义实例变量
  9.   #--------------------------------------------------------------------------
  10.   attr_reader   :filename                 # 文件名
  11.   attr_reader   :selected                 # 选择状态
  12.   #--------------------------------------------------------------------------
  13.   # ● 初始化对像
  14.   #     file_index : 存档文件的索引 (0~3)
  15.   #     filename   : 文件名
  16.   #--------------------------------------------------------------------------
  17.   def initialize(file_index, filename)
  18.     super(file_index % 4 * (640/4), 0, 640/4, 480-64)
  19.     self.contents = Bitmap.new(width - 32, height - 32)
  20.     self.opacity = 0
  21.     @file_index = file_index
  22.     @filename = "Save/Save#{@file_index + 1}.rxdata"
  23.     @time_stamp = Time.at(0)
  24.     @file_exist = FileTest.exist?(@filename)
  25.     @hash = load_data("Save/Savelist.inf")
  26.     @data = @hash[@filename]
  27.     if @file_exist
  28.       file = File.open(@filename, "r")
  29.       @time_stamp = file.mtime
  30.       @characters = Marshal.load(file)
  31.       @frame_count = Marshal.load(file)
  32.       @game_system = Marshal.load(file)
  33.       @game_switches = Marshal.load(file)
  34.       @game_variables = Marshal.load(file)
  35.       @total_sec = @frame_count / Graphics.frame_rate
  36.       file.close
  37.     end
  38.     refresh
  39.     @selected = false
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 刷新
  43.   #--------------------------------------------------------------------------
  44.   def refresh
  45.     self.contents.clear
  46.     # 描绘文件编号
  47.     self.contents.font.color = normal_color
  48.     if @file_index != 3
  49.       name = "回忆 #{@file_index + 1}"
  50.       self.contents.draw_text(20, 16, 600, 32, name)
  51.     else
  52.       name = "自动存档"
  53.       self.contents.draw_text(18, 16, 600, 32, name)
  54.     end
  55.     @name_width = contents.text_size(name).width
  56.     # 存档文件存在的情况下
  57.     if @file_exist
  58.       # 描绘角色
  59.       for i in [email protected]
  60.         bitmap = RPG::Cache.character(@characters[i].character_name, @characters[i].character_hue)
  61.         cw = bitmap.rect.width / 4
  62.         ch = bitmap.rect.height / 4
  63.         src_rect = Rect.new(0, 0, cw, ch)
  64.         self.contents.blt(16 + i * 48, 96 - ch, bitmap, src_rect)
  65.         
  66.         bitmap = RPG::Cache.battler(@characters[i].battler_name, @characters[i].battler_hue)
  67.         cw = bitmap.rect.width
  68.         ch = bitmap.rect.height
  69.         src_rect = Rect.new(0, 0, cw, ch)
  70.         self.contents.blt(16, 64, bitmap, src_rect)
  71.       end
  72.       # 描绘游戏时间
  73.       hour = @total_sec / 60 / 60
  74.       min = @total_sec / 60 % 60
  75.       sec = @total_sec % 60
  76.       self.contents.font.size = 16
  77.       self.contents.draw_text(8, 224, 180, 16, "#{@characters[0].name}", 0)
  78.       self.contents.draw_text(8, 240, 180, 16, "lv.#{@characters[0].level.to_s}", 0)
  79.       hp_and_sp
  80.       time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
  81.       self.contents.draw_text(8, 256+32, 180, 16, time_string, 0)
  82.       time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
  83.       self.contents.draw_text(8, 256+48, 180, 16, time_string, 0)
  84.       self.contents.draw_text(8, 256+64, 180, 16, "杀敌数 : #{@game_system.enemy_cun}", 0)
  85.       self.contents.draw_text(8, 256+64+16, 256, 16, "完成任务 : #{@game_system.over_mess.keys.size}", 0)
  86.     end
  87.   end
  88.   def hp_and_sp
  89.     cw = @characters[0].hp*118/@characters[0].maxhp
  90.     self.contents.fill_rect(8,265,120,10,Color.new(255,255,255))
  91.     for i in 0..7
  92.       self.contents.fill_rect(9,266+i,118,1,Color.new(163-(i*16),128-(i*16),128-(i*16)))
  93.     end
  94.     for i in 0..7
  95.       self.contents.fill_rect(9,266+i,cw,1,Color.new(255-(i*16),128-(i*16),128-(i*16)))
  96.     end
  97.     cw = @characters[0].sp*118/@characters[0].maxsp
  98.     self.contents.fill_rect(8,278,120,10,Color.new(255,255,255))
  99.     for i in 0..7
  100.       self.contents.fill_rect(9,279+i,118,1,Color.new(128-(i*16),128-(i*16),163-(i*16)))
  101.     end
  102.     for i in 0..7
  103.       self.contents.fill_rect(9,279+i,cw,1,Color.new(128-(i*16),128-(i*16),255-(i*16)))
  104.     end
  105.     self.contents.draw_text(8, 256, 180, 16, "hp.#{@characters[0].hp.to_s}/#{@characters[0].maxhp.to_s}", 0)
  106.     self.contents.draw_text(8, 256+16, 180, 16, "sp.#{@characters[0].sp.to_s}/#{@characters[0].maxsp.to_s}", 0)
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # ● 设置选择状态
  110.   #     selected : 新的选择状态 (true=选择 false=不选择)
  111.   #--------------------------------------------------------------------------
  112.   def selected=(selected)
  113.     @selected = selected
  114.     update_cursor_rect
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● 刷新光标矩形
  118.   #--------------------------------------------------------------------------
  119.   def update_cursor_rect
  120.     if @selected
  121.       self.cursor_rect.set(16, 16, @name_width+8, 32)
  122.     else
  123.       self.cursor_rect.empty
  124.     end
  125.   end
  126. end
复制代码
dsu_plus_rewardpost_czw
作者: R-零    时间: 2012-1-15 12:16
数据类型错误……

获得@charecter这个变量在第31行,

是存档的数据写入问题,如果需要的话,本人可以帮你把存档维修下
作者: tyrpg    时间: 2012-1-21 13:21
R-零 发表于 2012-1-15 12:16
数据类型错误……

获得@charecter这个变量在第31行,

脚本已上传完毕 请帮忙查看 谢谢

Scripts.rxdata

177.79 KB, 下载次数: 29


作者: 零の使魔    时间: 2012-1-21 13:25
tyrpg 发表于 2012-1-21 13:21
脚本已上传完毕 请帮忙查看 谢谢

单是给脚本是没用的哦
你直接把整个工程传上来吧
作者: tyrpg    时间: 2012-1-21 14:43
零の使魔 发表于 2012-1-21 13:25
单是给脚本是没用的哦
你直接把整个工程传上来吧

请帮忙查看…… Thank you
http://115.com/file/dpxgkvsi
作者: R-零    时间: 2012-1-21 15:52
已经确认脚本无误,请删除存档后重新保存一份存档测试
作者: tyrpg    时间: 2012-1-22 13:20
R-零 发表于 2012-1-21 15:52
已经确认脚本无误,请删除存档后重新保存一份存档测试

顺便问一句,夜想曲·改的存/读档脚本可以换成原脚本吗




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