Envision, Create, Share

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

Law's Custom Equipment Screen Help

I am using Law's Custom Equipment Screen, but the code I am posting has been modified. The problem I am having is that the CBS that I am using is overright the default settings for the help/information box. So I need to figure out how to not change it for the CBS but change it for the equipment screen and I am not sure how. I also would like to be able to add a "Equip, Remove, Optimize, Remove All" option in the top left corner. Equip would function normally, remove would remove one equipped item of choice, Optimize would only effect weapon, shield, armor, and helmet, not effecting accessories, and remove all would remove everything equipped. Aftering searching post, forums from different sites and googling, I am posting up here in hope that someone can help me out.


Code:
#------------------------------------------------------------------------------

#==============================================================================

#==============================================================================

#====================*Law's Custom Equipment Screen*===========================

#=========================Author: The Law G14==================================

#============================Version 1.0=======================================

#==============================================================================

#------------------------------------------------------------------------------

#==============================================================================

# ** Window_EquipLeft

#------------------------------------------------------------------------------

#  This window displays actor parameter changes on the equipment screen.

#==============================================================================

class Window_EquipLeft < Window_Base

  

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(224, 227, 415, 190)

    self.contents = Bitmap.new(width - 32, height - 32)

    @actor = actor

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------    

  def refresh

    self.contents.clear

    draw_actor_parameter(@actor, 4, 0, 0)

    draw_actor_parameter(@actor, 4, 18, 1)

    draw_actor_parameter(@actor, 4, 36, 2)

    draw_actor_parameter(@actor, 4, 54, 3)

    draw_actor_parameter(@actor, 4, 72, 4)

    draw_actor_parameter(@actor, 4, 90, 5)

    draw_actor_parameter(@actor, 4, 108, 6)

     if @new_atk != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 0, 40, 32, '->', 1)

     if @new_atk > @actor.atk

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_atk < @actor.atk)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 0, 36, 32, @new_atk.to_s, 2)

     end

    if @new_pdef != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 18, 40, 32, '->', 1)

     if @new_pdef > @actor.pdef

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_pdef < @actor.pdef)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 18, 36, 32, @new_pdef.to_s, 2)

     end

    if @new_mdef != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 36, 40, 32, '->', 1)

     if @new_mdef > @actor.mdef

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_mdef < @actor.mdef)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 36, 36, 32, @new_mdef.to_s, 2)

     end

    if @new_str != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 54, 40, 32, '->', 1)

     if @new_str > @actor.str

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_str < @actor.str)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 54, 36, 32, @new_str.to_s, 2)

     end

    if @new_dex != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 72, 40, 32, '->', 1)

     if @new_dex > @actor.dex

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_dex < @actor.dex)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 72, 36, 32, @new_dex.to_s, 2)

     end

    if @new_agi != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 90, 40, 32, '->', 1)

     if @new_agi > @actor.agi

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_agi < @actor.agi)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 90, 36, 32, @new_agi.to_s, 2)

     end

    if @new_int != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 108, 40, 32, '->', 1)

     if @new_int > @actor.int

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_int < @actor.int)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 108, 36, 32, @new_int.to_s, 2)

     end

  end

  #--------------------------------------------------------------------------

  # * Set parameters after changing equipment

  #     new_atk  : attack power after changing equipment

  #     new_pdef : physical defense after changing equipment

  #     new_mdef : magic defense after changing equipment

  #--------------------------------------------------------------------------

  def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex,

                         new_agi, new_int)

    if @new_atk != new_atk || @new_pdef != new_pdef || @new_mdef != new_mdef ||

        @new_str != new_str || @new_dex != new_dex || @new_agi != new_agi ||

        @new_int != new_int

      @new_atk = new_atk

      @new_pdef = new_pdef

      @new_mdef = new_mdef

      @new_str = new_str

      @new_dex = new_dex

      @new_agi = new_agi

      @new_int = new_int

      refresh

    end

  end 

end

#==============================================================================

# ** Window_EquipRight

#------------------------------------------------------------------------------

#  This window displays items the actor is currently equipped with on the

#  equipment screen.

#==============================================================================

 

class Window_EquipRight < Window_Selectable

  #--------------------------------------------------------------------------

  # * Item Acquisition

  #--------------------------------------------------------------------------

  def item

    return @data[self.index]

  end

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(224, 0, 415, 228)

    self.contents = Bitmap.new(width - 32, height - 32)

    @actor = actor

    self.index = 0

    refresh

  end

  #--------------------------------------------------------------------------

  # * Draw Actor Face Graphic

  #--------------------------------------------------------------------------

  def draw_actor_face_graphic(actor, x, y)

    bitmap = RPG::Cache.battler(actor.battler_name, 0)

    self.contents.blt(x, y, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    draw_actor_face_graphic(@actor, x + 62, y + 30)

    draw_actor_name(@actor, x + 75, 0)

    @data = []

    @data.push($data_weapons[@actor.weapon_id])

    @data.push($data_armors[@actor.armor1_id])

    @data.push($data_armors[@actor.armor2_id])

    @data.push($data_armors[@actor.armor3_id])

    @data.push($data_armors[@actor.armor4_id])

    @item_max = @data.size

    self.contents.font.color = system_color

    self.contents.draw_text(4, 32 * 0, 160, 32, $data_system.words.weapon)

    self.contents.draw_text(4, 32 * 1, 160, 32, $data_system.words.armor1)

    self.contents.draw_text(4, 32 * 2, 160, 32, $data_system.words.armor2)

    self.contents.draw_text(4, 32 * 3, 160, 32, $data_system.words.armor3)

    self.contents.draw_text(5, 32 * 4, 160, 32, $data_system.words.armor4)

    draw_item_name(@data[0], 140, 32 * 0)

    draw_item_name(@data[1], 140, 32 * 1)

    draw_item_name(@data[2], 140, 32 * 2)

    draw_item_name(@data[3], 140, 32 * 3)

    draw_item_name(@data[4], 140, 32 * 4)

  end

  #--------------------------------------------------------------------------

  # * Help Text Update

  #--------------------------------------------------------------------------

  def update_help

    @help_window.set_text(self.item == nil ? "" : self.item.description)

  end

end

#==============================================================================

# ** Window_EquipItem

#------------------------------------------------------------------------------

#  This window displays choices when opting to change equipment on the

#  equipment screen.

#==============================================================================

 

class Window_EquipItem < Window_Selectable

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor      : actor

  #     equip_type : equip region (0-3)

  #--------------------------------------------------------------------------

  def initialize(actor, equip_type)

    super(0, 87, 225, 330)

    @actor = actor

    @equip_type = equip_type

    @column_max = 1

    refresh

    self.active = false

    self.index = -1

  end

  #--------------------------------------------------------------------------

  # * Item Acquisition

  #--------------------------------------------------------------------------

  def item

    return @data[self.index]

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    if self.contents != nil

      self.contents.dispose

      self.contents = nil

    end

    @data = []

    # Add equippable weapons

    if @equip_type == 0

      weapon_set = $data_classes[@actor.class_id].weapon_set

      for i in 1...$data_weapons.size

        if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)

          @data.push($data_weapons[i])

        end

      end

    end

    # Add equippable armor

    if @equip_type != 0

      armor_set = $data_classes[@actor.class_id].armor_set

      for i in 1...$data_armors.size

        if $game_party.armor_number(i) > 0 and armor_set.include?(i)

          if $data_armors[i].kind == @equip_type-1

            @data.push($data_armors[i])

          end

        end

      end

    end

    # Add blank page

    @data.push(nil)

    # Make a bit map and draw all items

    @item_max = @data.size

    self.contents = Bitmap.new(width - 32, row_max * 32)

    for i in 0...@item_max-1

      draw_item(i)

    end

  end

  #--------------------------------------------------------------------------

  # * Draw Item

  #     index : item number

  #--------------------------------------------------------------------------

  def draw_item(index)

    item = @data[index]

    x = 4 + index % 1 * (288 + 32)

    y = index / 1 * 32

    case item

    when RPG::Weapon

      number = $game_party.weapon_number(item.id)

    when RPG::Armor

      number = $game_party.armor_number(item.id)

    end

    bitmap = RPG::Cache.icon(item.icon_name)

    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))

    self.contents.font.color = normal_color

    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)

    self.contents.draw_text(x + 160, y, 16, 32, "x", 1)

    self.contents.draw_text(x + 163, y, 24, 32, number.to_s, 2)

  end

  #--------------------------------------------------------------------------

  # * Help Text Update

  #--------------------------------------------------------------------------

  def update_help

    @help_window.set_text(self.item == nil ? "" : self.item.description)

  end

end

#==============================================================================

# ** Scene_Equip

#------------------------------------------------------------------------------

#  This class performs equipment screen processing.

#==============================================================================

 

class Scene_Equip

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor_index : actor index

  #     equip_index : equipment index

  #--------------------------------------------------------------------------

  def initialize(actor_index = 0, equip_index = 0)

    @actor_index = actor_index

    @equip_index = equip_index

  end

  #--------------------------------------------------------------------------

  # * Main Processing

  #--------------------------------------------------------------------------

  def main

    # Get actor

    @actor = $game_party.actors[@actor_index]

    # Make windows

    @help_window = Window_Help.new

    @left_window = Window_EquipLeft.new(@actor)

    @right_window = Window_EquipRight.new(@actor)

    @item_window1 = Window_EquipItem.new(@actor, 0)

    @item_window2 = Window_EquipItem.new(@actor, 1)

    @item_window3 = Window_EquipItem.new(@actor, 2)

    @item_window4 = Window_EquipItem.new(@actor, 3)

    @item_window5 = Window_EquipItem.new(@actor, 4)

    # Associate help window

    @right_window.help_window = @help_window

    @item_window1.help_window = @help_window

    @item_window2.help_window = @help_window

    @item_window3.help_window = @help_window

    @item_window4.help_window = @help_window

    @item_window5.help_window = @help_window

    # Set cursor position

    @right_window.index = @equip_index

    refresh

    # Execute transition

    Graphics.transition

    # Main loop

    loop do

      # Update game screen

      Graphics.update

      # Update input information

      Input.update

      # Frame update

      update

      # Abort loop if screen is changed

      if $scene != self

        break

      end

    end

    # Prepare for transition

    Graphics.freeze

    # Dispose of windows

    @help_window.dispose

    @left_window.dispose

    @right_window.dispose

    @item_window1.dispose

    @item_window2.dispose

    @item_window3.dispose

    @item_window4.dispose

    @item_window5.dispose

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    # Set item window to visible

    @item_window1.visible = (@right_window.index == 0)

    @item_window2.visible = (@right_window.index == 1)

    @item_window3.visible = (@right_window.index == 2)

    @item_window4.visible = (@right_window.index == 3)

    @item_window5.visible = (@right_window.index == 4)

    # Get currently equipped item

    item1 = @right_window.item

    # Set current item window to @item_window

    case @right_window.index

    when 0

      @item_window = @item_window1

    when 1

      @item_window = @item_window2

    when 2

      @item_window = @item_window3

    when 3

      @item_window = @item_window4

    when 4

      @item_window = @item_window5

    end

    # If right window is active

    if @right_window.active

      # Erase parameters for after equipment change

      @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)

    end

    # If item window is active

    if @item_window.active

      # Get currently selected item

      item2 = @item_window.item

      # Change equipment

      last_hp = @actor.hp

      last_sp = @actor.sp

      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)

      # Get parameters for after equipment change

      new_atk = @actor.atk

      new_pdef = @actor.pdef

      new_mdef = @actor.mdef

      new_str = @actor.str

      new_dex = @actor.dex

      new_agi = @actor.agi

      new_int = @actor.int

      # Return equipment

      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)

      @actor.hp = last_hp

      @actor.sp = last_sp

      # Draw in left window

      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int)

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    # Update windows

    @left_window.update

    @right_window.update

    @item_window.update

    refresh

    # If right window is active: call update_right

    if @right_window.active

      update_right

      return

    end

    # If item window is active: call update_item

    if @item_window.active

      update_item

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when right window is active)

  #--------------------------------------------------------------------------

  def update_right

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Switch to menu screen

      $scene = Scene_Menu.new(2)

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # If equipment is fixed

      if @actor.equip_fix?(@right_window.index)

        # Play buzzer SE

        $game_system.se_play($data_system.buzzer_se)

        return

      end

      # Play decision SE

      $game_system.se_play($data_system.decision_se)

      # Activate item window

      @right_window.active = false

      @item_window.active = true

      @item_window.index = 0

      return

    end

    # If R button was pressed

    if Input.trigger?(Input::R)

      # Play cursor SE

      $game_system.se_play($data_system.cursor_se)

      # To next actor

      @actor_index += 1

      @actor_index %= $game_party.actors.size

      # Switch to different equipment screen

      $scene = Scene_Equip.new(@actor_index, @right_window.index)

      return

    end

    # If L button was pressed

    if Input.trigger?(Input::L)

      # Play cursor SE

      $game_system.se_play($data_system.cursor_se)

      # To previous actor

      @actor_index += $game_party.actors.size - 1

      @actor_index %= $game_party.actors.size

      # Switch to different equipment screen

      $scene = Scene_Equip.new(@actor_index, @right_window.index)

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when item window is active)

  #--------------------------------------------------------------------------

  def update_item

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Activate right window

      @right_window.active = true

      @item_window.active = false

      @item_window.index = -1

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Play equip SE

      $game_system.se_play($data_system.equip_se)

      # Get currently selected data on the item window

      item = @item_window.item

      # Change equipment

      @actor.equip(@right_window.index, item == nil ? 0 : item.id)

      # Activate right window

      @right_window.active = true

      @item_window.active = false

      @item_window.index = -1

      # Remake right window and item window contents

      @right_window.refresh

      @item_window.refresh

      return

    end

  end

