Categorized Items Menu
Version: 1.3
Author: albertfish
Date: October 22, 2009
Version History
- Version 1.3: October 22, 2009
- Fixed a bug that did not display weapons in the weapon category - Version 1.2: October 4, 2009
- Fixed a bug that did not allow you to remove the all items category - Version 1.1: September 13, 2009
- The variable for recent items is no longer global
- Some code removed
- Changed it so when you are in items window and you hit escape it goes back to the category window.
- You can also select a category with enter now. - Version 1.0: September 13, 2009: Initial release.
- Initial release
Planned Future Versions
- No planned future versions at this point. However, if you have a suggestion on what to add it could be added to a future version.
Description
This is a complete redesign of the default items menu that aims to make it a lot easier to search through your items. This script sorts items into categories for better organization.
Features
- Includes 10 different categories to sort items
- Easy to set up items to be sorted
- Easy to customize appearance
- Easy to customize which categories are active
- Extremely customizeable which allows you to set it up the way you want it set up
Customizable Features
- Choose what categories you want
- Choose if you want the top window to be 1 or 2 windows
- Unselected categories translucent or opaque
- Categories cursor on or off
- All items category position
- All category titles and icons
- Category title alignment
- Help window icon size. It can be double sized, normal size or off.
Screenshots(https://rmrk.net/proxy.php?request=http%3A%2F%2Fimg6.imageshack.us%2Fimg6%2F8721%2Fafcimss1.png&hash=0c17ff722c2e65f792fe393cfec1892fd6a8ea09)
Easy to choose which categories you want!
(https://rmrk.net/proxy.php?request=http%3A%2F%2Fimg5.imageshack.us%2Fimg5%2F8000%2Fafcimss2.png&hash=1a92590b7117c6e4602840567942e223184b5ee6)
InstructionsItem Setup Instructions: This script sorts items automatically based on certain aspects of the
item. To set up items to be sorted into correct categories follow this
guide.
Consumable Items - Must have Consumable flag set to yes
- Must have Occasion flag set to anything other than
never.
Weapons - All items in Weapons tab in the database
Equipment - All items in the Weapons and Armors tab
Body Equipment - Must be under Armors tab
- Kind must be Body Armor
Head Equipment - Must be under Armors tab
- Kind must be Helmet
Arm Equipment - Must be under Armors tab
- Kind must be Shield
Accessory - Must be under Armors tab
- Kind must be Accessory
Raw Materials - Must be consumable
- Must have occasion of never
Story Items - Must be non consumable
All Items - All of the above
Install Instructions: Place this script above the main script and below the default scripts.
Script
Please see the attached script or the demo!
Credit
Thanks
- IAMFORTE for the idea
- modern algebra for helping me shorten the code and get rid of a global variable
- MarkDarkness for informing me about a bug in the script
- blademan for informing me about a bug in the script
Support
If you need to contact me you can send me a pm.
Known Compatibility IssuesIncompatible with some other items menu scripts. No real compatibility issues found yet.
Demo
Warning! The following demo is of an older version. Please download the newer script until a new demo is posted.
There is a demo available! Download it here! (http://www.megaupload.com/?d=J4J8UADM)
Author's Notes
If you discover any bugs, please pm me or post the bug here! Thanks.
Enjoy :).
RestrictionsYou may use this in your game commercial or non-commercial as long as proper credit is given.[/list]
That is really quite a nice interface. Great work, albertfish!
Some tips on making your scripts a little shorter and more compatible though;
I noticed that you added a $recent_items global variable:
#==============================================================================
# ** Scene_Load
#------------------------------------------------------------------------------
# This class performs load screen processing.
#==============================================================================
class Scene_Load < Scene_File
#--------------------------------------------------------------------------
# * Read Save Data
# file : file object for reading (opened)
#--------------------------------------------------------------------------
def read_save_data(file)
# Read character data for drawing save file
characters = Marshal.load(file)
# Read frame count for measuring play time
Graphics.frame_count = Marshal.load(file)
# Read each type of game object
$game_system = Marshal.load(file)
$game_switches = Marshal.load(file)
$game_variables = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_screen = Marshal.load(file)
$game_actors = Marshal.load(file)
$game_party = Marshal.load(file)
$game_troop = Marshal.load(file)
$game_map = Marshal.load(file)
$game_player = Marshal.load(file)
$recent_items = Marshal.load(file)
# If magic number is different from when saving
# (if editing was added with editor)
if $game_system.magic_number != $data_system.magic_number
# Load map
$game_map.setup($game_map.map_id)
$game_player.center($game_player.x, $game_player.y)
end
# Refresh party members
$game_party.refresh
end
end
#==============================================================================
# ** Scene_Save
#------------------------------------------------------------------------------
# This class performs save screen processing.
#==============================================================================
class Scene_Save < Scene_File
#--------------------------------------------------------------------------
# * Write Save Data
# file : write file object (opened)
#--------------------------------------------------------------------------
def write_save_data(file)
# Make character data for drawing save file
characters = []
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
characters.push([actor.character_name, actor.character_hue])
end
# Write character data for drawing save file
Marshal.dump(characters, file)
# Wrire frame count for measuring play time
Marshal.dump(Graphics.frame_count, file)
# Increase save count by 1
$game_system.save_count += 1
# Save magic number
# (A random value will be written each time saving with editor)
$game_system.magic_number = $data_system.magic_number
# Write each type of game object
Marshal.dump($game_system, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
Marshal.dump($recent_items, file)
end
end
with aliasing (http://rmrk.net/index.php/topic,25550.0.html) (which you've done a few times in the script, I notice), it could become a lot shorter and also work with any other scripts that modify those methods. As a short exercise, the above code could be condensed to:
#==============================================================================
# ** Scene_Load
#------------------------------------------------------------------------------
# This class performs load screen processing.
#==============================================================================
class Scene_Load < Scene_File
#--------------------------------------------------------------------------
# * Read Save Data
# file : file object for reading (opened)
#--------------------------------------------------------------------------
alias abfish_rd_save_rcntitms_9lj4 read_save_data
def read_save_data(file, *args)
abfish_rd_save_rcntitms_9lj4 (file, *args)
$recent_items = Marshal.load(file)
end
end
#==============================================================================
# ** Scene_Save
#------------------------------------------------------------------------------
# This class performs save screen processing.
#==============================================================================
class Scene_Save < Scene_File
#--------------------------------------------------------------------------
# * Write Save Data
# file : write file object (opened)
#--------------------------------------------------------------------------
alias albertfish_recent_items_wrtsave_0gb2 write_save_data
def write_save_data(file, *args)
albertfish_recent_items_wrtsave_0gb2 (file, *args)
Marshal.dump($recent_items, file)
end
end
But what would be even better would be to not use a separate global variable at all.
You could get rid of the Scene_Title, Scene_Save, and Scene_Load modifications altogether if you did something like this:
class Game_Party
attr_accessor :recent_items
alias albertfish_init_rcntitms_0hf2 initialize
def initialize (*args)
albertfish_init_rcntitms_0hf2 (*args)
@recent_items = []
end
end
You could then access the array through:
$game_party.recent_items
and it would completely bypass the need to create a new global variable to store that data.
Anyway, this script does look very nice. Again, great work!
I originally had the save and load menus aliased but had an error while doing so. I must have done something wrong lol.
Thanks for the suggestions. I'll see what I can do to finally remove that global variable!
i used this script,plz remind me to credit you in my game
Quote from: phillip1756 on September 13, 2009, 05:18:12 PM
i used this script,plz remind me to credit you in my game
This is a reminder.
Also, a newer version has been posted with a few changes. New demo and script available!
@albertfish - nice touch! customizable!! neat icon resizing
you don't have to remind me to give credit ^,^
~g)@m(e|F/A\(C|E
EDIT: @"MA" - nice catch! !
^ ^
when it comes to script, you know your $#!T d *_* b
*
DUDE! this script is awsome! I hav no prob citing you!
New version available that fixed a bug found by MarkDarkness. New version of the script is added to the initial post.
I'm not sure what's causing this, but Weapons do not shop up in the weapons tab:
All items tab (the weapon is there):
[spoiler](https://rmrk.net/proxy.php?request=http%3A%2F%2Fi36.tinypic.com%2F2i9l66p.jpg&hash=27789f3093795cc2013d87a8209e0ffa6df903cd)[/spoiler]
Weapons tab (the sword doesn't show up):
[spoiler](https://rmrk.net/proxy.php?request=http%3A%2F%2Fi38.tinypic.com%2F2uh7t6q.jpg&hash=1210f5041f84371a0ae573ff49f8253ceee819bb)[/spoiler]
Any idea what's happening? It's not a Script incompatibility, since I tried it on a brand new game project, and the error still happened.
I will use this.... thanks...
Quote from: blademan on October 18, 2009, 01:30:10 AM
I'm not sure what's causing this, but Weapons do not shop up in the weapons tab:
All items tab (the weapon is there):
[spoiler](https://rmrk.net/proxy.php?request=http%3A%2F%2Fi36.tinypic.com%2F2i9l66p.jpg&hash=27789f3093795cc2013d87a8209e0ffa6df903cd)[/spoiler]
Weapons tab (the sword doesn't show up):
[spoiler](https://rmrk.net/proxy.php?request=http%3A%2F%2Fi38.tinypic.com%2F2uh7t6q.jpg&hash=1210f5041f84371a0ae573ff49f8253ceee819bb)[/spoiler]
Any idea what's happening? It's not a Script incompatibility, since I tried it on a brand new game project, and the error still happened.
I'll take a look at it, sorry for the late reply I have been busy lately.
Edit: Okay version 1.3 is now out which fixes that problem. That you for bringing that problem to my attention blademan.
i like the script but does this interfear with editing the max limits of items carryed, because when ever i edit that amount it never takes effects, good script tho very helpfull
nvm i fixed that.... nice script
This is a really cool script.
I have a bit of a problem though. In my game, the player has a camp area that they can travel back to whenever they want, no matter where they are. They have a usable item that actually does the teleport.
Whenever I put your menu code in the game, once the item is obtained, it shows up in both recent items, and quest items, since it's non consumable. And the first time that I started it up to test out the menu, it worked fine. However, now, it gives me an error whenever I try to use the item. I took a screenshot of the error.
[spoiler](https://rmrk.net/proxy.php?request=http%3A%2F%2Fimg.photobucket.com%2Falbums%2Fv483%2Fmonkeyheadstudios%2FError1.jpg&hash=216fa3a5d2dcc99ba6f6fd9a5d9e86b203de36e9)[/spoiler]
This is the line of code it mentions, but since I don't know the code language, I don't know what it's talking about. lol
if $game_variables[c.variable_id] < c.variable_value
Anyone know what the problem might be?
Great script! I can't make a new game without it! But I do have a question: Is there a way to make the inventory half-transparent like 50%, 70%? (so I can see the map while I scroll through the inventory)
Hello my game doesn't display any text with the script : I have the icons but no text. I'm using a French version of RMXP. Is it the source of the problem? How can I do to fix it. Thank you very much for your answer.
How do u get Raw Materials I dnt understand what you mean by
- Must have occasion of never
Found small bug...
If description of more items is same, icon in help bar doesnt change when scrolling through them.
Sorry for my awful english