MOG Scene File Ayumi V1.2 [Reinvisioned Version]

30 de junho de 2014
MOG Scene File Ayumi V1.2 [Reinvisioned Version]

MOG Scene File Ayumi é ainda mais outro script de menu com movimento e layout que utiliza pictures, também desenvolvido pelo Moghunter, para ser utilizado em algum jogo ou projeto do RPG Maker XP.

Ao contrário de vários outros sistemas de menus, o foreground, background e praticamente todos os detalhes dos menus são criados com figuras salvas na pasta Graphics\Pictures.

Screenshot

MOG Scene File Ayumi

Características Em Relação A Outras Versões

  • Uma configuração mais elaborada com todas definições comentadas.
  • Nomes de arquivo para os gráficos do menu são salvos na seção de configuração e não presos ao código.
  • Outras classes existentes por padrão são reusadas, ao invés de criadas novas, possibilitando maior compatibilidade com outros scripts.

Utilização

Para nomear as Faces dos personagens, renomeie os arquivos da seguinte forma: Aluxes_FC3.png.

Ou seja, coloque o nome do personagem mais o sufixo _FC3 (o que apresentará a Face do personagem ID1.).

Convém baixar a demo para pegar as pictures e entender melhor o funcionamento do script.

Código

#==============================================================================
# ** MOG Scene File Ayumi V1.2
#     By Moghunter  
#     http://www.atelier-rgss.com
#------------------------------------------------------------------------------
# ** Reinvisioned version
#    
#    This variant has retooled the MOG module by adding more configurables for
#    the user.  No longer are the graphics hardwired into the code but are now
#    able to be altered in the revised configuration serction.
#
#    Also,  a few redundant modules  have been deleted  for compatability with
#    other systems.  Please note that this system 'does' rewrite the save file
#    structure,  so systems that append to the save file may need to be edited
#    for use with this script.
#==============================================================================
  

module MOG
  
  # BASIC MENU CONFIGURATION
    # File Graphics Used  
      FILE_LAYOUT     = "Layout-File"     # File Menu Graphics
      FILE_BACKGROUND = "Back-Other"      # Animated background graphic  
      FILE_STATUS     = "Status-File"     # File Window Graphic
      FACE_LARGE      = "_Fl"             # Suffix for large face graphics
    # File Effects
      FILE_MOVE_FX    = false             # If savefile moves side-to-side
      FILE_OPACITY_FX = false             # If savefile changes opacity
    # Menu 
      FILE_FX         = 0                 # Back FX (0=Moving/ 1=Still/ 2=Map)
      FILE_TRAN_TIME  = 20                # Transition Time
      FILE_TRAN_TYPE  = "004-Blind04"     # Transition Type (Name)
    # Font Used
      FILE_FONT       = "Georgia"         # Font used in file menu  
      
end

# Mogscript global
$mogscript = {} if $mogscript == nil
$mogscript["menu_ayumi"] = true



#==============================================================================
# ** Game_Map
#------------------------------------------------------------------------------
#  This class handles the map. It includes scrolling and passable determining
#  functions. Refer to "$game_map" for the instance of this class.
#==============================================================================

class Game_Map
  #--------------------------------------------------------------------------
  # * Get Map Name
  #--------------------------------------------------------------------------  
  def map_name
    @mapinfo = load_data("Data/MapInfos.rxdata") if @mapinfo == nil
    return @mapinfo[@map_id].name
  end
end



#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
#  This class is for all in-game windows.
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # * Draw File Window
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate  
  #--------------------------------------------------------------------------    
  def drw_win_file(x, y)
    dwf = RPG::Cache.picture(MOG::FILE_STATUS)
    cw = dwf.width 
    ch = dwf.height 
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x , y - ch, dwf, src_rect)    
  end   
  #--------------------------------------------------------------------------
  # * Draw Empty Face
  #--------------------------------------------------------------------------  
  def nada
    face = RPG::Cache.picture("")
  end    
  #--------------------------------------------------------------------------
  # * Draw Face #3 (Larger face)
  #     actor : actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #--------------------------------------------------------------------------  
  def draw_heroface3(actor, x, y)
    face = RPG::Cache.picture(actor.name + MOG::FACE_LARGE) 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   
  #--------------------------------------------------------------------------
  # * Draw Actor Level #6
  #     actor : actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #--------------------------------------------------------------------------   
  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
  #--------------------------------------------------------------------------
  # * Draw Actor Name #6
  #     actor : actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #--------------------------------------------------------------------------  
  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



#==============================================================================
# ** Window_SaveFile
#------------------------------------------------------------------------------
#  This window displays save files on the save and load screens.
#==============================================================================

class Window_SaveFile < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     file_index : save file index (0-3)
  #     filename   : file name
  #--------------------------------------------------------------------------  
  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 = "[email protected]_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  
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------  
  def refresh
    self.contents.clear
    self.contents.font.name = MOG::FILE_FONT
    drw_win_file(0,190)
    name = "[email protected]_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
  #--------------------------------------------------------------------------
  # * Set Selected
  #     selected : new selected (true = selected, false = unselected)
  #-------------------------------------------------------------------------- 
  def selected=(selected)
    @selected = selected
  end
end



#==============================================================================
# ** Scene_Save
#------------------------------------------------------------------------------
#  This class performs save screen processing.
#==============================================================================