end
 
Hey! I won't be able to help you on the first part of your request regarding the "help/information" window unless you provide the CBS you're using, so could you post that? Then I'll get into fixing that for you, as for the second part of your request I can do that for you but I'm about to go to bed so I'll have to get to it to you tomorow, besides, I want to finish the first part of your request first before I add the extra window with the optimize, remove, etc. commands.

Hope this helps :)
 
Alright cool, I've downloaded Enu's CBS but there are a couple things I need clarified:

1. For the equipment you want to use the default help window, right? And for the CBS you want to use the custom help window?

2. Is this how your script editor looks like:

script_editor.jpg


http://postimage.org/image/q4bkizydz/


If not, please tell me what scripts to add/remove

3. What part of my script have you "modified", I need to know so I don't mess up with what you've changed.
 
yeah default help window, just want it on the bottom not on the top, but in the CBS it's on the top and I'd like to keep it there. Your script that I have modified is in the first post made here. More or less on how it looks, here's a screen:



Also I haven't touched anything in the CBS yet, it's a little above my knowledge at the moment, so i haven't tried to mod it yet.
 
Alright well here's the easiest way to fix your problem, probably not the best, but it'll still work, replace your equipment script with this:

Code:
#------------------------------------------------------------------------------

#==============================================================================

#==============================================================================

#====================*Law's Custom Equipment Screen*===========================

#=========================Author: The Law G14==================================

#============================Version 1.0=======================================

#==============================================================================

#------------------------------------------------------------------------------

 

#==============================================================================

# ** Window_Help

#------------------------------------------------------------------------------

#  This window shows skill and item explanations along with actor status.

#==============================================================================

 

class Window_Help_Equip < Window_Base

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize

    super(0, 416, 640, 64)

    self.contents = Bitmap.new(width - 32, height - 32)

  end

  #--------------------------------------------------------------------------

  # * Set Text

  #  text  : text string displayed in window

  #  align : alignment (0..flush left, 1..center, 2..flush right)

  #--------------------------------------------------------------------------

  def set_text(text, align = 0)

    # If at least one part of text and alignment differ from last time

    if text != @text or align != @align

      # Redraw text

      self.contents.clear

      self.contents.font.color = normal_color

      self.contents.draw_text(4, 0, self.width - 40, 32, text, align)

      @text = text

      @align = align

      @actor = nil

    end

    self.visible = true

  end

  #--------------------------------------------------------------------------

  # * Set Actor

  #     actor : status displaying actor

  #--------------------------------------------------------------------------

  def set_actor(actor)

    if actor != @actor

      self.contents.clear

      draw_actor_name(actor, 4, 0)

      draw_actor_state(actor, 140, 0)

      draw_actor_hp(actor, 284, 0)

      draw_actor_sp(actor, 460, 0)

      @actor = actor

      @text = nil

      self.visible = true

    end

  end

  #--------------------------------------------------------------------------

  # * Set Enemy

  #     enemy : name and status displaying enemy

  #--------------------------------------------------------------------------

  def set_enemy(enemy)

    text = enemy.name

    state_text = make_battler_state_text(enemy, 112, false)

    if state_text != ""

      text += "  " + state_text

    end

    set_text(text, 1)

  end

end

 

 

#==============================================================================

# ** Window_EquipLeft

#------------------------------------------------------------------------------

#  This window displays actor parameter changes on the equipment screen.

#==============================================================================

 

class Window_EquipLeft < Window_Base  

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(224, 227, 415, 190)

    self.contents = Bitmap.new(width - 32, height - 32)

    @actor = actor

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------    

  def refresh

    self.contents.clear

    draw_actor_parameter(@actor, 4, 0, 0)

    draw_actor_parameter(@actor, 4, 18, 1)

    draw_actor_parameter(@actor, 4, 36, 2)

    draw_actor_parameter(@actor, 4, 54, 3)

    draw_actor_parameter(@actor, 4, 72, 4)

    draw_actor_parameter(@actor, 4, 90, 5)

    draw_actor_parameter(@actor, 4, 108, 6)

     if @new_atk != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 0, 40, 32, '->', 1)

     if @new_atk > @actor.atk

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_atk < @actor.atk)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 0, 36, 32, @new_atk.to_s, 2)

     end

    if @new_pdef != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 18, 40, 32, '->', 1)

     if @new_pdef > @actor.pdef

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_pdef < @actor.pdef)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 18, 36, 32, @new_pdef.to_s, 2)

     end

    if @new_mdef != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 36, 40, 32, '->', 1)

     if @new_mdef > @actor.mdef

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_mdef < @actor.mdef)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 36, 36, 32, @new_mdef.to_s, 2)

     end

    if @new_str != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 54, 40, 32, '->', 1)

     if @new_str > @actor.str

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_str < @actor.str)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 54, 36, 32, @new_str.to_s, 2)

     end

    if @new_dex != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 72, 40, 32, '->', 1)

     if @new_dex > @actor.dex

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_dex < @actor.dex)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 72, 36, 32, @new_dex.to_s, 2)

     end

    if @new_agi != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 90, 40, 32, '->', 1)

     if @new_agi > @actor.agi

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_agi < @actor.agi)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 90, 36, 32, @new_agi.to_s, 2)

     end

    if @new_int != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 108, 40, 32, '->', 1)

     if @new_int > @actor.int

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_int < @actor.int)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 108, 36, 32, @new_int.to_s, 2)

     end

  end

  #--------------------------------------------------------------------------

  # * Set parameters after changing equipment

  #     new_atk  : attack power after changing equipment

  #     new_pdef : physical defense after changing equipment

  #     new_mdef : magic defense after changing equipment

  #--------------------------------------------------------------------------

  def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex,

                         new_agi, new_int)

    if @new_atk != new_atk || @new_pdef != new_pdef || @new_mdef != new_mdef ||

        @new_str != new_str || @new_dex != new_dex || @new_agi != new_agi ||

        @new_int != new_int

      @new_atk = new_atk

      @new_pdef = new_pdef

      @new_mdef = new_mdef

      @new_str = new_str

      @new_dex = new_dex

      @new_agi = new_agi

      @new_int = new_int

      refresh

    end

  end 

end

#==============================================================================

# ** Window_EquipRight

#------------------------------------------------------------------------------

#  This window displays items the actor is currently equipped with on the

#  equipment screen.

#==============================================================================

 

class Window_EquipRight < Window_Selectable

  #--------------------------------------------------------------------------

  # * Item Acquisition

  #--------------------------------------------------------------------------

  def item

    return @data[self.index]

  end

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(224, 0, 415, 228)

    self.contents = Bitmap.new(width - 32, height - 32)

    @actor = actor

    self.index = 0

    refresh

  end

  #--------------------------------------------------------------------------

  # * Draw Actor Face Graphic

  #--------------------------------------------------------------------------

  def draw_actor_face_graphic(actor, x, y)

    bitmap = RPG::Cache.battler(actor.battler_name, 0)

    self.contents.blt(x, y, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    draw_actor_face_graphic(@actor, x + 62, y + 30)

    draw_actor_name(@actor, x + 75, 0)

    @data = []

    @data.push($data_weapons[@actor.weapon_id])

    @data.push($data_armors[@actor.armor1_id])

    @data.push($data_armors[@actor.armor2_id])

    @data.push($data_armors[@actor.armor3_id])

    @data.push($data_armors[@actor.armor4_id])

    @item_max = @data.size

    self.contents.font.color = system_color

    self.contents.draw_text(4, 32 * 0, 160, 32, $data_system.words.weapon)

    self.contents.draw_text(4, 32 * 1, 160, 32, $data_system.words.armor1)

    self.contents.draw_text(4, 32 * 2, 160, 32, $data_system.words.armor2)

    self.contents.draw_text(4, 32 * 3, 160, 32, $data_system.words.armor3)

    self.contents.draw_text(5, 32 * 4, 160, 32, $data_system.words.armor4)

    draw_item_name(@data[0], 140, 32 * 0)

    draw_item_name(@data[1], 140, 32 * 1)

    draw_item_name(@data[2], 140, 32 * 2)

    draw_item_name(@data[3], 140, 32 * 3)

    draw_item_name(@data[4], 140, 32 * 4)

  end

  #--------------------------------------------------------------------------

  # * Help Text Update

  #--------------------------------------------------------------------------

  def update_help

    @help_window.set_text(self.item == nil ? "" : self.item.description)

  end

end

#==============================================================================

# ** Window_EquipItem

#------------------------------------------------------------------------------

#  This window displays choices when opting to change equipment on the

#  equipment screen.

#==============================================================================

 

class Window_EquipItem < Window_Selectable

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor      : actor

  #     equip_type : equip region (0-3)

  #--------------------------------------------------------------------------

  def initialize(actor, equip_type)

    super(0, 87, 225, 330)

    @actor = actor

    @equip_type = equip_type

    @column_max = 1

    refresh

    self.active = false

    self.index = -1

  end

  #--------------------------------------------------------------------------

  # * Item Acquisition

  #--------------------------------------------------------------------------

  def item

    return @data[self.index]

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    if self.contents != nil

      self.contents.dispose

      self.contents = nil

    end

    @data = []

    # Add equippable weapons

    if @equip_type == 0

      weapon_set = $data_classes[@actor.class_id].weapon_set

      for i in 1...$data_weapons.size

        if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)

          @data.push($data_weapons[i])

        end

      end

    end

    # Add equippable armor

    if @equip_type != 0

      armor_set = $data_classes[@actor.class_id].armor_set

      for i in 1...$data_armors.size

        if $game_party.armor_number(i) > 0 and armor_set.include?(i)

          if $data_armors[i].kind == @equip_type-1

            @data.push($data_armors[i])

          end

        end

      end

    end

    # Add blank page

    @data.push(nil)

    # Make a bit map and draw all items

    @item_max = @data.size

    self.contents = Bitmap.new(width - 32, row_max * 32)

    for i in 0...@item_max-1

      draw_item(i)

    end

  end

  #--------------------------------------------------------------------------

  # * Draw Item

  #     index : item number

  #--------------------------------------------------------------------------

  def draw_item(index)

    item = @data[index]

    x = 4 + index % 1 * (288 + 32)

    y = index / 1 * 32

    case item

    when RPG::Weapon

      number = $game_party.weapon_number(item.id)

    when RPG::Armor

      number = $game_party.armor_number(item.id)

    end

    bitmap = RPG::Cache.icon(item.icon_name)

    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))

    self.contents.font.color = normal_color

    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)

    self.contents.draw_text(x + 160, y, 16, 32, "x", 1)

    self.contents.draw_text(x + 163, y, 24, 32, number.to_s, 2)

  end

  #--------------------------------------------------------------------------

  # * Help Text Update

  #--------------------------------------------------------------------------

  def update_help

    @help_window.set_text(self.item == nil ? "" : self.item.description)

  end

end

#==============================================================================

# ** Scene_Equip

#------------------------------------------------------------------------------

#  This class performs equipment screen processing.

#==============================================================================

 

