저장

SG_Automatic Save

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
#==========================================================================
# ** SG Automatic Save
#==========================================================================
# sandgolem
# Version 1
# 26.06.06
#==========================================================================

Scene_Map::SG_AutoSave_Switch = 33
Window_SaveFile::SG_AutoSave_Text = '- Automatic Saving Only -'
Window_SaveFile::SG_AutoSaveWindow = '001-Blue01'

# Instruct: http://www.gamebaker.com/rmxp/scripts/autosave.htm

#==========================================================================
#
# To check for updates or find more scripts, visit:
# http://www.gamebaker.com/rmxp/scripts/
#
# To use this script, copy it and insert it in a new section above "Main",
# but under the default scripts and the SDK if you're using it.
#
# Have problems? You can leave me a message at:
# http://www.gamebaker.com/users/sandgolem
#
#==========================================================================

begin
  SDK.log('SG Automatic Save', 'sandgolem', 1, '26.06.06')
  if SDK.state('SG Automatic Save') != true
    @sg_autosave_disabled = true
  end
  rescue
end

if !@sg_autosave_disabled
#--------------------------------------------------------------------------

class Scene_Save < Scene_File 
  def sg_write_autosave
    file = File.open("Save1.rxdata", "wb")
    write_save_data(file)   
    file.close
  end
end

class Window_SaveFile < Window_Base
  alias sandgolem_autosave_filewin_init initialize
  def initialize(file_index, filename)
    @file_index = file_index
    sandgolem_autosave_filewin_init(file_index, filename)
    if @file_index == 0
      self.windowskin = RPG::Cache.windowskin(SG_AutoSaveWindow)
    end
  end

  alias sandgolem_autosave_filewin_refresh refresh
  def refresh
    if @file_index == 0 && $scene.is_a?(Scene_Save)
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.draw_text(0,self.height / 2 - 32,self.width,
        32,SG_AutoSave_Text,1)
    else
      sandgolem_autosave_filewin_refresh
    end
    rect = Rect.new(4, 0, 90, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(4, 0, 600, 32, "File#{@file_index}")
  end

  alias sandgolem_autosave_filewin_updcrect update_cursor_rect
  def update_cursor_rect
    unless @file_index == 0 && $scene.is_a?(Scene_Save)
      sandgolem_autosave_filewin_updcrect
    end
  end
end

class Scene_File
  alias sandgolem_autosave_file_update update
  def update
    if !@sg_autosave_checked
      @sg_autosave_checked = true
      if @file_index == 0 && $scene.is_a?(Scene_Save)
        @file_index = 1
        @savefile_windows[1].selected = true
      end
    end
    sandgolem_autosave_file_update
    if @file_index == 0 && $scene.is_a?(Scene_Save)
      if Input.repeat?(Input::DOWN)
        @file_index = 1
        @savefile_windows[@file_index].selected = true
      elsif Input.repeat?(Input::UP)
        @file_index = @savefile_windows.size - 1
        @savefile_windows[@file_index].selected = true
      end
    end
  end
end

class Scene_Map
  alias sandgolem_autosave_map_transfer transfer_player
  def transfer_player
    sandgolem_autosave_map_transfer
    if $game_switches[SG_AutoSave_Switch]
      $game_switches[SG_AutoSave_Switch] = nil
      sg_autosave
    end
  end
end

def sg_autosave
  sg_autosave_temp = Scene_Save.new
  sg_autosave_temp.sg_write_autosave
  sg_autosave_temp = nil
end

#--------------------------------------------------------------------------
end


중뷁검사 거쳐서 올렸음
이게 자동세이브인진 모르겠지만
SG 콘트롤 셋팅 스크립 필요

방법을 몰라서 못쓰겠는데
처음에 스위치 잇는거보니

해당스위치 켜지면 강제 세이브되는건가?
(그랬음 좋겠다 ㄲㄲ)