The RPG Maker Resource Kit

RMRK RPG Maker Creation => RPG Maker General => General Scripting => Topic started by: ShadowOD on August 19, 2007, 06:59:47 PM

Title: EOFError?
Post by: ShadowOD on August 19, 2007, 06:59:47 PM
 :tpg:

Can't save nor load.

keeps saying their is an EOFError.

Can any help me please?


Title: Re: EOFError?
Post by: Falcon on August 19, 2007, 07:01:07 PM
http://rmrk.net/index.php/topic,19774.0.html
Title: Re: EOFError?
Post by: ShadowOD on August 19, 2007, 11:59:14 PM
Oh yeah, sorry was in a rush.

When I load...

????? 'Window_SaveFile' ? 30 ??? EOFError ????????

End of file reached


#==============================================================================
# ? Window_SaveFile
#------------------------------------------------------------------------------
# ????????????????????????????????????
#==============================================================================

class Window_SaveFile < Window_Base
  #--------------------------------------------------------------------------
  # ? ??????????
  #--------------------------------------------------------------------------
  attr_reader   :filename                 # ?????
  attr_reader   :selected                 # ????
  #--------------------------------------------------------------------------
  # ? ?????????
  #     file_index : ?????????????? (0?3)
  #     filename   : ?????
  #--------------------------------------------------------------------------
  def initialize(file_index, filename)
    super(0, 64 + file_index % 4 * 104, 640, 104)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype  # "File" (File #) window font
    self.contents.font.size = $defaultfontsize
    @file_index = file_index
    @filename = "Save#{@file_index + 1}.sav"
    @time_stamp = Time.at(0)
    @file_exist = FileTest.exist?(@filename)
    if @file_exist
      file = File.open(@filename, "r")
      @time_stamp = file.mtime
      @characters = Marshal.load(file)
      @frame_count = Marshal.load(file)
      @game_system = Marshal.load(file)
      @game_switches = Marshal.load(file)
      @game_variables = Marshal.load(file)
      @total_sec = @frame_count / Graphics.frame_rate
      file.close
    end
    refresh
    @selected = false
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    # ?????????
    self.contents.font.color = normal_color
    name = "File #{@file_index + 1}"
    self.contents.draw_text(4, 0, 600, 32, name)
    @name_width = contents.text_size(name).width
    # ??????????????
    if @file_exist
      # ?????????
      for i in 0...@characters.size
        bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
        cw = bitmap.rect.width / 4
        ch = bitmap.rect.height / 4
        src_rect = Rect.new(0, 0, cw, ch)
        x = 300 - @characters.size * 32 + i * 64 - cw / 2
        self.contents.blt(x, 68 - ch, bitmap, src_rect)
      end
      # ????????
      hour = @total_sec / 60 / 60
      min = @total_sec / 60 % 60
      sec = @total_sec % 60
      time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 8, 600, 32, time_string, 2)
      # ??????????
      self.contents.font.color = normal_color
      time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
      self.contents.draw_text(4, 40, 600, 32, time_string, 2)
    end
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #     selected : ??????? (true=?? false=???)
  #--------------------------------------------------------------------------
  def selected=(selected)
    @selected = selected
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @selected
      self.cursor_rect.set(0, 0, @name_width + 8, 32)
    else
      self.cursor_rect.empty
    end
  end
end



When i attempt to save...

????? 'Window_SaveFile' ? 30 ??? EOFError ????????

End of file reached


#==============================================================================
# ? Window_SaveFile
#------------------------------------------------------------------------------
# ????????????????????????????????????
#==============================================================================

