RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
Grid Inventory 1.0f

0 Members and 2 Guests are viewing this topic.

*
Rep: +0/-0Level 70
RMRK Junior
Hello sorry for necroposting but I want to suggest something..

I was wondering if you could make the Grid Item Inventory script you made for only 1 character only just like Diablo 2 and other MMORPGs that feature only controlling 1 man. Meaning disabling the "Transfer" option when in the menu and when I go into the Loot Menu and I take it, it will automatically be given to the 1st character or the character that I am controlling when in travelling a map. Im using Yggdrasil ABS. and the Lost Menu by Soja Bird.

*
Rep: +0/-0Level 70
RMRK Junior
Is there a way to make this compatable with RPG Tankentai Sideview Battle System?

**
Rep: +0/-0Level 84
@modern algebra: In case anyone bothers you with this question again, this script can be made compatible with the Tankentai ATB with technically one change.

On line 3215, find this line:

Code: [Select]
@item_window.ma_inventory = @active_battler.inventory

Replace that line with this:

Code: [Select]
if $imported != nil && $imported["TankentaiATB"]
  @item_window.ma_inventory = @commander.inventory
else
  @item_window.ma_inventory = @active_battler.inventory
end

It'll work with the latest version of the ATB. This is not needed without ATB.

If you want to make a patch for this, go ahead.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
Cool, thanks for the help Mr. Bubble! I will add that to the first post.

**
Rep:
Level 66
Haven't been on for ages -.-
I'm having a problemo,

When I chose a image, I then let the main player recieve that item. THen it says that it could not find the image. Help Please!

P.S. sorry for my bad spelling

**
Rep: +0/-0Level 74
RMRK Junior
Hi Modernalgebra and thanks for this great script. I would need a patch to make it compatible with YEM Main Menu Melody and with the FFXIII Layout.
I will put the codes of both scripts here so maybe you or anyone else can check them out.
Code: [Select]
#===============================================================================
#
# Yanfly Engine Melody - Main Menu Melody
# Last Date Updated: 2010.06.13
# Level: Normal, Hard, Lunatic
#
# This script allows for menu item reordering along with importing in custom
# script scenes with ease so that there becomes little need to change the base
# menu script in order to add in a few items. This is a YEM version of the
# popular KGC Custom Menu Command. No credits will be taken on part of my own
# behalf for the work KGC did. All I merely did was use it to extend the
# capabilities of adding in common events, imported commands, and beefed up
# engine efficiency.
#
#===============================================================================
# Updates
# -----------------------------------------------------------------------------
# o 2010.06.13 - Bugfix regarding imported commands and common events.
# o 2010.05.15 - Conversion to Yanfly Engine Melody.
#===============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ? Materials but above ? Main. Considering the special
# nature of this script, it is highly recommended that you place this script
# above all non-core scripts. Remember to save.
#
# Scroll down and edit the module as you see fitting for your game.
#
# -----------------------------------------------------------------------------
# Debug Shortcuts - Only during $TEST and $BTEST mode
# -----------------------------------------------------------------------------
# During testplay mode, pressing F5 while the main menu is active will fill
# all party members' HP and MP to full.
#===============================================================================

$imported = {} if $imported == nil
$imported["MainMenuMelody"] = true

module YEM
  module MENU
   
    #===========================================================================
    # Section I. Menu Commands
    # -------------------------------------------------------------------------
    # Adjust the following hash to modify which commands will appear where. Use
    # the following table to input in the commands as you see fit.
    #
    #   :items ............Default Item Menu
    #   :skill ............Default Skill Menu
    #   :equip ............Default Equip menu
    #   :status ...........Default Status Menu
    #   :save .............Default Save Menu
    #   :system ...........Default Game End Menu
    #
    # For those that have imported KGC scripts.
    #
    #   :kgc_largeparty ...Requires KGC's Large Party
    #   :kgc_apviewer .....Requires KGC's Equip Learn Skill
    #   :kgc_skillcp ......Requires KGC's Skill CP System
    #   :kgc_difficulty ...Requires KGC's Battle Difficulty
    #   :kgc_distribute ...Requires KGC's Distribute Parameter
    #   :kgc_enemyguide ...Requires KGC's Enemy Guide
    #   :kgc_outline ......Requires KGC's Outline
    #
    # For those who are still attached to the YERD scripts.
    #
    #   :yerd_classchange .Requires YERD Subclass Selection System
    #   :yerd_learnskill ..Requires YERD Subclass Selection System
    #   :yerd_equipslots ..Requires YERD Equip Skill Slots
    #   :yerd_bestiary ....Requires YERD Bestiary + Scanned Enemy
    #===========================================================================
    MENU_COMMANDS =[ # Follow the instructions above.
      :items,          # Default Item Menu
      :status,         # Default Status Menu
      :skill,          # Default Skill Menu
      :equip,          # Default Equip menu
      :row,         # Common Event
      :kgc_largeparty ,
      #:party,         # Common Event
      :save,           # Default Save Menu
      :system,         # Default Game End Menu
    ] # Do not remove this.
   
    # This will determine whether or not your menu uses icons.
    USE_ICONS = false
   
    # If you're using icons, adjust the following hash to bind the right icons
    # to the right command.
    MENU_ICONS ={ # If an icon is not present, it will use the unused icon.
      :unused => 176,
      :items  => 144,
      :skill  => 159,
      :equip  =>  44,
      :status => 137,
      :save   => 149,
      :system => 134,
    } # Do not remove this.
   
    # This is the maximum number of rows to be displayed before the command
    # box will be cut off.
    MAX_ROWS = 10
   
    # Set the alignment for the text in your menu. By default, alignment is 0.
    #   0..Left Align, 1..Center Align, 2..Right Align
    ALIGN = 0
   
    # Setting this to true will cause the menu to shift to the right side of
    # the screen while moving the party status window over to the left side.
    MENU_RIGHT_SIDE = false
   
    # If this is set to true, the menu will not obscure the map until actor
    # selection is required. Events on the map will be frozen in place.
    ON_SCREEN_MENU = false
   
    #===========================================================================
    # Section II.A. Custom Menu Command - Lunatic Mode - Common Events
    # -------------------------------------------------------------------------
    # For those who would like to launch command events from the main menu,
    # modify this hash here to fit your liking. Then, add in the newly added
    # method to the MENU_COMMANDS array above.
    #
    #   HideSw - This is the hide switch. Set to nil to not use a switch.
    #   DisbSw - This is the disable switch. Set to nil to not use a switch.
    #   Debug? - This item will only appear if it's $TEST mode.
    #   CEvent - This is the common event that will launch.
    #   Icon   - This is the icon used if the option is given.
    #   Title  - This is the text that will appear.
    #===========================================================================
    COMMON_EVENTS ={ # Follow the instructions above.
      # Method => [HideSw, DisbSw, Debug?, CEvent, Icon, Title Name]
      :event1  => [   nil,    nil,   true,     11,  101, "Debug"],
      :event2  => [   nil,    nil,  false,     12,  117, "Camp"],
    } # Do not remove this.
     
    #===========================================================================
    # Section II.B. Custom Menu Command - Lunatic Mode - Imported Commands
    # -------------------------------------------------------------------------
    # The following is what KGC originally was going to have in his script but
    # was actually missing it in his publicized script. This will regain
    # functionality and also lift the "limit" of only 100 extra commands. The
    # following will explain how to set up the individual options.
    #
    #   HideSw - Switch used to hide the command. Set to nil if not used.
    #   DisbSw - Switch used to disable the command. Set to nil if not used.
    #   Actor? - Does this select an actor. Set to true if it does.
    #     Icon - Determines what icon will be used for this item.
    #    Title - The title text that appears for the event.
    #    Scene - The scene used to launch the respective scene.
    #
    # Note that this does not automatically detect what will and will not
    # disable the command ingame. You must understand and create a work
    # around with them (if they do disable the commands) with switches.
    # After binding your imported commands, go back to MENU_COMMANDS and
    # insert the proper command ID at the proper location.
    #===========================================================================
    IMPORTED_COMMANDS ={ # Follow the instructions above.
    # Method  => [HideSw, DisbSw, Actor?, Icon, Title Name, Scene Name.new]
     :party  => [     nil,      nil,  false,   102,   "Party", "Scene_Party"],
     :faction => [    10,     11,  false,  100, "Factions", "Scene_Factions"],
     :row     => [   nil,    nil,  false,  101,     "Rows", "Scene_Row"],
     :record  => [   nil,    nil,  false,  102,  "Records", "Scene_Record"],
     :craft   => [   nil,    nil,  false,  103, "Crafting", "Scene_Crafting"],
    } # Do not remove this.
   
    #===========================================================================
    # Section III.A. Multi Variable Window
    # -------------------------------------------------------------------------
    # Imported straight from Scene Menu ReDux, this alters the gold window at
    # the bottom to display variables, time, steps, etc. This window appears
    # at the bottom of the screen.
    #===========================================================================
    USE_MULTI_VARIABLE_WINDOW = true
   
    # Variables will be shown in this order. Use 0 to show gold. Adjust the
    # following information as seen necessary.
    VARIABLES_SHOWN = [-5, 1, 0]
    VARIABLES_ICONS = false
    VARIABLES_HASH  ={ # Note that value zero must exist.
    # VarID => [Icon, Text]
          -5 => [ 153, "Map"],
          -2 => [  48, "Steps"],
          -1 => [ 188, "Time"],
           0 => [ 205, "Cr."],
           1 => [ 188, "A.E."],
    }# Do not remove this.
   
  end # MENU
