ProjectMeLT XRXS - 5-6 Character Menu
#1
ProjectMeLT XRXS

from

http://xrxs.at-ninja.jp/MeLT.htm





Introduction


Firstly this is not my script! A friend of mine referred me to a handy script to enable a 5 to 6 character menu (as opposed to the standard 4 characters). I thought I would share it here as many many people here have helped me with scripting problems in the past.

The author's site is here: http://xrxs.at-ninja.jp/MeLT.htm



Instructions

The main menu layout template referred to as "Main Module XRXS_MeLT" goesafter all standard RPG Maker Scripts (1st custom script).

Menu screen layouts are handled by plugins - include only one plugin type A and one plugin Type B with any combinations of plugin types C.



Code

All available from the author's site but for quick reference see below:

Main Module
Code:
# ¥£¥ MeLT.ƒƒjƒ…[ƒŒƒCƒAƒEƒgƒeƒ“ƒvƒŒ[ƒg ¥£¥
#
# update 2007/ 7/22
#
#==============================================================================
# ƒJƒXƒ^ƒ}ƒCƒYƒ|ƒCƒ“ƒg
#==============================================================================
module XRXS_MeLT
  #
  # •\Ž¦ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“
  #
  TRANS_TIME = 8
  TRANS_NAME = "" #"Graphics/Transitions/013-Square01"
  # [ƒƒjƒ…[ƒRƒ}ƒ“ƒh]
  COMMANDS = [
    "ƒAƒCƒeƒ€",   Scene_Item,
    "ƒXƒLƒ‹",     Scene_Skill,
    "‘•”õ",       Scene_Equip,
    "ƒXƒe[ƒ^ƒX", Scene_Status,
    "ƒZ[ƒu",     Scene_Save,
    "ƒQ[ƒ€I—¹", Scene_End
  ]
  # ƒAƒNƒ^[‘I‘ð‚ð—p‚¢‚È‚¢ƒV[ƒ“
  ACTOR_INDEX_DISADAPTED = [Scene_Item, Scene_Save, Scene_End]
  #
  # ƒJ[ƒ\ƒ‹ƒtƒ@ƒCƒ‹–¼ (Windowskin)
  #
  CURSOR_SKIN  = "MenuCursor"
  CURSOR_SKIN2 = "MenuCursor2"
  #
  # ”wŒiÝ’è
  #
  USE_MAP    = true      # ”wŒi‚Ƀ}ƒbƒv‚ð•\Ž¦
  BG_TITLE  = "MenuBack" # ”wŒi‰æ‘œ (Titles)
  B_OPACITY = 160        # ”wŒi•s“§–¾“x
  #
  # ƒTƒCƒhƒRƒ}ƒ“ƒh
  #
  SIDE_KEY   = nil          # Input::RIGHT ‚Ȃǁ@ƒL[Žw’è‚Å—LŒøBnil‚Å–³Œø‰»
  SIDE_SCENE = nil          # nil ‚Ńp[ƒeƒB“ü‚ê‘Ö‚¦, ƒV[ƒ“‚àŽw’è‰Â
  #
  # [ƒAƒNƒ^[—§‚¿ŠGƒtƒ@ƒCƒ‹–¼]
  #  ( ƒAƒNƒ^[ID=>ƒtƒ@ƒCƒ‹–¼ ƒnƒbƒVƒ…
  #     —áF2=>"Stand_2", ‚È‚Ç)
  #
  STAND_NAMES = {
    
  }
end
#==============================================================================
# —§‚¿ŠGƒtƒ@ƒCƒ‹–¼‚̎擾
#==============================================================================
class Game_Actor < Game_Battler
  def stand_name
    return XRXS_MeLT::STAND_NAMES[self.id].to_s
  end
end
#==============================================================================
# ƒƒjƒ…[ƒJ[ƒ\ƒ‹ˆêŽž‹L‰¯ / MeLTÝ’è
#==============================================================================
class Game_Temp
  attr_accessor :menu_index
end
module XRXS_MeLT
  # ƒƒjƒ…[ƒRƒ}ƒ“ƒh@ƒV[ƒ“/•¶Žš
  def self.commands
    set = []
    for i in 0...COMMANDS.size/2
      set.push(COMMANDS[i * 2 + 1])
    end
    return set
  end
  def self.captions
    set = []
    for i in 0...COMMANDS.size/2
      set.push(COMMANDS[i * 2])
    end
    return set
  end
end
#==============================================================================
# --- ƒƒjƒ…[ƒŒƒCƒAƒEƒg Šg’£’è‹` ---
#==============================================================================
class Scene_Menu
  #--------------------------------------------------------------------------
  # › ƒEƒBƒ“ƒhƒE‚̍쐬
  #--------------------------------------------------------------------------
  def make_windows #
    @bg_sprite = Spriteset_Map.new if XRXS_MeLT::USE_MAP
    sprite = Sprite.new
    sprite.bitmap = RPG::Cache.title(XRXS_MeLT::BG_TITLE)
    sprite.z = 1
    sprite.opacity = XRXS_MeLT::B_OPACITY
    @sprites.push(sprite)
  end
  def dispose_windows
    @bg_sprite.dispose if @bg_sprite != nil
  end