class Scene_Equip

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor_index : actor index

  #     equip_index : equipment index

  #--------------------------------------------------------------------------

  def initialize(actor_index = 0, equip_index = 0)

    @actor_index = actor_index

    @equip_index = equip_index

  end

  #--------------------------------------------------------------------------

  # * Main Processing

  #--------------------------------------------------------------------------

  def main

    # Get actor

    @actor = $game_party.actors[@actor_index]

    # Make windows

    @help_window = Window_Help_Equip.new

    @left_window = Window_EquipLeft.new(@actor)

    @right_window = Window_EquipRight.new(@actor)

    @item_window1 = Window_EquipItem.new(@actor, 0)

    @item_window2 = Window_EquipItem.new(@actor, 1)

    @item_window3 = Window_EquipItem.new(@actor, 2)

    @item_window4 = Window_EquipItem.new(@actor, 3)

    @item_window5 = Window_EquipItem.new(@actor, 4)

    # Associate help window

    @right_window.help_window = @help_window

    @item_window1.help_window = @help_window

    @item_window2.help_window = @help_window

    @item_window3.help_window = @help_window

    @item_window4.help_window = @help_window

    @item_window5.help_window = @help_window

    # Set cursor position

    @right_window.index = @equip_index

    refresh

    # Execute transition

    Graphics.transition

    # Main loop

    loop do

      # Update game screen

      Graphics.update

      # Update input information

      Input.update

      # Frame update

      update

      # Abort loop if screen is changed

      if $scene != self

        break

      end

    end

    # Prepare for transition

    Graphics.freeze

    # Dispose of windows

    @help_window.dispose

    @left_window.dispose

    @right_window.dispose

    @item_window1.dispose

    @item_window2.dispose

    @item_window3.dispose

    @item_window4.dispose

    @item_window5.dispose

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    # Set item window to visible

    @item_window1.visible = (@right_window.index == 0)

    @item_window2.visible = (@right_window.index == 1)

    @item_window3.visible = (@right_window.index == 2)

    @item_window4.visible = (@right_window.index == 3)

    @item_window5.visible = (@right_window.index == 4)

    # Get currently equipped item

    item1 = @right_window.item

    # Set current item window to @item_window

    case @right_window.index

    when 0

      @item_window = @item_window1

    when 1

      @item_window = @item_window2

    when 2

      @item_window = @item_window3

    when 3

      @item_window = @item_window4

    when 4

      @item_window = @item_window5

    end

    # If right window is active

    if @right_window.active

      # Erase parameters for after equipment change

      @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)

    end

    # If item window is active

    if @item_window.active

      # Get currently selected item

      item2 = @item_window.item

      # Change equipment

      last_hp = @actor.hp

      last_sp = @actor.sp

      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)

      # Get parameters for after equipment change

      new_atk = @actor.atk

      new_pdef = @actor.pdef

      new_mdef = @actor.mdef

      new_str = @actor.str

      new_dex = @actor.dex

      new_agi = @actor.agi

      new_int = @actor.int

      # Return equipment

      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)

      @actor.hp = last_hp

      @actor.sp = last_sp

      # Draw in left window

      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int)

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    # Update windows

    @left_window.update

    @right_window.update

    @item_window.update

    refresh

    # If right window is active: call update_right

    if @right_window.active

      update_right

      return

    end

    # If item window is active: call update_item

    if @item_window.active

      update_item

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when right window is active)

  #--------------------------------------------------------------------------

  def update_right

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Switch to menu screen

      $scene = Scene_Menu.new(2)

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # If equipment is fixed

      if @actor.equip_fix?(@right_window.index)

        # Play buzzer SE

        $game_system.se_play($data_system.buzzer_se)

        return

      end

      # Play decision SE

      $game_system.se_play($data_system.decision_se)

      # Activate item window

      @right_window.active = false

      @item_window.active = true

      @item_window.index = 0

      return

    end

    # If R button was pressed

    if Input.trigger?(Input::R)

      # Play cursor SE

      $game_system.se_play($data_system.cursor_se)

      # To next actor

      @actor_index += 1

      @actor_index %= $game_party.actors.size

      # Switch to different equipment screen

      $scene = Scene_Equip.new(@actor_index, @right_window.index)

      return

    end

    # If L button was pressed

    if Input.trigger?(Input::L)

      # Play cursor SE

      $game_system.se_play($data_system.cursor_se)

      # To previous actor

      @actor_index += $game_party.actors.size - 1

      @actor_index %= $game_party.actors.size

      # Switch to different equipment screen

      $scene = Scene_Equip.new(@actor_index, @right_window.index)

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when item window is active)

  #--------------------------------------------------------------------------

  def update_item

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Activate right window

      @right_window.active = true

      @item_window.active = false

      @item_window.index = -1

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Play equip SE

      $game_system.se_play($data_system.equip_se)

      # Get currently selected data on the item window

      item = @item_window.item

      # Change equipment

      @actor.equip(@right_window.index, item == nil ? 0 : item.id)

      # Activate right window

      @right_window.active = true

      @item_window.active = false

      @item_window.index = -1

      # Remake right window and item window contents

      @right_window.refresh

      @item_window.refresh

      return

    end

  end

end  
 
Haha, glad it worked, when I find a more efficient method I'll let you know (my brain is feeling lazy right now lol), but did you still want the "optimize, remove, etc." window? Because I can do that for you as well :)
 
Yes please, it's the only last 2 things that I wanted to do to that window. The other was I was thinking about instead of where it says Weapon, Shield, etc. I was thinking about using icons for those instead of the words, has I have some icons I made.
 
Alright cool, well I finally found a way to make the help window thing more efficient, it requires a lot less lines of code and no code is duplicated. Also, I've added the "equip", "remove", and "remove all" options, I'm still working on the opitimize function. Tell me if it all works so far:

Code:
#------------------------------------------------------------------------------

#==============================================================================

#==============================================================================

#====================*Law's Custom Equipment Screen*===========================

#=========================Author: The Law G14==================================

#============================Version 1.0=======================================

#==============================================================================

#------------------------------------------------------------------------------

 

#==============================================================================

# ** Window_Help_Equip

#------------------------------------------------------------------------------

#  Child class of the Help Window specifically for the Equipment Scene

#==============================================================================

 

class Window_Help_Equip < Window_Help

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize

    super()

    self.y = 416

  end

end

 

 

#==============================================================================

# ** Window_EquipCommand

#------------------------------------------------------------------------------

#  This window displays certain options in the equip screen

#==============================================================================

 

class Window_EquipCommand < Window_Selectable

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize

    super(0, 0, 140, 160)

    self.contents = Bitmap.new(width - 32, height - 32)

    @item_max = 4

    @column_max = 1

    @commands = ["Equip", "Remove", "Optimize", "Remove All"]

    refresh

    self.index = 0

    self.active = true

    self.z = 300

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    for i in 0...@item_max

      draw_item(i)

    end

  end

  #--------------------------------------------------------------------------

  # * Draw Item

  #     index : item number

  #--------------------------------------------------------------------------

  def draw_item(index)

    y = 4 + index * 32

    self.contents.draw_text(0, y, 128, 32, @commands[index])

  end

end

 

 

#==============================================================================

# ** Window_EquipLeft

#------------------------------------------------------------------------------

#  This window displays actor parameter changes on the equipment screen.

#==============================================================================

 

class Window_EquipLeft < Window_Base  

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(224, 227, 415, 190)

    self.contents = Bitmap.new(width - 32, height - 32)

    @actor = actor

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------    

  def refresh

    self.contents.clear

    draw_actor_parameter(@actor, 4, 0, 0)

    draw_actor_parameter(@actor, 4, 18, 1)

    draw_actor_parameter(@actor, 4, 36, 2)

    draw_actor_parameter(@actor, 4, 54, 3)

    draw_actor_parameter(@actor, 4, 72, 4)

    draw_actor_parameter(@actor, 4, 90, 5)

    draw_actor_parameter(@actor, 4, 108, 6)

     if @new_atk != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 0, 40, 32, '->', 1)

     if @new_atk > @actor.atk

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_atk < @actor.atk)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 0, 36, 32, @new_atk.to_s, 2)

     end

    if @new_pdef != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 18, 40, 32, '->', 1)

     if @new_pdef > @actor.pdef

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_pdef < @actor.pdef)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 18, 36, 32, @new_pdef.to_s, 2)

     end

    if @new_mdef != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 36, 40, 32, '->', 1)

     if @new_mdef > @actor.mdef

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_mdef < @actor.mdef)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 36, 36, 32, @new_mdef.to_s, 2)

     end

    if @new_str != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 54, 40, 32, '->', 1)

     if @new_str > @actor.str

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_str < @actor.str)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 54, 36, 32, @new_str.to_s, 2)

     end

    if @new_dex != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 72, 40, 32, '->', 1)

     if @new_dex > @actor.dex

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_dex < @actor.dex)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 72, 36, 32, @new_dex.to_s, 2)

     end

    if @new_agi != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 90, 40, 32, '->', 1)

     if @new_agi > @actor.agi

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_agi < @actor.agi)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 90, 36, 32, @new_agi.to_s, 2)

     end

    if @new_int != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 108, 40, 32, '->', 1)

     if @new_int > @actor.int

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_int < @actor.int)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 108, 36, 32, @new_int.to_s, 2)

     end

  end

  #--------------------------------------------------------------------------

  # * Set parameters after changing equipment

  #     new_atk  : attack power after changing equipment

  #     new_pdef : physical defense after changing equipment

  #     new_mdef : magic defense after changing equipment

  #--------------------------------------------------------------------------

  def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex,

                         new_agi, new_int)

    if @new_atk != new_atk || @new_pdef != new_pdef || @new_mdef != new_mdef ||

        @new_str != new_str || @new_dex != new_dex || @new_agi != new_agi ||

        @new_int != new_int

      @new_atk = new_atk

      @new_pdef = new_pdef

      @new_mdef = new_mdef

      @new_str = new_str

      @new_dex = new_dex

      @new_agi = new_agi

      @new_int = new_int

      refresh

    end

  end 

end

 

#==============================================================================

# ** Window_EquipRight

#------------------------------------------------------------------------------

#  This window displays items the actor is currently equipped with on the

#  equipment screen.

#==============================================================================

 

class Window_EquipRight < Window_Selectable

  #--------------------------------------------------------------------------

  # * Item Acquisition

  #--------------------------------------------------------------------------

  def item

    return @data[self.index]

  end

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(224, 0, 415, 228)

    self.contents = Bitmap.new(width - 32, height - 32)

    @actor = actor

    self.index = 0

    self.active = false

    refresh

  end

  #--------------------------------------------------------------------------

  # * Draw Actor Face Graphic

  #--------------------------------------------------------------------------

  def draw_actor_face_graphic(actor, x, y)

    bitmap = RPG::Cache.battler(actor.battler_name, 0)

    self.contents.blt(x, y, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    draw_actor_face_graphic(@actor, x + 62, y + 30)

    draw_actor_name(@actor, x + 75, 0)

    @data = []

    @data.push($data_weapons[@actor.weapon_id])

    @data.push($data_armors[@actor.armor1_id])

    @data.push($data_armors[@actor.armor2_id])

    @data.push($data_armors[@actor.armor3_id])

    @data.push($data_armors[@actor.armor4_id])

    @item_max = @data.size

    self.contents.font.color = system_color

    self.contents.draw_text(4, 32 * 0, 160, 32, $data_system.words.weapon)

    self.contents.draw_text(4, 32 * 1, 160, 32, $data_system.words.armor1)

    self.contents.draw_text(4, 32 * 2, 160, 32, $data_system.words.armor2)

    self.contents.draw_text(4, 32 * 3, 160, 32, $data_system.words.armor3)

    self.contents.draw_text(5, 32 * 4, 160, 32, $data_system.words.armor4)

    draw_item_name(@data[0], 140, 32 * 0)

    draw_item_name(@data[1], 140, 32 * 1)

    draw_item_name(@data[2], 140, 32 * 2)

    draw_item_name(@data[3], 140, 32 * 3)

    draw_item_name(@data[4], 140, 32 * 4)

  end

  #--------------------------------------------------------------------------

  # * Help Text Update

  #--------------------------------------------------------------------------

  def update_help

    @help_window.set_text(self.item == nil ? "" : self.item.description)

  end

end

 

#==============================================================================

# ** Window_EquipItem

#------------------------------------------------------------------------------

#  This window displays choices when opting to change equipment on the

#  equipment screen.

#==============================================================================

 

class Window_EquipItem < Window_Selectable

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor      : actor

  #     equip_type : equip region (0-3)

  #--------------------------------------------------------------------------

  def initialize(actor, equip_type)

    super(0, 87, 225, 330)

    @actor = actor

    @equip_type = equip_type

    @column_max = 1

    refresh

    self.active = false

    self.index = -1

  end

  #--------------------------------------------------------------------------

  # * Item Acquisition

  #--------------------------------------------------------------------------

  def item

    return @data[self.index]

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    if self.contents != nil

      self.contents.dispose

      self.contents = nil

    end

    @data = []

    # Add equippable weapons

    if @equip_type == 0

      weapon_set = $data_classes[@actor.class_id].weapon_set

      for i in 1...$data_weapons.size

        if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)

          @data.push($data_weapons[i])

        end

      end

    end

    # Add equippable armor

    if @equip_type != 0

      armor_set = $data_classes[@actor.class_id].armor_set

      for i in 1...$data_armors.size

        if $game_party.armor_number(i) > 0 and armor_set.include?(i)

          if $data_armors[i].kind == @equip_type-1

            @data.push($data_armors[i])

          end

        end

      end

    end

    # Add blank page

    @data.push(nil)

    # Make a bit map and draw all items

    @item_max = @data.size

    self.contents = Bitmap.new(width - 32, row_max * 32)

    for i in 0...@item_max-1

      draw_item(i)

    end

  end

  #--------------------------------------------------------------------------

  # * Draw Item

  #     index : item number

  #--------------------------------------------------------------------------

  def draw_item(index)

    item = @data[index]

    x = 4 + index % 1 * (288 + 32)

    y = index / 1 * 32

    case item

    when RPG::Weapon

      number = $game_party.weapon_number(item.id)

    when RPG::Armor

      number = $game_party.armor_number(item.id)

    end

    bitmap = RPG::Cache.icon(item.icon_name)

    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))

    self.contents.font.color = normal_color

    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)

    self.contents.draw_text(x + 160, y, 16, 32, "x", 1)

    self.contents.draw_text(x + 163, y, 24, 32, number.to_s, 2)

  end

  #--------------------------------------------------------------------------

  # * Help Text Update

  #--------------------------------------------------------------------------

  def update_help

    @help_window.set_text(self.item == nil ? "" : self.item.description)

  end