end # YEM

#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================

#===============================================================================
# Scene_Menu
#===============================================================================

class Scene_Menu < Scene_Base
 
  #--------------------------------------------------------------------------
  # new method: create_command_list
  #--------------------------------------------------------------------------
  def create_command_list
    vocab = []
    commands = []
    icons = []
    index_list = {}
    YEM::MENU::MENU_COMMANDS.each_with_index { |c,i|
      case c
      when :items
        index_list[:items] = commands.size
        vocab.push(Vocab.item)
       
      when :skill # Skills
        index_list[:skill] = commands.size
        vocab.push(Vocab.skill)
       
      when :equip # Equip
        index_list[:equip] = commands.size
        vocab.push(Vocab.equip)
       
      when :status # Status
        index_list[:status] = commands.size
        vocab.push(Vocab.status)
       
      when :save # Save
        index_list[:save] = commands.size
        vocab.push(Vocab.save)
       
      when :system # System
        index_list[:system] = commands.size
        vocab.push(Vocab.game_end)
       
      #----- KGC Imported Scripts -----
       
      when :kgc_largeparty # KGC's Large Party
        next unless $imported["LargeParty"]
        index_list[:partyform] = commands.size
        @__command_partyform_index = commands.size
        vocab.push(Vocab.partyform)
       
      when :kgc_apviewer # KGC's AP Viewer
        next unless $imported["EquipLearnSkill"]
        index_list[:ap_viewer] = commands.size
        @__command_ap_viewer_index = commands.size
        vocab.push(Vocab.ap_viewer)
       
      when :kgc_skillcp # KGC's CP Skill System
        next unless $imported["SkillCPSystem"]
        index_list[:set_battle_skill] = commands.size
        @__command_set_battle_skill_index = commands.size
        vocab.push(Vocab.set_battle_skill)
       
      when :kgc_difficulty # KGC's Battle Difficulty
        next unless $imported["BattleDifficulty"]
        index_list[:set_difficulty] = commands.size
        @__command_set_difficulty_index = commands.size
        vocab.push(KGC::BattleDifficulty.get[:name])
       
      when :kgc_distribute # KGC's Distribute Parameter
        next unless $imported["DistributeParameter"]
        index_list[:distribute_parameter] = commands.size
        @__command_distribute_parameter_index = commands.size
        vocab.push(Vocab.distribute_parameter)
       
      when :kgc_enemyguide # KGC's Enemy Guide
        next unless $imported["EnemyGuide"]
        index_list[:enemy_guide] = commands.size
        @__command_enemy_guide_index = commands.size
        vocab.push(Vocab.enemy_guide)
       
      when :kgc_outline # KGC's Outline
        next unless $imported["Outline"]
        index_list[:outline] = commands.size
        @__command_outline_index = commands.size
        vocab.push(Vocab.outline)
       
      #----- YERD Imported Scripts -----
       
      when :yerd_classchange # Yanfly Subclass Class Change
        next unless $imported["SubclassSelectionSystem"]
        next unless YE::SUBCLASS::MENU_CLASS_CHANGE_OPTION
        next unless $game_switches[YE::SUBCLASS::ENABLE_CLASS_CHANGE_SWITCH]
        index_list[:classchange] = commands.size
        @command_class_change = commands.size
        vocab.push(YE::SUBCLASS::MENU_CLASS_CHANGE_TITLE)

      when :yerd_learnskill # Yanfly Subclass Learn Skill
        next unless $imported["SubclassSelectionSystem"]
        next unless YE::SUBCLASS::USE_JP_SYSTEM and
        YE::SUBCLASS::LEARN_SKILL_OPTION
        next unless $game_switches[YE::SUBCLASS::ENABLE_LEARN_SKILLS_SWITCH]
        index_list[:learnskill] = commands.size
        @command_learn_skill = commands.size
        vocab.push(YE::SUBCLASS::LEARN_SKILL_TITLE)
       
      when :yerd_equipslots # Yanfly Equip Skill System
        next unless $imported["EquipSkillSlots"]
        next unless $game_switches[YE::EQUIPSKILL::ENABLE_SLOTS_SWITCH]
        index_list[:equipskill] = commands.size
        @command_equip_skill = commands.size
        vocab.push(YE::EQUIPSKILL::MENU_TITLE)
       
      when :yerd_bestiary  # Yanfly Bestiary
        next unless $imported["DisplayScannedEnemy"]
        next unless $game_switches[YE::MENU::MONSTER::BESTIARY_SWITCH]
        index_list[:bestiary] = commands.size
        @command_bestiary = commands.size
        vocab.push(YE::MENU::MONSTER::BESTIARY_TITLE)
       
      else # ---- Custom Commands ----
        if YEM::MENU::COMMON_EVENTS.include?(c)
          common_event = YEM::MENU::COMMON_EVENTS[c]
          next if !$TEST and common_event[2]
          next if common_event[0] != nil and $game_switches[common_event[0]]
          index_list[c] = commands.size
          vocab.push(common_event[5])
        elsif YEM::MENU::IMPORTED_COMMANDS.include?(c)
          command_array = YEM::MENU::IMPORTED_COMMANDS[c]
          next if command_array[0] != nil and $game_switches[command_array[0]]
          index_list[c] = commands.size
          vocab.push(command_array[4])
        else; next
        end
       
      end
      commands.push(c)
      icons.push(menu_icon(c))
    } # YEM::MENU::MENU_COMMANDS.each_with_index
    $game_temp.menu_command_index = index_list
    @menu_array = [vocab, commands, icons]
  end
 
  #--------------------------------------------------------------------------
  # new method: menu_icon
  #--------------------------------------------------------------------------
  def menu_icon(command)
    if YEM::MENU::MENU_ICONS.include?(command)
      return YEM::MENU::MENU_ICONS[command]
    elsif YEM::MENU::COMMON_EVENTS.include?(command)
      return YEM::MENU::COMMON_EVENTS[command][4]
    elsif YEM::MENU::IMPORTED_COMMANDS.include?(command)
      return YEM::MENU::IMPORTED_COMMANDS[command][3]
    else
      return YEM::MENU::MENU_ICONS[:unused]
    end
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: create_command_window
  #--------------------------------------------------------------------------
  def create_command_window
    create_command_list
    @command_window = Window_MenuCommand.new(@menu_array)
    @command_window.height = [@command_window.height,
      YEM::MENU::MAX_ROWS * 24 + 32].min
    @command_window.index = [@menu_index, @menu_array[0].size - 1].min
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: update_command_selection
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      check_debug_enable
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif $TEST and Input.trigger?(Input::F5) # Debug Refresh Party
      Sound.play_recovery
      for member in $game_party.members
        member.hp += member.maxhp
        member.mp += member.maxmp
      end
      @status_window.refresh
    elsif Input.trigger?(Input::C)
      command = @command_window.method
      case command
      when :items # Item Command
        Sound.play_decision
        $scene = Scene_Item.new
      when :skill, :equip, :status # Skill, Equip, and Status Commands
        Sound.play_decision
        start_actor_selection
      when :save # Save Command
        if $game_system.save_disabled
          Sound.play_buzzer
        else
          Sound.play_decision
          $game_temp.menu_command_index[:save]
          $scene = Scene_File.new(true, false, false)
        end
      when :system # System Command
        Sound.play_decision
        $scene = Scene_End.new
      else # Custom Commands
        if YEM::MENU::COMMON_EVENTS.include?(command)
          array = YEM::MENU::COMMON_EVENTS[command]
          if array[1] != nil and $game_switches[array[1]]
            Sound.play_buzzer
          else
            Sound.play_decision
            $game_temp.common_event_id = array[3]
            $scene = Scene_Map.new
          end
        elsif YEM::MENU::IMPORTED_COMMANDS.include?(command)
          array = YEM::MENU::IMPORTED_COMMANDS[command]
          if array[1] != nil and $game_switches[array[1]]
            Sound.play_buzzer
          else
            Sound.play_decision
            if array[2]
              start_actor_selection
            else
              $scene = eval(array[5] + ".new")
            end
          end
        end
       
      end # if case check
    end # end if
  end # end update_command_selection
 
  #--------------------------------------------------------------------------
  # overwrite method: update_actor_selection
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
      @status_window.close if YEM::MENU::ON_SCREEN_MENU
    elsif $TEST and Input.trigger?(Input::F5) # Debug Refresh Party
      Sound.play_recovery
      for member in $game_party.members
        member.hp += member.maxhp
        member.mp += member.maxmp
      end
      @status_window.refresh
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      command = @command_window.method
      case command
      when :skill # Skill Command
        $scene = Scene_Skill.new(@status_window.index)
      when :equip # Equip Command
        $scene = Scene_Equip.new(@status_window.index)
      when :status # Status Command
        $scene = Scene_Status.new(@status_window.index)
      else # Custom Commands
        if YEM::MENU::IMPORTED_COMMANDS.include?(command)
          array = YEM::MENU::IMPORTED_COMMANDS[command]
          $scene = eval(array[5] + ".new(@status_window.index)")
        end
      end
     
    end
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: start
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    if YEM::MENU::USE_MULTI_VARIABLE_WINDOW
      @gold_window = Window_MultiVariableWindow.new
    else
      @gold_window = Window_Gold.new(0, 360)
    end
    @status_window = Window_MenuStatus.new(160, 0)
    @right_side = YEM::MENU::MENU_RIGHT_SIDE
    if YEM::MENU::ON_SCREEN_MENU
      @gold_window.y = @command_window.height
      @status_window.openness = 0
      @right_side = true if $game_player.screen_x <= 176
      @right_side = false if $game_player.screen_x >= 368
      $game_temp.on_screen_menu = false
    end
    if @right_side
      @status_window.x = 0
      @command_window.x = 384
      @gold_window.x = 384
    end
  end
 
  #--------------------------------------------------------------------------
  # alias method: start_actor_selection
  #--------------------------------------------------------------------------
  alias start_actor_selection_mmz start_actor_selection unless $@
  def start_actor_selection
    if YEM::MENU::ON_SCREEN_MENU
      @status_window.open
    end
    start_actor_selection_mmz
  end
 
  #--------------------------------------------------------------------------
  # new method: create_menu_background
  #--------------------------------------------------------------------------
  if YEM::MENU::ON_SCREEN_MENU
  def create_menu_background
    @menuback_sprite = Spriteset_Map.new
  end
  end
 
