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

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

0 Members and 1 Guest are viewing this topic.

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
Simple Sort Inventory
Version: 2.0
Author: cozziekuns
Date: August 7, 2011

Version History


  • <Version 2.0> 08.07.2011 - Somewhat major revamping. Fixed the special prime categories; now you can take out item, weapon, all and armours. Also added an addon for Modern Algebra's Item Instances Base; if you are using it, category 4 will contain all instance items. If you are using it and you do not want this, simply do not have a category 4.
  • <Version 1.3a> 09.06.2010 - Updated with some bugfixing. Thanks Fizzly for finding the bugs.
  • <Version 1.3> 08.27.2010 - Upgraded with unlimited scrolling categories (Thanks to kawagiri for giving the idea, thanks Modern Algebra for helping out with that).
  • <Version 1.2a> 06.20.2010 - Fixed a small boo-boo of mine (Thanks to Kyriaki for pointing that out).
  • <Version 1.2> 06.19.2010 - Updated with the option of "Prime" categories for regular categories (Thanks Kyriaki).
  • <Version 1.1> 06.01.2010 - Once again updated with Modern Algebra's advice.
  • <Version 1.0a> 06.01.2010 - Updated with Modern Algebra's advice
  • <Version 1.0> 06.01.2010 - Original Release

Planned Future Versions

  • Looking into possible patches with MA's Limited Inventory.

Description


Like in Tales of Phantasia, this inventory allows you to sort your items into various categories.

Features

  • A whole lot more customisable.
  • Gives the ability to create your own categories with ease!
  • Sort's your inventory quickly and cleanly.
  • I reckon there's a bit of lag (mainly refreshing so many items), but I don't have any bad computers to try it on.
  • * New in 1.2 * - The ability to set regular categories to "prime categories" (inspired by Kyriaki).
  • * New in 1.3 * - The ability to have (virtually) infinite categories.
  • * New in 2.0 * - Ability to add and delete special prime categories (All, Items, Weapons, Armours)

Screenshots



Instructions

See header.

Script


Code: [Select]
#===============================================================================

# Cozziekuns Simple Sort Inventory
# Last Date Updated: 08/07/11
#
# Like in Tales of Phantasia, this inventory allows you to sort your items in
# the categories: All, Items, Weapons and Armours.
#
#===============================================================================
# Updates
# -----------------------------------------------------------------------------
# o 06/01/10 - Created Script.
# o 06/01/10 - Updated with Modern Algebra's recommendations.
# o 06/01/10 - Once again updated with Modern Algebra's recommendations.
# o 08/27/10 - Updated with Scrolling support. Thanks kawagiri for the idea, and
#              Modern Algebra for some help.
# o 09/06/10 - Updated with some bugfixing. Thanks Fizzly for finding that out.
# o 07/08/11 - Fixed the special prime categories; now you can take out item,
#              weapon, all and armours. Also added an addon for Modern Algebra's
#              Item Instances Base; if you are using it, category 4 will contain
#              all instance items. If you are using it and you do not want this,
#              simply do not have a category 4.
#===============================================================================
# What's to come?
# -----------------------------------------------------------------------------
# o Nothing! Suggest something.
#===============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ? Materials but above ? Main. Remember to save.
#
# Change the modules to your liking. The "hard" parts have instructions of their
# own.
#===============================================================================

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

module COZZIEKUNS
  module SSI
    CATEGORY_TEXT = "Category:"
   
#===============================================================================
# Extra Item Categories (Inspired by Modern Algebra)
# ------------------------------------------------------------------------------
# How should I go about explaining something like this? Well, basically, each
# item in the hash represents a certain category. For example, the first hash we
# see here is:
#
# 0 => [144, "All", false]
#
# The syntax of this is:
#
# Category ID => [Icon Number, Text, Prime]
#
# Probably the most important part, the category ID is the number you want to
# put into the notebox that the item contains. For example, if you wanted to
# make the item "World Map" into a key item, simply add the text:
#
# \item_category[4]
#
# into the notebox. Note that numbers 0, 1, 2, and 3 are special. They're prime
# categories. Sound special right? They correspond to the categories: All,
# Items, Weapons and Armours respectively.
#
# Last, but not least, is the "Prime" function (inspired by Kyraiki). Setting
# this to "true" means that anything in the prime category will not show up in
# the item, weapon armour or instance (if you have MA's Item Instances Base {try
# saying that five times fast}) categories. You can set if you want it to show
# up in all.
#===============================================================================
    MOD_ALG_ITEM_CATEGORIES = {  # Make sure they are in order!!!
   
      0 => [144, "All", false],
      1 => [64, "Items", false],
      2 => [26, "Weapons", false],
      3 => [40, "Armours", false],
      4 => [90, "Instance", true],
      5 => [80, "Key Items", false],
      6 => [92, "Filler", false],
      7 => [32, "Scrolling", false],
    }
   
    MOD_ALG_ITEM_CATEGORY_WIDTH = 220 # How wide you want your text window.
    KYRIAKI_ALL_CATEOGRY_PRIME = false # If you want prime key items to show up in the all window.
    MAX_NUMBER = (544 - MOD_ALG_ITEM_CATEGORY_WIDTH) / 54 # The maximum number of icons that will fit.
   
  end