end

#==============================================================================

# ** Scene_Equip

#------------------------------------------------------------------------------

#  This class performs equipment screen processing.

#==============================================================================

 

class Scene_Equip

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor_index : actor index

  #     equip_index : equipment index

  #--------------------------------------------------------------------------

  def initialize(actor_index = 0, equip_index = 0)

    @actor_index = actor_index

    @equip_index = equip_index

  end

  #--------------------------------------------------------------------------

  # * Main Processing

  #--------------------------------------------------------------------------

  def main

    # Get actor

    @actor = $game_party.actors[@actor_index]

    # Make windows

    @help_window = Window_Help_Equip.new

    @command_window = Window_EquipCommand.new

    @left_window = Window_EquipLeft.new(@actor)

    @right_window = Window_EquipRight.new(@actor)

    @item_window1 = Window_EquipItem.new(@actor, 0)

    @item_window2 = Window_EquipItem.new(@actor, 1)

    @item_window3 = Window_EquipItem.new(@actor, 2)

    @item_window4 = Window_EquipItem.new(@actor, 3)

    @item_window5 = Window_EquipItem.new(@actor, 4)

    # Associate help window

    @right_window.help_window = @help_window

    @item_window1.help_window = @help_window

    @item_window2.help_window = @help_window

    @item_window3.help_window = @help_window

    @item_window4.help_window = @help_window

    @item_window5.help_window = @help_window

    # Set cursor position

    @right_window.index = @equip_index

    # Equip/Remove flag

    @equip = true

    # Refresh

    refresh

    # Execute transition

    Graphics.transition

    # Main loop

    loop do

      # Update game screen

      Graphics.update

      # Update input information

      Input.update

      # Frame update

      update

      # Abort loop if screen is changed

      if $scene != self

        break

      end

    end

    # Prepare for transition

    Graphics.freeze

    # Dispose of windows

    @help_window.dispose

    @left_window.dispose

    @right_window.dispose

    @item_window1.dispose

    @item_window2.dispose

    @item_window3.dispose

    @item_window4.dispose

    @item_window5.dispose

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    # Set item window to visible

    @item_window1.visible = (@right_window.index == 0)

    @item_window2.visible = (@right_window.index == 1)

    @item_window3.visible = (@right_window.index == 2)

    @item_window4.visible = (@right_window.index == 3)

    @item_window5.visible = (@right_window.index == 4)

    # Get currently equipped item

    item1 = @right_window.item

    # Set current item window to @item_window

    case @right_window.index

    when 0

      @item_window = @item_window1

    when 1

      @item_window = @item_window2

    when 2

      @item_window = @item_window3

    when 3

      @item_window = @item_window4

    when 4

      @item_window = @item_window5

    end

    # If right window is active

    if @right_window.active

      # Erase parameters for after equipment change

      @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)

    end

    # If item window is active

    if @item_window.active

      # Get currently selected item

      item2 = @item_window.item

      # Change equipment

      last_hp = @actor.hp

      last_sp = @actor.sp

      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)

      # Get parameters for after equipment change

      new_atk = @actor.atk

      new_pdef = @actor.pdef

      new_mdef = @actor.mdef

      new_str = @actor.str

      new_dex = @actor.dex

      new_agi = @actor.agi

      new_int = @actor.int

      # Return equipment

      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)

      @actor.hp = last_hp

      @actor.sp = last_sp

      # Draw in left window

      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int)

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    # Update windows

    @command_window.update

    @left_window.update

    @right_window.update

    @item_window.update

    refresh

    # If command window is active: call update_command

    if @command_window.active

      update_command

      return

    end

    # If right window is active: call update_right

    if @right_window.active

      update_right

      return

    end

    # If item window is active: call update_item

    if @item_window.active

      update_item

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when command window is active)

  #--------------------------------------------------------------------------

  def update_command

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Switch to menu screen

      $scene = Scene_Menu.new(2)

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Branch by command window cursor position

      case @command_window.index

      when 0  # Equip

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to right window

        @equip = true

        @command_window.visible = false

        @command_window.active = false

        @right_window.active = true

      when 1  # Remove

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to right window

        @equip = false

        @command_window.visible = false

        @command_window.active = false

        @right_window.active = true

      when 2  # Optimize

        # Play equip SE

        $game_system.se_play($data_system.equip_se)

        # Optimize

        optimize

      when 3  # Remove All

        # Play equip SE

        $game_system.se_play($data_system.equip_se)

        # Remove equipment

        for i in 0..4

          @actor.equip(i, 0)

        end

        # Refresh

        @right_window.refresh

        @item_window.refresh

      end

      return

    end

    # If R button was pressed

    if Input.trigger?(Input::R)

      # Play cursor SE

      $game_system.se_play($data_system.cursor_se)

      # To next actor

      @actor_index += 1

      @actor_index %= $game_party.actors.size

      # Switch to different equipment screen

      $scene = Scene_Equip.new(@actor_index, @right_window.index)

      return

    end

    # If L button was pressed

    if Input.trigger?(Input::L)

      # Play cursor SE

      $game_system.se_play($data_system.cursor_se)

      # To previous actor

      @actor_index += $game_party.actors.size - 1

      @actor_index %= $game_party.actors.size

      # Switch to different equipment screen

      $scene = Scene_Equip.new(@actor_index, @right_window.index)

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when right window is active)

  #--------------------------------------------------------------------------

  def update_right

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Switch to command window

      @command_window.active = true

      @command_window.visible = true

      @right_window.active = false

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # If equipment is fixed

      if @actor.equip_fix?(@right_window.index)

        # Play buzzer SE

        $game_system.se_play($data_system.buzzer_se)

        return

      end

      # Play decision SE

      $game_system.se_play($data_system.decision_se)

      if @equip

        # Activate item window

        @right_window.active = false

        @item_window.active = true

        @item_window.index = 0

      else

        # Play equip SE

        $game_system.se_play($data_system.equip_se)

        # Remove item

        @actor.equip(@right_window.index, 0)

        # Refresh

        @item_window.refresh

        @right_window.refresh

        @right_window.index = 0

        # Return to command window

        @command_window.active = true

        @command_window.visible = true

        @right_window.active = false

      end

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when item window is active)

  #--------------------------------------------------------------------------

  def update_item

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Activate right window

      @right_window.active = true

      @item_window.active = false

      @item_window.index = -1

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Play equip SE

      $game_system.se_play($data_system.equip_se)

      # Get currently selected data on the item window

      item = @item_window.item

      # Change equipment

      @actor.equip(@right_window.index, item == nil ? 0 : item.id)

      # Activate right window

      @right_window.active = true

      @item_window.active = false

      @item_window.index = -1

      # Remake right window and item window contents

      @right_window.refresh

      @item_window.refresh

      return

    end

  end

end  
 
Works but here's what issues came across:

1. the optimize window is 4x1... could it be 2x2 instead?
2. Optimize window doesn't disappear once I leave, does after a while thou.
3. Click optimize and got an error: -get error line 541 undefined local variable or method 'optimize' for #<scene_equip:0x381c3a07>


Everything else seemed to work right in menu and CBS.
 
Is this more of what you were after?

Code:
#------------------------------------------------------------------------------

#==============================================================================

#==============================================================================

#====================*Law's Custom Equipment Screen*===========================

#=========================Author: The Law G14==================================

#============================Version 1.0=======================================

#==============================================================================

#------------------------------------------------------------------------------

 

#==============================================================================

# ** Window_Help_Equip

#------------------------------------------------------------------------------

#  Child class of the Help Window specifically for the Equipment Scene

#==============================================================================

 

class Window_Help_Equip < Window_Help

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize

    super()

    self.y = 416

  end

end

 

 

#==============================================================================

# ** Window_EquipCommand

#------------------------------------------------------------------------------

#  This window displays certain options in the equip screen

#==============================================================================

 

class Window_EquipCommand < Window_Selectable

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize

    super(0, 0, 225, 98)

    self.contents = Bitmap.new(width - 32, height - 32)

    @item_max = 4

    @column_max = 2

    @commands = ["Equip", "Remove", "Optimize", "Remove All"]

    refresh

    self.index = 0

    self.active = true

    self.z = 300

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    for i in 0...@item_max

      draw_item(i)

    end

  end

  #--------------------------------------------------------------------------

  # * Draw Item

  #     index : item number

  #--------------------------------------------------------------------------

  def draw_item(index)

    x = index % @column_max * ( (self.width / @column_max - 32) + 12)

    y = index / @column_max * 32

    self.contents.draw_text(x, y, 128, 32, @commands[index])

  end

  #--------------------------------------------------------------------------

  # * Cursor Rectangle Update

  #--------------------------------------------------------------------------

  def update_cursor_rect

    case @index

    when 0 then self.cursor_rect.set(0, 0, 60, 32)

    when 1 then self.cursor_rect.set(90, 0, 100, 32)

    when 2 then self.cursor_rect.set(0, 32, 80, 32)

    when 3 then self.cursor_rect.set(90, 32, 100, 32)

    end

  end

end

 

 

#==============================================================================

# ** Window_EquipLeft

#------------------------------------------------------------------------------

#  This window displays actor parameter changes on the equipment screen.

#==============================================================================

 

class Window_EquipLeft < Window_Base  

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(225, 228, 414, 189)

    self.contents = Bitmap.new(width - 32, height - 32)

    @actor = actor

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------    

  def refresh

    self.contents.clear

    draw_actor_parameter(@actor, 4, 0, 0)

    draw_actor_parameter(@actor, 4, 18, 1)

    draw_actor_parameter(@actor, 4, 36, 2)

    draw_actor_parameter(@actor, 4, 54, 3)

    draw_actor_parameter(@actor, 4, 72, 4)

    draw_actor_parameter(@actor, 4, 90, 5)

    draw_actor_parameter(@actor, 4, 108, 6)

     if @new_atk != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 0, 40, 32, '->', 1)

     if @new_atk > @actor.atk

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_atk < @actor.atk)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 0, 36, 32, @new_atk.to_s, 2)

     end

    if @new_pdef != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 18, 40, 32, '->', 1)

     if @new_pdef > @actor.pdef

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_pdef < @actor.pdef)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 18, 36, 32, @new_pdef.to_s, 2)

     end

    if @new_mdef != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 36, 40, 32, '->', 1)

     if @new_mdef > @actor.mdef

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_mdef < @actor.mdef)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 36, 36, 32, @new_mdef.to_s, 2)

     end

    if @new_str != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 54, 40, 32, '->', 1)

     if @new_str > @actor.str

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_str < @actor.str)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 54, 36, 32, @new_str.to_s, 2)

     end

    if @new_dex != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 72, 40, 32, '->', 1)

     if @new_dex > @actor.dex

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_dex < @actor.dex)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 72, 36, 32, @new_dex.to_s, 2)

     end

    if @new_agi != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 90, 40, 32, '->', 1)

     if @new_agi > @actor.agi

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_agi < @actor.agi)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 90, 36, 32, @new_agi.to_s, 2)

     end

    if @new_int != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 108, 40, 32, '->', 1)

     if @new_int > @actor.int

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_int < @actor.int)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 108, 36, 32, @new_int.to_s, 2)

     end

  end

  #--------------------------------------------------------------------------

  # * Set parameters after changing equipment

  #     new_atk  : attack power after changing equipment

  #     new_pdef : physical defense after changing equipment

  #     new_mdef : magic defense after changing equipment

  #--------------------------------------------------------------------------

  def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex,

                         new_agi, new_int)

    if @new_atk != new_atk || @new_pdef != new_pdef || @new_mdef != new_mdef ||

        @new_str != new_str || @new_dex != new_dex || @new_agi != new_agi ||

        @new_int != new_int

      @new_atk = new_atk

      @new_pdef = new_pdef

      @new_mdef = new_mdef

      @new_str = new_str

      @new_dex = new_dex

      @new_agi = new_agi

      @new_int = new_int

      refresh

    end

  end 

