Jump to content
Sign in to follow this  
Uriel Everos

IMR - Item Menu Remake

Recommended Posts

IMR V1.5

 Item Menu Remake V1.5

Exclusively For http://www.rpgmakervxace.net

Info

  • Changes Item menu design
  • Credits Placed within the script header

Screenshot

Untitled-1-2.png

Version History

Plans for Next Version

 

  • ?????.

 

V1.5

 

  • Now Shows Weapon name along with weapon Icon

 

V1.0

 

  • Released IMR

 

 

 


Script

 

#==============================================================================
# Item Menu Remake V 1.5
#     Created by: Uriel Everos
#==============================================================================
# This Script Features the Following:
# † Changes Item menu design
# † Made Upon Request: R_Valkyrie
# † Credits to: Mr. Trivel
#==============================================================================
# ☩ Start of Script
#==============================================================================

#==============================================================================
# ☩ Creates Item Scene
#==============================================================================
class Scene_Item < Scene_ItemBase
 
  def start
    super
    create_equipped_weapon_window
    create_help_item_window
    create_category_window
    create_item_window
  end
 
  # ☩ Creates Category
  def create_category_window
    @category_window = Window_ItemCategory.new
    @category_window.viewport = @viewport
    @category_window.help_window = @help_item_window
    @category_window.y = 0
    @category_window.set_handler(:ok,     method(:on_category_ok))
    @category_window.set_handler(:cancel, method(:return_scene))
  end
 
  # ☩ Creates Item List
  def create_item_window
    wy = @category_window.height
    wh = Graphics.height - @help_item_window.height - @category_window.height
    widt = Graphics.width-250
    @item_window = Window_ItemList.new(10, wy + 15, widt, wh -30)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_item_window
    @item_window.set_handler(:ok,     method(:on_item_ok))
    @item_window.set_handler(:cancel, method(:on_item_cancel))
    @category_window.item_window = @item_window
    
  # ☩ Creates Item Icon Window
    whc = Graphics.height - @help_item_window.height - @category_window.height
    @icon_window = Window_Item_Icon.new(@item_window.width+55, @category_window.height+35,
    Graphics.width-@item_window.width - 95, whc - 70)
    @icon_window.viewport = @viewport
    @item_window.icon_window = @icon_window
  end
 
  # ☩ Creates Item Description
  def create_help_item_window
    @help_item_window = Window_Help_Item.new
    @help_item_window.viewport = @viewport
  end
 
  # ☩ Creates Equipped weapon and HP bar
  def create_equipped_weapon_window
    @equipped_weapon_window = Window_Equipped_Weapon.new
    @equipped_weapon_window.viewport = @viewport
  end
 
  def on_item_cancel
    @item_window.unselect
    @category_window.activate
    @icon_window.refresh
  end
end

#==============================================================================
# ☩ Removes item Icon in list
#==============================================================================
class Window_Base < Window
   def draw_item_name_custom(item, x, y, enabled = true, width = 172)
    return unless item
    change_color(normal_color, enabled)
    draw_text(x + 24, y, width, line_height, item.name)
  end
end

#==============================================================================
# ☩ Item List
#==============================================================================
class Window_ItemList < Window_Selectable
  attr_reader   :icon_window
  def col_max
    return 1
  end
  def draw_item_number(rect, item)
    draw_text(rect, sprintf("x%2d", $game_party.item_number(item)), 2)
  end
 
  def draw_item(index)
    item = @data[index]
    if item
      rect = item_rect(index)
      rect.x -= 10
      rect.width -= 4
      draw_item_name_custom(item, rect.x, rect.y, enable?(item))
      draw_item_number(rect, item)
    end
  end
 
  def update_help
    @help_window.set_item(item)
    @icon_window.set_item(item) if @icon_window
  end
 
  def icon_window=(icon_window)
    @icon_window = icon_window
    call_update_help_icon
  end
 
  def update_help_icon
    @icon_window.clear
  end
 
  def call_update_help_icon
    update_help_icon if active && @icon_window
  end
end
 