end
#==============================================================================
# ¡ Scene_Menu
#==============================================================================
class Scene_Menu
  #--------------------------------------------------------------------------
  # œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = $game_temp.menu_index.to_i
  end
  #--------------------------------------------------------------------------
  # œ ƒƒCƒ“ˆ—
  #--------------------------------------------------------------------------
  def main
    # ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðì¬
    @command_window = Window_MenuCommand.new
    @command_window.index = @menu_index
    # ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðì¬
    @status_window = Window_MenuStatus.new
    # ‰Šú‰»
    @slideout_count= 0
    @next_scene_actor_index = nil
    # ƒJ[ƒ\ƒ‹‚̍쐬
    @cursor2 = Sprite_MenuCursor.new(XRXS_MeLT::CURSOR_SKIN2)
    @cursor2.visible = false
    @cursor  = Sprite_MenuCursor.new(XRXS_MeLT::CURSOR_SKIN)
    @sprites = [@cursor2, @cursor]
    # ƒEƒBƒ“ƒhƒE‚ðì¬
    @windows = []
    @windows.push(@command_window)
    @windows.push(@status_window)
    make_windows
    # ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ŽÀs
    Graphics.transition(XRXS_MeLT::TRANS_TIME, XRXS_MeLT::TRANS_NAME)
    # ƒƒCƒ“ƒ‹[ƒv
    loop do
      # ƒQ[ƒ€‰æ–Ê‚ðXV
      Graphics.update
      # “ü—͏î•ñ‚ðXV
      Input.update
      # ƒtƒŒ[ƒ€XV
      update
      # ‰æ–Ê‚ªØ‚è‘Ö‚í‚Á‚½‚烋[ƒv‚ð’†’f
      if $scene != self
        break
      end
    end
    # ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“€”õ
    Graphics.freeze
    # ƒEƒBƒ“ƒhƒE‚ð‰ð•ú
    @windows.each{|window| window.dispose }
    @sprites.each{|sprite| sprite.dispose }
    dispose_windows
  end
  #--------------------------------------------------------------------------
  # œ ƒtƒŒ[ƒ€XV
  #--------------------------------------------------------------------------
  def update
    # ƒEƒBƒ“ƒhƒE‚ðXV
    @windows.each{|window| window.update }
    # ƒAƒNƒeƒBƒu‚ȃEƒBƒ“ƒhƒE‚ðŒŸõ
    active_window = nil
    for window in @windows
      if window.active
        active_window = window
        break
      end
    end
    # ƒJ[ƒ\ƒ‹ˆÊ’u‚̍XV
    @cursor.visible = (active_window != nil)
    if active_window != nil
      cursor_dx = active_window.x + active_window.cursor_rect.x
      cursor_dy = active_window.y + active_window.cursor_rect.y + active_window.cursor_rect.height / 2
      distance_x = (cursor_dx - @cursor.x)
      distance_y = (cursor_dy - @cursor.y)
      speed = 24
      if distance_x.abs <= speed
        @cursor.x = cursor_dx
      else
        sign = (distance_x >= 0 ? 1 : -1)
        @cursor.x += speed * sign
      end
      if distance_y.abs <= speed
        @cursor.y = cursor_dy
      else
        sign = (distance_y >= 0 ? 1 : -1)
        @cursor.y += speed * sign
      end
      @cursor.visible = false if active_window.index == -1
    end
    # ƒXƒ‰ƒCƒhƒAƒEƒg
    if @slideout_count > 0
      @slideout_count -= 1
      if @slideout_count == 0
        # ‰æ–Ê‚ðØ‚è‘Ö‚¦
        if @next_scene_actor_index == nil
          $scene = @slideout_next_scene.new
        else
          $scene = @slideout_next_scene.new(@next_scene_actor_index)
        end
      end
      return
    end
    # ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ: update_command ‚ðŒÄ‚Ô
    if @command_window.active
      update_command
      return
    end
    # ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ: update_status ‚ðŒÄ‚Ô
    if @status_window.active
      update_status
      return
    end
  end
  #--------------------------------------------------------------------------
  # œ ƒtƒŒ[ƒ€XV (ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ)
  #--------------------------------------------------------------------------
  def update_command
    # B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
    if Input.trigger?(Input::B)
      # ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
      $game_system.se_play($data_system.cancel_se)
      #
      @windows.each{|window| window.slideout! }
      @slideout_count = 8
      @slideout_next_scene = Scene_Map
      $game_temp.menu_index = 0
      return
    end
    # C ƒ{ƒ^ƒ“‚©ƒTƒCƒhƒL[‚ª‰Ÿ‚³‚ꂽê‡
    if Input.trigger?(Input::C) or
      (XRXS_MeLT::SIDE_KEY != nil and Input.trigger?(XRXS_MeLT::SIDE_KEY))
      # ƒp[ƒeƒBl”‚ª 0 l‚ŁAƒZ[ƒuAƒQ[ƒ€I—¹ˆÈŠO‚̃Rƒ}ƒ“ƒh‚̏ꍇ
      if $game_party.actors.size == 0 and @command_window.index < 4
        # ƒuƒU[ SE ‚ð‰‰‘t
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # ‰Ÿ‚³‚ꂽƒL[‚É‚æ‚Á‚ăV[ƒ“‚ðŽæ“¾
      if Input.trigger?(Input::C)
        scene = XRXS_MeLT.commands[@command_window.index]
      else
        scene = XRXS_MeLT::SIDE_SCENE
        index = XRXS_MeLT.commands.index(XRXS_MeLT::SIDE_SCENE)
        @command_window.index = index == nil ? -1 : index
      end
      # ƒp[ƒeƒB“ü‚ê‘Ö‚¦‚̏ꍇ
      if scene == nil
        # Œˆ’è SE ‚ð‰‰‘t
        $game_system.se_play($data_system.decision_se)
        # ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é
        @command_window.active = false
        @command_window.decide!
        @status_window.active = true
        @status_window.index = 0
        return
      end
      # ƒZ[ƒu‹ÖŽ~‚̏ꍇ
      if scene == Scene_Save and $game_system.save_disabled
        # ƒuƒU[ SE ‚ð‰‰‘t
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Žw’èƒV[ƒ“‚ւ̐؂è‘Ö‚¦
      if not XRXS_MeLT::ACTOR_INDEX_DISADAPTED.include?(scene)
        # Œˆ’è SE ‚ð‰‰‘t
        $game_system.se_play($data_system.decision_se)
        # ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é
        @command_window.active = false
        @command_window.decide!
        @status_window.active = true
        @status_window.index = 0
      elsif scene != nil
        # Œˆ’è  SE ‚ð‰‰‘t
        $game_system.se_play($data_system.decision_se)
        # ƒƒjƒ…[ƒCƒ“ƒfƒbƒNƒX‚Ì•ÛŽ
        $game_temp.menu_index = @command_window.index
        # ‰æ–Ê‚ðØ‚è‘Ö‚¦
        @windows.each{|window| window.slideout! }
        @slideout_count = 8
        @slideout_next_scene = scene
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # œ ƒtƒŒ[ƒ€XV (ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ªƒAƒNƒeƒBƒu‚̏ꍇ)
  #--------------------------------------------------------------------------
  def update_status
    # B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
    if Input.trigger?(Input::B)
      # ƒLƒƒƒ“ƒZƒ‹ SE ‚ð‰‰‘t
      $game_system.se_play($data_system.cancel_se)
      #
      if @status_window.index2 == -1
        # ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é
        @command_window.active = true
        @command_window.cancel!
        @command_window.index = 0 if @command_window.index == -1
        @status_window.active = false
        @status_window.index = -1
        @next_scene_actor_index = nil
      else
        @status_window.index = @status_window.index2
        @status_window.index2 = -1
        @cursor2.visible = false
      end
      return
    end
    # C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
    if Input.trigger?(Input::C)
      # Žw’肳‚ꂽƒV[ƒ“‚̎擾
      scene = @command_window.index == -1 ? nil : XRXS_MeLT.commands[@command_window.index]
      # nil ‚È‚ç‚΃ƒjƒ…[‚ł̃ƒ“ƒo[“ü‚ê‘Ö‚¦
      if scene == nil
        # Œˆ’è  SE ‚ð‰‰‘t
        $game_system.se_play($data_system.decision_se)
        if @status_window.index2 == -1
          @status_window.index2 = @status_window.index
          @cursor2.x = @status_window.x + @status_window.cursor_rect.x
          @cursor2.y = @status_window.y + @status_window.cursor_rect.y + @status_window.cursor_rect.height / 2
          @cursor2.visible = true
        else
          @cursor2.visible = false
          # ƒƒ“ƒo[‚Ì“ü‚ê‘Ö‚¦“ñl–Ú‚ÌŒˆ’è‚Æ“ü‚ê‘Ö‚¦‚ÌŽÀs
          actor2 = $game_party.actors[@status_window.index]
          actor = $game_party.actors[@status_window.index2]
          $game_party.actors[@status_window.index2] = actor2
          $game_party.actors[@status_window.index] = actor
          @status_window.index = @status_window.index2
          @status_window.index2 = -1
          # ƒvƒŒƒCƒ„[‚ðƒŠƒtƒŒƒbƒVƒ…
          $game_player.refresh
          # ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒŠƒtƒŒƒbƒVƒ…
          @status_window.refresh
        end
        return
      end
      # ‚±‚̃AƒNƒ^[‚̍s“®§ŒÀ‚ª 2 ˆÈã‚̏ꍇ
      if scene == Scene_Skill and $game_party.actors[@status_window.index].restriction >= 2
        # ƒuƒU[ SE ‚ð‰‰‘t
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      @next_scene_actor_index = @status_window.index
      # Œˆ’è  SE ‚ð‰‰‘t
      $game_system.se_play($data_system.decision_se)
      # ƒƒjƒ…[ƒCƒ“ƒfƒbƒNƒX‚Ì•ÛŽ
      $game_temp.menu_index = @command_window.index
      # ‰æ–Ê‚ðØ‚è‘Ö‚¦
      @windows.each{|window| window.slideout! }
      @slideout_count = 8
      @slideout_next_scene = scene
      return
    end
  end
end
#==============================================================================
# --- ƒJ[ƒ\ƒ‹ƒXƒvƒ‰ƒCƒg ---
#==============================================================================
class Sprite_MenuCursor < Sprite
  def initialize(skin)
    super()
    self.bitmap = RPG::Cache.windowskin(skin)
    self.ox = self.bitmap.rect.width - 20
    self.oy = self.bitmap.rect.height / 2 - 16
    self.x  = -64
    self.y  =  64
    self.z  = 205
  end
end
#==============================================================================
# --- XRXS. ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‹@\ ---
#==============================================================================
module XRXS_WindowSliding
  def initialize(x, y, w, h)
    super(x, y, w, h)
    self.contents_opacity = 0
    @slidein_count  = 4
    @slideout_count = 0
    @slide_x_speed = 8
    @slide_y_speed = 0
    @slide_x_limit = nil
    @slide_objects = [self]
  end
  def update
    super
    if @slidein_count > 0
      @slidein_count -= 1
      for object in @slide_objects
        object.x += @slide_x_speed
        object.y += @slide_y_speed
        object.x = [object.x, @slide_x_limit].min if @slide_x_limit != nil
        case object
        when Window
          object.contents_opacity += 64
        when Sprite
          object.opacity += 64
        end
      end
    elsif @slideout_count > 0
      @slideout_count -= 1
      for object in @slide_objects
        object.x -= @slide_x_speed
        object.y -= @slide_y_speed
        case object
        when Window
          object.contents_opacity -= 64
        when Sprite
          object.opacity -= 64
        end
      end
    end
  end
  def slideout!
    @slidein_count  = 0
    @slideout_count = 4
  end
end
#==============================================================================
#   Bitmapƒ‰ƒCƒuƒ‰ƒŠ --- draw_hemming_text --- 
#==============================================================================
class Bitmap
  def draw_hemming_text(x, y, w, h, text, align = 0, black_color = Color.new(0,0,0,255))
    original_color = self.font.color.dup
    self.font.color = black_color
    self.draw_text(x  , y  , w, h, text, align)
    self.draw_text(x  , y+2, w, h, text, align)
    self.draw_text(x+2, y+2, w, h, text, align)
    self.draw_text(x+2, y  , w, h, text, align)
    self.font.color = original_color
    self.draw_text(x+1, y+1, w, h, text, align)
  end
end
#==============================================================================
#   Bitmapƒ‰ƒCƒuƒ‰ƒŠ --- blt_number --- 
#==============================================================================
class Bitmap
  def blt_number(x, y, skin, number, opacity = 224)
    a_width = skin.rect.width / 10
    rect = Rect.new(0, 0, a_width, skin.rect.height)
    #
    numbers = [
      number/10000000,number/1000000,number/100000,number/10000,
      number/1000,   number/100,    number/10,    number
    ]
    display = false
    for i in 0...numbers.size
      n = numbers[i]
      display |= (n != 0 or i == numbers.size - 1)
      if display
        rect.x = n * a_width
        self.blt(x - (8-i) * a_width, y - skin.rect.height, skin, rect, opacity)
      end
      #x += a_width
    end
  end
end

Plugin A1
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“A1 : ƒRƒ}ƒ“ƒhƒXƒgƒŠ[ƒ€ ¥£¥
#
#==============================================================================
#   Window_MenuCommand
#==============================================================================
class Window_MenuCommand < Window_Selectable
  #
  # ‰Žæ‚èF
  #
  HEMCOLOR = Color.new(0,48,96,255)
  # –³Œø‰»”»’è—p@ƒZ[ƒu–¼
  SAVE = "ƒZ[ƒu"
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  #--------------------------------------------------------------------------
  # › ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    @sprites = []
    max = XRXS_MeLT.commands.size
    super(16, 64, 160, max * 32 + 32)
    self.opacity = 0
    self.index   = 0
    @item_max    = max
    @column_max  = 1
    @slide_objects = @sprites
    @slide_x_limit = 16
    @slidein_count  = 4 + @item_max
    @slideout_count = 0
    w = 160
    h =  32
    z = 101
    x = self.x - 32
    y = self.y + 16
    for caption in XRXS_MeLT.captions
      sprite = Sprite.new
      sprite.bitmap = Bitmap.new(w,h)
      color = HEMCOLOR
      if caption == SAVE
        if $game_system.save_disabled
          color = color.dup
          color.alpha = 64
        end
        sprite.bitmap.font.color.alpha = $game_system.save_disabled ? 160 : 255
      end
      sprite.bitmap.draw_hemming_text(0,0,w,h,caption,1,color)
      sprite.opacity = 0
      sprite.z = z
      sprite.x = x
      sprite.y = y
      x -=  8
      y += 32
      @sprites.push(sprite)
    end
    self.z = z + 1
  end
  #--------------------------------------------------------------------------
  # › ‰ð•ú‚ƃXƒ‰ƒCƒhƒAƒEƒg
  #--------------------------------------------------------------------------
  def dispose
    @sprites.each{|sprite| sprite.dispose }
    super
  end
  def slideout!
    self.index = -1
    super
  end
  #--------------------------------------------------------------------------
  # › Œˆ’è‚ƃLƒƒƒ“ƒZƒ‹
  #--------------------------------------------------------------------------
  def decide!
    update while @slidein_count > 0
    @decision_index = self.index
    @sprites.each{|sprite| sprite.opacity =  96 }
    @sprites[@decision_index].opacity = 255 if @decision_index >= 0
  end
  def cancel!
    @decision_index = nil
    @sprites.each{|sprite| sprite.opacity = 255 }
  end
end

Plugin A2
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“A2 : ƒRƒ}ƒ“ƒhƒvƒŒ[ƒg ¥£¥
#
#==============================================================================
#   Window_MenuCommand
#==============================================================================
class Window_MenuCommand < Window_Selectable
  #
  # ƒƒjƒ…[ƒvƒŒ[ƒg (Windowskins)
  #
  PLATE = "MenuCommandBack"
  #
  # ‰Žæ‚èF
  #
  HEMCOLOR = Color.new(64,64,0,255)
  # –³Œø‰»”»’è—p@ƒZ[ƒu–¼
  SAVE = "ƒZ[ƒu"
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  #--------------------------------------------------------------------------
  # › ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    super(-24, 64, 160, 288)
    @plate = Sprite.new
    @plate.bitmap = RPG::Cache.windowskin(PLATE)
    @plate.x = -64
    @plate.y =  48
    @plate.z = self.z - 1
    @slide_objects.push(@plate)
    @item_max    = XRXS_MeLT.commands.size
    self.opacity = 0
    self.index   = 0
    self.contents = Bitmap.new(128, 256)
    refresh
  end
  def refresh
    self.contents.clear
    y = 0
    for caption in XRXS_MeLT.captions
      color = HEMCOLOR
      if caption == SAVE
        if $game_system.save_disabled
          color = color.dup
          color.alpha = 64
        end
        self.contents.font.color.alpha = 160
      end
      self.contents.draw_hemming_text(0, y, 128, 32, caption, 1, color)
      self.contents.font.color.alpha = 255
      y += 32
    end
  end
  #--------------------------------------------------------------------------
  # › ‰ð•ú‚ƃXƒ‰ƒCƒhƒAƒEƒg
  #--------------------------------------------------------------------------
  def dispose
    @plate.dispose
    super
  end
  def slideout!
    self.index = -1
    super
  end
  #--------------------------------------------------------------------------
  # › Œˆ’è‚ƃLƒƒƒ“ƒZƒ‹
  #--------------------------------------------------------------------------
  def decide!
  end
  def cancel!
  end
end

Plugin B1
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“B1 : ƒoƒgƒ‰[ƒYƒLƒƒƒ“ƒv ¥£¥
#
# update 2007/ 7/22
#
#==============================================================================
# ƒJƒXƒ^ƒ}ƒCƒYƒ|ƒCƒ“ƒg
#==============================================================================
module XRXS_MeLT
  #
  # ŠeŽíƒtƒ@ƒCƒ‹–¼ (Windowskins)
  #
  ASB_SKIN   = "MenuStatusBar"
  NUM_SKIN_L = "NumberL"
  NUM_SKIN_S = "NumberS"
  HP         = "HP"
  SP         = "SP"
  HPBAR      = "MenuHPBar"
  SPBAR      = "MenuSPBar"
  # ƒXƒe[ƒgID=>ƒAƒCƒRƒ“–¼ ŠÖ˜A•t‚¯ƒnƒbƒVƒ…
  STATE_ICON = {3=>"skill_024",5=>"skill_027",7=>"skill_026",8=>"skill_025"}
end
class Window_MenuStatus < Window_Selectable
  # ƒoƒgƒ‰[ƒ|ƒWƒVƒ‡ƒ“Ý’è
  POSITIONS = [
    [412, 200],
    [540, 264],
    [444, 344],
    [564, 400]
  ]
  # ƒXƒe[ƒ^ƒXƒo[•`‰æÀ•W
  EACH_X_OFFSET =  0 # Šes–ˆ‚̉¡‚¸‚ê
  EVEN_X_OFFSET = 32 # ‹ô”s‚̉¡‚¸‚ê
end
#==============================================================================
# ¡ Window_MenuStatus [Ä’è‹`]
#==============================================================================
class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  include XRXS_Cursor2
  #--------------------------------------------------------------------------
  # œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    super(144 + 32, 140, 512, 384)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    @slide_x_speed = -8
    @actor_sprites = []
    refresh
    @slide_objects = [self] + @actor_sprites
    self.active = false
    self.index = -1
    @column_max = 1
  end
  #--------------------------------------------------------------------------
  # œ ƒŠƒtƒŒƒbƒVƒ…
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      draw_menustatus(i)
    end
    # ƒoƒgƒ‰[ƒXƒvƒ‰ƒCƒg‚Ì—pˆÓ
    @actor_sprites.each{|sprite| sprite.dispose }
    @actor_sprites.clear
    positions = POSITIONS.dup
    for actor in $game_party.actors
      battler_bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
      sprite = Sprite.new
      sprite.bitmap = battler_bitmap
      position = positions.shift
      sprite.x = position[0] + @slidein_count * 8
      sprite.y = position[1]
      sprite.ox = battler_bitmap.rect.width / 2
      sprite.oy = battler_bitmap.rect.height
      sprite.z = 201
      sprite.visible = !actor.dead?
      @actor_sprites.push(sprite)
    end
    @slide_objects = [self] + @actor_sprites
  end
  #--------------------------------------------------------------------------
  # › ƒƒjƒ…[ƒXƒe[ƒ^ƒX‚Ì•`ŽÊ
  #--------------------------------------------------------------------------
  def draw_menustatus(i)
    x = i * EACH_X_OFFSET + i % 2 * EVEN_X_OFFSET
    y = i * 64 + 4
    #
    bar = RPG::Cache.windowskin(XRXS_MeLT::ASB_SKIN)
    self.contents.blt(x, y, bar, bar.rect, 160)
    num_skin_l = RPG::Cache.windowskin(XRXS_MeLT::NUM_SKIN_L)
    num_skin_s = RPG::Cache.windowskin(XRXS_MeLT::NUM_SKIN_S)
    hp_bitmap  = RPG::Cache.windowskin(XRXS_MeLT::HP)
    sp_bitmap  = RPG::Cache.windowskin(XRXS_MeLT::SP)
    hpbar_skin = RPG::Cache.windowskin(XRXS_MeLT::HPBAR)
    spbar_skin = RPG::Cache.windowskin(XRXS_MeLT::SPBAR)
    # ƒAƒNƒ^[‚̎擾
    actor = $game_party.actors[i]
    #
    self.contents.font.color = Color.new(0,0,0,255)
    self.contents.font.size  = 16
    self.contents.draw_text(x + 16, y + 2, 80, 24, actor.name)
    #
    state_icon_names = []
    for state_id in actor.states.sort
      icon_name = XRXS_MeLT::STATE_ICON[state_id]
      if icon_name != nil
        state_icon_names.push(icon_name)
      end
    end
    if state_icon_names.empty?
      self.contents.font.color = Color.new(0,64,96,255)
      self.contents.font.size  = 14
      self.contents.draw_text(x + 104, y + 2, 16, 24, "Lv.")
      self.contents.draw_text(x + 120, y + 2, 16, 24, actor.level.to_s, 2)
    else
      ix = x + 96
      for icon_name in state_icon_names
        icon = RPG::Cache.icon(icon_name)
        self.contents.blt(ix, y + 2, icon, icon.rect)
        ix += 26
      end
    end
    #
    self.contents.blt_number(x + 96, y + 45, num_skin_l, actor.hp)
    self.contents.blt_number(x + 96, y + 59, num_skin_s, actor.sp)
    self.contents.blt(       x + 23, y + 34, hp_bitmap, hp_bitmap.rect)
    self.contents.blt(       x + 32, y + 50, sp_bitmap, sp_bitmap.rect)
    # HP ƒo[‚Ì•`‰æ
    h = 10
    rect = Rect.new(0,0,96,h)
    self.contents.blt(x + 98, y + 34, hpbar_skin, rect)
    rect.y     = (actor.hp == actor.maxhp ? 2 * h : h)
    rect.width = 96 * actor.hp / actor.maxhp
    self.contents.blt(x + 98, y + 34, hpbar_skin, rect)
    # SP ƒo[‚Ì•`‰æ
    h = 8
    rect = Rect.new(0,0,96,h)
    self.contents.blt(x + 98, y + 48, spbar_skin, rect)
    rect.y     = (actor.sp == actor.maxsp ? 2 * h : h)
    rect.width = 96 * actor.sp / [actor.maxsp, 1].max
    self.contents.blt(x + 98, y + 48, spbar_skin, rect)
  end
  #--------------------------------------------------------------------------
  # œ ƒJ[ƒ\ƒ‹‚Ì‹éŒ`XV
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      x = @index % 2 * 32 + 2
      w = 218 - x
      self.cursor_rect.set(x, @index * 64 + 4, w, 64)
    end
  end
  #--------------------------------------------------------------------------
  # › ‰ð•ú‚ƃXƒ‰ƒCƒhƒAƒEƒg
  #--------------------------------------------------------------------------
  def dispose
    @actor_sprites.each{|sprite| sprite.dispose }
    super
  end
  def slideout!
    self.index = -1
    super
  end
end

Plugin B2
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“B2 : ƒVƒƒ[ƒvƒnƒ“ƒ^[ƒY ¥£¥
#
# update 2007/ 7/22
#
#==============================================================================
# ƒJƒXƒ^ƒ}ƒCƒYƒ|ƒCƒ“ƒg
#==============================================================================
module XRXS_MeLT
  #
  # ŠeŽíƒtƒ@ƒCƒ‹–¼ (Windowskins)
  #
  NUM_SKIN_L = "NumberL"
  NUM_SKIN_S = "NumberS"
  HP         = "HP"
  SP         = "SP"
  HPBAR      = "MenuHPBar"
  SPBAR      = "MenuSPBar"
  STATUS_BACK= "MenuStatusBack"
  # ƒXƒe[ƒgID=>ƒAƒCƒRƒ“–¼ ŠÖ˜A•t‚¯ƒnƒbƒVƒ…
  STATE_ICON = {3=>"skill_024",5=>"skill_027",7=>"skill_026",8=>"skill_025"}
  #
  # ƒAƒNƒ^[ID => ƒVƒƒ[ƒvƒtƒFƒCƒX ƒtƒ@ƒCƒ‹–¼ ƒnƒbƒVƒ… (Battlers)
  #
  ACTOR_FACE = {}#{5=>"fd1", 6=>"fd2", 7=>"fd3", 8=>"fd4", 9=>"fd5"}
  #
  # ‚±‚êˆÈ~‚ðT‚¦ƒƒ“ƒo[‚Æ‚µ‚Ĉµ‚¤’l
  #
  FRONT_MEMBER_LIMIT = 4
end
class Window_MenuStatus < Window_Selectable
  # ƒXƒe[ƒ^ƒXƒo[•`‰æÀ•W
  EACH_X_OFFSET =  0 # Šes–ˆ‚̉¡‚¸‚ê
  EVEN_X_OFFSET =  0 # ‹ô”s‚̉¡‚¸‚ê
  # –¼‘O•”•ª •`‰æF
  NAMECOLOR = Color.new( 32, 48, 64,255)
  # –¼‘O•”•ª ‰Žæ‚èF
  HEMCOLOR  = Color.new(128,192,256,255)
end
#==============================================================================
# ¡ Window_MenuStatus [Ä’è‹`]
#==============================================================================
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  include XRXS_Cursor2
  #--------------------------------------------------------------------------
  # œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    super(192 + 32, 96, 464, 328)
    self.contents = Bitmap.new(width - 32, $game_party.actors.size * 48 + 8)
    self.opacity = 0
    @slide_x_speed = -8
    refresh
    self.active = false
    self.index = -1
    @column_max = 1
  end
  #--------------------------------------------------------------------------
  # œ ƒŠƒtƒŒƒbƒVƒ…
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      draw_menustatus(i)
    end
  end
  #--------------------------------------------------------------------------
  # › ƒƒjƒ…[ƒXƒe[ƒ^ƒX‚Ì•`ŽÊ
  #--------------------------------------------------------------------------
  def draw_menustatus(i)
    # ƒAƒNƒ^[‚̎擾
    actor = $game_party.actors[i]
    #
    x = i * EACH_X_OFFSET + i % 2 * EVEN_X_OFFSET
    y = i * 48 + 4
    back = RPG::Cache.windowskin(XRXS_MeLT::STATUS_BACK)
    self.contents.blt(x, y, back, back.rect)
    facefile = XRXS_MeLT::ACTOR_FACE[actor.id]
    if facefile != nil
      face = RPG::Cache.battler(facefile, 0)
      opacity = actor.dead?                        ?  96 :
                i >= XRXS_MeLT::FRONT_MEMBER_LIMIT ? 160 :
                                                     255
      self.contents.blt(x, y + 4, face, face.rect, opacity)
    end
    #
    num_skin_l = RPG::Cache.windowskin(XRXS_MeLT::NUM_SKIN_L)
    num_skin_s = RPG::Cache.windowskin(XRXS_MeLT::NUM_SKIN_S)
    hp_bitmap  = RPG::Cache.windowskin(XRXS_MeLT::HP)
    sp_bitmap  = RPG::Cache.windowskin(XRXS_MeLT::SP)
    hpbar_skin = RPG::Cache.windowskin(XRXS_MeLT::HPBAR)
    spbar_skin = RPG::Cache.windowskin(XRXS_MeLT::SPBAR)
    #
    name_color = NAMECOLOR.dup
    hem_color  = HEMCOLOR.dup
    if i >= XRXS_MeLT::FRONT_MEMBER_LIMIT
      name_color.alpha = 128
      hem_color.alpha  =  32
    end
    self.contents.font.color = name_color
    self.contents.font.size  = 14
    self.contents.draw_hemming_text(x + 160, y + 4, 96, 18, actor.name, 0, hem_color)
    #
    state_icon_names = []
    for state_id in actor.states.sort
      icon_name = XRXS_MeLT::STATE_ICON[state_id]
      if icon_name != nil
        state_icon_names.push(icon_name)
      end
    end
    if state_icon_names.empty?
      self.contents.font.color = Color.new(0,48,96,255)
      self.contents.font.size  = 14
      self.contents.draw_text(x + 160, y + 22, 76, 24, "Lv." + actor.level.to_s, 2)
    else
      ix = x + 160
      for icon_name in state_icon_names
        icon = RPG::Cache.icon(icon_name)
        self.contents.blt(ix, y + 22, icon, icon.rect)
        ix += 24
      end
    end
    #
    self.contents.blt_number(x + 328, y + 24, num_skin_l, actor.hp)
    self.contents.blt_number(x + 328, y + 40, num_skin_s, actor.sp)
    self.contents.blt(       x + 256, y + 14, hp_bitmap, hp_bitmap.rect)
    self.contents.blt(       x + 256, y + 30, sp_bitmap, sp_bitmap.rect)
    # HP ƒo[‚Ì•`‰æ
    h = 10
    rect = Rect.new(0,0,96,h)
    self.contents.blt(x + 330, y + 14, hpbar_skin, rect)
    rect.y     = (actor.hp == actor.maxhp ? 2 * h : h)
    rect.width = 96 * actor.hp / actor.maxhp
    self.contents.blt(x + 330, y + 14, hpbar_skin, rect)
    # SP ƒo[‚Ì•`‰æ
    h = 8
    rect = Rect.new(0,0,96,h)
    self.contents.blt(x + 330, y + 28, spbar_skin, rect)
    rect.y     = (actor.sp == actor.maxsp ? 2 * h : h)
    rect.width = 96 * actor.sp / [actor.maxsp, 1].max
    self.contents.blt(x + 330, y + 28, spbar_skin, rect)
  end
  #--------------------------------------------------------------------------
  # › æ“ª‚̍s‚̐ݒè [ƒI[ƒo[ƒ‰ƒCƒh]
  #--------------------------------------------------------------------------
  def top_row=(row)
    super
    self.oy = self.oy * 48 / 32
  end
  #--------------------------------------------------------------------------
  # › 1 ƒy[ƒW‚É•\Ž¦‚Å‚«‚és”‚̎擾 [ƒI[ƒo[ƒ‰ƒCƒh]
  #--------------------------------------------------------------------------
  def page_row_max
    return 6
  end
  #--------------------------------------------------------------------------
  # œ ƒJ[ƒ\ƒ‹‚Ì‹éŒ`XV
  #--------------------------------------------------------------------------
  def update_cursor_rect
    super
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 48 + 8 - self.oy, 200, 40)
    end
  end
  #--------------------------------------------------------------------------
  # › ‰ð•ú‚ƃXƒ‰ƒCƒhƒAƒEƒg
  #--------------------------------------------------------------------------
  def slideout!
    self.index = -1
    super
  end
end

Plugin B3
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“B3 : ƒtƒ@ƒCƒ“ƒp[ƒgƒi[ ¥£¥
#
# update 2007/ 7/22
#
#==============================================================================
# ƒJƒXƒ^ƒ}ƒCƒYƒ|ƒCƒ“ƒg
#==============================================================================
module XRXS_MeLT
  #
  # ŠeŽíƒtƒ@ƒCƒ‹–¼ (Windowskins)
  #
  NUM_SKIN_L = "NumberL"
  NUM_SKIN_S = "NumberS"
  HP         = "HP"
  SP         = "SP"
  HPBAR      = "MenuHPBar"
  SPBAR      = "MenuSPBar"
  STATUS_BACK= "MenuStatusBack3"
  # ƒXƒe[ƒgID=>ƒAƒCƒRƒ“–¼ ŠÖ˜A•t‚¯ƒnƒbƒVƒ…
  STATE_ICON = {3=>"skill_024",5=>"skill_027",7=>"skill_026",8=>"skill_025"}
end
class Window_MenuStatus < Window_Selectable
  # —§‚¿ŠG•`‰æˆÊ’u
  STAND_POS = [[320, 480], [128, 512]]
  # –¼‘O•”•ª •`‰æF
  NAMECOLOR = Color.new(255,224,210,255)
  # –¼‘O•”•ª ‰Žæ‚èF
  HEMCOLOR  = Color.new(115, 96, 82,255)
  # ƒŒƒxƒ‹•”•ª
  LEVEL_COLOR = Color.new(96,48,  0,255)
end
#==============================================================================
# ƒAƒNƒ^[—§‚¿ŠGƒZƒbƒeƒBƒ“ƒO (‚±‚±‚Å—§‚¿ŠG‚ðÝ’肵‚Ä‚­‚¾‚³‚¢)
#==============================================================================
class Game_Actor < Game_Battler
  def stand_name
    #
    # ƒAƒNƒ^[ID => "ƒtƒ@ƒCƒ‹–¼" (Pictures)  ŠÖ˜A•t‚¯ƒnƒbƒVƒ…
    #
    hash = {
      5=>"Stand2",
      6=>"Stand1"
    }
    return hash[self.id].to_s
  end
end
#==============================================================================
# ¡ Window_MenuStatus [Ä’è‹`]
#==============================================================================
class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  include XRXS_Cursor2
  #--------------------------------------------------------------------------
  # œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    super(192 + 32, -16, 464, 512)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    @slide_x_speed = -8
    refresh
    self.active = false
    self.index = -1
    @column_max = 1
  end
  #--------------------------------------------------------------------------
  # œ ƒŠƒtƒŒƒbƒVƒ…
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = [$game_party.actors.size, 2].min
    for i in 0...@item_max
      draw_menustatus(@item_max - 1 - i)
    end
  end
  #--------------------------------------------------------------------------
  # › ƒƒjƒ…[ƒXƒe[ƒ^ƒX‚Ì•`ŽÊ
  #--------------------------------------------------------------------------
  def draw_menustatus(i)
    # ƒAƒNƒ^[‚̎擾
    actor = $game_party.actors[i]
    return if actor == nil or i >= 2
    #
    x = STAND_POS[i][0]
    y = STAND_POS[i][1]
    picture = RPG::Cache.picture(actor.stand_name)
    ox = picture.rect.width / 2
    oy = picture.rect.height
    self.contents.blt(x - ox, y - oy, picture, picture.rect)
    #
    num_skin_l = RPG::Cache.windowskin(XRXS_MeLT::NUM_SKIN_L)
    num_skin_s = RPG::Cache.windowskin(XRXS_MeLT::NUM_SKIN_S)
    hp_bitmap  = RPG::Cache.windowskin(XRXS_MeLT::HP)
    sp_bitmap  = RPG::Cache.windowskin(XRXS_MeLT::SP)
    hpbar_skin = RPG::Cache.windowskin(XRXS_MeLT::HPBAR)
    spbar_skin = RPG::Cache.windowskin(XRXS_MeLT::SPBAR)
    back       = RPG::Cache.windowskin(XRXS_MeLT::STATUS_BACK)
    #
    x = i == 0 ?  64 :   0
    y = i == 0 ? 384 : 320
    self.contents.blt(x, y, back, back.rect)
    #
    self.contents.font.color = NAMECOLOR
    self.contents.font.size  = 16
    self.contents.font.bold  = true
    self.contents.draw_hemming_text(x + 4, y + 4, 80, 18, actor.name, 0, HEMCOLOR)
    # HP ƒo[‚Ì•`‰æ
    h = 10
    rect = Rect.new(0,0,96,h)
    self.contents.blt(x + 4, y + 34, hpbar_skin, rect)
    rect.y     = (actor.hp == actor.maxhp ? 2 * h : h)
    rect.width = 96 * actor.hp / actor.maxhp
    self.contents.blt(x + 4, y + 34, hpbar_skin, rect)
    # SP ƒo[‚Ì•`‰æ
    h = 8
    rect = Rect.new(0,0,96,h)
    self.contents.blt(x + 102, y + 34, spbar_skin, rect)
    rect.y     = (actor.sp == actor.maxsp ? 2 * h : h)
    rect.width = 96 * actor.sp / [actor.maxsp, 1].max
    self.contents.blt(x + 102, y + 34, spbar_skin, rect)
    #
    state_icon_names = []
    for state_id in actor.states.sort
      icon_name = XRXS_MeLT::STATE_ICON[state_id]
      if icon_name != nil
        state_icon_names.push(icon_name)
      end
    end
    if state_icon_names.empty?
      self.contents.font.color = LEVEL_COLOR
      self.contents.font.size  = 14
      self.contents.font.bold  = false
      self.contents.draw_text(x + 80, y + 2, 44, 20, "Lv." + actor.level.to_s, 2)
    else
      ix = x + 80
      for icon_name in state_icon_names
        icon = RPG::Cache.icon(icon_name)
        self.contents.blt(ix, y + 2, icon, icon.rect)
        ix += 24
      end
    end
    #
    self.contents.blt_number(x +  96, y + 44, num_skin_l, actor.hp)
    self.contents.blt_number(x + 196, y + 44, num_skin_s, actor.sp)
    self.contents.blt(       x +   4, y + 34, hp_bitmap, hp_bitmap.rect)
    self.contents.blt(       x + 104, y + 34, sp_bitmap, sp_bitmap.rect)
  end
  #--------------------------------------------------------------------------
  # œ ƒJ[ƒ\ƒ‹‚Ì‹éŒ`XV
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      x = @index == 0 ?  64 :   0
      y = @index == 0 ? 384 : 320
      self.cursor_rect.set(x, y, 480, 48)
    end
  end
  #--------------------------------------------------------------------------
  # › ‰ð•ú‚ƃXƒ‰ƒCƒhƒAƒEƒg
  #--------------------------------------------------------------------------
  def slideout!
    self.index = -1
    super
  end
end

Plugin C1
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“C1 : ƒRƒCƒ“ƒ‰ƒCƒ“ ¥£¥
#
#==============================================================================
# Window_MenuGold
#==============================================================================
class Window_MenuGold < Window_Base
  #
  # ƒ‰ƒCƒ“ƒtƒ@ƒCƒ‹–¼ (Windowskins)
  #
  LINE = "MenuGoldLine"
  #
  # ‰Žæ‚èF
  #
  HEMCOLOR = Color.new(0,48,96,255)
  #
  # ˆÊ’u (0:¶Šñ‚¹, 2:‰EŠñ‚¹)
  #
  ALIGN = 0
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  #--------------------------------------------------------------------------
  # › ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    x = (ALIGN == 2 ? 512 : -48)
    super(x, 404, 192, 58)
    @slide_x_speed = (1 - ALIGN) * 8
    self.opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.color = normal_color
    self.contents.font.size = 21
    refresh
  end
  #--------------------------------------------------------------------------
  # › ƒŠƒtƒŒƒbƒVƒ…
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    line = RPG::Cache.windowskin(LINE)
    self.contents.blt(0,4,line,line.rect)
    self.contents.draw_hemming_text(0, 0, 96, 18, $game_party.gold.to_s, 2, HEMCOLOR)
  end
end
#==============================================================================
# --- ƒƒjƒ…[ƒŒƒCƒAƒEƒg Šg’£’è‹` ---
#==============================================================================
class Scene_Menu
  alias xrxs_melt_pi1_make_windows make_windows
  def make_windows
    xrxs_melt_pi1_make_windows
    @windows.push(Window_MenuGold.new)
  end
end

Plugin C2
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“C2 : ƒvƒŒƒCƒ^ƒCƒ€ƒNƒƒbƒN ¥£¥
#
#
#==============================================================================
# ƒƒjƒ…[ƒŒƒCƒAƒEƒgƒvƒ‰ƒOƒCƒ“u@Window_MenuPlayTime@v
#==============================================================================
class Window_MenuPlayTime < Window_Base
  #
  # ƒ^ƒCƒ€•\Ž¦ ƒtƒ@ƒCƒ‹–¼ (Windowskins)
  #
  TIMESET = "TimeSet"
  #
  # ˆÊ’u (0:¶Šñ‚¹, 2:‰EŠñ‚¹)
  #
  ALIGN = 2
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  #--------------------------------------------------------------------------
  # › ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    @skin   = RPG::Cache.windowskin(TIMESET)
    @skin_w = @skin.width / 12
    w = 32 + @skin_w * 9
    h = 32 + @skin.height
    x = (ALIGN == 2 ? 664 - w : -32)
    y = 428
    super(x, y, w, h)
    @slide_x_speed = (1 - ALIGN) * 8
    self.opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # › ƒŠƒtƒŒƒbƒVƒ…‚ƍXV
  #--------------------------------------------------------------------------
  def refresh
    # €”õ
    self.contents.clear
    rect = Rect.new(0, 0, @skin_w, @skin.height)
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    n = @total_sec / 60 / 60
    hour1 = n / 10
    hour2 = n % 10
    n = @total_sec / 60 % 60
    min1 = n / 10
    min2 = n % 10
    n = @total_sec % 60
    sec1 = n / 10
    sec2 = n % 10
    plan = [11, hour1, hour2,10,min1,min2,10,sec1,sec2]
    # •`‰æ
    x = 0
    for ox in plan
      rect.x = @skin_w * ox
      self.contents.blt(x, 0, @skin, rect)
      x += @skin_w
    end
  end
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
#==============================================================================
# --- ƒƒjƒ…[ƒŒƒCƒAƒEƒg Šg’£’è‹` ---
#==============================================================================
class Scene_Menu
  alias xrxs_melt_pi2_make_windows make_windows
  def make_windows
    xrxs_melt_pi2_make_windows
    @windows.push(Window_MenuPlayTime.new)
  end
end

Plugin C3
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“C3 : ƒ}ƒbƒvƒl[ƒ€ƒwƒbƒ_[ ¥£¥
#
#
#==============================================================================
# Window_MenuMapName
#==============================================================================
class Window_MenuMapName < Window_Base
  #
  # ƒwƒbƒ_[ƒsƒNƒ`ƒƒ (Windowskin)
  #
  HEADER = "MenuHeader"
  #
  # ‰Žæ‚èF
  #
  HEMCOLOR = Color.new(96,96,0,255)
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  #--------------------------------------------------------------------------
  # › ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    #
    @header = Sprite.new
    @header.bitmap = RPG::Cache.windowskin(HEADER)
    @header.y = -32
    @header.z = 102
    @header.opacity = 0
    #
    super(0, -48, 256, 64)
    @slide_x_speed = 0
    @slide_y_speed = 8
    @slide_objects.push(@header)
    self.opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.color = normal_color
    self.contents.font.size = 21
    refresh
  end
  #--------------------------------------------------------------------------
  # › ƒŠƒtƒŒƒbƒVƒ…‚Ɖð•ú
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.draw_hemming_text(0, 0, 224, 32, $game_map.name, 1, HEMCOLOR)
  end
  def dispose
    @header.dispose
    super
  end
end
#==============================================================================
# --- ƒƒjƒ…[ƒŒƒCƒAƒEƒg Šg’£’è‹` ---
#==============================================================================
class Scene_Menu
  alias xrxs_melt_pi3_make_windows make_windows
  def make_windows
    xrxs_melt_pi3_make_windows
    @windows.push(Window_MenuMapName.new)
  end
end
#==============================================================================
#   XRXS. ƒ}ƒbƒv–¼Žæ“¾‹@\
#==============================================================================
class Game_Map
  #--------------------------------------------------------------------------
  # › ƒ}ƒbƒv–¼‚ðŽæ“¾
  #--------------------------------------------------------------------------
  def name
    $data_mapinfos = load_data("Data/MapInfos.rxdata") if $data_mapinfos.nil?
    $data_mapinfos[@map_id].name
  end
end

Plugin C4
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“C4 : ƒ”ƒ@ƒŠƒAƒuƒ‹A ¥£¥
#
#
#==============================================================================
# Window_MenuVariable1
#==============================================================================
class Window_MenuVariable1 < Window_Base
  #
  # ƒAƒCƒRƒ“ƒtƒ@ƒCƒ‹–¼ (Icons)
  #
  ICON = "skill_025"
  #
  # •`‰æ“à—e •Ï”ID
  #
  VARIABLE_ID = 11
  #
  # ‰Žæ‚èF
  #
  HEMCOLOR = Color.new(96,48,0,255)
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  #--------------------------------------------------------------------------
  # › ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    super(-32, 436, 140, 56)
    self.opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.color = normal_color
    self.contents.font.size = 21
    refresh
  end
  #--------------------------------------------------------------------------
  # › ƒŠƒtƒŒƒbƒVƒ…
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    icon = RPG::Cache.icon(ICON)
    self.contents.blt(0,0,icon,icon.rect)
    self.contents.draw_hemming_text(24, 0, 80, 24, $game_variables[VARIABLE_ID].to_s, 2, HEMCOLOR)
  end
end
#==============================================================================
# --- ƒƒjƒ…[ƒŒƒCƒAƒEƒg Šg’£’è‹` ---
#==============================================================================
class Scene_Menu
  alias xrxs_melt_pi4_make_windows make_windows
  def make_windows
    xrxs_melt_pi4_make_windows
    @windows.push(Window_MenuVariable1.new)
  end
end

Plugin C5
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“C5 : ƒ”ƒ@ƒŠƒAƒuƒ‹B ¥£¥
#
#
#==============================================================================
# Window_MenuVariable2
#==============================================================================
class Window_MenuVariable2 < Window_Base
  #
  # ƒAƒCƒRƒ“ƒtƒ@ƒCƒ‹–¼ (Icons)
  #
  ICON = "skill_026"
  #
  # •`‰æ“à—e •Ï”ID
  #
  VARIABLE_ID = 12
  #
  # ‰Žæ‚èF
  #
  HEMCOLOR = Color.new(96,48,0,255)
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  #--------------------------------------------------------------------------
  # › ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    super(124, 436, 140, 56)
    self.opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.color = normal_color
    self.contents.font.size = 21
    refresh
  end
  #--------------------------------------------------------------------------
  # › ƒŠƒtƒŒƒbƒVƒ…
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    icon = RPG::Cache.icon(ICON)
    self.contents.blt(0,0,icon,icon.rect)
    self.contents.draw_hemming_text(24, 0, 80, 24, $game_variables[VARIABLE_ID].to_s, 2, HEMCOLOR)
  end
end
#==============================================================================
# --- ƒƒjƒ…[ƒŒƒCƒAƒEƒg Šg’£’è‹` ---
#==============================================================================
class Scene_Menu
  alias xrxs_melt_pi5_make_windows make_windows
  def make_windows
    xrxs_melt_pi5_make_windows
    @windows.push(Window_MenuVariable2.new)
  end
end

Plugin C6
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“C6 : ƒ”ƒ@ƒŠƒAƒuƒ‹C ¥£¥
#
#
#==============================================================================
# Window_MenuVariable3
#==============================================================================
class Window_MenuVariable3 < Window_Base
  #
  # ƒAƒCƒRƒ“ƒtƒ@ƒCƒ‹–¼ (Icons)
  #
  ICON = "skill_027"
  #
  # •`‰æ“à—e •Ï”ID
  #
  VARIABLE_ID = 13
  #
  # ‰Žæ‚èF
  #
  HEMCOLOR = Color.new(96,48,0,255)
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  #--------------------------------------------------------------------------
  # › ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    super(344, 436, 140, 56)
    @slide_x_speed = -8
    self.opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.color = normal_color
    self.contents.font.size = 21
    refresh
  end
  #--------------------------------------------------------------------------
  # › ƒŠƒtƒŒƒbƒVƒ…
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    icon = RPG::Cache.icon(ICON)
    self.contents.blt(0,0,icon,icon.rect)
    self.contents.draw_hemming_text(24, 0, 80, 24, $game_variables[VARIABLE_ID].to_s, 2, HEMCOLOR)
  end
end
#==============================================================================
# --- ƒƒjƒ…[ƒŒƒCƒAƒEƒg Šg’£’è‹` ---
#==============================================================================
class Scene_Menu
  alias xrxs_melt_pi6_make_windows make_windows
  def make_windows
    xrxs_melt_pi6_make_windows
    @windows.push(Window_MenuVariable3.new)
  end
end

Plugin C7
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“C7 : ƒ”ƒ@ƒŠƒAƒuƒ‹D ¥£¥
#
#
#==============================================================================
# Window_MenuVariable4
#==============================================================================
class Window_MenuVariable4 < Window_Base
  #
  # ƒAƒCƒRƒ“ƒtƒ@ƒCƒ‹–¼ (Icons)
  #
  ICON = "skill_024"
  #
  # •`‰æ“à—e •Ï”ID
  #
  VARIABLE_ID = 14
  #
  # ‰Žæ‚èF
  #
  HEMCOLOR = Color.new(96,48,0,255)
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  #--------------------------------------------------------------------------
  # › ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    super(500, 436, 140, 56)
    @slide_x_speed = -8
    self.opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.color = normal_color
    self.contents.font.size = 21
    refresh
  end
  #--------------------------------------------------------------------------
  # › ƒŠƒtƒŒƒbƒVƒ…
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    icon = RPG::Cache.icon(ICON)
    self.contents.blt(0,0,icon,icon.rect)
    self.contents.draw_hemming_text(24, 0, 80, 24, $game_variables[VARIABLE_ID].to_s, 2, HEMCOLOR)
  end
end
#==============================================================================
# --- ƒƒjƒ…[ƒŒƒCƒAƒEƒg Šg’£’è‹` ---
#==============================================================================
class Scene_Menu
  alias xrxs_melt_pi7_make_windows make_windows
  def make_windows
    xrxs_melt_pi7_make_windows
    @windows.push(Window_MenuVariable4.new)
  end
end

Plugin C8
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“C8 : ƒ}ƒbƒvƒl[ƒ€ƒTƒCƒhƒo[ ¥£¥
#
#
#==============================================================================
# Window_MenuMapName
#==============================================================================
class Window_MenuMapName < Window_Base
  #
  # ƒTƒCƒhƒo[ƒXƒLƒ“ (Windowskin)
  #
  SIDE_BAR = "MenuSideBar"
  #
  # ‰Žæ‚èF
  #
  HEMCOLOR = Color.new(96,96,0,255)
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  #--------------------------------------------------------------------------
  # › ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    super(368, 400, 320, 64)
    @slide_x_speed = -8
    self.opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.color = normal_color
    self.contents.font.size = 21
    refresh
  end
  #--------------------------------------------------------------------------
  # › ƒŠƒtƒŒƒbƒVƒ…
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    bitmap = RPG::Cache.windowskin(SIDE_BAR)
    self.contents.blt(0,0, bitmap, bitmap.rect)
    self.contents.draw_hemming_text(16, 0, 256, 28, $game_map.name, 1, HEMCOLOR)
  end
end
#==============================================================================
# --- ƒƒjƒ…[ƒŒƒCƒAƒEƒg Šg’£’è‹` ---
#==============================================================================
class Scene_Menu
  alias xrxs_melt_pi8_make_windows make_windows
  def make_windows
    xrxs_melt_pi8_make_windows
    @windows.push(Window_MenuMapName.new)
  end
end
#==============================================================================
#   XRXS. ƒ}ƒbƒv–¼Žæ“¾‹@\
#==============================================================================
class Game_Map
  #--------------------------------------------------------------------------
  # › ƒ}ƒbƒv–¼‚ðŽæ“¾
  #--------------------------------------------------------------------------
  def name
    $data_mapinfos = load_data("Data/MapInfos.rxdata") if $data_mapinfos.nil?
    $data_mapinfos[@map_id].name
  end
end

Plugin C9
Code:
# ¥£¥ MeLT. ƒvƒ‰ƒOƒCƒ“C9 : ƒ~ƒbƒVƒ‡ƒ“ƒtƒbƒ^[ ¥£¥
#
#==============================================================================
# ƒ~ƒbƒVƒ‡ƒ“ •¶Žš—ñÝ’è
#==============================================================================
module Missons
  def self.command
    #
    # ƒ~ƒbƒVƒ‡ƒ“ƒnƒbƒVƒ…‚̐ݒè
    # ( ^•Ï”‚Ì’l=>"ƒ~ƒbƒVƒ‡ƒ“–¼" )
    #
    commands = {
      1=>"‘Œ´‚ð“Ë”j‚¹‚æI",
      2=>"‰B‚³‚ꂽ”èÎ‚ð‘{õ‚¹‚æI",
      3=>"–‚b‚ðŒ‚”j‚¹‚æI"
    }
    command = commands[$game_variables[2]] # ©‚±‚±‚ÉŽg—p‚·‚é•Ï”ID‚ðÝ’è
    #
    return command.to_s
  end
end
#==============================================================================
# Window_MissonFooter
#==============================================================================
class Window_MissonFooter < Window_Base
  #
  # ƒtƒbƒ^ƒXƒLƒ“ (Windowskin)
  #
  FOOTER = "MenuFooter"
  #
  # ‰Žæ‚èF
  #
  HEMCOLOR = Color.new(96,96,0,255)
  #--------------------------------------------------------------------------
  # --- ƒEƒBƒ“ƒhƒEƒXƒ‰ƒCƒfƒBƒ“ƒO‚ð“‹Ú ---
  #--------------------------------------------------------------------------
  include XRXS_WindowSliding
  #--------------------------------------------------------------------------
  # › ƒIƒuƒWƒFƒNƒg‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    super(-16, 464, 672, 64)
    @slide_x_speed =  0
    @slide_y_speed = -8
    self.opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.color = normal_color
    self.contents.font.size = 18
    refresh
  end
  #--------------------------------------------------------------------------
  # › ƒŠƒtƒŒƒbƒVƒ…
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    bitmap = RPG::Cache.windowskin(FOOTER)
    text = Missons.command
    self.contents.blt(0,0, bitmap, bitmap.rect)
    self.contents.draw_hemming_text(96, 0, 544, 32, text, 0, HEMCOLOR)
  end
end
#==============================================================================
# --- ƒƒjƒ…[ƒŒƒCƒAƒEƒg Šg’£’è‹` ---
#==============================================================================
class Scene_Menu
  alias xrxs_melt_pi9_make_windows make_windows
  def make_windows
    xrxs_melt_pi9_make_windows
    @windows.push(Window_MissonFooter.new)
  end
end



Demo

Can be found on the author's site

http://xrxs.at-ninja.jp/MeLT/ProjectMeLT.exe

I have placed a mirror link here and have included a translated instruction document:

http://www.mediafire.com/?c52awp4z46m5r88



Note
I can't really help with troubleshooting this script as I'm not really a scripting expert but I have managed to get this working in one of my projects so in theory it should work for other RPG Maker XP projects as well.
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   DerVV's Point-Increasing Status Menu DerVVulfman 1 730 07-16-2024, 04:41 AM
Last Post: DerVVulfman
   Windowskin Selection Menu DerVVulfman 2 1,209 05-23-2024, 04:13 AM
Last Post: DerVVulfman
   Character Select Script Selwyn 3 10,945 03-07-2017, 04:14 AM
Last Post: JayRay
   Moghunter Menus: Scene Menu Itigo DerVVulfman 9 23,911 04-10-2016, 03:22 AM
Last Post: DerVVulfman
   L's Simple Main Menu #1 - DMS Edit Landarma 4 11,912 01-18-2013, 07:13 AM
Last Post: Landarma
   Menu In Map DerVVulfman 2 9,292 09-08-2011, 03:51 AM
Last Post: DerVVulfman
Brick  Allow menu during events - for Visual Novels Taylor 2 8,062 08-25-2011, 12:41 PM
Last Post: Taylor
   XRXS' Platformer XRXS 4 11,066 05-30-2011, 05:57 PM
Last Post: xnadvance
   L's Simple Main Menu #3 - 1-person Landarma 1 7,801 10-14-2010, 04:25 AM
Last Post: Landarma
   Final Fantasy X-2 Custom Menu System catchm 5 14,912 06-16-2010, 08:00 PM
Last Post: Mzale



Users browsing this thread: 1 Guest(s)