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 929 07-16-2024, 04:41 AM
Last Post: DerVVulfman
   Windowskin Selection Menu DerVVulfman 2 1,440 05-23-2024, 04:13 AM
Last Post: DerVVulfman
   Character Select Script Selwyn 3 11,329 03-07-2017, 04:14 AM
Last Post: JayRay
   Moghunter Menus: Scene Menu Itigo DerVVulfman 9 24,695 04-10-2016, 03:22 AM
Last Post: DerVVulfman
   L's Simple Main Menu #1 - DMS Edit Landarma 4 12,315 01-18-2013, 07:13 AM
Last Post: Landarma
   Menu In Map DerVVulfman 2 9,636 09-08-2011, 03:51 AM
Last Post: DerVVulfman
Brick  Allow menu during events - for Visual Novels Taylor 2 8,320 08-25-2011, 12:41 PM
Last Post: Taylor
   XRXS' Platformer XRXS 4 11,390 05-30-2011, 05:57 PM
Last Post: xnadvance
   L's Simple Main Menu #3 - 1-person Landarma 1 8,029 10-14-2010, 04:25 AM
Last Post: Landarma
   Final Fantasy X-2 Custom Menu System catchm 5 15,358 06-16-2010, 08:00 PM
Last Post: Mzale



Users browsing this thread: 1 Guest(s)