세이브 파일 개수 조정 (RPG VX용)
◆게임 창작 관련/코드, 스크립트 :: 2015. 9. 7. 15:02RPG VX에서 기본 제공되는 세이브 엔진은 게임당 4개의 세이브 파일을 지원합니다.
하지만 스크립트를 고치면 RPG VX Ace처럼 16개로 설정할 수도 있습니다.
16개 뿐만 아니라 32개나 64개도 가능합니다.
다음 스크립트를 복사해서 스크립트창(F11)의 '▼ 소재(Materials)' 부분 밑에 새 스크립트를 추가해 붙여넣기하시면 됩니다.
# Adjust Max Savefiles for RMVX v1.0 # RPG 만들기 VX에서 세이브 파일 개수를 조정할 수 있습니다. # # 만든이: 家和萬事成 # http://parkjuwan.tistory.com # # 기본 스크립트를 약간 수정하였습니다. class Scene_File < Scene_Base #최대 세이브 파일 개수 MAX_SAVE_FILES = 16 #default: 4 #[주의!] 최대 세이브 파일 개수는 반드시 4의 배수로 설정해 주세요. #4의 배수가 아닐 경우 오류가 발생합니다. #-------------------------------------------------------------------------- # Start processing #-------------------------------------------------------------------------- def start super 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 j = MAX_SAVE_FILES - 1 for i in 0..j if (@index / 4).floor != (i / 4).floor @savefile_windows[i].visible = false end end end #-------------------------------------------------------------------------- # Create Save File Window #-------------------------------------------------------------------------- def create_savefile_windows @savefile_windows = [] j = MAX_SAVE_FILES - 1 for i in 0..j @savefile_windows.push(Window_SaveFile.new(i, make_filename(i))) end @item_max = MAX_SAVE_FILES end #-------------------------------------------------------------------------- # Update Save File Window #-------------------------------------------------------------------------- def update_savefile_selection if Input.trigger?(Input::C) determine_savefile elsif Input.trigger?(Input::B) Sound.play_cancel return_scene else last_index = @index if Input.repeat?(Input::DOWN) cursor_down(Input.trigger?(Input::DOWN)) end if Input.repeat?(Input::UP) cursor_up(Input.trigger?(Input::UP)) end if Input.repeat?(Input::R) cursor_down(Input.trigger?(Input::DOWN)) cursor_down(Input.trigger?(Input::DOWN)) cursor_down(Input.trigger?(Input::DOWN)) cursor_down(Input.trigger?(Input::DOWN)) end if Input.repeat?(Input::L) cursor_up(Input.trigger?(Input::UP)) cursor_up(Input.trigger?(Input::UP)) cursor_up(Input.trigger?(Input::UP)) cursor_up(Input.trigger?(Input::UP)) end if @index != last_index Sound.play_cursor @savefile_windows[last_index].selected = false @savefile_windows[@index].selected = true if (@index / 4).floor != (last_index / 4).floor ii = (@index / 4).floor * 4 jj = (last_index / 4).floor * 4 for i in 0..3 @savefile_windows[ii+i].visible = true @savefile_windows[jj+i].visible = false end end end end end #-------------------------------------------------------------------------- # Create Filename # file_index : save file index (0-15) #-------------------------------------------------------------------------- def make_filename(file_index) return "Save" + sprintf("%02d", file_index + 1) + ".rvdata" end end
이 방법은 RPG VX에서만 가능합니다. RPG VX Ace의 경우는 맞게 바꾼 스크립트가 별도로 있습니다. [바로가기]
또한, 독자적인 세이브 엔진을 사용하는 경우 이 스크립트를 사용하지 않는 것을 권장합니다.
이 스크립트를 적용하기 전에 저장한 세이브 파일은 숫자 앞에 0을 붙이는 것으로 이름을 바꾸면 제대로 읽을 수 있습니다.
(예: Save1.rvdata → Save01.rvdata)
적용할 경우 아래 스샷처럼 됩니다.
예제 파일은 다음과 같습니다.
스크립트만 추출한 파일은 다음과 같습니다.