end

#==============================================================================
# ** RPG::BaseItem
#==============================================================================

class RPG::BaseItem
  #--------------------------------------------------------------------------
  # * Cozziekuns Category Index
  #--------------------------------------------------------------------------
  def coz_modalg_category_index
    @coz_modalg_category_index = 0
    if self.note[/\\item_category\[(\d+)]/i] != nil
      @coz_modalg_category_index = $1.to_i
    end
  return @coz_modalg_category_index
  end
end

#==============================================================================
# ** Window_Item
#==============================================================================

class Window_Item < Window_Selectable
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  alias coz_modalg_ssi_refresh refresh
  def refresh(sort_index = 0)
   @sort_index = sort_index
   coz_modalg_ssi_refresh
 end
  #--------------------------------------------------------------------------
  # * Whether or not to include in item list
  #--------------------------------------------------------------------------
  alias coz_modalg_ssi_include? include?
  def include?(item)
    val = coz_modalg_ssi_include?(item)
    return false if !val
    case @sort_index
    when 0
      unless COZZIEKUNS::SSI::KYRIAKI_ALL_CATEOGRY_PRIME
        return !COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2]
      else
        return true
      end
    when 1
      if COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2]
        return false
      else
        return item.is_a?(RPG::Item)
      end
    when 2
      if COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2]
        return false
      else
        return item.is_a?(RPG::Weapon)
      end
    when 3
      if COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2]
        return false
      else
        return item.is_a?(RPG::Armor)
      end
    when 4
      if not $imported["MAInstanceItemsBase"]
        return item.coz_modalg_category_index == @sort_index
      else
        if COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2]
          return false
        else
          return item.instance_based?
        end
      end
    when 5..999
      return item.coz_modalg_category_index == @sort_index
    end
  end
end
 
#==============================================================================
# ** Window_ItemCategory
#==============================================================================

class Window_ItemCategory < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x, y, width)
    super(x, y, width, WLH + 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh(sort_index = 0)
    @sort_index = sort_index
    @item_categories = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES
    @item_categories_width = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORY_WIDTH
    @category_string = COZZIEKUNS::SSI::CATEGORY_TEXT
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, @item_categories_width - 40, WLH, @category_string, 0)
    self.contents.font.color = normal_color
    for key in @item_categories.keys.sort
      if @sort_index == key
        self.contents.draw_text(4, 0, @item_categories_width - 40, WLH, @item_categories[key][1], 2)
        break
      end
    end
  end
end

#==============================================================================
# ** Window_ItemSort
#==============================================================================

class Window_ItemSort < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x, y, width)
    super(x, y, width, WLH + 32)
    @ox = 0
    if COZZIEKUNS::SSI::MAX_NUMBER < COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES.size
      self.contents = Bitmap.new(self.width - 32 + ((COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES.size - COZZIEKUNS::SSI::MAX_NUMBER) * 54), self.height - 32)
    end
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh(sort_index = 0)
    @sort_index = sort_index
    @item_categories = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES
    @item_categories_width = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORY_WIDTH
    self.contents.clear
    for i in 0...@item_categories.size
      key = @item_categories.keys.sort[i]
      @icon_x = 0 + (i * ((544 - @item_categories_width) / @item_categories.size))
      if @item_categories.size < COZZIEKUNS::SSI::MAX_NUMBER
        draw_item(key, i)
      else
        draw_items(key, i)
      end
      if @sort_index == key
        if @item_categories.size < COZZIEKUNS::SSI::MAX_NUMBER
          draw_icon(@item_categories[key][0], @icon_x, 0, true)
        else
          draw_icon(@item_categories[key][0], i * 54, 0, true)
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #--------------------------------------------------------------------------
  def draw_item(index, id)
    icons_x = (544 - @item_categories_width) / @item_categories.size
    draw_icon(@item_categories[index][0], id * icons_x, 0, false)
  end
  #--------------------------------------------------------------------------
  # * Draw Items
  #--------------------------------------------------------------------------
  def draw_items(index, id)
    draw_icon(@item_categories[index][0], id * 54, 0, false)
  end