end

 

 

#==============================================================================

# ** Window_EquipRight

#------------------------------------------------------------------------------

#  This window displays items the actor is currently equipped with on the

#  equipment screen.

#==============================================================================

 

class Window_EquipRight < Window_Selectable

  #--------------------------------------------------------------------------

  # * Item Acquisition

  #--------------------------------------------------------------------------

  def item

    return @data[self.index]

  end

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(225, 0, 414, 228)

    self.contents = Bitmap.new(width - 32, height - 32)

    @actor = actor

    self.index = 0

    self.active = false

    refresh

  end

  #--------------------------------------------------------------------------

  # * Draw Actor Face Graphic

  #--------------------------------------------------------------------------

  def draw_actor_face_graphic(actor, x, y)

    bitmap = RPG::Cache.battler(actor.battler_name, 0)

    self.contents.blt(x, y, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    draw_actor_face_graphic(@actor, x + 62, y + 30)

    draw_actor_name(@actor, x + 75, 0)

    @data = []

    @data.push($data_weapons[@actor.weapon_id])

    @data.push($data_armors[@actor.armor1_id])

    @data.push($data_armors[@actor.armor2_id])

    @data.push($data_armors[@actor.armor3_id])

    @data.push($data_armors[@actor.armor4_id])

    @item_max = @data.size

    self.contents.font.color = system_color

    self.contents.draw_text(4, 32 * 0, 160, 32, $data_system.words.weapon)

    self.contents.draw_text(4, 32 * 1, 160, 32, $data_system.words.armor1)

    self.contents.draw_text(4, 32 * 2, 160, 32, $data_system.words.armor2)

    self.contents.draw_text(4, 32 * 3, 160, 32, $data_system.words.armor3)

    self.contents.draw_text(5, 32 * 4, 160, 32, $data_system.words.armor4)

    draw_item_name(@data[0], 140, 32 * 0)

    draw_item_name(@data[1], 140, 32 * 1)

    draw_item_name(@data[2], 140, 32 * 2)

    draw_item_name(@data[3], 140, 32 * 3)

    draw_item_name(@data[4], 140, 32 * 4)

  end

  #--------------------------------------------------------------------------

  # * Help Text Update

  #--------------------------------------------------------------------------

  def update_help

    @help_window.set_text(self.item == nil ? "" : self.item.description)

  end

end

 

 

#==============================================================================

# ** Window_EquipItem

#------------------------------------------------------------------------------

#  This window displays choices when opting to change equipment on the

#  equipment screen.

#==============================================================================

 

class Window_EquipItem < Window_Selectable

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor      : actor

  #     equip_type : equip region (0-3)

  #--------------------------------------------------------------------------

  def initialize(actor, equip_type)

    super(0, 98, 225, 319)

    @actor = actor

    @equip_type = equip_type

    @column_max = 1

    refresh

    self.active = false

    self.index = -1

  end

  #--------------------------------------------------------------------------

  # * Item Acquisition

  #--------------------------------------------------------------------------

  def item

    return @data[self.index]

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    if self.contents != nil

      self.contents.dispose

      self.contents = nil

    end

    @data = []

    # Add equippable weapons

    if @equip_type == 0

      weapon_set = $data_classes[@actor.class_id].weapon_set

      for i in 1...$data_weapons.size

        if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)

          @data.push($data_weapons[i])

        end

      end

    end

    # Add equippable armor

    if @equip_type != 0

      armor_set = $data_classes[@actor.class_id].armor_set

      for i in 1...$data_armors.size

        if $game_party.armor_number(i) > 0 and armor_set.include?(i)

          if $data_armors[i].kind == @equip_type-1

            @data.push($data_armors[i])

          end

        end

      end

    end

    # Add blank page

    @data.push(nil)

    # Make a bit map and draw all items

    @item_max = @data.size

    self.contents = Bitmap.new(width - 32, row_max * 32)

    for i in 0...@item_max-1

      draw_item(i)

    end

  end

  #--------------------------------------------------------------------------

  # * Draw Item

  #     index : item number

  #--------------------------------------------------------------------------

  def draw_item(index)

    item = @data[index]

    x = 4 + index % 1 * (288 + 32)

    y = index / 1 * 32

    case item

    when RPG::Weapon

      number = $game_party.weapon_number(item.id)

    when RPG::Armor

      number = $game_party.armor_number(item.id)

    end

    bitmap = RPG::Cache.icon(item.icon_name)

    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))

    self.contents.font.color = normal_color

    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)

    self.contents.draw_text(x + 160, y, 16, 32, "x", 1)

    self.contents.draw_text(x + 163, y, 24, 32, number.to_s, 2)

  end

  #--------------------------------------------------------------------------

  # * Help Text Update

  #--------------------------------------------------------------------------

  def update_help

    @help_window.set_text(self.item == nil ? "" : self.item.description)

  end

end

 

 

#==============================================================================

# ** Scene_Equip

#------------------------------------------------------------------------------

#  This class performs equipment screen processing.

#==============================================================================

 

class Scene_Equip

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor_index : actor index

  #     equip_index : equipment index

  #--------------------------------------------------------------------------

  def initialize(actor_index = 0, equip_index = 0)

    @actor_index = actor_index

    @equip_index = equip_index

  end

  #--------------------------------------------------------------------------

  # * Main Processing

  #--------------------------------------------------------------------------

  def main

    # Get actor

    @actor = $game_party.actors[@actor_index]

    # Make windows

    @help_window = Window_Help_Equip.new

    @command_window = Window_EquipCommand.new

    @left_window = Window_EquipLeft.new(@actor)

    @right_window = Window_EquipRight.new(@actor)

    @item_window1 = Window_EquipItem.new(@actor, 0)

    @item_window2 = Window_EquipItem.new(@actor, 1)

    @item_window3 = Window_EquipItem.new(@actor, 2)

    @item_window4 = Window_EquipItem.new(@actor, 3)

    @item_window5 = Window_EquipItem.new(@actor, 4)

    # Associate help window

    @right_window.help_window = @help_window

    @item_window1.help_window = @help_window

    @item_window2.help_window = @help_window

    @item_window3.help_window = @help_window

    @item_window4.help_window = @help_window

    @item_window5.help_window = @help_window

    # Set cursor position

    @right_window.index = @equip_index

    # Equip/Remove flag

    @equip = true

    # Refresh

    refresh

    # Execute transition

    Graphics.transition

    # Main loop

    loop do

      # Update game screen

      Graphics.update

      # Update input information

      Input.update

      # Frame update

      update

      # Abort loop if screen is changed

      if $scene != self

        break

      end

    end

    # Prepare for transition

    Graphics.freeze

    # Dispose of windows

    @command_window.dispose

    @help_window.dispose

    @left_window.dispose

    @right_window.dispose

    @item_window1.dispose

    @item_window2.dispose

    @item_window3.dispose

    @item_window4.dispose

    @item_window5.dispose

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    # Set item window to visible

    @item_window1.visible = (@right_window.index == 0)

    @item_window2.visible = (@right_window.index == 1)

    @item_window3.visible = (@right_window.index == 2)

    @item_window4.visible = (@right_window.index == 3)

    @item_window5.visible = (@right_window.index == 4)

    # Get currently equipped item

    item1 = @right_window.item

    # Set current item window to @item_window

    case @right_window.index

    when 0

      @item_window = @item_window1

    when 1

      @item_window = @item_window2

    when 2

      @item_window = @item_window3

    when 3

      @item_window = @item_window4

    when 4

      @item_window = @item_window5

    end

    # If right window is active

    if @right_window.active

      # Erase parameters for after equipment change

      @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)

    end

    # If item window is active

    if @item_window.active

      # Get currently selected item

      item2 = @item_window.item

      # Change equipment

      last_hp = @actor.hp

      last_sp = @actor.sp

      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)

      # Get parameters for after equipment change

      new_atk = @actor.atk

      new_pdef = @actor.pdef

      new_mdef = @actor.mdef

      new_str = @actor.str

      new_dex = @actor.dex

      new_agi = @actor.agi

      new_int = @actor.int

      # Return equipment

      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)

      @actor.hp = last_hp

      @actor.sp = last_sp

      # Draw in left window

      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int)

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    # Update windows

    @command_window.update

    @left_window.update

    @right_window.update

    @item_window.update

    refresh

    # If command window is active: call update_command

    if @command_window.active

      update_command

      return

    end

    # If right window is active: call update_right

    if @right_window.active

      update_right

      return

    end

    # If item window is active: call update_item

    if @item_window.active

      update_item

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when command window is active)

  #--------------------------------------------------------------------------

  def update_command

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Switch to menu screen

      $scene = Scene_Menu.new(2)

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Branch by command window cursor position

      case @command_window.index

      when 0  # Equip

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to right window

        @equip = true

        @command_window.active = false

        @right_window.active = true

      when 1  # Remove

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to right window

        @equip = false

        @command_window.active = false

        @right_window.active = true

      when 2  # Optimize

        # Play equip SE

        $game_system.se_play($data_system.equip_se)

        # Optimize

        optimize

      when 3  # Remove All

        # Play equip SE

        $game_system.se_play($data_system.equip_se)

        # Remove equipment

        for i in 0..4

          @actor.equip(i, 0)

        end

        # Refresh

        @right_window.refresh

        @item_window.refresh

      end

      return

    end

    # If R button was pressed

    if Input.trigger?(Input::R)

      # Play cursor SE

      $game_system.se_play($data_system.cursor_se)

      # To next actor

      @actor_index += 1

      @actor_index %= $game_party.actors.size

      # Switch to different equipment screen

      $scene = Scene_Equip.new(@actor_index, @right_window.index)

      return

    end

    # If L button was pressed

    if Input.trigger?(Input::L)

      # Play cursor SE

      $game_system.se_play($data_system.cursor_se)

      # To previous actor

      @actor_index += $game_party.actors.size - 1

      @actor_index %= $game_party.actors.size

      # Switch to different equipment screen

      $scene = Scene_Equip.new(@actor_index, @right_window.index)

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when right window is active)

  #--------------------------------------------------------------------------

  def update_right

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Switch to command window

      @command_window.active = true

      @right_window.active = false

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # If equipment is fixed

      if @actor.equip_fix?(@right_window.index)

        # Play buzzer SE

        $game_system.se_play($data_system.buzzer_se)

        return

      end

      # Play decision SE

      $game_system.se_play($data_system.decision_se)

      if @equip

        # Activate item window

        @right_window.active = false

        @item_window.active = true

        @item_window.index = 0

      else

        # Play equip SE

        $game_system.se_play($data_system.equip_se)

        # Remove item

        @actor.equip(@right_window.index, 0)

        # Refresh

        @item_window.refresh

        @right_window.refresh

        @right_window.index = 0

        # Return to command window

        @command_window.active = true

        @command_window.visible = true

        @right_window.active = false

      end

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when item window is active)

  #--------------------------------------------------------------------------

  def update_item

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Activate right window

      @right_window.active = true

      @item_window.active = false

      @item_window.index = -1

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Play equip SE

      $game_system.se_play($data_system.equip_se)

      # Get currently selected data on the item window

      item = @item_window.item

      # Change equipment

      @actor.equip(@right_window.index, item == nil ? 0 : item.id)

      # Activate right window

      @right_window.active = true

      @item_window.active = false

      @item_window.index = -1

      # Remake right window and item window contents

      @right_window.refresh

      @item_window.refresh

      return

    end

  end

  def optimize

    print "I still haven't worked this out yet, after I come home I'll get this done."

  end

end   

 
 
That's it, even thou sometimes when I click removeall, and then try and equip something normally. It's still equipped even thou it's just not showing it is. Hard to explain.
 
Alright that's weird, I found the problem though and I've fixed it, I've also finished the optimize function, so here's finally the completed script:

Code:
#------------------------------------------------------------------------------

#==============================================================================

#==============================================================================

#====================*Law's Custom Equipment Screen*===========================

#=========================Author: The Law G14==================================

#============================Version 1.0=======================================

#==============================================================================

#------------------------------------------------------------------------------

 

#==============================================================================

# ** Window_Help_Equip

#------------------------------------------------------------------------------

#  Child class of the Help Window specifically for the Equipment Scene

#==============================================================================

 

class Window_Help_Equip < Window_Help

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize

    super()

    self.y = 416

  end

end

 

 

#==============================================================================

# ** Window_EquipCommand

#------------------------------------------------------------------------------

#  This window displays certain options in the equip screen

#==============================================================================

 