end # Scene_Menu

#==============================================================================
# Imported from KGC's Custom Menu Command
# to improve compatibility amongst KGC scripts
#==============================================================================
$imported["CustomMenuCommand"] = true
class Game_Temp
  attr_accessor :menu_command_index
  attr_accessor :next_scene_actor_index
  attr_accessor :on_screen_menu
 
  alias initialize_KGC_CustomMenuCommand initialize unless $@
  def initialize
    initialize_KGC_CustomMenuCommand
    @menu_command_index = {}
    @next_scene_actor_index = 0
  end
end

module KGC
module Commands
  module_function
  def call_item
    return if $game_temp.in_battle
    $game_temp.next_scene = :menu_item
    $game_temp.next_scene_actor_index = 0
    $game_temp.menu_command_index = {}
  end
  def call_skill(actor_index = 0)
    return if $game_temp.in_battle
    $game_temp.next_scene = :menu_skill
    $game_temp.next_scene_actor_index = actor_index
    $game_temp.menu_command_index = {}
  end
  def call_equip(actor_index = 0)
    return if $game_temp.in_battle
    $game_temp.next_scene = :menu_equip
    $game_temp.next_scene_actor_index = actor_index
    $game_temp.menu_command_index = {}
  end
  def call_status(actor_index = 0)
    return if $game_temp.in_battle
    $game_temp.next_scene = :menu_status
    $game_temp.next_scene_actor_index = actor_index
    $game_temp.menu_command_index = {}
  end