class Window_SaveFile < Window_Base
  #--------------------------------------------------------------------------
  # ? ??????????
  #--------------------------------------------------------------------------
  attr_reader   :filename                 # ?????
  attr_reader   :selected                 # ????
  #--------------------------------------------------------------------------
  # ? ?????????
  #     file_index : ?????????????? (0?3)
  #     filename   : ?????
  #--------------------------------------------------------------------------
  def initialize(file_index, filename)
    super(0, 64 + file_index % 4 * 104, 640, 104)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype  # "File" (File #) window font
    self.contents.font.size = $defaultfontsize
    @file_index = file_index
    @filename = "Save#{@file_index + 1}.sav"
    @time_stamp = Time.at(0)
    @file_exist = FileTest.exist?(@filename)
    if @file_exist
      file = File.open(@filename, "r")
      @time_stamp = file.mtime
      @characters = Marshal.load(file)
      @frame_count = Marshal.load(file)
      @game_system = Marshal.load(file)
      @game_switches = Marshal.load(file)
      @game_variables = Marshal.load(file)
      @total_sec = @frame_count / Graphics.frame_rate
      file.close
    end
    refresh
    @selected = false
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    # ?????????
    self.contents.font.color = normal_color
    name = "File #{@file_index + 1}"
    self.contents.draw_text(4, 0, 600, 32, name)
    @name_width = contents.text_size(name).width
    # ??????????????
    if @file_exist
      # ?????????
      for i in 0...@characters.size
        bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
        cw = bitmap.rect.width / 4
        ch = bitmap.rect.height / 4
        src_rect = Rect.new(0, 0, cw, ch)
        x = 300 - @characters.size * 32 + i * 64 - cw / 2
        self.contents.blt(x, 68 - ch, bitmap, src_rect)
      end
      # ????????
      hour = @total_sec / 60 / 60
      min = @total_sec / 60 % 60
      sec = @total_sec % 60
      time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 8, 600, 32, time_string, 2)
      # ??????????
      self.contents.font.color = normal_color
      time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
      self.contents.draw_text(4, 40, 600, 32, time_string, 2)
    end
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #     selected : ??????? (true=?? false=???)
  #--------------------------------------------------------------------------
  def selected=(selected)
    @selected = selected
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @selected
      self.cursor_rect.set(0, 0, @name_width + 8, 32)
    else
      self.cursor_rect.empty
    end
  end
end
Title: Re: EOFError?
Post by: WcW on August 23, 2007, 11:11:23 PM
And your custom scripts....?
Title: Re: EOFError?
Post by: Shinami on August 23, 2007, 11:30:29 PM
Usually an EOFError occurs during loading when you are attempting to load data that is not stored in that particular save file. I.E $game_card = Marshal.load(file) when there is no $game_card data saved in a save file.

As for the EOFError when you're trying to save...I'm guessing the game is trying to save data that doesn't exist?

@characters = Marshal.load(file)That's the line causing an error when you try to load OR save??? Strange...that snippet of code is used in an unaltered Window_Savefile and the Window_Savefile you posted IS unaltered. That makes this even stranger.

Like WcW asked, what custom scripts are you using? Also, what version of RMXP are you using?

Side Note:I know my siggy says I'm not scripting anything but I do have enough time here and there to troubleshoot some script problems. Also, isn't this supposed to be in the Script Help section???
Title: Re: EOFError?
Post by: Falcon on August 23, 2007, 11:34:45 PM
Shinami's right, though I believe he left out the error can occur when the data is not loaded in order.

It's definatly a custom script issue, tell use what scripts you're using and it should be easy to sort out.

Also, Shinami, it's not strange, another script is probably just overwriting or aliasing the load or save file methods. ;)
Title: Re: EOFError?
Post by: Shinami on August 23, 2007, 11:38:18 PM
Quote from: Falcon on August 23, 2007, 11:34:45 PM
It's definatly a custom script issue, tell use what scripts you're using and it should be easy to sort out.
Aye. Working with limited information isn't fun. If possible, POST the scripts too?
Title: Re: EOFError?
Post by: ShadowOD on August 24, 2007, 11:15:48 AM
No seriously, no other scripts were added.

But I found a save file in the game folder, so i deleted it which funnily enough made the game work again.

Thank you for your help guys.  :)
Title: Re: EOFError?
Post by: Kokowam on August 24, 2007, 12:38:45 PM
Lol wut? Maybe you removed some scripts or you made some drastic changes to the game to make that happen?
Title: Re: EOFError?
Post by: Falcon on August 24, 2007, 01:47:56 PM
No, it makes perfect sense, a save file that was corrupted or had too much data then it's loading would screw up the game. It's why a bunch of people say their script will corrupt old save files.

Ask questions like this in the script help forum from now on.
Title: Re: EOFError?
Post by: ShadowOD on August 24, 2007, 05:50:18 PM
Ok I will, sorry about that ;)

I decided I prefer this forum to RMRP.org  :lol:
Those guys are strict on like... everything and they arn't as cool. :blizj:
Title: Re: EOFError?
Post by: WcW on September 02, 2007, 03:03:35 AM
I accidentally corrupted two of my script testing game's save files by misusing Marshal when I was developing a New Game + script, so quite possibly an error in PK using Marshal wrong.
Title: Re: EOFError?
Post by: chuckman22 on September 27, 2007, 04:00:57 AM
Hmm
Quote from: ShadowOD on August 24, 2007, 11:15:48 AM
No seriously, no other scripts were added.

But I found a save file in the game folder, so i deleted it which funnily enough made the game work again.

Thank you for your help guys.  :)
what's funny is that I have the same problem except that I have several custom scripts, so I wonder if it has nothing to do with custom scripts.
Title: Re: EOFError?
Post by: Falcon on September 27, 2007, 09:35:02 AM
It has to do with non default scripts, end of story.