#==============================================================================
# ☩ Description Window
#==============================================================================
class Window_Help_Item < Window_Base
 
  def initialize(line_number = 5)
    height = Graphics.height - fitting_height(line_number)
    super(fitting_height(line_number), height, Graphics.width - fitting_height(line_number), fitting_height(line_number))
  end
 
  def set_text(text)
    if text != @text
      @text = text
      refresh
    end
  end
 
  def clear
    set_text("")
  end
 
  def set_item(item)
    set_text(item ? item.description : "")
  end
 
  def refresh
    contents.clear
    draw_text_ex(4, 0, @text)
  end
end

#==============================================================================
# ☩ Item Icon
#==============================================================================
class Window_Item_Icon < Window_Base
  def initialize(x, y, width, height)
    super
  end
 
  def refresh
    contents.clear
  end
 
  def set_item(item)
    contents.clear
    if item.nil?
    else
        draw_icon_custom(item.icon_index, 40, 40)
    end
  end
 
  def draw_icon_custom(icon_index, x, y, enabled = true)
    bitmap = Cache.system("Iconset")
    f = 2
    n = 24 * f
    iconbit = Bitmap.new(bitmap.width * f, bitmap.height * f)
    iconbit.stretch_blt(iconbit.rect, bitmap, bitmap.rect)
    rect = Rect.new(icon_index % 16 * n, icon_index / 16 * n, n, n)
    contents.blt(x, y, iconbit, rect, enabled ? 255 : translucent_alpha)
    bitmap.dispose
    iconbit.dispose
  end
end
 
#==============================================================================
# ☩ Equipped weapon
#==============================================================================
class Window_Equipped_Weapon < Window_Base
 
  def initialize(line_number = 5)
    height = Graphics.height - fitting_height(line_number)
    super(0, height, fitting_height(line_number), fitting_height(line_number))
    draw_actor_hp($game_party.leader, 0, 0)
    if $game_party.leader.weapons[0].nil?
      self.contents.draw_text(10,60,200,line_height,weapon_name)
    else
      self.contents.draw_text(10,100,200,line_height,weapon_name)
    end
    
    draw_icon_custom(weapon_icon, 35, 50)
    
  end
 
  def draw_icon_custom(icon_index, x, y, enabled = true)
    bitmap = Cache.system("Iconset")
    f = 2
    n = 24 * f
    iconbit = Bitmap.new(bitmap.width * f, bitmap.height * f)
    iconbit.stretch_blt(iconbit.rect, bitmap, bitmap.rect)
    rect = Rect.new(icon_index % 16 * n, icon_index / 16 * n, n, n)
    contents.blt(x, y, iconbit, rect, enabled ? 255 : translucent_alpha)
    bitmap.dispose
    iconbit.dispose
  end
 
  def refresh
    self.contents.clear
  end
 
  def weapon_icon
    return $game_party.leader.weapons[0].nil? ? 0 : $game_party.leader.weapons[0].icon_index
  end
 
  def weapon_name
   # return "No Weapon"
   return $game_party.leader.weapons[0].nil? ? "No Weapon" : $game_party.leader.weapons[0].name
  end
end

#==============================================================================
# ☩ End of Script
#==============================================================================

 



Footnote:
Any Violent reactions, Requested Features, Polishing of Code ( i'm sure it looks very messy), and BUG REPORTS. Please do post a reply.

Place under all other scripts. And above main.

Edited by Uriel Everos

Share this post


Link to post
Share on other sites

Very nice looking re-design. I like how it allows a lot more to be shown in the description box.

 

One thing I think would be a really nice feature is to have items display images instead of only zoomed icons. Maybe with use of notetags (eg. <image: potion>)

Share this post


Link to post
Share on other sites

Very nice looking re-design. I like how it allows a lot more to be shown in the description box.

 

One thing I think would be a really nice feature is to have items display images instead of only zoomed icons. Maybe with use of notetags (eg. <image: potion>)

That's definitely possible. :) once I learn how Note tagging works it might as well be a piece of cake or maybe a whole cake =)))

 

Ill do my best to implement this feature

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
Top ArrowTop Arrow Highlighted