class Scene_Save < Scene_File   #--------------------------------------------------------------------------   # * Object Initialization   #--------------------------------------------------------------------------   alias mog_init initialize   def initialize     mog_init     $mog_scene_filesave_flag = 1   end end #============================================================================== # ** Scene_File #------------------------------------------------------------------------------ #  This is a superclass for the save screen and load screen. #============================================================================== class Scene_File   #--------------------------------------------------------------------------   # * Main Processing   #--------------------------------------------------------------------------     def main     if $mog_scene_filesave_flag != 1       @mnback = Plane.new       @mnback.bitmap = RPG::Cache.picture(MOG::FILE_BACKGROUND)       @mnback.z = 1           else       if MOG::FILE_FX == 0         @mnback = Plane.new         @mnback.bitmap = RPG::Cache.picture(MOG::FILE_BACKGROUND)         @mnback.z = 1       elsif MOG::FILE_FX == 1         @mnback = Plane.new         @mnback.bitmap = RPG::Cache.picture(MOG::FILE_BACKGROUND)         @mnback.z = 1       else         @spriteset = Spriteset_Map.new       end     end     @mnlay = Sprite.new     @mnlay.bitmap = RPG::Cache.picture(MOG::FILE_LAYOUT)     @mnlay.z = 2     @help_window = Window_Help.new     @help_window.set_text(@help_text)     @help_window.opacity = 0     @savefile_windows = []     @cursor_displace = 0     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     unless MOG::FILE_FX == 2       Graphics.transition(MOG::FILE_TRAN_TIME, "Graphics/Transitions/" +          MOG::FILE_TRAN_TYPE)     else       Graphics.transition     end     loop do       Graphics.update       Input.update       update       if $scene != self         break       end     end     for i in 0..50       @mnback.ox += 1 if MOG::FILE_FX == 0       @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 if MOG::FILE_FX == 0     @mnback.dispose if MOG::FILE_FX == 1     @mnback.dispose if MOG::FILE_FX == 2 && $mog_scene_filesave_flag != 1     @spriteset.dispose if MOG::FILE_FX == 2 && $mog_scene_filesave_flag == 1     $mog_scene_filesave_flag = 0     @mnlay.dispose     for i in @savefile_windows ; i.dispose ; end   end   #--------------------------------------------------------------------------   # * Frame Update   #--------------------------------------------------------------------------       def update     @mnback.ox += 1 if MOG::FILE_FX == 0     if MOG::FILE_OPACITY_FX       @win_opac += 3       @win_opac = 150 if @win_opac > 254
    else
      @win_opac = 255
    end
    @win_move_time += 1    
    if @win_move_time > 60
      @win_dire += 1
      @win_move_time = 0    
    end
    @win_dire = 0 if @win_dire > 1
    if @win_dire == 0
       @win_move += 1
    else   
       @win_move -= 1
    end         
    # Update File Windows
    update_window_z
    update_moving_window if MOG::FILE_MOVE_FX 
    update_window_opacity
    @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
  #--------------------------------------------------------------------------
  # * Frame Update (Reposition File Window)
  #-------------------------------------------------------------------------- 
  def update_window_z
    if @file_index == 0
      @savefile_windows[0].z = 2  
      @savefile_windows[1].z = 1 
      @savefile_windows[2].z = 0        
    elsif @file_index == 1
      @savefile_windows[0].z = 1  
      @savefile_windows[1].z = 2 
      @savefile_windows[2].z = 1        
    else
      @savefile_windows[0].z = 0  
      @savefile_windows[1].z = 1 
      @savefile_windows[2].z = 2        
    end      
  end  
  #--------------------------------------------------------------------------
  # * Frame Update (Moving File Window)
  #-------------------------------------------------------------------------- 
  def update_moving_window
    if @file_index == 0
      @savefile_windows[0].x = @win_move 
      @savefile_windows[1].x = 0 
      @savefile_windows[1].x = 0
      @savefile_windows[2].x = 0    
    elsif @file_index == 1
      @savefile_windows[0].x = 0 
      @savefile_windows[1].x = @win_move 
      @savefile_windows[2].x = 0     
    else
      @savefile_windows[0].x = 0 
      @savefile_windows[1].x = 0 
      @savefile_windows[2].x = @win_move  
    end      
  end
  #--------------------------------------------------------------------------
  # * Frame Update (File Window Opacity)
  #--------------------------------------------------------------------------   
  def update_window_opacity
    if @file_index == 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].contents_opacity =   130
      @savefile_windows[1].contents_opacity =   @win_opac
      @savefile_windows[2].contents_opacity =   130
    else
      @savefile_windows[0].contents_opacity =   130
      @savefile_windows[1].contents_opacity =   130
      @savefile_windows[2].contents_opacity =   @win_opac    
    end    
  end
end
site ou autor do arquivo Moghunter tamanho do arquivo 1,43MB licencaGrátis sistemas operacionais compativeisWindows 98/98SE/Me/2000/XP/Vista/7 Download

Deixe um comentário

  • Seja social e nos siga!

           
  • Páginas

  • Tags Especiais

  • Categorias

  • Parceiros

  • eXTReMe Tracker
    Copyright © 2001 - 2017 Gaming Room. Todos os Direitos Reservados - É expressamente proibida a reprodução total ou parcial deste site sem o consentimento dos autores.