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.

Help making a menu with only one column!!

Hi! I have been mixing around with some RGSS scripts recently! It worked quite well! I have changed a lot of things in the original menu. My problem is this: I have moved around the Window_EquipRight and Window_EquipLeft and Window_EquipItem parts of the equipment section, but now I can't SEE the items avaliable in The Item Equip Window. I have Max_Column == 1, but only some of the weapons/armors is showing, not all of them (only the text). There is something I have missed in the scripts, I am sure of it! Here is a screenshot of MY PROBLEM:

errormh.png


See? The local position is NOT EMPTY! Because there is info! So why isn't the weapon shown in the Item Equip Window?

I have been changing and editing the following scripts:
-Window_EquipRight
-Window_EquipLeft
-Window_EquipItem

-Scene_Equip

Code:
#==============================================================================

# ** 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(80, 160, 300, 400)

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

    @actor = actor

    refresh

  end

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

  # * Refresh

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

  def refresh

    self.contents.clear

    draw_actor_graphic(@actor, 20, 70)

    draw_actor_name(@actor, 4, 0)

    draw_actor_parameter(@actor, 4, 90, 0)

    draw_actor_parameter(@actor, 4, 110, 1)

    draw_actor_parameter(@actor, 4, 130, 2)

    draw_actor_parameter(@actor, 4, 160, 3)

    draw_actor_parameter(@actor, 4, 180, 4)

    draw_actor_parameter(@actor, 4, 200, 5)

    draw_actor_parameter(@actor, 4, 220, 6)

    if @new_atk != nil

      self.contents.font.color = system_color

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

      self.contents.font.color = normal_color

      self.contents.draw_text(200, 90, 36, 32, @new_atk.to_s, 2)

    end

    if @new_pdef != nil

      self.contents.font.color = system_color

      self.contents.draw_text(160, 110, 40, 32, ">", 1)

      self.contents.font.color = normal_color

      self.contents.draw_text(200, 110, 36, 32, @new_pdef.to_s, 2)

    end

    if @new_mdef != nil

      self.contents.font.color = system_color

      self.contents.draw_text(160, 130, 40, 32, ">", 1)

      self.contents.font.color = normal_color

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

    end

    if @new_str != nil

      self.contents.font.color = system_color

      self.contents.draw_text(160, 160, 40, 32, ">", 1)

      self.contents.font.color = normal_color

      self.contents.draw_text(200, 160, 36, 32, @new_str.to_s, 2)

    end

    if @new_dex != nil

      self.contents.font.color = system_color

      self.contents.draw_text(160, 180, 40, 32, ">", 1)

      self.contents.font.color = normal_color

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

    end 

    if @new_agi != nil

      self.contents.font.color = system_color

      self.contents.draw_text(160, 200, 40, 32, ">", 1)

      self.contents.font.color = normal_color

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

    end

    if @new_int != nil

      self.contents.font.color = system_color

      self.contents.draw_text(160, 220, 40, 32, ">", 1)

      self.contents.font.color = normal_color

      self.contents.draw_text(200, 220, 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 or @new_pdef != new_pdef or @new_mdef != new_mdef or new_str != new_str or new_dex != new_dex or new_agi != new_agi or 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

 

Next one:

Code:
#==============================================================================

# ** Window_EquipRight

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

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

#  equipment screen.

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

 

class Window_EquipRight < Window_Selectable

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

  # * Object Initialization

  #     actor : actor

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

  def initialize(actor)

    super(0, 64, 380, 100)

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

    @actor = actor

    refresh

    self.index = 0

  end

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

  # * Item Acquisition

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

  def item

    return @data[self.index]

  end

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

  # * Refresh

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

  def refresh

    self.contents.clear

    @data = []

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

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

    @item_max = @data.size

    self.contents.font.color = system_color

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

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

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

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

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

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

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

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

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

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

  end

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

  # * Help Text Update

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

  def update_help

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

  end

end

 

And 3rd one:

Code:
#==============================================================================

# ** 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(380, 100, 272, 200)

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

    @actor = actor

    @equip_type = equip_type

    @column_max = 1

    refresh

    self.active = false

    self.index = 0

  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-0

            @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 - 20, row_max * 15)

    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 % 2 * (288 + 32)

    y = index / 2 * 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 + 240, y, 16, 32, ":", 1)

    self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 1)

  end

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

  # * Help Text Update

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

  def update_help

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

  end

end

 

And the last one:

Code:
#==============================================================================

# ** 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

Please help me

//Thank You!
 
Setting the colmax to 1 is not enough, you need to edit the algorithm for positioning the text in the window, as it will still try and draw the text over a two column layout.

If you paste the script here someone can have a look at it, but I hope the above helps a bit.
 
Ok! I know that I must change the text position(s) but there are way to many different coordinates in ALL 4 SCRIPTS reffering to text positions, so I didn't change any since it will be very wrong.

