赞 | 22 |
VIP | 917 |
好人卡 | 110 |
积分 | 218 |
经验 | 288474 |
最后登录 | 2022-10-15 |
在线时间 | 6925 小时 |
Lv5.捕梦者 (版主)
- 梦石
- 20
- 星屑
- 1840
- 在线时间
- 6925 小时
- 注册时间
- 2012-12-14
- 帖子
- 11485
|
- # --------------------------------------------------------------------
- class Scene_File
- #——最大存档数量,一般我认为最多50足够了,20比较合适
- SAVEFILE_MAX = 50
- # -------------------
- def initialize(help_text)
- @help_text = help_text
- end
- # -------------------
- def main
- @help_window = Window_Help.new
- @help_window.set_text(@help_text)
- @savefile_windows = []
- @cursor_displace = 0
- # @menu_com = Sprite.new
- # @menu_com.bitmap = RPG::Cache.picture("存档.png")
- for i in 0..3
- @savefile_windows.push(Window_SaveFile.new(i, make_filename(i), i))
- end
- @file_index = 0
- @savefile_windows[@file_index].selected = true
- Graphics.transition
- loop do
- Graphics.update
- Input.update
- update
- if $scene != self
- break
- end
- end
- Graphics.freeze
- # @menu_com.bitmap.dispose if @menu_com.bitmap
- # @menu_com.dispose
- @help_window.dispose
- for i in @savefile_windows
- i.dispose
- end
- end
- # -------------------
- def update
- @help_window.update
- for i in @savefile_windows
- i.update
- end
- if Input.trigger?(Input::C)
- on_decision(make_filename(@file_index))
- $game_temp.last_file_index = @file_index
- return
- end
- if Input.trigger?(Input::B)
- on_cancel
- return
- end
- if Input.repeat?(Input::DOWN)
- if Input.trigger?(Input::DOWN) or @file_index < SAVEFILE_MAX - 1
- if @file_index == SAVEFILE_MAX - 1
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- @cursor_displace += 1
- if @cursor_displace == 4
- @cursor_displace = 3
- for i in @savefile_windows
- i.dispose
- end
- @savefile_windows = []
- for i in 0..3
- f = i - 2 + @file_index
- name = make_filename(f)
- @savefile_windows.push(Window_SaveFile.new(f, name, i))
- @savefile_windows[i].selected = false
- end
- end
- $game_system.se_play($data_system.cursor_se)
- @file_index = (@file_index + 1)
- if @file_index == SAVEFILE_MAX
- @file_index = SAVEFILE_MAX - 1
- end
- for i in 0..3
- @savefile_windows[i].selected = false
- end
- @savefile_windows[@cursor_displace].selected = true
- return
- end
- end
- if Input.repeat?(Input::UP)
- if Input.trigger?(Input::UP) or @file_index > 0
- if @file_index == 0
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- @cursor_displace -= 1
- if @cursor_displace == -1
- @cursor_displace = 0
- for i in @savefile_windows
- i.dispose
- end
- @savefile_windows = []
- for i in 0..3
- f = i - 1 + @file_index
- name = make_filename(f)
- @savefile_windows.push(Window_SaveFile.new(f, name, i))
- @savefile_windows[i].selected = false
- end
- end
- $game_system.se_play($data_system.cursor_se)
- @file_index = (@file_index - 1)
- if @file_index == -1
- @file_index = 0
- end
- for i in 0..3
- @savefile_windows[i].selected = false
- end
- @savefile_windows[@cursor_displace].selected = true
- return
- end
- end
- end
- # -------------------
- def make_filename(file_index)
- return "Save#{file_index + 1}.rxdata"
- end
- # -------------------
- end
- class Window_SaveFile < Window_Base
- # -------------------
- def initialize(file_index, filename, position)
- y = 64 + position * 104
- super(0, y, 640, 104)
- self.contents = Bitmap.new(width - 32, height - 32)
- self.opacity = 0
- @file_index = file_index
- @filename = "Save#{@file_index + 1}.rxdata"
- @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
- end
复制代码 因为这个脚本在主站就能搜索到。
好吧,伸手是不对的,下不为例。
|
评分
-
查看全部评分
|