class Window_EquipCommand < Window_Selectable

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize

    super(0, 0, 225, 98)

    self.contents = Bitmap.new(width - 32, height - 32)

    @item_max = 4

    @column_max = 2

    @commands = ["Equip", "Remove", "Optimize", "Remove All"]

    refresh

    self.index = 0

    self.active = true

    self.z = 300

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    for i in 0...@item_max

      draw_item(i)

    end

  end

  #--------------------------------------------------------------------------

  # * Draw Item

  #     index : item number

  #--------------------------------------------------------------------------

  def draw_item(index)

    x = index % @column_max * ( (self.width / @column_max - 32) + 12)

    y = index / @column_max * 32

    self.contents.draw_text(x, y, 128, 32, @commands[index])

  end

  #--------------------------------------------------------------------------

  # * Cursor Rectangle Update

  #--------------------------------------------------------------------------

  def update_cursor_rect

    case @index

    when 0 then self.cursor_rect.set(0, 0, 60, 32)

    when 1 then self.cursor_rect.set(90, 0, 100, 32)

    when 2 then self.cursor_rect.set(0, 32, 80, 32)

    when 3 then self.cursor_rect.set(90, 32, 100, 32)

    end

  end

end

 

 

#==============================================================================

# ** Window_EquipLeft

#------------------------------------------------------------------------------

#  This window displays actor parameter changes on the equipment screen.

#==============================================================================

 

class Window_EquipLeft < Window_Base  

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(225, 228, 414, 189)

    self.contents = Bitmap.new(width - 32, height - 32)

    @actor = actor

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------    

  def refresh

    self.contents.clear

    draw_actor_parameter(@actor, 4, 0, 0)

    draw_actor_parameter(@actor, 4, 18, 1)

    draw_actor_parameter(@actor, 4, 36, 2)

    draw_actor_parameter(@actor, 4, 54, 3)

    draw_actor_parameter(@actor, 4, 72, 4)

    draw_actor_parameter(@actor, 4, 90, 5)

    draw_actor_parameter(@actor, 4, 108, 6)

     if @new_atk != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 0, 40, 32, '->', 1)

     if @new_atk > @actor.atk

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_atk < @actor.atk)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 0, 36, 32, @new_atk.to_s, 2)

     end

    if @new_pdef != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 18, 40, 32, '->', 1)

     if @new_pdef > @actor.pdef

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_pdef < @actor.pdef)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 18, 36, 32, @new_pdef.to_s, 2)

     end

    if @new_mdef != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 36, 40, 32, '->', 1)

     if @new_mdef > @actor.mdef

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_mdef < @actor.mdef)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 36, 36, 32, @new_mdef.to_s, 2)

     end

    if @new_str != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 54, 40, 32, '->', 1)

     if @new_str > @actor.str

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_str < @actor.str)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 54, 36, 32, @new_str.to_s, 2)

     end

    if @new_dex != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 72, 40, 32, '->', 1)

     if @new_dex > @actor.dex

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_dex < @actor.dex)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 72, 36, 32, @new_dex.to_s, 2)

     end

    if @new_agi != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 90, 40, 32, '->', 1)

     if @new_agi > @actor.agi

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_agi < @actor.agi)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 90, 36, 32, @new_agi.to_s, 2)

     end

    if @new_int != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 108, 40, 32, '->', 1)

     if @new_int > @actor.int

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_int < @actor.int)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 108, 36, 32, @new_int.to_s, 2)

     end

  end

  #--------------------------------------------------------------------------

  # * Set parameters after changing equipment

  #     new_atk  : attack power after changing equipment

  #     new_pdef : physical defense after changing equipment

  #     new_mdef : magic defense after changing equipment

  #--------------------------------------------------------------------------

  def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex,

                         new_agi, new_int)

    if @new_atk != new_atk || @new_pdef != new_pdef || @new_mdef != new_mdef ||

        @new_str != new_str || @new_dex != new_dex || @new_agi != new_agi ||

        @new_int != new_int

      @new_atk = new_atk

      @new_pdef = new_pdef

      @new_mdef = new_mdef

      @new_str = new_str

      @new_dex = new_dex

      @new_agi = new_agi

      @new_int = new_int

      refresh

    end

  end 

end

 

 

#==============================================================================

# ** Window_EquipRight

#------------------------------------------------------------------------------

#  This window displays items the actor is currently equipped with on the

#  equipment screen.

#==============================================================================

 

class Window_EquipRight < Window_Selectable

  #--------------------------------------------------------------------------

  # * Item Acquisition

  #--------------------------------------------------------------------------

  def item

    return @data[self.index]

  end

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(225, 0, 414, 228)

    self.contents = Bitmap.new(width - 32, height - 32)

    @actor = actor

    self.index = 0

    self.active = false

    refresh

  end

  #--------------------------------------------------------------------------

  # * Draw Actor Face Graphic

  #--------------------------------------------------------------------------

  def draw_actor_face_graphic(actor, x, y)

    bitmap = RPG::Cache.battler(actor.battler_name, 0)

    self.contents.blt(x, y, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    draw_actor_face_graphic(@actor, x + 62, y + 30)

    draw_actor_name(@actor, x + 75, 0)

    @data = []

    @data.push($data_weapons[@actor.weapon_id])

    @data.push($data_armors[@actor.armor1_id])

    @data.push($data_armors[@actor.armor2_id])

    @data.push($data_armors[@actor.armor3_id])

    @data.push($data_armors[@actor.armor4_id])

    @item_max = @data.size

    self.contents.font.color = system_color

    self.contents.draw_text(4, 32 * 0, 160, 32, $data_system.words.weapon)

    self.contents.draw_text(4, 32 * 1, 160, 32, $data_system.words.armor1)

    self.contents.draw_text(4, 32 * 2, 160, 32, $data_system.words.armor2)

    self.contents.draw_text(4, 32 * 3, 160, 32, $data_system.words.armor3)

    self.contents.draw_text(5, 32 * 4, 160, 32, $data_system.words.armor4)

    draw_item_name(@data[0], 140, 32 * 0)

    draw_item_name(@data[1], 140, 32 * 1)

    draw_item_name(@data[2], 140, 32 * 2)

    draw_item_name(@data[3], 140, 32 * 3)

    draw_item_name(@data[4], 140, 32 * 4)

  end

  #--------------------------------------------------------------------------

  # * Help Text Update

  #--------------------------------------------------------------------------

  def update_help

    @help_window.set_text(self.item == nil ? "" : self.item.description)

  end

end

 

 

#==============================================================================

# ** Window_EquipItem

#------------------------------------------------------------------------------

#  This window displays choices when opting to change equipment on the

#  equipment screen.

#==============================================================================

 

class Window_EquipItem < Window_Selectable

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor      : actor

  #     equip_type : equip region (0-3)

  #--------------------------------------------------------------------------

  def initialize(actor, equip_type)

    super(0, 98, 225, 319)

    @actor = actor

    @equip_type = equip_type

    @column_max = 1

    refresh

    self.active = false

    self.index = -1

  end

  #--------------------------------------------------------------------------

  # * Item Acquisition

  #--------------------------------------------------------------------------

  def item

    return @data[self.index]

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    if self.contents != nil

      self.contents.dispose

      self.contents = nil

    end

    @data = []

    # Add equippable weapons

    if @equip_type == 0

      weapon_set = $data_classes[@actor.class_id].weapon_set

      for i in 1...$data_weapons.size

        if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)

          @data.push($data_weapons[i])

        end

      end

    end

    # Add equippable armor

    if @equip_type != 0

      armor_set = $data_classes[@actor.class_id].armor_set

      for i in 1...$data_armors.size

        if $game_party.armor_number(i) > 0 and armor_set.include?(i)

          if $data_armors[i].kind == @equip_type-1

            @data.push($data_armors[i])

          end

        end

      end

    end

    # Add blank page

    @data.push(nil)

    # Make a bit map and draw all items

    @item_max = @data.size

    self.contents = Bitmap.new(width - 32, row_max * 32)

    for i in 0...@item_max-1

      draw_item(i)

    end

  end

  #--------------------------------------------------------------------------

  # * Draw Item

  #     index : item number

  #--------------------------------------------------------------------------

  def draw_item(index)

    item = @data[index]

    x = 4 + index % 1 * (288 + 32)

    y = index / 1 * 32

    case item

    when RPG::Weapon

      number = $game_party.weapon_number(item.id)

    when RPG::Armor

      number = $game_party.armor_number(item.id)

    end

    bitmap = RPG::Cache.icon(item.icon_name)

    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))

    self.contents.font.color = normal_color

    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)

    self.contents.draw_text(x + 160, y, 16, 32, "x", 1)

    self.contents.draw_text(x + 163, y, 24, 32, number.to_s, 2)

  end

  #--------------------------------------------------------------------------

  # * Help Text Update

  #--------------------------------------------------------------------------

  def update_help

    @help_window.set_text(self.item == nil ? "" : self.item.description)

  end

end

 

 

#==============================================================================

# ** Scene_Equip

#------------------------------------------------------------------------------

#  This class performs equipment screen processing.

#==============================================================================

 