end
end

class Game_Interpreter
  include KGC::Commands
end

class Scene_Map < Scene_Base
  alias update_scene_change_KGC_CustomMenuCommand update_scene_change unless $@
  def update_scene_change
    return if $game_player.moving?
    case $game_temp.next_scene
    when :menu_item
      call_menu_item
    when :menu_skill
      call_menu_skill
    when :menu_equip
      call_menu_equip
    when :menu_status
      call_menu_status
    else
      update_scene_change_KGC_CustomMenuCommand
    end
  end
  alias call_menu_mmz call_menu unless $@
  def call_menu
    $game_temp.on_screen_menu = true if YEM::MENU::ON_SCREEN_MENU
    call_menu_mmz
  end
  def call_menu_item
    $game_temp.next_scene = nil
    $scene = Scene_Item.new
  end
  def call_menu_skill
    $game_temp.next_scene = nil
    $scene = Scene_Skill.new($game_temp.next_scene_actor_index)
    $game_temp.next_scene_actor_index = 0
  end
  def call_menu_equip
    $game_temp.next_scene = nil
    $scene = Scene_Equip.new($game_temp.next_scene_actor_index)
    $game_temp.next_scene_actor_index = 0
  end
  def call_menu_status
    $game_temp.next_scene = nil
    $scene = Scene_Status.new($game_temp.next_scene_actor_index)
    $game_temp.next_scene_actor_index = 0
  end
end

class Scene_Menu < Scene_Base
  def check_debug_enable
    return unless Input.press?(Input::F5)
    return unless Input.press?(Input::F9)
    $TEST = true
  end
end

class Scene_Item < Scene_Base
  def return_scene
    if $game_temp.menu_command_index.has_key?(:items)
      $scene = Scene_Menu.new($game_temp.menu_command_index[:items])
    else
      $scene = Scene_Map.new
    end
  end
end

class Scene_Skill < Scene_Base
  def return_scene
    if $game_temp.menu_command_index.has_key?(:skill)
      $scene = Scene_Menu.new($game_temp.menu_command_index[:skill])
    else
      $scene = Scene_Map.new
    end
  end
end

class Scene_Equip < Scene_Base
  def return_scene
    if $game_temp.menu_command_index.has_key?(:equip)
      $scene = Scene_Menu.new($game_temp.menu_command_index[:equip])
    else
      $scene = Scene_Map.new
    end
  end
end

class Scene_Status < Scene_Base
  def return_scene
    if $game_temp.menu_command_index.has_key?(:status)
      $scene = Scene_Menu.new($game_temp.menu_command_index[:status])
    else
      $scene = Scene_Map.new
    end
  end
end

class Scene_File < Scene_Base
  alias return_scene_KGC_CustomMenuCommand return_scene unless $@
  def return_scene
    if @from_title || @from_event
      return_scene_KGC_CustomMenuCommand
    elsif $game_temp.menu_command_index.has_key?(:save)
      $scene = Scene_Menu.new($game_temp.menu_command_index[:save])
    else
      $scene = Scene_Map.new
    end
  end
end

class Scene_End < Scene_Base
  def return_scene
    if $game_temp.menu_command_index.has_key?(:system)
      $scene = Scene_Menu.new($game_temp.menu_command_index[:system])
    else
      $scene = Scene_Map.new
    end
  end
end

#===============================================================================
# Game_Map
#===============================================================================

class Game_Map
 
  #--------------------------------------------------------------------------
  # map name
  #--------------------------------------------------------------------------
  unless method_defined?(:map_name)
  def map_name
    data = load_data("Data/MapInfos.rvdata")
    text = data[@map_id].name.gsub(/\[.*\]/) { "" }
    return text
  end
  end
 
end # Game_Map

#===============================================================================
# Game_Actor
#===============================================================================

class Game_Actor < Game_Battler
 
  #--------------------------------------------------------------------------
  # new method: now_exp
  #--------------------------------------------------------------------------
  def now_exp
    return @exp - @exp_list[@level]
  end
 
  #--------------------------------------------------------------------------
  # new method: next_exp
  #--------------------------------------------------------------------------
  def next_exp
    return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  end
 
end # Game_Actor

#===============================================================================
# Window_MultiVariableWindow
#===============================================================================