end

#==============================================================================
# ** Scene_Item
#==============================================================================

class Scene_Item < Scene_Base
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    @viewport = Viewport.new(0, 0, 544, 416)
    @help_window = Window_Help.new
    @help_window.viewport = @viewport
    @item_window = Window_Item.new(0, 112, 544, 304)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.active = false
    @category_width = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORY_WIDTH
    @category_window = Window_ItemCategory.new(544 - @category_width, 56, @category_width)
    @sort_window = Window_ItemSort.new(0, 56, 544 - @category_width)
    @target_window = Window_MenuStatus.new(0, 0)
    @sort_index = 0
    @item_categories = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES
    hide_target_window
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  alias coz_ssi_terminate terminate
  def terminate
    super
    coz_ssi_terminate
    @sort_window.dispose
    @category_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Update Frame
  #--------------------------------------------------------------------------
  alias coz_ssi_update update
  def update
    super
    coz_ssi_update
    @sort_window.update
    @category_window.update
  end
  #--------------------------------------------------------------------------
  # * Update Item Selection
  #--------------------------------------------------------------------------
  def update_item_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      @item = @item_window.item
      if @item != nil
        $game_party.last_item_id = @item.id
      end
      if $game_party.item_can_use?(@item)
        Sound.play_decision
        determine_item
      else
        Sound.play_buzzer
      end
    elsif Input.trigger?(Input::Y)
      @sort_index += 1
      @sort_index %= @item_categories.size
      if @sort_index != 0
        if @item_categories.size > COZZIEKUNS::SSI::MAX_NUMBER and @sort_index > COZZIEKUNS::SSI::MAX_NUMBER - 1
          @sort_window.ox += 54
        end
      else
        @sort_window.ox = 0
      end
      @category_window.refresh(@item_categories.keys.sort[@sort_index])
      @sort_window.refresh(@item_categories.keys.sort[@sort_index])
      @item_window.refresh(@item_categories.keys.sort[@sort_index])
      @item_window.index = 0
      Sound.play_cursor
    elsif Input.trigger?(Input::X)
      @sort_index -= 1
      @sort_index %= @item_categories.size
      if @sort_index + 1 == @item_categories.size
        @sort_window.ox += 54 * (@item_categories.size - COZZIEKUNS::SSI::MAX_NUMBER)
      else
        if @item_categories.size > COZZIEKUNS::SSI::MAX_NUMBER and @sort_index > COZZIEKUNS::SSI::MAX_NUMBER - 2
          @sort_window.ox -= 54
        end
      end
      @category_window.refresh(@item_categories.keys.sort[@sort_index])
      @sort_window.refresh(@item_categories.keys.sort[@sort_index])
      @item_window.refresh(@item_categories.keys.sort[@sort_index])
      @item_window.index = 0
      Sound.play_cursor
    end
  end
end

Credit


  • cozziekuns

Thanks

  • Modern Algebra, for helping me clean up my code, and giving me some inspiration.
  • Kyriaki, for giving me some inspiration on a new feature.
  • kawagiri, for giving me some inspiration on a new feature.
  • Fizzly, for pointing out a bug.
  • Tales of Phantasia, for the inspiration.

Support


Just post down here.

Known Compatibility Issues

Probably won't work with any other inventory scripts (e.g, MA's Grid Inventory or MA's Limited Inventory). If anyone wants one, I could probably write a compatibility fix or something.
« Last Edit: August 08, 2011, 01:05:51 AM by cozziekuns »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2010 Most Mature Member2010 Best Use Of Avatar And Signature Space
Well, it looks pretty nice. I suggest you write an addon that allows the user to define categories as well. Maybe have a little database like:

Code: [Select]
hash = {
  1 => [100, "Healing Items"],
  2 => [45, "Poisons"],
  n => [icon_index, "category name"]
}

And then they could add items to those categories by some code in the notebox, like:
Code: [Select]
\category[n]