class Scene_Equip

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor_index : actor index

  #     equip_index : equipment index

  #--------------------------------------------------------------------------

  def initialize(actor_index = 0, equip_index = 0)

    @actor_index = actor_index

    @equip_index = equip_index

  end

  #--------------------------------------------------------------------------

  # * Main Processing

  #--------------------------------------------------------------------------

  def main

    # Get actor

    @actor = $game_party.actors[@actor_index]

    # Make windows

    @help_window = Window_Help_Equip.new

    @command_window = Window_EquipCommand.new

    @left_window = Window_EquipLeft.new(@actor)

    @right_window = Window_EquipRight.new(@actor)

    @item_window1 = Window_EquipItem.new(@actor, 0)

    @item_window2 = Window_EquipItem.new(@actor, 1)

    @item_window3 = Window_EquipItem.new(@actor, 2)

    @item_window4 = Window_EquipItem.new(@actor, 3)

    @item_window5 = Window_EquipItem.new(@actor, 4)

    # Associate help window

    @right_window.help_window = @help_window

    @item_window1.help_window = @help_window

    @item_window2.help_window = @help_window

    @item_window3.help_window = @help_window

    @item_window4.help_window = @help_window

    @item_window5.help_window = @help_window

    # Set cursor position

    @right_window.index = @equip_index

    # Equip/Remove flag

    @equip = true

    # Refresh

    refresh

    # Execute transition

    Graphics.transition

    # Main loop

    loop do

      # Update game screen

      Graphics.update

      # Update input information

      Input.update

      # Frame update

      update

      # Abort loop if screen is changed

      if $scene != self

        break

      end

    end

    # Prepare for transition

    Graphics.freeze

    # Dispose of windows

    @command_window.dispose

    @help_window.dispose

    @left_window.dispose

    @right_window.dispose

    @item_window1.dispose

    @item_window2.dispose

    @item_window3.dispose

    @item_window4.dispose

    @item_window5.dispose

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    # Set item window to visible

    @item_window1.visible = (@right_window.index == 0)

    @item_window2.visible = (@right_window.index == 1)

    @item_window3.visible = (@right_window.index == 2)

    @item_window4.visible = (@right_window.index == 3)

    @item_window5.visible = (@right_window.index == 4)

    # Get currently equipped item

    item1 = @right_window.item

    # Set current item window to @item_window

    case @right_window.index

    when 0

      @item_window = @item_window1

    when 1

      @item_window = @item_window2

    when 2

      @item_window = @item_window3

    when 3

      @item_window = @item_window4

    when 4

      @item_window = @item_window5

    end

    # If right window is active

    if @right_window.active

      # Erase parameters for after equipment change

      @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)

    end

    # If item window is active

    if @item_window.active

      # Get currently selected item

      item2 = @item_window.item

      # Change equipment

      last_hp = @actor.hp

      last_sp = @actor.sp

      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)

      # Get parameters for after equipment change

      new_atk = @actor.atk

      new_pdef = @actor.pdef

      new_mdef = @actor.mdef

      new_str = @actor.str

      new_dex = @actor.dex

      new_agi = @actor.agi

      new_int = @actor.int

      # Return equipment

      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)

      @actor.hp = last_hp

      @actor.sp = last_sp

      # Draw in left window

      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int)

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    # Update windows

    @command_window.update

    @left_window.update

    @right_window.update

    @item_window.update

    refresh

    # If command window is active: call update_command

    if @command_window.active

      update_command

      return

    end

    # If right window is active: call update_right

    if @right_window.active

      update_right

      return

    end

    # If item window is active: call update_item

    if @item_window.active

      update_item

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when command window is active)

  #--------------------------------------------------------------------------

  def update_command

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Switch to menu screen

      $scene = Scene_Menu.new(2)

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Branch by command window cursor position

      case @command_window.index

      when 0  # Equip

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to right window

        @equip = true

        @command_window.active = false

        @right_window.active = true

      when 1  # Remove

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to right window

        @equip = false

        @command_window.active = false

        @right_window.active = true

      when 2  # Optimize

        # Play equip SE

        $game_system.se_play($data_system.equip_se)

        # Optimize

        optimize

      when 3  # Remove All

        # Play equip SE

        $game_system.se_play($data_system.equip_se)

        # Remove equipment

        for i in 0..4

          @actor.equip(i, 0)

        end

        # Refresh

        @right_window.refresh

        @left_window.refresh

        @item_window1.refresh

        @item_window2.refresh

        @item_window3.refresh

        @item_window4.refresh

        @item_window5.refresh

      end

      return

    end

    # If R button was pressed

    if Input.trigger?(Input::R)

      # Play cursor SE

      $game_system.se_play($data_system.cursor_se)

      # To next actor

      @actor_index += 1

      @actor_index %= $game_party.actors.size

      # Switch to different equipment screen

      $scene = Scene_Equip.new(@actor_index, @right_window.index)

      return

    end

    # If L button was pressed

    if Input.trigger?(Input::L)

      # Play cursor SE

      $game_system.se_play($data_system.cursor_se)

      # To previous actor

      @actor_index += $game_party.actors.size - 1

      @actor_index %= $game_party.actors.size

      # Switch to different equipment screen

      $scene = Scene_Equip.new(@actor_index, @right_window.index)

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when right window is active)

  #--------------------------------------------------------------------------

  def update_right

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Switch to command window

      @command_window.active = true

      @right_window.active = false

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # If equipment is fixed

      if @actor.equip_fix?(@right_window.index)

        # Play buzzer SE

        $game_system.se_play($data_system.buzzer_se)

        return

      end

      # Play decision SE

      $game_system.se_play($data_system.decision_se)

      if @equip

        # Activate item window

        @right_window.active = false

        @item_window.active = true

        @item_window.index = 0

      else

        # Play equip SE

        $game_system.se_play($data_system.equip_se)

        # Remove item

        @actor.equip(@right_window.index, 0)

        # Refresh

        @item_window.refresh

        @left_window.refresh

        @right_window.refresh

        @right_window.index = 0

        # Return to command window

        @command_window.active = true

        @command_window.visible = true

        @right_window.active = false

      end

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when item window is active)

  #--------------------------------------------------------------------------

  def update_item

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Activate right window

      @right_window.active = true

      @item_window.active = false

      @item_window.index = -1

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Play equip SE

      $game_system.se_play($data_system.equip_se)

      # Get currently selected data on the item window

      item = @item_window.item

      # Change equipment

      @actor.equip(@right_window.index, item == nil ? 0 : item.id)

      # Activate right window

      @right_window.active = true

      @item_window.active = false

      @item_window.index = -1

      # Remake right window and item window contents

      @right_window.refresh

      @item_window.refresh

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Optimize Equipment

  #--------------------------------------------------------------------------

  def optimize

    # Set beginning values of equipment slots

    weapon = $data_weapons[@actor.weapon_id]

    shield = $data_armors[@actor.armor1_id]

    helmet = $data_armors[@actor.armor2_id]

    armor =  $data_armors[@actor.armor3_id]

    access = $data_armors[@actor.armor4_id]

    # Get strongest weapon

    weapon_set = $data_classes[@actor.class_id].weapon_set

    for i in 1...$data_weapons.size

      if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)

        attack = (weapon == nil ? 0 : weapon.atk)

        weapon = $data_weapons[i] if $data_weapons[i].atk >= attack

      end

    end

    # Get strongest shield

    armor_set = $data_classes[@actor.class_id].armor_set

    for i in 1...$data_armors.size

      if $game_party.armor_number(i) > 0 and armor_set.include?(i) and

          $data_armors[i].kind == 0

        defense = (shield == nil ? 0 : shield.pdef)

        shield = $data_armors[i] if $data_armors[i].pdef >= defense

      end

    end

    # Get strongest helmet

    armor_set = $data_classes[@actor.class_id].armor_set

    for i in 1...$data_armors.size

      if $game_party.armor_number(i) > 0 and armor_set.include?(i) and

          $data_armors[i].kind == 1

        defense = (helmet == nil ? 0 : helmet.pdef)

        helmet = $data_armors[i] if $data_armors[i].pdef >= defense

      end

    end

    # Get strongest armor

    armor_set = $data_classes[@actor.class_id].armor_set

    for i in 1...$data_armors.size

      if $game_party.armor_number(i) > 0 and armor_set.include?(i) and

          $data_armors[i].kind == 2

        defense = (armor == nil ? 0 : armor.pdef)

        armor = $data_armors[i] if $data_armors[i].pdef >= defense

      end

    end

    # Get strongest accessory

    armor_set = $data_classes[@actor.class_id].armor_set

    for i in 1...$data_armors.size

      if $game_party.armor_number(i) > 0 and armor_set.include?(i) and

          $data_armors[i].kind == 3

        defense = (access == nil ? 0 : access.pdef)

        access = $data_armors[i] if $data_armors[i].pdef >= defense

      end

    end

    # Equip strongest equipmet

    @actor.equip(0, weapon.id)

    @actor.equip(1, shield.id)

    @actor.equip(2, helmet.id)

    @actor.equip(3, armor.id)

    @actor.equip(4, access.id)

    # Refresh windows

    @right_window.refresh

    @left_window.refresh

    @item_window1.refresh

    @item_window2.refresh

    @item_window3.refresh

    @item_window4.refresh

    @item_window5.refresh

    # Return to calling method

    return

  end

end   

 
 
Sweet Thank you! One less screen to deal with now. hehe. Still interested in taking out the "Weapon, Shield, Helm, etc" text and replace with icons, but I think I might be able to figure that out.
 
Whenever you go into the equip window, there are two cursors that appear. Is there some way of making one of them disappear till you select equip, etc. then have it appear where the other one would disappear. It's a minor detail thou.
 
Alright well I've added that icon replacement thing to the "Weapon, shield, etc" part for you :) Just put in your icon folder 5 icons named Equip0, Equip1, etc. Equip0 is the icon for weapons, Equip1 is for shields, etc. Next, I made the second cursor disappear like you just asked:

Code:
#------------------------------------------------------------------------------

#==============================================================================

#==============================================================================

#====================*Law's Custom Equipment Screen*===========================

#=========================Author: The Law G14==================================

#============================Version 1.0=======================================

#==============================================================================

#------------------------------------------------------------------------------

 

#==============================================================================

# ** Window_Help_Equip

#------------------------------------------------------------------------------

#  Child class of the Help Window specifically for the Equipment Scene

#==============================================================================

 

class Window_Help_Equip < Window_Help

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize

    super()

    self.y = 416

  end

end

 

 

#==============================================================================

# ** Window_EquipCommand

#------------------------------------------------------------------------------

#  This window displays certain options in the equip screen

#==============================================================================

 

class Window_EquipCommand < Window_Selectable

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize

    super(0, 0, 225, 98)

    self.contents = Bitmap.new(width - 32, height - 32)

    @item_max = 4

    @column_max = 2

    @commands = ["Equip", "Remove", "Optimize", "Remove All"]

    refresh

    self.index = 0

    self.active = true

    self.z = 300

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    for i in 0...@item_max

      draw_item(i)

    end

  end

  #--------------------------------------------------------------------------

  # * Draw Item

  #     index : item number

  #--------------------------------------------------------------------------

  def draw_item(index)

    x = index % @column_max * ( (self.width / @column_max - 32) + 12)

    y = index / @column_max * 32

    self.contents.draw_text(x, y, 128, 32, @commands[index])

  end

  #--------------------------------------------------------------------------

  # * Cursor Rectangle Update

  #--------------------------------------------------------------------------

  def update_cursor_rect

    case @index

    when 0 then self.cursor_rect.set(0, 0, 60, 32)

    when 1 then self.cursor_rect.set(90, 0, 100, 32)

    when 2 then self.cursor_rect.set(0, 32, 80, 32)

    when 3 then self.cursor_rect.set(90, 32, 100, 32)

    end

  end

end

 

 

#==============================================================================

# ** Window_EquipLeft

#------------------------------------------------------------------------------

#  This window displays actor parameter changes on the equipment screen.

#==============================================================================

 

class Window_EquipLeft < Window_Base  

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(225, 228, 414, 189)

    self.contents = Bitmap.new(width - 32, height - 32)

    @actor = actor

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------    

  def refresh

    self.contents.clear

    draw_actor_parameter(@actor, 4, 0, 0)

    draw_actor_parameter(@actor, 4, 18, 1)

    draw_actor_parameter(@actor, 4, 36, 2)

    draw_actor_parameter(@actor, 4, 54, 3)

    draw_actor_parameter(@actor, 4, 72, 4)

    draw_actor_parameter(@actor, 4, 90, 5)

    draw_actor_parameter(@actor, 4, 108, 6)

     if @new_atk != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 0, 40, 32, '->', 1)

     if @new_atk > @actor.atk

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_atk < @actor.atk)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 0, 36, 32, @new_atk.to_s, 2)

     end

    if @new_pdef != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 18, 40, 32, '->', 1)

     if @new_pdef > @actor.pdef

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_pdef < @actor.pdef)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 18, 36, 32, @new_pdef.to_s, 2)

     end

    if @new_mdef != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 36, 40, 32, '->', 1)

     if @new_mdef > @actor.mdef

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_mdef < @actor.mdef)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 36, 36, 32, @new_mdef.to_s, 2)

     end

    if @new_str != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 54, 40, 32, '->', 1)

     if @new_str > @actor.str

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_str < @actor.str)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 54, 36, 32, @new_str.to_s, 2)

     end

    if @new_dex != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 72, 40, 32, '->', 1)

     if @new_dex > @actor.dex

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_dex < @actor.dex)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 72, 36, 32, @new_dex.to_s, 2)

     end

    if @new_agi != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 90, 40, 32, '->', 1)

     if @new_agi > @actor.agi

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_agi < @actor.agi)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 90, 36, 32, @new_agi.to_s, 2)

     end

    if @new_int != nil

       self.contents.font.color = normal_color

       self.contents.draw_text(160, 108, 40, 32, '->', 1)

     if @new_int > @actor.int

       self.contents.font.color = Color.new(0,255,0)

     elsif (@new_int < @actor.int)

       self.contents.font.color = Color.new(255,0,0)

     end

       self.contents.draw_text(180, 108, 36, 32, @new_int.to_s, 2)

     end

  end

  #--------------------------------------------------------------------------

  # * Set parameters after changing equipment

  #     new_atk  : attack power after changing equipment

  #     new_pdef : physical defense after changing equipment

  #     new_mdef : magic defense after changing equipment

  #--------------------------------------------------------------------------

  def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex,

                         new_agi, new_int)

    if @new_atk != new_atk || @new_pdef != new_pdef || @new_mdef != new_mdef ||

        @new_str != new_str || @new_dex != new_dex || @new_agi != new_agi ||

        @new_int != new_int

      @new_atk = new_atk

      @new_pdef = new_pdef

      @new_mdef = new_mdef

      @new_str = new_str

      @new_dex = new_dex

      @new_agi = new_agi

      @new_int = new_int

      refresh

    end

  end 

end

 

 

#==============================================================================

# ** Window_EquipRight

#------------------------------------------------------------------------------

#  This window displays items the actor is currently equipped with on the

#  equipment screen.

#==============================================================================

 

