More SaveFlies(대박)

by Man... posted Oct 28, 2008
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
  1. Intro
    In the RPG Maker 2000 had 15 saveslots. When the RPGXP appeared only 4 slots. But with a script by KGC could expand this. Since the default RPGVX only has 4 saveslots, I thought why I don't make myself such a script as KGC has done? So here is my conclusion:
  2. Features
    • Set the value of saveslots
  3. Screenshots

    #==============================================================================
    # ** More savefiles 1.01 (http://erzvx.de.ms/scripts/MoreSavefiles.txt)
    #------------------------------------------------------------------------------
    #  written by ERZENGEL
    #==============================================================================

    # Max amount of savefiles
    MAXSAVEFILES = 8

    #==============================================================================
    # ** Window_SaveFile
    #------------------------------------------------------------------------------
    #  This window displays save files on the save and load screens.
    #==============================================================================

    class Window_SaveFile < Window_Base
      #--------------------------------------------------------------------------
      # * Object Initialization
      #     file_index : save file index (0 to the value of MAXSAVEFILES)
      #     filename   : filename
      #--------------------------------------------------------------------------
      def initialize(file_index, filename)
        super(0, 56 + file_index % MAXSAVEFILES * 90, 544, 90)
        @file_index = file_index
        @filename = filename
        load_gamedata
        refresh
        @selected = false
      end
    end

    #==============================================================================
    # ** Scene_File
    #------------------------------------------------------------------------------
    #  This class performs the save and load screen processing.
    #==============================================================================

    class Scene_File
      #--------------------------------------------------------------------------
      # * Start processing
      #--------------------------------------------------------------------------
      def start  
        super
        @file_max = MAXSAVEFILES
        create_menu_background
        @help_window = Window_Help.new
        create_savefile_windows
        if @saving
          @index = $game_temp.last_file_index
          @help_window.set_text(Vocab::SaveMessage)
        else
          @index = self.latest_file_index
          @help_window.set_text(Vocab::LoadMessage)
        end
        @savefile_windows[@index].selected = true
        @page_file_max = ((416 - @help_window.height) / 90).truncate
        for i in 0...@file_max
          window = @savefile_windows[i]
          if @index > @page_file_max - 1
            if @index < @file_max - @page_file_max - 1
              @top_row = @index
              window.y -= @index * window.height
            elsif @index >= @file_max - @page_file_max
              @top_row = @file_max - @page_file_max
              window.y -= (@file_max - @page_file_max) * window.height
            else
              @top_row = @index
              window.y -= @index * window.height
            end
          end
          window.visible = (window.y >= @help_window.height and
          window.y < @help_window.height + @page_file_max * window.height)
        end
      end
      #--------------------------------------------------------------------------
      # * Create Save File Window
      #--------------------------------------------------------------------------
      def create_savefile_windows
        @top_row = 0
        @savefile_windows = []
        for i in 0...@file_max
          @savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
        end
      end
      #--------------------------------------------------------------------------
      # * Move cursor down
      #     wrap : Wraparound allowed
      #--------------------------------------------------------------------------
      def cursor_down(wrap)
        if @index < @file_max - 1 or wrap
          @index = (@index + 1) % @file_max
          for i in 0...@file_max
            window = @savefile_windows[i]
            if @index == 0
              @top_row = 0
              window.y = @help_window.height + i % @file_max * window.height
            elsif @index - @top_row > @page_file_max - 1
              window.y -= window.height
            end
            window.visible = (window.y >= @help_window.height and
              window.y < @help_window.height + @page_file_max * window.height)
          end
          if @index - @top_row > @page_file_max - 1
            @top_row += 1
          end
        end
      end
      #--------------------------------------------------------------------------
      # * Move cursor up
      #     wrap : Wraparound allowed
      #--------------------------------------------------------------------------
      def cursor_up(wrap)
        if @index > 0 or wrap
          @index = (@index - 1 + @file_max) % @file_max
          for i in 0...@file_max
            window = @savefile_windows[i]
            if @index == @file_max - 1
              @top_row = @file_max - @page_file_max
              window.y = @help_window.height + i % @file_max * window.height
              window.y -= (@file_max - @page_file_max) * window.height
            elsif @index - @top_row < 0
              window.y += window.height
            end
            window.visible = (window.y >= @help_window.height and
              window.y < @help_window.height + @page_file_max * window.height)
          end
          if @index - @top_row < 0
            @top_row -= 1
          end
        end
      end
    end
  4. 시작