class Window_MultiVariableWindow < Window_Selectable
 
  #--------------------------------------------------------------------------
  # initialize
  #--------------------------------------------------------------------------
  def initialize
    dh = 32 + 24 * YEM::MENU::VARIABLES_SHOWN.size
    dy = Graphics.height - dh
    super(0, dy, 160, dh)
    refresh
  end
 
  #--------------------------------------------------------------------------
  # refresh
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    for i in YEM::MENU::VARIABLES_SHOWN
      next unless YEM::MENU::VARIABLES_HASH.include?(i)
      @time_index = @data.size if i == -1
      @data.push(i)
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
 
  #--------------------------------------------------------------------------
  # draw_item
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    sw = self.width - 32
    dy = WLH * index
    self.contents.clear_rect(rect)
    i = @data[index]
    case i
    when -5 # Draw Map Name
      self.contents.draw_text(0, dy, sw, WLH, $game_map.map_name, 1)
     
    when -2 # Draw Steps
      if YEM::MENU::VARIABLES_ICONS
        text = $game_party.steps
        self.contents.draw_text(0, dy, sw-24, WLH, text, 2)
        draw_icon(YEM::MENU::VARIABLES_HASH[-2][0], sw-24, dy)
      else
        text = YEM::MENU::VARIABLES_HASH[-2][1]
        value = $game_party.steps
        cx = contents.text_size(text).width
        self.contents.font.color = normal_color
        self.contents.draw_text(0, dy, sw-cx-2, WLH, value, 2)
        self.contents.font.color = system_color
        self.contents.draw_text(0, dy, sw, WLH, text, 2)
      end
     
    when -1 # Draw Time
      if YEM::MENU::VARIABLES_ICONS
        text = game_time
        self.contents.draw_text(0, dy, sw-24, WLH, text, 2)
        draw_icon(YEM::MENU::VARIABLES_HASH[-1][0], sw-24, dy)
      else
        self.contents.font.color = normal_color
        text = game_time
        self.contents.draw_text(0, dy, sw, WLH, text, 1)
      end
     
    when 0 # Draw Gold
      if YEM::MENU::VARIABLES_ICONS
        text = $game_party.gold
        self.contents.draw_text(0, dy, sw-24, WLH, text, 2)
        draw_icon(YEM::MENU::VARIABLES_HASH[0][0], sw-24, dy)
      else
        draw_currency_value($game_party.gold, 4, dy, 120)
      end
     
    else # Draw Variables
      if YEM::MENU::VARIABLES_ICONS
        text = $game_variables[i]
        self.contents.draw_text(0, dy, sw-24, WLH, text, 2)
        draw_icon(YEM::MENU::VARIABLES_HASH[i][0], sw-24, dy)
      else
        text = YEM::MENU::VARIABLES_HASH[i][1]
        value = $game_variables[i]
        cx = contents.text_size(text).width
        self.contents.font.color = normal_color
        self.contents.draw_text(0, dy, sw-cx-2, WLH, value, 2)
        self.contents.font.color = system_color
        self.contents.draw_text(0, dy, sw, WLH, text, 2)
      end
    end
  end
 
  #--------------------------------------------------------------------------
  # game_time
  #--------------------------------------------------------------------------
  def game_time
    gametime = Graphics.frame_count / Graphics.frame_rate
    hours = gametime / 3600
    minutes = gametime / 60 % 60
    seconds = gametime % 60
    result = sprintf("%d:%02d:%02d", hours, minutes, seconds)
    return result
  end
 
  #--------------------------------------------------------------------------
  # update
  #--------------------------------------------------------------------------
  if YEM::MENU::VARIABLES_SHOWN.include?(-1)
  def update
    if game_time != (Graphics.frame_count / Graphics.frame_rate)
      draw_item(@time_index)
    end
    super
  end
  end
 
end # Window_MultiVariableWindow

#===============================================================================
# Window_MenuCommand
#===============================================================================

class Window_MenuCommand < Window_Command
 
  #--------------------------------------------------------------------------
  # initialize
  #--------------------------------------------------------------------------
  def initialize(array)
    @data = array[1]
    @icons = array[2]
    super(160, array[0])
  end
 
  #--------------------------------------------------------------------------
  # refresh
  #--------------------------------------------------------------------------
  def refresh
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
 
  #--------------------------------------------------------------------------
  # method
  #--------------------------------------------------------------------------
  def method; return @data[self.index]; end
   
  #--------------------------------------------------------------------------
  # draw_item
  #--------------------------------------------------------------------------
  def draw_item(index, enabled = true)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    #---
    text = @commands[index]
    icon = @icons[index]
    case @data[index]
    when :items, :skill, :equip, :status, :kgc_apviewer, :kgc_skillcp,
      :kgc_distribute, :yerd_classchange, :yerd_learnskill, :yerd_equipslots
      enabled = ($game_party.members.size == 0 ? false : true)
    when :save
      enabled = !$game_system.save_disabled
    when :kgc_largeparty
      enabled = ($game_party.members.size == 0 ? false : true)
      enabled = false if !$game_party.partyform_enable?
    else
      if YEM::MENU::COMMON_EVENTS.include?(@data[index])
        if YEM::MENU::COMMON_EVENTS[@data[index]][1] != nil
          switch_id = YEM::MENU::COMMON_EVENTS[@data[index]][1]
          enabled = !$game_switches[switch_id]
        end
      elsif YEM::MENU::IMPORTED_COMMANDS.include?(@data[index])
        if YEM::MENU::IMPORTED_COMMANDS[@data[index]][1] != nil
          switch_id = YEM::MENU::IMPORTED_COMMANDS[@data[index]][1]
          enabled = !$game_switches[switch_id]
        end
      end
    end
    #---
    self.contents.font.color.alpha = enabled ? 255 : 128
    dx = rect.x; dy = rect.y; dw = rect.width
    if YEM::MENU::USE_ICONS and icon.is_a?(Integer)
      draw_icon(icon, 0, dy, enabled)
      dx += 20; dw -= 20
    end
    self.contents.draw_text(dx, dy, dw, WLH, text, YEM::MENU::ALIGN)
  end
 
end # Window_MenuCommand

#===============================================================================
#
# END OF FILE
#
#===============================================================================
This is the Main Menu Melody script.

I Need to doublepost, else it won't let me post both scripts here  :(

**
Rep: +0/-0Level 74
RMRK Junior
This is the FFXIII layout script

Code: [Select]
# 127- 4 max colummnns
#===============================================================================
#
# Shanghai Simple Script - Final Fantasy 13 Main Menu
# Last Date Updated: 2010.06.02
# Level: Normal
#
# NOTE! This requires Yanfly Engine Melody's Main Menu Melody script to be
# installed and located above this script to work. This makes your main menu
# ordered like Final Fantasy 13's.
#===============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ? Materials but above ? Main. Remember to save.
#
#===============================================================================
 
$imported = {} if $imported == nil
$imported["FinalFantasy13Menu"] = true
 