class Window_EquipRight < Window_Selectable

  #--------------------------------------------------------------------------

  # * Item Acquisition

  #--------------------------------------------------------------------------

  def item

    return @data[self.index]

  end

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(225, 0, 414, 228)

    self.contents = Bitmap.new(width - 32, height - 32)

    @actor = actor

    self.active = false

    self.index = -1

    refresh

  end

  #--------------------------------------------------------------------------

  # * Draw Actor Face Graphic

  #--------------------------------------------------------------------------

  def draw_actor_face_graphic(actor, x, y)

    bitmap = RPG::Cache.battler(actor.battler_name, 0)

    self.contents.blt(x, y, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    draw_actor_face_graphic(@actor, x + 62, y + 30)

    draw_actor_name(@actor, x + 75, 0)

    @data = []

    @data.push($data_weapons[@actor.weapon_id])

    @data.push($data_armors[@actor.armor1_id])

    @data.push($data_armors[@actor.armor2_id])

    @data.push($data_armors[@actor.armor3_id])

    @data.push($data_armors[@actor.armor4_id])

    @item_max = @data.size

    for i in 0..4     

      bitmap = RPG::Cache.icon("Equip#{i}")

      self.contents.blt(0, i * 32, bitmap, Rect.new(0, 0, 24, 24))

    end

    draw_item_name(@data[0], 140, 32 * 0)

    draw_item_name(@data[1], 140, 32 * 1)

    draw_item_name(@data[2], 140, 32 * 2)

    draw_item_name(@data[3], 140, 32 * 3)

    draw_item_name(@data[4], 140, 32 * 4)

  end

  #--------------------------------------------------------------------------

  # * Help Text Update

  #--------------------------------------------------------------------------

  def update_help

    @help_window.set_text(self.item == nil ? "" : self.item.description)

  end

  #--------------------------------------------------------------------------

  # * Cursor Rectangle Update

  #--------------------------------------------------------------------------

  def update_cursor_rect

    if @index < 0

      self.cursor_rect.empty

    else

      self.cursor_rect.set(0, @index * 32, self.width - 32, 32)

    end

  end

end

 

 

#==============================================================================

# ** Window_EquipItem

#------------------------------------------------------------------------------

#  This window displays choices when opting to change equipment on the

#  equipment screen.

#==============================================================================

 

class Window_EquipItem < Window_Selectable

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor      : actor

  #     equip_type : equip region (0-3)

  #--------------------------------------------------------------------------

  def initialize(actor, equip_type)

    super(0, 98, 225, 319)

    @actor = actor

    @equip_type = equip_type

    @column_max = 1

    refresh

    self.active = false

    self.index = -1

  end

  #--------------------------------------------------------------------------

  # * Item Acquisition

  #--------------------------------------------------------------------------

  def item

    return @data[self.index]

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    if self.contents != nil

      self.contents.dispose

      self.contents = nil

    end

    @data = []

    # Add equippable weapons

    if @equip_type == 0

      weapon_set = $data_classes[@actor.class_id].weapon_set

      for i in 1...$data_weapons.size

        if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)

          @data.push($data_weapons[i])

        end

      end

    end

    # Add equippable armor

    if @equip_type != 0

      armor_set = $data_classes[@actor.class_id].armor_set

      for i in 1...$data_armors.size

        if $game_party.armor_number(i) > 0 and armor_set.include?(i)

          if $data_armors[i].kind == @equip_type-1

            @data.push($data_armors[i])

          end

        end

      end

    end

    # Add blank page

    @data.push(nil)

    # Make a bit map and draw all items

    @item_max = @data.size

    self.contents = Bitmap.new(width - 32, row_max * 32)

    for i in 0...@item_max-1

      draw_item(i)

    end

  end

  #--------------------------------------------------------------------------

  # * Draw Item

  #     index : item number

  #--------------------------------------------------------------------------

  def draw_item(index)

    item = @data[index]

    x = 4 + index % 1 * (288 + 32)

    y = index / 1 * 32

    case item

    when RPG::Weapon

      number = $game_party.weapon_number(item.id)

    when RPG::Armor

      number = $game_party.armor_number(item.id)

    end

    bitmap = RPG::Cache.icon(item.icon_name)

    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))

    self.contents.font.color = normal_color

    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)

    self.contents.draw_text(x + 160, y, 16, 32, "x", 1)

    self.contents.draw_text(x + 163, y, 24, 32, number.to_s, 2)

  end

  #--------------------------------------------------------------------------

  # * Help Text Update

  #--------------------------------------------------------------------------

  def update_help

    @help_window.set_text(self.item == nil ? "" : self.item.description)

  end

end

 

 

#==============================================================================

# ** Scene_Equip

#------------------------------------------------------------------------------

#  This class performs equipment screen processing.

#==============================================================================

 

class Scene_Equip

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor_index : actor index

  #     equip_index : equipment index

  #--------------------------------------------------------------------------

  def initialize(actor_index = 0, equip_index = 0)

    @actor_index = actor_index

    @equip_index = equip_index

  end

  #--------------------------------------------------------------------------

  # * Main Processing

  #--------------------------------------------------------------------------

  def main

    # Get actor

    @actor = $game_party.actors[@actor_index]

    # Make windows

    @help_window = Window_Help_Equip.new

    @command_window = Window_EquipCommand.new

    @left_window = Window_EquipLeft.new(@actor)

    @right_window = Window_EquipRight.new(@actor)

    @item_window1 = Window_EquipItem.new(@actor, 0)

    @item_window2 = Window_EquipItem.new(@actor, 1)

    @item_window3 = Window_EquipItem.new(@actor, 2)

    @item_window4 = Window_EquipItem.new(@actor, 3)

    @item_window5 = Window_EquipItem.new(@actor, 4)

    # Associate help window

    @right_window.help_window = @help_window

    @item_window1.help_window = @help_window

    @item_window2.help_window = @help_window

    @item_window3.help_window = @help_window

    @item_window4.help_window = @help_window

    @item_window5.help_window = @help_window

    # Set cursor position

    @right_window.index = -1

    # Equip/Remove flag

    @equip = true

    # Refresh

    refresh

    # Execute transition

    Graphics.transition

    # Main loop

    loop do

      # Update game screen

      Graphics.update

      # Update input information

      Input.update

      # Frame update

      update

      # Abort loop if screen is changed

      if $scene != self

        break

      end

    end

    # Prepare for transition

    Graphics.freeze

    # Dispose of windows

    @command_window.dispose

    @help_window.dispose

    @left_window.dispose

    @right_window.dispose

    @item_window1.dispose

    @item_window2.dispose

    @item_window3.dispose

    @item_window4.dispose

    @item_window5.dispose

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    # Set item window to visible

    @item_window1.visible = (@right_window.index == 0)

    @item_window2.visible = (@right_window.index == 1)

    @item_window3.visible = (@right_window.index == 2)

    @item_window4.visible = (@right_window.index == 3)

    @item_window5.visible = (@right_window.index == 4)

    @item_window1.visible = true if @right_window.index < 0

    # Get currently equipped item

    item1 = @right_window.item

    # Set current item window to @item_window

    case @right_window.index

    when 0

      @item_window = @item_window1

    when 1

      @item_window = @item_window2

    when 2

      @item_window = @item_window3

    when 3

      @item_window = @item_window4

    when 4

      @item_window = @item_window5

    else

      @item_window = @item_window1

    end

    # If right window is active

    if @right_window.active

      # Erase parameters for after equipment change

      @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)

    end

    # If item window is active

    if @item_window.active

      # Get currently selected item

      item2 = @item_window.item

      # Change equipment

      last_hp = @actor.hp

      last_sp = @actor.sp

      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)

      # Get parameters for after equipment change

      new_atk = @actor.atk

      new_pdef = @actor.pdef

      new_mdef = @actor.mdef

      new_str = @actor.str

      new_dex = @actor.dex

      new_agi = @actor.agi

      new_int = @actor.int

      # Return equipment

      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)

      @actor.hp = last_hp

      @actor.sp = last_sp

      # Draw in left window

      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int)

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    # Update windows

    @command_window.update

    @left_window.update

    @right_window.update

    @item_window.update

    refresh

    # If command window is active: call update_command

    if @command_window.active

      update_command

      return

    end

    # If right window is active: call update_right

    if @right_window.active

      update_right

      return

    end

    # If item window is active: call update_item

    if @item_window.active

      update_item

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when command window is active)

  #--------------------------------------------------------------------------

  def update_command

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Switch to menu screen

      $scene = Scene_Menu.new(2)

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Branch by command window cursor position

      case @command_window.index

      when 0  # Equip

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to right window

        @equip = true

        @command_window.active = false

        @right_window.active = true

        @right_window.index = 0

      when 1  # Remove

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to right window

        @equip = false

        @command_window.active = false

        @right_window.active = true

        @right_window.index = 0

      when 2  # Optimize

        # Play equip SE

        $game_system.se_play($data_system.equip_se)

        # Optimize

        optimize

      when 3  # Remove All

        # Play equip SE

        $game_system.se_play($data_system.equip_se)

        # Remove equipment

        for i in 0..4

          @actor.equip(i, 0)

        end

        # Refresh

        @right_window.refresh

        @left_window.refresh

        @item_window1.refresh

        @item_window2.refresh

        @item_window3.refresh

        @item_window4.refresh

        @item_window5.refresh

      end

      return

    end

    # If R button was pressed

    if Input.trigger?(Input::R)

      # Play cursor SE

      $game_system.se_play($data_system.cursor_se)

      # To next actor

      @actor_index += 1

      @actor_index %= $game_party.actors.size

      # Switch to different equipment screen

      $scene = Scene_Equip.new(@actor_index, @right_window.index)

      return

    end

    # If L button was pressed

    if Input.trigger?(Input::L)

      # Play cursor SE

      $game_system.se_play($data_system.cursor_se)

      # To previous actor

      @actor_index += $game_party.actors.size - 1

      @actor_index %= $game_party.actors.size

      # Switch to different equipment screen

      $scene = Scene_Equip.new(@actor_index, @right_window.index)

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when right window is active)

  #--------------------------------------------------------------------------

  def update_right

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Switch to command window

      @command_window.active = true

      @right_window.active = false

      @right_window.index = -1

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # If equipment is fixed

      if @actor.equip_fix?(@right_window.index)

        # Play buzzer SE

        $game_system.se_play($data_system.buzzer_se)

        return

      end

      # Play decision SE

      $game_system.se_play($data_system.decision_se)

      if @equip

        # Activate item window

        @right_window.active = false

        @item_window.active = true

        @item_window.index = 0

      else

        # Play equip SE

        $game_system.se_play($data_system.equip_se)

        # Remove item

        @actor.equip(@right_window.index, 0)

        # Refresh

        @item_window.refresh

        @left_window.refresh

        @right_window.refresh

        @right_window.index = 0

        # Return to command window

        @command_window.active = true

        @command_window.visible = true

        @right_window.active = false

      end

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when item window is active)

  #--------------------------------------------------------------------------

  def update_item

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Activate right window

      @right_window.active = true

      @item_window.active = false

      @item_window.index = -1

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Play equip SE

      $game_system.se_play($data_system.equip_se)

      # Get currently selected data on the item window

      item = @item_window.item

      # Change equipment

      @actor.equip(@right_window.index, item == nil ? 0 : item.id)

      # Activate right window

      @right_window.active = true

      @item_window.active = false

      @item_window.index = -1

      # Remake right window and item window contents

      @right_window.refresh

      @item_window.refresh

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Optimize Equipment

  #--------------------------------------------------------------------------

  def optimize

    # Set beginning values of equipment slots

    weapon = $data_weapons[@actor.weapon_id]

    shield = $data_armors[@actor.armor1_id]

    helmet = $data_armors[@actor.armor2_id]

    armor =  $data_armors[@actor.armor3_id]

    access = $data_armors[@actor.armor4_id]

    # Get strongest weapon

    weapon_set = $data_classes[@actor.class_id].weapon_set

    for i in 1...$data_weapons.size

      if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)

        attack = (weapon == nil ? 0 : weapon.atk)

        weapon = $data_weapons[i] if $data_weapons[i].atk >= attack

      end

    end

    # Get strongest shield

    armor_set = $data_classes[@actor.class_id].armor_set

    for i in 1...$data_armors.size

      if $game_party.armor_number(i) > 0 and armor_set.include?(i) and

          $data_armors[i].kind == 0

        defense = (shield == nil ? 0 : shield.pdef)

        shield = $data_armors[i] if $data_armors[i].pdef >= defense

      end

    end

    # Get strongest helmet

    armor_set = $data_classes[@actor.class_id].armor_set

    for i in 1...$data_armors.size

      if $game_party.armor_number(i) > 0 and armor_set.include?(i) and

          $data_armors[i].kind == 1

        defense = (helmet == nil ? 0 : helmet.pdef)

        helmet = $data_armors[i] if $data_armors[i].pdef >= defense

      end

    end

    # Get strongest armor

    armor_set = $data_classes[@actor.class_id].armor_set

    for i in 1...$data_armors.size

      if $game_party.armor_number(i) > 0 and armor_set.include?(i) and

          $data_armors[i].kind == 2

        defense = (armor == nil ? 0 : armor.pdef)

        armor = $data_armors[i] if $data_armors[i].pdef >= defense

      end

    end

    # Get strongest accessory

    armor_set = $data_classes[@actor.class_id].armor_set

    for i in 1...$data_armors.size

      if $game_party.armor_number(i) > 0 and armor_set.include?(i) and

          $data_armors[i].kind == 3

        defense = (access == nil ? 0 : access.pdef)

        access = $data_armors[i] if $data_armors[i].pdef >= defense

      end

    end

    # Equip strongest equipmet

    @actor.equip(0, weapon.id)

    @actor.equip(1, shield.id)

    @actor.equip(2, helmet.id)

    @actor.equip(3, armor.id)

    @actor.equip(4, access.id)

    # Refresh windows

    @right_window.refresh

    @left_window.refresh

    @item_window1.refresh

    @item_window2.refresh

    @item_window3.refresh

    @item_window4.refresh

    @item_window5.refresh

    # Return to calling method

    return

  end

end
 

Thank you for viewing

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

Discord

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

Content

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