RPGXP 스크립트

자동 세이브 스크립트

by 청담 posted Sep 24, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

#============================================================================== 
# *** AutoSave 
#------------------------------------------------------------------------------ 
# This module handles the AutoSaving 
#============================================================================== 
module AutoSave 
#-------------------------------------------------------------------------- 
# * Saves File 
#-------------------------------------------------------------------------- 
def self.save 
  begin 
    #Saves the file to whatever $game_system.filename is 
    file = File.open($game_system.filename, "wb") 
    a = Scene_Save.new 
    a.write_save_data(file) 
  ensure 
    file.close 
  end 
end 
#-------------------------------------------------------------------------- 
# * Deletes File 
#-------------------------------------------------------------------------- 
def self.deletesave 
  begin 
    if FileTest.exits?($game_system.filename) 
      File.delete($game_system.filename) 
    end  
  end 
end 
end 
#============================================================================== 

#============================================================================== 
# ** Scene_Save 
#------------------------------------------------------------------------------ 
# This class performs save screen processing. 
# NOTE THAT SCENE_SAVE NO LONGER SAVES THE GAME, it changes the autosave file 
#============================================================================== 

class Scene_Save < Scene_File 
#-------------------------------------------------------------------------- 
# * Object Initialization 
#-------------------------------------------------------------------------- 
def initialize 
  super("Which file would you like to autosave to?") 
end 
#-------------------------------------------------------------------------- 
# * Decision Processing 
#-------------------------------------------------------------------------- 
def on_decision(filename) 
  # Play save SE 
  $game_system.se_play($data_system.save_se) 
  $game_system.filename_c(filename) 
  $scene = Scene_Menu.new 
end 
end 

#============================================================================== 
# ** Scene_Load 
#------------------------------------------------------------------------------ 
#  This class performs load screen processing. 
#============================================================================== 
class Scene_Load < Scene_File 

alias old_doloadthingie on_decision 
#-------------------------------------------------------------------------- 
# * Decision Processing 
#-------------------------------------------------------------------------- 
def on_decision(filename) 
  $game_system.filename_c(filename) 
  old_doloadthingie(filename) 
end 
end 

#============================================================================== 
# ** Game_System 
#------------------------------------------------------------------------------ 
#  This class handles data surrounding the system. Backround music, etc. 
#  is managed here as well. Refer to "$game_system" for the instance of 
#  this class. 
#============================================================================== 
class Game_System 
#-------------------------------------------------------------------------- 
# * Aliasing Objects 
#-------------------------------------------------------------------------- 
alias autosaveinit initialize 
#-------------------------------------------------------------------------- 
# * Initialize 
#-------------------------------------------------------------------------- 
def initialize 
  autosaveinit 
  @filename = "Save1.rxdata" 
end 
#-------------------------------------------------------------------------- 
# * Filename -> Returns Autosave Filename 
#-------------------------------------------------------------------------- 
def filename 
  if @filename != nil 
    return @filename 
  else 
    return "Save1.rxdata" 
  end  
end 
#-------------------------------------------------------------------------- 
# * Filename_change -> Sets New Autosave Filename 
#-------------------------------------------------------------------------- 
def filename_c(newname) 
  return if newname == "" or newname == nil 
  @filename = newname 
end 
end 

#============================================================================== 
# ** Game_Party 
#------------------------------------------------------------------------------ 
# This class handles the party. It includes information on amount of gold 
# and items. Refer to "$game_party" for the instance of this class. 
#============================================================================== 
class Game_Party 

alias gainglod_autosave gain_gold 
alias gainitem_autosave gain_item 
alias gainweap_autosave gain_weapon 
alias gainarmor_autosave gain_armor 
#-------------------------------------------------------------------------- 
# * Gain Gold (or lose) 
# n : amount of gold 
#-------------------------------------------------------------------------- 
def gain_gold(n) 
  gainglod_autosave(n) 
  AutoSave.save 
end 
#-------------------------------------------------------------------------- 
# * Gain Items (or lose) 
# item_id : item ID 
# n : quantity 
#-------------------------------------------------------------------------- 
def gain_item(item_id, n) 
  gainitem_autosave(item_id, n) 
  AutoSave.save 
end 
#-------------------------------------------------------------------------- 
# * Gain Weapons (or lose) 
# weapon_id : weapon ID 
# n : quantity 
#-------------------------------------------------------------------------- 
def gain_weapon(weapon_id, n) 
  gainweap_autosave(weapon_id, n) 
  AutoSave.save 
end 
#-------------------------------------------------------------------------- 
# * Gain Armor (or lose) 
# armor_id : armor ID 
# n : quantity 
#-------------------------------------------------------------------------- 
def gain_armor(armor_id, n) 
  gainarmor_autosave(armor_id, n) 
  AutoSave.save 
end 
end 

#============================================================================== 
# ** Scene Change Map 
#------------------------------------------------------------------------------ 
# This Scene pop-ups when teleporting. 
#============================================================================== 
class Scene_Map 
alias autosavescript_changemap_main main 
#-------------------------------------------------------------------------- 
# * Main 
#-------------------------------------------------------------------------- 
def main 
  autosavescript_changemap_main 
  AutoSave.save 
end 
end 


출처: 게임공작소