module SSS
  # This is the image file for the menu background. Place this inside of the
  # Graphics\System folder.
  MENU_BACK_IMAGE = "MenuBack"
 
  # This is the image file used for the back of each of the menu items. This
  # image must be 160x24 pixels and placed inside of the Graphics\System folder.
  MENU_BACK_ITEM_IMAGE = "MenuBackItem"
 
  # This sets the menu help window's text color.
  MENU_HELP_TEXT_COLOR = Color.new(0, 0, 0)
 
  # This is the text format used to write out the current map.
  MENU_LOCATION = "Location: %s"
 
  # This hash sets the image files for your actors. These images must be placed
  # inside of the Graphics\System folder and they have to be 104x288 pixels.
  MENU_ACTOR_IMAGES ={
    1 => "menu_yoshi",
    2 => "menu_kenta",
    3 => "menu_eiko",
    4 => "menu_kazumi",
    5 => "menu_nekomi",
    6 => "menu_kage",
  } # Remove this and perish.
 
  # This hash sets what colors belong to which class when drawn.
  MENU_CLASS_COLORS ={
    1 => 2,
    2 => 6,
    3 => 18,
    4 => 4,
    5 => 13,
    6 => 8,
    7 => 18,
    8 => 25,
  } # Remove this and perish.
 
  # This sets the help window descripts for the menu commands.
  MENU_HELP_WINDOW ={
    "Oggetti"     => "",
    "Status"   => "",
    "Skill"    => "",
    "Equip"    => "",
    "Formazione"     => "",
    "Party"    => "",
    "Salva"     => "",
    "Esci"      => "",
    "Sistema"   => "",
  } # Remove this and perish.
end
 
#==============================================================================
# ** Window_Base
#==============================================================================
 
class Window_Base < Window
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias initialize_sss_ff13_menu_window_base initialize unless $@
  def initialize(x, y, width, height)
    initialize_sss_ff13_menu_window_base(x, y, width, height)
    self.opacity = 0 if $scene.is_a?(Scene_Menu)
  end
end
 
#==============================================================================
# ** Window_MenuHelp
#==============================================================================
 
class Window_MenuHelp < Window_Help
  #--------------------------------------------------------------------------
  # * Set Text
  #--------------------------------------------------------------------------
  def set_text(text, align = 0)
    if text != @text or align != @align
      self.contents.clear
      self.contents.font.shadow = false
      self.contents.font.color = SSS::MENU_HELP_TEXT_COLOR
      self.contents.draw_text(4, 0, self.width - 40, WLH, text, align)
      @text = text
      @align = align
    end
  end
end
 
#==============================================================================
# ** Window_MainMenuParty
#==============================================================================
 
class Window_MainMenuParty < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x-24, y, Graphics.width-x+32, Graphics.height-y)
    self.active = false
    #@column_max = [4, $game_party.members.size].max
    @column_max = [4, 4].max
    @spacing = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    $game_temp.in_battle = true # ADDED
    @data = $game_party.members
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
    $game_temp.in_battle = false # ADDED
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    actor = @data[index]
    unless actor.nil?
      draw_actor_image(actor, rect)
      draw_actor_name(actor, rect)
      draw_actor_state(actor, rect.x+65, 292 - WLH*7/2 - 8, 96)
      draw_actor_class(actor, rect)
      draw_actor_level(actor, rect)
      draw_actor_hp(actor, rect)
      if actor.class_id.to_i != 6
      draw_actor_mp(actor, rect)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Image
  #--------------------------------------------------------------------------
  def draw_actor_image(actor, rect)
    filename = SSS::MENU_ACTOR_IMAGES[actor.id]
    return if filename.nil?
    bitmap = Cache.system(filename)
    image_rect = Rect.new(2, 2, rect.width-4, 284)
    self.contents.blt(rect.x+2, rect.y+2, bitmap, image_rect)
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Name
  #--------------------------------------------------------------------------
  def draw_actor_name(actor, rect)
    name = actor.name
    self.contents.font.size = Font.default_size
    self.contents.font.color = normal_color
    self.contents.draw_text(rect.x+4, WLH*3/2-20, rect.width-8, WLH, name, 2)
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Class
  #--------------------------------------------------------------------------
  def draw_actor_class(actor, rect)
    name = actor.class.name
    self.contents.font.size = Font.default_size - 4
    color_id = SSS::MENU_CLASS_COLORS[actor.class.id].to_i
    self.contents.font.color = text_color(color_id)
    self.contents.draw_text(rect.x+4, WLH*0, rect.width-8, WLH, name, 2)
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Level
  #--------------------------------------------------------------------------
  def draw_actor_level(actor, rect)
    self.contents.font.size = Font.default_size - 4
    self.contents.font.color = power_up_color
    yy = 292 - WLH*7/2 - 8
    #self.contents.draw_text(rect.x+4, yy, rect.width-8, WLH, Vocab.level_a, 0)
    draw_icon(274, rect.x+4, yy)
    self.contents.font.color = normal_color
    self.contents.font.size += 2
    self.contents.draw_text(rect.x+4+26, yy-1, rect.width-8, WLH, actor.level, 0)
  end
  #--------------------------------------------------------------------------
  # * Draw Actor HP
  #--------------------------------------------------------------------------
    def draw_actor_hp(actor, rect)
    self.contents.font.color = system_color
    yy = 288 - WLH*5/2 - 4
    #draw_actor_hp_gauge(actor, rect.x+4, yy, rect.width-8)   
      draw_slant_bar(rect.x+4,yy+12,actor.hp,actor.maxhp,rect.width-8,8,
        SLANT_BARS::DEFAULT_HP_BAR_COLOR,SLANT_BARS::DEFAULT_HP_END_COLOR)
       
    self.contents.font.size = Font.default_size - 4
    #self.contents.draw_text(rect.x+4, yy, rect.width-8, WLH, Vocab::hp_a)
    #draw_icon(272, rect.x+4, yy)
   
    self.contents.font.size -= 4
    self.contents.font.color = normal_color
    self.contents.draw_text(rect.x+4, yy+2, 30, WLH, "HP")
    self.contents.font.size += 4
   
    self.contents.font.color = hp_color(actor)
    last_font_size = self.contents.font.size
    xr = rect.x+4 + 94
      self.contents.font.size = 16
      self.contents.draw_text(xr - 70, yy, 26, WLH, actor.hp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 44, yy, 12, WLH, "/", 1)
      self.contents.draw_text(xr - 32, yy, 26, WLH, actor.maxhp, 2)
  end
  #--------------------------------------------------------------------------
  def draw_actor_hp_gauge(actor, x, y, width)
    gw = width * actor.hp / actor.maxhp
    gc1 = hp_gauge_color1
    gc2 = hp_gauge_color2
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
  #--------------------------------------------------------------------------
  # * Draw Actor MP
  #--------------------------------------------------------------------------
  def draw_actor_mp(actor, rect)
    self.contents.font.color = system_color
    yy = 300 - WLH*4/2 - 4
    #draw_actor_mp_gauge(actor, rect.x+4, yy, rect.width-8)
      draw_slant_bar(rect.x+4,yy+12,actor.mp,actor.maxmp,rect.width-8,8,
        mp_gauge_color1(actor),mp_gauge_color2(actor))
    #self.contents.draw_text(rect.x+4, yy, rect.width-67, WLH, MP_Types[actor.class.id - 1])
    #self.contents.draw_icon(MP_Types[actor.class.id - 1], rect.x+4, yy)
   
    self.contents.font.size -= 3
    self.contents.font.color = normal_color
    case actor.class.id
    when 1, 3
      self.contents.draw_text(rect.x+4, yy+1, 26, WLH, "Ammo")
    when 2
      self.contents.draw_text(rect.x+4, yy+1, 26, WLH, "Bat")
    when 4..5, 7
      self.contents.draw_text(rect.x+4, yy+1, 26, WLH, "Psi")
    end
   
    self.contents.font.color = mp_color(actor)
    last_font_size = self.contents.font.size
    xr = rect.x+4 + 94
      self.contents.font.size = 16
      self.contents.draw_text(xr - 70, yy, 26, WLH, actor.mp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 44, yy, 12, WLH, "/", 1)
      self.contents.draw_text(xr - 32, yy, 26, WLH, actor.maxmp, 2)
  end
  #--------------------------------------------------------------------------
