Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Mog Scene_File Edit

This is a request to make it so that the Scene_load, and Scene_save have more than 3 slots in Mogs Scene_file script. Basically what I mean is, you can save and load over 3 files unlike the default. I'm not sure how to do this. I'm not sure if this has anything to do with having to edit Mogs script, but I would at least like to know how to do it. Here's Mogs Scene_File script.

Code:
#_______________________________________________________________________________
# MOG Scene File Ayumi V1.2           
#_______________________________________________________________________________
# By Moghunter  
# http://www.atelier-rgss.com
#_______________________________________________________________________________

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   
def nada
face = RPG::Cache.picture("")
end  
def draw_heroface3(actor,x,y)
face = RPG::Cache.picture(actor.name + "_fc3") rescue nada
cw = face.width 
ch = face.height 
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, face, src_rect)    
end  
def draw_actor_level6(actor, x, y)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 1, y + 1, 32, 32, "Lv")  
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, "Lv")
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 17, y + 1, 24, 32, actor.level.to_s, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 16, y, 24, 32, actor.level.to_s, 2)
end
def draw_actor_name6(actor, x, y)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 1, y + 1, 100, 32, actor.name,1)  
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 100, 32, actor.name,1)
end
end
############
# Game_Map #
############
class Game_Map
def map_name
@mapinfo = load_data("Data/MapInfos.rxdata") if @mapinfo == nil
return @mapinfo[@map_id].name
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
    self.contents.font.name = "Georgia"
    drw_win_file(0,190)
    name = "#{@file_index + 1}"
    self.contents.font.color = Color.new(0,0,0,255)
    self.contents.draw_text(161, 41, 600, 32, name)
    self.contents.font.color = Color.new(255,255,255,255)
    self.contents.draw_text(160, 40, 600, 32, name)    
    @name_width = contents.text_size(name).width
    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 = 300 - @characters.size + i * 64 - cw / 4
        self.contents.blt(x - 10, 150 - ch, bitmap, src_rect)
        x = 116
        actors = @game_party.actors
        for i in 0...[actors.size, 4].min
        x     = i * 60
        actor = actors[i]        
        self.contents.font.size = 20
        draw_actor_level6(actor, x + 280, 140)
        actor = actors[0]     
        draw_heroface3(actor,160,180)    
        draw_actor_name6(actor, 160, 155)
        self.contents.font.size = 22
        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.font.color = Color.new(0,0,0,255)
      self.contents.draw_text(5, 41, 450, 32, time_string, 2)
      self.contents.draw_text(41 , 141, 120 , 32, @game_map.map_name.to_s)
      self.contents.font.color = Color.new(255,255,255,255)
      self.contents.draw_text(40 , 140, 120 , 32, @game_map.map_name.to_s)  
      self.contents.draw_text(4, 40, 450, 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.PNG")
    @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
    @savefile_windows[0].x += 10    
    @savefile_windows[1].x -= 10
    @savefile_windows[2].x += 10
    for i in @savefile_windows
    i.contents_opacity -= 5
    end  
    Graphics.update  
    end      
    Graphics.freeze
    @help_window.dispose
    @mnback.dispose
    @mnlay.dispose
    for i in @savefile_windows
      i.dispose
    end
  end
  def update
    @mnback.ox += 1
    @win_opac += 3
    @win_move_time += 1    
    if @win_opac > 254
       @win_opac = 150
    end         
    if @win_move_time > 60
    @win_dire += 1
    @win_move_time = 0    
    end
    if @win_dire > 1
       @win_dire = 0
    end
    if @win_dire == 0
       @win_move += 1
    else   
       @win_move -= 1
    end         
    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

Also, this question is gonna sound really stupid,  :lol:, but how do you move the text("which file would you like to load/save?") up or down. The location it's currently in doesn't fit well.

~Thankyou
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top