Here's the scripts I changed and edited (RGSS library) :

Code:
#==============================================================================

# ** 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(80, 160, 300, 400)

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

    @actor = actor

    refresh

  end

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

  # * Refresh

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

  def refresh

    self.contents.clear

    draw_actor_graphic(@actor, 20, 70)

    draw_actor_name(@actor, 4, 0)

    draw_actor_parameter(@actor, 4, 90, 0)

    draw_actor_parameter(@actor, 4, 110, 1)

    draw_actor_parameter(@actor, 4, 130, 2)

    draw_actor_parameter(@actor, 4, 160, 3)

    draw_actor_parameter(@actor, 4, 180, 4)

    draw_actor_parameter(@actor, 4, 200, 5)

    draw_actor_parameter(@actor, 4, 220, 6)

    if @new_atk != nil

      self.contents.font.color = system_color

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

      self.contents.font.color = normal_color

      self.contents.draw_text(200, 90, 36, 32, @new_atk.to_s, 2)

    end

    if @new_pdef != nil

      self.contents.font.color = system_color

      self.contents.draw_text(160, 110, 40, 32, ">", 1)

      self.contents.font.color = normal_color

      self.contents.draw_text(200, 110, 36, 32, @new_pdef.to_s, 2)

    end

    if @new_mdef != nil

      self.contents.font.color = system_color

      self.contents.draw_text(160, 130, 40, 32, ">", 1)

      self.contents.font.color = normal_color

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

    end

    if @new_str != nil

      self.contents.font.color = system_color

      self.contents.draw_text(160, 160, 40, 32, ">", 1)

      self.contents.font.color = normal_color

      self.contents.draw_text(200, 160, 36, 32, @new_str.to_s, 2)

    end

    if @new_dex != nil

      self.contents.font.color = system_color

      self.contents.draw_text(160, 180, 40, 32, ">", 1)

      self.contents.font.color = normal_color

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

    end 

    if @new_agi != nil

      self.contents.font.color = system_color

      self.contents.draw_text(160, 200, 40, 32, ">", 1)

      self.contents.font.color = normal_color

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

    end

    if @new_int != nil

      self.contents.font.color = system_color

      self.contents.draw_text(160, 220, 40, 32, ">", 1)

      self.contents.font.color = normal_color

      self.contents.draw_text(200, 220, 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 or @new_pdef != new_pdef or @new_mdef != new_mdef or new_str != new_str or new_dex != new_dex or new_agi != new_agi or 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

 

Next one:

Code:
#==============================================================================

# ** Window_EquipRight

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

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

#  equipment screen.

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

 

class Window_EquipRight < Window_Selectable

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

  # * Object Initialization

  #     actor : actor

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

  def initialize(actor)

    super(0, 64, 380, 100)

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

    @actor = actor

    refresh

    self.index = 0

  end

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

  # * Item Acquisition

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

  def item

    return @data[self.index]

  end

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

  # * Refresh

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

  def refresh

    self.contents.clear

    @data = []

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

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

    @item_max = @data.size

    self.contents.font.color = system_color

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

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

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

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

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

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

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

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

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

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

  end

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

  # * Help Text Update

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

  def update_help

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

  end

end

 

And 3rd one:

Code:
#==============================================================================

# ** 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(380, 100, 272, 200)

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

    @actor = actor

    @equip_type = equip_type

    @column_max = 1

    refresh

    self.active = false

    self.index = 0

  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-0

            @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 - 20, row_max * 15)

    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 % 2 * (288 + 32)

    y = index / 2 * 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 + 240, y, 16, 32, ":", 1)

    self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 1)

  end

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

  # * Help Text Update

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

  def update_help

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

  end

end

 

And the last one:

Code:
#==============================================================================

# ** 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

 

 

As I said there are many numbers reffering to TEXT_POSITION so I don't know which to edit!

//Help me! thank you
 

Atoa

Member

the problem is on this part of def "draw_item(index)" from Window_EquipItem
x = 4 + index % 2 * (288 + 32)
y = index / 2 * 32


as you can se it, the x position and y position changes according to the index
So even changing the number of columns, the script still drawing the items on alternate positions. (damn EB, why didn't they make this according to the number of columns?).

changing this part to this may solve the problem.
x = 4
y = index * 32
 
Thank You it worked! But now only the HALF of the text is shown in row 2!

I don't remember where to change the text drawing. Please help

//Thank You


EDIT: I Fixed it! Only to change line 63: self.contents = Bitmap.new(width - 20, row_max * 32) I had row_max set to only 15 for any reason! Thank You, now I have made my own equip_menu! As you can see I have made a whole custom menu now :)
 
It seems that the ARMORS dissapears, even if they trully exists, so here's another problem how do I fix this?

The Index *32 (y) x1 doesn't have anything to do with this, strangely...
 

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