def draw_actor_mp_gauge(actor, x, y, width)
    gw = width * actor.mp / actor.maxmp
    gc1 = mp_gauge_color1(actor)
    gc2 = mp_gauge_color2(actor)
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
  #--------------------------------------------------------------------------
  # * Item Rect
  #--------------------------------------------------------------------------
  def item_rect(index)
    rect = Rect.new(0, 0, 0, 0)
    rect.width = (contents.width + @spacing) / @column_max - @spacing
    rect.height = 288
    rect.x = index % @column_max * (rect.width + @spacing)
    rect.y = index / @column_max * WLH
    return rect
  end
end
 
#==============================================================================
# ** Window_MenuTimer
#==============================================================================
 
class Window_MenuTimer < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, Graphics.height - 60, 120, 56)
    self.contents.font.size = Font.default_size - 4
    self.contents.font.shadow = false
    self.contents.font.color = SSS::MENU_HELP_TEXT_COLOR
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    format = "%03d:%02d:%02d"
    @game_time = Graphics.frame_count / Graphics.frame_rate
    hours = @game_time / 3600
    minutes = @game_time / 60 % 60
    seconds = @game_time % 60
    text = sprintf(format, hours, minutes, seconds)
    self.contents.draw_text(0, 0, contents.width-4, WLH, text, 2)
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    super
    refresh if @game_time != (Graphics.frame_count / Graphics.frame_rate)
  end
end
 
#==============================================================================
# ** Window_MenuGold
#==============================================================================
 
class Window_MenuGold < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(100, Graphics.height - 60, 120, 56)
    self.contents.font.size = Font.default_size - 4
    self.contents.font.shadow = false
    self.contents.font.color = SSS::MENU_HELP_TEXT_COLOR
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    text = sprintf("%d%s", $game_party.gold, Vocab.gold)
    self.contents.draw_text(0, 0, contents.width-4, WLH, text, 0)
  end
end
 
#==============================================================================
# ** Window_MenuLocation
#==============================================================================
 
class Window_MenuLocation < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(Graphics.width/2-16, Graphics.height - 60, Graphics.width/2+16, 56)
    self.contents.font.size = Font.default_size - 4
    self.contents.font.shadow = false
    self.contents.font.color = SSS::MENU_HELP_TEXT_COLOR
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    text = sprintf(SSS::MENU_LOCATION, $game_map.map_name)
    self.contents.draw_text(4, 0, contents.width, WLH, text, 0)
  end
end
 
#===============================================================================
# Override Main Menu Melody Settings
#===============================================================================
 
YEM::MENU::USE_ICONS = false
YEM::MENU::MENU_RIGHT_SIDE = false
YEM::MENU::ON_SCREEN_MENU = false
YEM::MENU::USE_MULTI_VARIABLE_WINDOW = false
 
#==============================================================================
# ** Scene_Menu
#==============================================================================
 
class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  alias start_sss_ff13_menu start unless $@
  def start
    start_sss_ff13_menu
    start_ff13_menu_style
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  alias terminate_sss_ff13_menu terminate unless $@
  def terminate
    @help_window.dispose
    @location_window.dispose
    @menu_timer_window.dispose
    @menubackitem_sprite.bitmap.dispose
    @menubackitem_sprite.dispose
    terminate_sss_ff13_menu
  end
  #--------------------------------------------------------------------------
  # * Create Background for Menu Screen
  #--------------------------------------------------------------------------
  def create_menu_background
    @menuback_sprite = Sprite.new
    @menuback_sprite.bitmap = Cache.system("MenuBack_a")
    @menuback_sprite2 = Sprite.new
    @menuback_sprite2.bitmap = Cache.system("MenuBack_b")
    @menuback_sprite2.z -= 2
    update_menu_background
  end
  #--------------------------------------------------------------------------
  # * Update Background for Menu Screen
  #--------------------------------------------------------------------------
  def update_menu_background
    super
    @menubackitem_sprite.update unless @menubackitem_sprite.nil?
    @menu_timer_window.update unless @menu_timer_window.nil?
  end
  #--------------------------------------------------------------------------
  # * Create Menu Back Items
  #--------------------------------------------------------------------------
  def create_menu_back_items
    @menubackitem_sprite = Sprite.new
    width = 160
    height = @command_window.height-32
    @menubackitem_sprite.bitmap = Bitmap.new(width, height)
    bitmap = Cache.system(SSS::MENU_BACK_ITEM_IMAGE)
    rect = Rect.new(0, 0, 160, 24)
    y = 0
    loop do
      break if y >= height
      @menubackitem_sprite.bitmap.blt(0, y, bitmap, rect)
      y += 24
    end
    @menubackitem_sprite.y = @command_window.y+16
  end
  #--------------------------------------------------------------------------
  # * Start Final Fantasy 13 Menu Style
  #--------------------------------------------------------------------------
  def start_ff13_menu_style
    @gold_window.dispose
    @gold_window = Window_MenuGold.new
    @menu_timer_window = Window_MenuTimer.new
    @location_window = Window_MenuLocation.new
    @help_window = Window_MenuHelp.new
    @help_window.x += 48
    @help_window.width -= 48
    @help_window.create_contents
    @help_window.contents.font.size = Font.default_size - 4
    @command_window.y = @help_window.height - 9
    @status_window.dispose
    x = @command_window.width
    y = @help_window.height-9
    @status_window = Window_MainMenuParty.new(x, y)
    @command_window.x -= 4
    @help_window.y += 12
    update_help_window
    create_menu_back_items
  end
  #--------------------------------------------------------------------------
  # * Update Command Selection
  #--------------------------------------------------------------------------
  alias update_command_selection_sss_ff13_menu update_command_selection unless $@
  def update_command_selection
    update_help_window
    update_command_selection_sss_ff13_menu
  end
  #--------------------------------------------------------------------------
  # * Update Help Window
  #--------------------------------------------------------------------------
  def update_help_window
    return if @help_window_index == @command_window.index
    @help_window_index = @command_window.index
    commands = @command_window.commands
    text = SSS::MENU_HELP_WINDOW[commands[@help_window_index]].to_s
    @help_window.set_text(text)
  end