And they could put each item into as many categories as they want.

Anyway, that sort of feature probably isn't necessary and may make for some clutter, but it's an easy way to add some customizability to the script, and it could be useful if someone wanted to add a Key Items category, for instance, or an Ingredients category if they have a tailoring system.

Granted, if you did that, you might also want to add an option to reduce the width of the "Category: name" box, so they could make the other box smaller or larger as they need to.

Anyway, all that is superfluous; the script is nice as it is :)
« Last Edit: June 01, 2010, 09:25:38 PM by modern algebra »

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
That's a pretty good idea. I might implement it in later.

Thanks for the feedback!

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2010 Most Mature Member2010 Best Use Of Avatar And Signature Space
Looking at the code, I don't think you made good use of the infrastructure in Window_Item. Note that Window_Item has this method:

Code: [Select]
  #--------------------------------------------------------------------------
  # * Whether or not to include in item list
  #     item : item
  #--------------------------------------------------------------------------
  def include?(item)
    return false if item == nil
    if $game_temp.in_battle
      return false unless item.is_a?(RPG::Item)
    end
    return true
  end

It would make a lit more sense to edit that rather than overwrite the refresh method. Think this instead:

Code: [Select]
  alias new_include_item include_item?
  def include_item? (item)
    val = new_include_item (item)
    return false if !val
    return case @sort_index
    when 0 then true
    when 1 then item.is_a? (RPG::Item)
    when 2 then item.is_a? (RPG::Weapon)
    when 3 then item.is_a? (RPG::Armor)
    end
  end

And you would then only have to find some way to pass @sort_index to Window_Item, which you could do either by aliasing refresh or adding it as an accessor to the class and changing it right before you call the refresh method.

It would also get rid of the need to make those methods in Game_Party that return weapons, armours, etc...


It is still a very nice script as it is, so congratulations.

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
Yeah, my method isn't the best method out there. Looks like I still have lots to learn.

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
'Kay, I updated it to fit with the code you wrote for me. Thanks a lot, Modern!

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2010 Most Mature Member2010 Best Use Of Avatar And Signature Space
It's looking good. I have another little tip though :P Not really, this one makes no difference, but you might find it useful when you're scripting:

Code: [Select]
if x == y
  return true
else
  return false
end

is the same thing as:

Code: [Select]
return (x == y)

Not a big deal of course, but it can often be a clean way to do a check like that.

**
Rep:
Level 79
I really love this script, it's super adorable and feeds my addiction for meticulous organization!

But I was wondering if there were any future plans to separate the 'prime categories' or if it can even be done easily? You know, so that Key Items for example won't show up in the Items category or Accessories in the Armor category. Sorry, I don't really know anything about scripting, hehe. ^^; 
.: Current Project :.

*
Rep:
Level 98
2010 Best Veteran2014 Best Use of Avatar and Signature Space2014 King of RMRK2014 Favorite Staff Member2014 Best Counsel2014 Most Mature Member2014 Best Writer2014 Best IRC Chatterbox2013 Favorite Staff MemberSecret Santa 2013 ParticipantFor the great victory in the Breakfast War.Secret Santa 2012 Participant2011 Best Counsel2011 Best Writer2010 Best IRC Chatterbox2010 Funniest Member
Excellent script. Be proud.
you awoke in a burning paperhouse
from the infinite fields of dreamless sleep

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
But I was wondering if there were any future plans to separate the 'prime categories' or if it can even be done easily? You know, so that Key Items for example won't show up in the Items category or Accessories in the Armor category. Sorry, I don't really know anything about scripting, hehe. ^^; 

That's a pretty good idea. Do you want it to also belong in the All category?

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
* Legit Double Post *

Ok, I updated it to Version 1.2 to fit your needs Kyriaki. I also made a boolean switch for whether or not you want to include Key Items in the All category.

**
Rep:
Level 79
Thank you so much and I am sorry I could not reply sooner! This does exactly what I wanted and works perfectly!

Oh...maybe not. The "KYRIAKI_ALL_CATEOGRY_PRIME = true/false" switch, was that meant to show the new 'prime categories' in 'All' or just items/weapons/armor? When I set it to false everything does not show including items/weapons/armor, but when I set it to true only items/weapon/armor will show, not the newer 'prime categories'.
« Last Edit: June 20, 2010, 02:35:51 AM by Kyriaki »
.: Current Project :.

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
Ok, I updated it so it should work...

