Hi guys my game is splitted in 6 chapters. When the player will start a new chapter a switch will be enabled! So in my scene save/load i want to show the proper chapter name!
#_______________________________________________________________________________
# MOG Scene File Ayumi V1.0
#_______________________________________________________________________________
# By Moghunter
#_______________________________________________________________________________
if true # True = Enable / False = Disable (Script)
module MOG
#Transition Time.
MSVT = 30
#Transition Type.
MSVTT = "006-Stripe02"
end
$mogscript = {} if $mogscript == nil
$mogscript["menu_ayumi"] = true
###############
# Window_Base #
###############
class Window_Base < Window
def drw_win_file(x,y)
dwf = RPG::Cache.picture("Win_File")
cw = dwf.width
ch = dwf.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, dwf, src_rect)
end
end
###################
# Window_SaveFile #
###################
class Window_SaveFile < Window_Base
attr_reader :filename
attr_reader :selected
def initialize(file_index, filename)
super(0, 64 + file_index * 138, 640, 240)
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)
@game_self_switches = Marshal.load(file)
@game_screen = Marshal.load(file)
@game_actors = Marshal.load(file)
@game_party = Marshal.load(file)
@game_troop = Marshal.load(file)
@game_map = Marshal.load(file)
@total_sec = @frame_count / Graphics.frame_rate
file.close
end
@wiref = 0
refresh
@selected = false
end
def refresh
self.contents.clear
drw_win_file(0,190)
name = "Page" + "#{@file_index + 1}"#nome page
self.contents.draw_text(338, 23, 600, 32, name) #position of page
self.contents.draw_text(337, 22, 600, 32, name) #position of page
@name_width = contents.text_size(name).width
if @game_switches[820]
chapter = "Chapter 1: Hellish Destiny"
self.contents.draw_text(338, 58, 600, 32, chapter) #position of CHAPTER
self.contents.draw_text(337, 57, 600, 32, chapter) #position of CHAPTER
@chapter_width = contents.text_size(chapter).width
else if @game_switches[821]
chapter = "Chapter 2: The ''Amazon Stones''"
self.contents.draw_text(338, 58, 600, 32, chapter) #position of CHAPTER
self.contents.draw_text(337, 57, 600, 32, chapter) #position of CHAPTER
@chapter_width = contents.text_size(chapter).width
else if @game_switches[822]
chapter = "Chapter 3: Dreams In Danger"
self.contents.draw_text(338, 58, 600, 32, chapter) #position of CHAPTER
self.contents.draw_text(337, 57, 600, 32, chapter) #position of CHAPTER
@chapter_width = contents.text_size(chapter).width
else if @game_switches[823]
chapter = "Chapter 4: Struggle For The Galaxy"
self.contents.draw_text(338, 58, 600, 32, chapter) #position of CHAPTER
self.contents.draw_text(337, 57, 600, 32, chapter) #position of CHAPTER
@chapter_width = contents.text_size(chapter).width
else if @game_switches[824]
chapter = "Chapter 5: The Last Battle"
self.contents.draw_text(338, 58, 600, 32, chapter) #position of CHAPTER
self.contents.draw_text(337, 57, 600, 32, chapter) #position of CHAPTER
@chapter_width = contents.text_size(chapter).width
else if @game_switches[825]
chapter = "Chapter 6: Ami's First Love"
self.contents.draw_text(338, 58, 600, 32, chapter) #position of CHAPTER
self.contents.draw_text(337, 57, 600, 32, chapter) #position of CHAPTER
@chapter_width = contents.text_size(chapter).width
end
end
end
end
end
end
if @file_exist
for i in 0...@characters.size
bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
cw = bitmap.rect.width / 4
ch = bitmap.rect.height / 4
src_rect = Rect.new(cw * @wiref + 1 , 0, cw, ch)
x = 360 - @characters.size + i * 32 - cw / 4 #position of sailor
self.contents.blt(x - 10, 135 - ch, bitmap, src_rect) #135altezza sailor
x = 116
actors = @game_party.actors
for i in 0...[actors.size, 5].min
x = i * 60
actor = actors[i]
end
end
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.draw_text(5, 41, 397, 32, time_string, 2)
self.contents.draw_text(4, 40, 397, 32, time_string, 2)
end
end
def selected=(selected)
@selected = selected
end
end
##############
# Scene_File #
##############
class Scene_File
def initialize(help_text)
@help_text = help_text
end
def main
@mnback = Plane.new
@mnback.bitmap = RPG::Cache.picture("MN_BK")
@mnback.z = 1
@mnlay = Sprite.new
@mnlay.bitmap = RPG::Cache.picture("Lay_File")
@mnlay.z = 2
@help_window = Window_Help.new
@help_window.set_text(@help_text)
@help_window.opacity = 0
@savefile_windows = []
for i in 0..2
@savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
end
@savefile_windows[0]
@file_index = $game_temp.last_file_index
@savefile_windows[@file_index].selected = true
@savefile_windows[0].y = 40
@savefile_windows[1].y= 140
@savefile_windows[2].y= 240
@win_move_time = 0
@win_move = 0
@win_dire = 0
@win_opac = 255
@win1_y = 0
@win2_y = 0
@win3_y = 0
Graphics.transition(MOG::MSVT, "Graphics/Transitions/" + MOG::MSVTT)
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
for i in 0..50
@mnback.ox += 1
Graphics.update
end
Graphics.freeze
@help_window.dispose
@mnback.dispose
@mnlay.dispose
for i in @savefile_windows
i.dispose
end
end
def update
if @file_index == 0
@savefile_windows[0].z = 2
@savefile_windows[1].z = 1
@savefile_windows[2].z = 0
@savefile_windows[0].x = @win_move
@savefile_windows[1].x = 0
@savefile_windows[1].x= 0
@savefile_windows[2].x = 0
@savefile_windows[0].contents_opacity = @win_opac
@savefile_windows[1].contents_opacity = 130
@savefile_windows[2].contents_opacity = 130
elsif @file_index == 1
@savefile_windows[0].z = 1
@savefile_windows[1].z = 2
@savefile_windows[2].z = 1
@savefile_windows[0].x = 0
@savefile_windows[1].x = @win_move
@savefile_windows[2].x = 0
@savefile_windows[0].contents_opacity = 130
@savefile_windows[1].contents_opacity = @win_opac
@savefile_windows[2].contents_opacity = 130
else
@savefile_windows[0].z = 0
@savefile_windows[1].z = 1
@savefile_windows[2].z = 2
@savefile_windows[0].x = 0
@savefile_windows[1].x = 0
@savefile_windows[2].x = @win_move
@savefile_windows[0].contents_opacity = 130
@savefile_windows[1].contents_opacity = 130
@savefile_windows[2].contents_opacity = @win_opac
end
@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 < 3
$game_system.se_play($data_system.cursor_se)
@savefile_windows[@file_index].selected = false
@file_index = (@file_index + 1) % 3
@savefile_windows[@file_index].selected = true
return
end
end
if Input.repeat?(Input::UP)
if Input.trigger?(Input::UP) or @file_index > 0
$game_system.se_play($data_system.cursor_se)
@savefile_windows[@file_index].selected = false
@file_index = (@file_index - 1) % 3
@savefile_windows[@file_index].selected = true
return
end
end
end
def make_filename(file_index)
return "Save#{file_index + 1}.rxdata"
end
end
end