end
 
#===============================================================================
#
# END OF FILE
#
#===============================================================================

**
Rep: +0/-0Level 65
I think I found a little bug when I use this script and the Skill CP System - KGC_SkillCPSystem, and I was hoping for a little help to correct it.

What happens is that the equipment that you configure using the KGC script behaves in odd ways in the grid.

Example:
I have the "Fairy Shoes" classified as a "leg equipment" and when I equip them using the Grid inventory, the shoes don't get removed from the grid but they still get equipped by the actor. With this you can "clone" the equipment and equip it to another actor.

I tried changing the order of the scripts too. But when I do that, I get this error when I am about to equip the "Fairy Shoes":



Thanks in advance for your reply, and I hope that this is easily fixable.

(And I REALLY hope that it is not some stupid configuration mistake on my part, I
double checked, but you never know...)
« Last Edit: October 12, 2011, 02:53:11 PM by vision_bond »

**
Rep: +0/-0Level 65
Well, it seems that poor vision_bond won't have grid inventory for christmas...  :-\

POOR POOR vision_bond...  :(

**
Rep: +0/-0Level 73
RMRK Junior
can you use this script to make an item that changes the inventory size?

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
Yes, it would just need to call a common event, and in that common event have the following code in a script call:

Code: [Select]
resize_actor_inventory (actor_id, width, height)

where actor ID is an integer representing the actor, width is the new width, and height is the new height.

EX:
Code: [Select]
resize_actor_inventory (2, 9, 8)

That would change actor 2's inventory to be 9x8.

If you wanted the item to be targetted in such a way that it only works on the actor you select, you would need another script which allows that. I think I wrote a script which did that. Just look in the Script Index for something like "Record Target Variable"

*
Rep: +0/-0Level 64
RMRK Junior
I'm using the other two scripts you said should be used along with you. Don't know if that means anything, but if you need it... anyway, here's my problem: I can't even play the ame because before it starts, the screen stays black and a window pops up.

Script 'GridInventory' line 1640: NameError occured.
undefined method 'include?' for class 'Window_Item'

Don't know what it means at all. I have 100% zero knowledge of scripting, so...
The only other script I use that didn't come with the software is Yanfly's battle face script (shows actor faces in battle). Any help would be much obliged.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
Well, include? is a default method in Window_Item, so maybe the problem is script order? This script has to be below every default script slot except for Main. The only other thing I can think of off the top of my head is that you shouldn't replace any of the default scripts with this one either.

Other than that, test out the demo - see if it works there.

**
Rep: +0/-0Level 67
RPGVX Advanced (I Do Not Script Tough)
 ;8WOW ;8
NICE JOB DUDE
looks like naruto ninja chronicles ;D

*
Rep: +0/-0Level 63
RMRK Junior
I think this menu system is awesome sauce.  I only have 1 question.  Is there a way to prevent users from destroying
an item that should never be destroyed.  For example, I have an object, that calls a common event.  It is the only thing in the game that calls the common event, therefore should never be deleted.  Is that possible with this system?

**
Rep: +0/-0Level 73
RMRK Junior
When i use the mouse cursor script in the Wora script pack it doesn't work for grid inventory. is there a fix for that?

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
@Thearun - well, there is this:

Quote
#    \nondiscard
#      this option sets the item as undiscardable through the inventory scene.
#       Bear in mind that it does not prevent the player from storing the item,
#       and if the item is in Loot, then it can still be destroyed.

Ie, if you place \nondiscard in the notebox of an item, weapon, or armor, then the player cannot discard it. However, you would need to make sure it actually went into their inventory when they first got it.


@WatfordJ - I do not know. I do not plan to make a patch for that though, so maybe you could try posting a general request in the Scripts Board.

*
Rep: +0/-0Level 67
RMRK Junior
Let me start off by saying i am a very big fan of your work :D. I was taking a look at your grid inventory script to use for my game, but at the same time i am i incorporating XAS. The problem with this is XAS tends to use the SKILL list instead of ITEM list. is there a way to add code to skills? For example, in XAS there is a potion, i tried adding the maxstack command to the notes out of curiosity but no luck :(.


P.S I think you should work on an achievement script, a good idea would be to derive it from your Quest Journal script.

**
Rep: +0/-0Level 67
RMRK Junior
umm... i need a small hint thingy... Sorry for the necro-post... But im trying to add items to a chest... I tried to match it but it says there is a syntaxerror when i click on the chest.

I need help defining the item types.... What does it mean by that...? I looked in the script and alas.. no help there.... here is the code


potion = [0, 1, 5]
Phoenix Plume = [0, 22, 5]
Thread = [0, 23, 5]
Linen Cloth = [0, 24, 5]
items = [potion, Phoenix Plume, Thread,
Linen Cloth]
open_storage (0, items, "Red Chest", 95)

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
Well, there are a bunch of problems with what you posted; you shouldn't use spaces in your variable names, you shouldn't use capital letters, and you shouldn't any line of code be on more than one line. Do this instead:

Code: [Select]
a = [0, 1, 5]
b = [0, 22, 5]
c = [0, 23, 5]
d = [0, 24, 5]
items = [a, b, c, d]
open_storage(0, items, "Red Chest", 95)

**
Rep: +0/-0Level 67
RMRK Junior
err really stupid question... what does the a b c d stand for?

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
They are just names of variables you create. It could just as easily be (excluding items 23 and 24 from the chest):

Code: [Select]
fragglemonster = [0, 1, 5]
iggles = [0, 22, 5]
womper = [fragglemonster, iggles]
open_storage(0, womper, "Red Chest", 95)

I used a, b, c, d, since they are short and it won't go over the space restrictions in the script event command.

**
Rep: +0/-0Level 67
RMRK Junior
oh okay! hahaha Thanks!

**
Rep: +0/-0Level 73
RMRK Junior
how do i make an empty storage?

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
Should be OK if you just do: open_storage(id)

So, something like:

Code: [Select]
open_storage(1)

or
Code: [Select]
open_storage(34)

Whatever - you just have to use a unique ID.