Tell me if you find any bugs.

**
Rep:
Level 79
Yay!! Thank you for all your time and patience!! It's absolutely wonderful~!
.: Current Project :.

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
Upgraded to Version 1.3, this includes scrolling categories. Thanks for kawagiri for the idea and Modern Algebra for some helping out.

***
Rep:
Level 89
Okay, this is cool! :) But found little bug... I defined text window width to 160, have 7 categories (0-6):
http://ifotos.pl/img/sample2_wqhnqa.JPG
While I'm on first category (all) and push the next button, everything is fine (all 7 categories are visible=no scrolling needed):
http://ifotos.pl/img/sample3_wqhepn.JPG
And the problem is with scrolling back. While pushing previous button (from "All" category"), the panel is scrolling, but there is really no need... I mean this:
http://ifotos.pl/img/sample1_wqhehp.JPG

Could you please fix this? I also checked the raw version of script, without any changes, and the problem still occurs. Press the previous (shift) button in "all" inventory. You'll see the empty category square on the right side (the "?" one on the pic above).

Regards,
Mike

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
Thanks for finding that. Should be fixed. Please retrieve the script from the raw script, and not the demo.

***
Rep:
Level 89
Thank you so much!  ^-^

Edit: Now it works fine for me (7 categories), but I'm afraid the 5 categories still have the same problem ^ ^' Check this out.
« Last Edit: September 06, 2010, 05:11:21 PM by Fizzly »
Regards,
Mike

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
Fixed again, neglected two lines of code :P

**
Rep:
Level 74
RMRK Junior - - Cute Pegasus Pony

The instructions aren't clear at all now.

I don't understand how to do this.

Could you give some examples of items?

---

Signature

If you are a believer of Jesus Christ, and are 100% proud of it, put this in your sig!!

- Nightgazer Starlight, Loyal Servant of The Royal Pony Sisters Princess Celestia and Princess Luna... Forever Equestria!

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
IIRC, there are some in the demo.

E.g Almanac, is specific only to item cateogory four, which is symbolised by the text in the notebox : /item_category[4]

*
Rep: +0/-0Level 74
RMRK Junior
Some small and nice fixes.

1. Aligns the text for the Description so that way instead of being on the left it as right after "Description:"

Replace this line
Code: [Select]
self.contents.draw_text(4, 0, @item_categories_width - 40, WLH, @item_categories[i][1], 2)

With this one
Code: [Select]
self.contents.draw_text(95, 0, @item_categories_width - 40, WLH, @item_categories[i][1], 0)


2. This edit just makes its so that instead of when you press Shift it goes to the right instead of the left.

Replace this line
Code: [Select]
@sort_index -= 1

With this one
Code: [Select]
@sort_index += 1

***
Rep:
Level 74
I'm baaack!
This is AWESOME!!! :D       :tpg: :-\ :o ??? ::) :P :o :D ;) :=: :zwink:

**
Rep: +0/-0Level 70
RMRK Junior
Hello, i hae a problem with ths script. I am getting a SyntaxError in Line 315. Could you help me.

*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Best IRC Quote2014 Zero to Hero2014 Most Missed Member2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
Yes, copy this script from here.
Code: [Select]
#===============================================================================

# Cozziekuns Simple Sort Inventory
# Last Date Updated: 09/06/10
#
# Like in Tales of Phantasia, this inventory allows you to sort your items in
# the categories: All, Items, Weapons and Armours.
#
#===============================================================================
# Updates
# -----------------------------------------------------------------------------
# o 06/01/10 - Created Script.
# o 06/01/10 - Updated with Modern Algebra's recommendations.
# o 06/01/10 - Once again updated with Modern Algebra's recommendations.
# o 08/27/10 - Updated with Scrolling support. Thanks kawagiri for the idea, and
#              Modern Algebra for some help.
# o 09/06/10 - Updated with some bugfixing. Thanks Fizzly for finding that out.
#===============================================================================
# What's to come?
# -----------------------------------------------------------------------------
# o Nothing! Suggest something.
#===============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ? Materials but above ? Main. Remember to save.
#
# Change the modules to your liking. The "hard" parts have instructions of their
# own.
#===============================================================================

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

module COZZIEKUNS
  module SSI
    CATEGORY_TEXT = "Category:"
   
#===============================================================================
# Extra Item Categories (Inspired by Modern Algebra)
# ------------------------------------------------------------------------------
# How should I go about explaining something like this? Well, basically, each
# item in the hash represents a certain category. For example, the first hash we
# see here is:
#
# 0 => [144, "All", false]
#
# The syntax of this is:
#
# Category ID => [Icon Number, Text, Prime]
#
# Probably the most important part, the category ID is the number you want to
# put into the notebox that the item contains. For example, if you wanted to
# make the item "World Map" into a key item, simply add the text:
#
# \item_category[4]
#
# into the notebox. Note that numbers 0, 1, 2, and 3 are special. They're prime
# categories. Sound special right? Not really, this just means you have to have
# them in the inventory for this script to work. I could've gotten rid of them,
# but that would've just given more work on your part (and mine), so bear with
# them, please. Icon Numbers and Text are pretty self explanatory.
#
# Last, but not least, is the "Prime" function (inspired by Kyraiki). Setting
# this to "true" means that anything in the prime category will not show up in
# the item, weapon or armour categories. You can set if you want it to show up
# in all.
#===============================================================================
    MOD_ALG_ITEM_CATEGORIES = {
   
      0 => [144, "All", false],
      1 => [64, "Items", false],
      2 => [26, "Weapons", false],
      3 => [40, "Armours", false],
      4 => [80, "Key Items", true],
      5 => [90, "Filler", false],
      6 => [92, "Scrolling", false],
      7 => [32, "Scrolling", false],
    }
   
    MOD_ALG_ITEM_CATEGORY_WIDTH = 220 # How wide you want your text window.
    KYRIAKI_ALL_CATEOGRY_PRIME = false # If you want prime key items to show up in the all window.
    MAX_NUMBER = (544 - MOD_ALG_ITEM_CATEGORY_WIDTH) / 54 # The maximum number of icons that will fit.
  end
end

#==============================================================================
# ** RPG::BaseItem
#------------------------------------------------------------------------------
#  The superclass of all states.
#==============================================================================

class RPG::BaseItem
  #--------------------------------------------------------------------------
  # * Cozziekuns Category Index
  #--------------------------------------------------------------------------
  def coz_modalg_category_index
    @coz_modalg_category_index = 0
    if self.note[/\\item_category\[(\d+)]/i] != nil
      @coz_modalg_category_index = $1.to_i
    end
  return @coz_modalg_category_index
  end
end

#==============================================================================
# ** Window_Item
#------------------------------------------------------------------------------
#  This window displays a list of inventory items for the item screen, etc.
#==============================================================================

class Window_Item < Window_Selectable
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  alias coz_modalg_ssi_refresh refresh
  def refresh(sort_index = 0)
   @sort_index = sort_index
   coz_modalg_ssi_refresh
 end
  #--------------------------------------------------------------------------
  # * Whether or not to include in item list
  #     item : item
  #--------------------------------------------------------------------------
  alias coz_modalg_ssi_include? include?
  def include?(item)
    val = coz_modalg_ssi_include?(item)
    return false if !val
    return case @sort_index
      when 0
        unless COZZIEKUNS::SSI::KYRIAKI_ALL_CATEOGRY_PRIME
          if COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2]
            return false
          else
            return true
          end
        else
          return true
        end
      when 1
        if COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2]
          return false
        else
          return item.is_a?(RPG::Item)
        end
      when 2
        if COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2]
          return false
        else
          return item.is_a?(RPG::Weapon)
        end
      when 3
        if COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2]
          return false
        else
          return item.is_a?(RPG::Armor)
        end
      when 4..999
        return item.coz_modalg_category_index == @sort_index
      end
    end
  end
 
#==============================================================================
# ** Window_ItemCategory
#------------------------------------------------------------------------------
#  This window displays what type of item is being displayed.
#==============================================================================

class Window_ItemCategory < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     x : window X coordinate
  #     y : window Y coordinate
  #--------------------------------------------------------------------------
  def initialize(x, y, width)
    super(x, y, width, WLH + 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh(sort_index = 0)
    @sort_index = sort_index
    @item_categories = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES
    @item_categories_width = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORY_WIDTH
    @category_string = COZZIEKUNS::SSI::CATEGORY_TEXT
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, @item_categories_width - 40, WLH, @category_string, 0)
    self.contents.font.color = normal_color
    for i in 0...@item_categories.size
      if @sort_index == i
        self.contents.draw_text(4, 0, @item_categories_width - 40, WLH, @item_categories[i][1], 2)
      end
    end
  end
end

#==============================================================================
# ** Window_ItemSort
#------------------------------------------------------------------------------
#  This window displays what type of item is being displayed.
#==============================================================================

class Window_ItemSort < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     x : window X coordinate
  #     y : window Y coordinate
  #--------------------------------------------------------------------------
  def initialize(x, y, width)
    super(x, y, width, WLH + 32)
    @ox = 0
    if COZZIEKUNS::SSI::MAX_NUMBER < COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES.size
      self.contents = Bitmap.new(self.width - 32 + ((COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES.size - COZZIEKUNS::SSI::MAX_NUMBER) * 54), self.height - 32)
    end
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh(sort_index = 0)
    @sort_index = sort_index
    @item_categories = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES
    @item_categories_width = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORY_WIDTH
    self.contents.clear
    for i in 0...@item_categories.size
      @icon_x = 0 + (i * ((544 - @item_categories_width) / @item_categories.size))
      if @item_categories.size < COZZIEKUNS::SSI::MAX_NUMBER
        draw_item(i)
      else
        draw_items(i)
      end
      if @sort_index == i
        if @item_categories.size < COZZIEKUNS::SSI::MAX_NUMBER
          draw_icon(@item_categories[i][0], @icon_x, 0, true)
        else
          draw_icon(@item_categories[i][0], i * 54, 0, true)
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    icons_x = (544 - @item_categories_width) / @item_categories.size
    draw_icon(@item_categories[index][0], index * icons_x, 0, false)
  end
  #--------------------------------------------------------------------------
  # * Draw Items
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_items(index)
    draw_icon(@item_categories[index][0], index * 54, 0, false)
  end
end

#==============================================================================
# ** Scene_Item
#------------------------------------------------------------------------------
#  This class performs the item screen processing.
#==============================================================================

class Scene_Item < Scene_Base
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    @viewport = Viewport.new(0, 0, 544, 416)
    @help_window = Window_Help.new
    @help_window.viewport = @viewport
    @item_window = Window_Item.new(0, 112, 544, 304)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.active = false
    @category_width = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORY_WIDTH
    @category_window = Window_ItemCategory.new(544 - @category_width, 56, @category_width)
    @sort_window = Window_ItemSort.new(0, 56, 544 - @category_width)
    @target_window = Window_MenuStatus.new(0, 0)
    @sort_index = 0
    @item_categories = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES
    hide_target_window
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  alias coz_ssi_terminate terminate
  def terminate
    super
    coz_ssi_terminate
    @sort_window.dispose
    @category_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Update Frame
  #--------------------------------------------------------------------------
  alias coz_ssi_update update
  def update
    super
    coz_ssi_update
    @sort_window.update
    @category_window.update
  end
  #--------------------------------------------------------------------------
  # * Update Item Selection
  #--------------------------------------------------------------------------
  def update_item_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      @item = @item_window.item
      if @item != nil
        $game_party.last_item_id = @item.id
      end
      if $game_party.item_can_use?(@item)
        Sound.play_decision
        determine_item
      else
        Sound.play_buzzer
      end
    elsif Input.trigger?(Input::Y)
      @sort_index += 1
      @sort_index %= @item_categories.size
      if @sort_index != 0
        if @item_categories.size > COZZIEKUNS::SSI::MAX_NUMBER and @sort_index > COZZIEKUNS::SSI::MAX_NUMBER - 1
          @sort_window.ox += 54
        end
      else
        @sort_window.ox = 0
      end
      @category_window.refresh(@sort_index)
      @sort_window.refresh(@sort_index)
      @item_window.refresh(@sort_index)
      @item_window.index = 0
      Sound.play_cursor
    elsif Input.trigger?(Input::A)
      @sort_index -= 1
      @sort_index %= @item_categories.size
      if @sort_index + 1 == @item_categories.size
        @sort_window.ox += 54 * (@item_categories.size - COZZIEKUNS::SSI::MAX_NUMBER)
      else
        if @item_categories.size > COZZIEKUNS::SSI::MAX_NUMBER and @sort_index > COZZIEKUNS::SSI::MAX_NUMBER - 2
          @sort_window.ox -= 54
        end
      end
      @category_window.refresh(@sort_index)
      @sort_window.refresh(@sort_index)
      @item_window.refresh(@sort_index)
      @item_window.index = 0
      Sound.play_cursor
    end
  end
end
If it still doesn't work, it's probably an error on your end.
it's like a metaphor or something i don't know