I've been using the Ring Menu but it doesn't have the look that I really want. I guess this is a sort of simple request, here's what I want.
Basically, a big row of pictures at the bottom of the screen.
Kind of like this: http://www.gamegamego.com/runescape/ima ... usMUD2.PNG[/img]
See it at the bottom?
However, I want the pictures to be changeable so I can make my own pictures to put in (like an image of a bar that says "Items")
These are the following items I want in the menu: Items, Magic (skills), Equipment, Quests, Stats, Save, Exit. In that order.
These are the scripts that it needs to be compatible with:
NeoABS by Mr. Mo (not sure if it would interfere with the menu or not, but that system uses hotkeys for items and skills)
Icon Inventory by Mac and edited by Brewmeister:
Quest Log edited by Brewmeister (called from selecting the Quest option)
Basically, a big row of pictures at the bottom of the screen.
Kind of like this: http://www.gamegamego.com/runescape/ima ... usMUD2.PNG[/img]
See it at the bottom?
However, I want the pictures to be changeable so I can make my own pictures to put in (like an image of a bar that says "Items")
These are the following items I want in the menu: Items, Magic (skills), Equipment, Quests, Stats, Save, Exit. In that order.
These are the scripts that it needs to be compatible with:
NeoABS by Mr. Mo (not sure if it would interfere with the menu or not, but that system uses hotkeys for items and skills)
Icon Inventory by Mac and edited by Brewmeister:
Code:
#==============================================================================
# Icon Inventory System - Scripted By Mac
#------------------------------------------------------------------------------
# This window displays the Icons and the amount of the item you have.
# Modified per MrRobert - Brew 11MAR08
#==============================================================================
class Window_Item < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(384, 63, 256, 192) #tb
@column_max = 4 #tb
refresh
self.index = 0
# If in battle, move window to center of screen
# and make it semi-transparent
if $game_temp.in_battle
self.y = 64
self.height = 256
self.back_opacity = 160
end
end
#--------------------------------------------------------------------------
# * Get Item
#--------------------------------------------------------------------------
def item
return @data[self.index]
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
# Add item
for i in 1...$data_items.size
if $game_party.item_number(i) > 0
@data.push($data_items[i])
end
end
# Also add weapons and items if outside of battle
unless $game_temp.in_battle
for i in 1...$data_weapons.size
if $game_party.weapon_number(i) > 0
@data.push($data_weapons[i])
end
end
for i in 1...$data_armors.size
if $game_party.armor_number(i) > 0
@data.push($data_armors[i])
end
end
end
# If item count is not 0, make a bit map and draw all items
@item_max = @data.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 32)
for i in 0...@item_max
draw_item(i)
end
end
end
#--------------------------------------------------------------------------
# * Draw Item
# index : item number
#--------------------------------------------------------------------------
def draw_item(index)
item = @data[index]
case item
when RPG::Item
number = $game_party.item_number(item.id)
when RPG::Weapon
number = $game_party.weapon_number(item.id)
when RPG::Armor
number = $game_party.armor_number(item.id)
end
if item.is_a?(RPG::Item) and
$game_party.item_can_use?(item.id)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
x = 4 + index % 4 * (32 + 32)
y = index / 4 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x, y + 9, 24, 32, number.to_s, 2)
end
#--------------------------------------------------------------------------
# * Help Text Update
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(self.item == nil ? "" : self.item.description)
end
end
class Scene_Item
alias orig_main main
def main
@map_bg = Spriteset_Map.new
orig_main
@map_bg.dispose
end
end
Code:
#==============================================================================
# ** Journal
#------------------------------------------------------------------------------
# This window displays a journal.
#==============================================================================
class Window_Journal < Window_Base
# ------------------------
attr_accessor :index
attr_accessor :quest_size
def initialize
# Offset - enter the offset to the first variable you are using
# This is one less than the variable number.
@offset = 0
# populate your journal with entries. Each entry must match its variable number!
@quest = []
@description = []
@quest[0] = "Quest Log"
@description[0] = "You have no active or completed quests"
@quest[1] = "Help Man"
@description[1] = "Help out the man."
@quest[2] = "Kill Chicken"
@description[2] = "Kill a chicken & return it to Helga."
@quest[3] = "Make cow eat"
@description[3] = "Find an emaciated cow & feed it."
@quest[4] = "Sniff the Glove"
@description[4] = "Bark like a dog."
@quest[5] = "Jump off a bridge after your friends"
@description[5] = "Just to show long text: Funny story reverting back to \
childhood cliche, and a camping trip with my friends. \
Did they jump off a bridge? Yes, they did. Did I follow \
them? Of course I did!"
super(0, 32, 460, 330)
@index = 0
@quest_size = @quest.size
# draw the bitmap. the text will appear on this bitmap
self.contents = Bitmap.new(width - 32, height - 32)
refresh
### to change the windowskin for the journal
# self.windowskin = RPG::Cache.windowskin("RMXP4life_Wood.png")
###
end
#--------------------------------------------------------------------------
# * Draw the contents of the item window
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in @index..@quest.size - 1
if $game_variables[i + @offset] > 0
self.contents.draw_text(4, 0, 300, 32, @quest[i])
if $game_variables[i + @offset] == 1
self.contents.font.color = Color.new(255,0,0,255)
self.contents.draw_text(304, 0, 120, 32, "Active", 2)
else
self.contents.font.color = Color.new(0,255,0,255)
self.contents.draw_text(304, 0, 120, 32, "Complete", 2)
end
self.contents.font.color = normal_color
# draw paragraph
self.contents.draw_wrap_text(4, 64, 428, 32, @description[i])
@index = i
break
end
end
if @index == 0
self.contents.draw_text(4, 0, 300, 32, @quest[0])
self.contents.draw_wrap_text(4, 64, 428, 32, @description[0])
end
end
end
#==============================================================================
# ** Bitmap Class Add-ons from MACL 2.1
# NOTE: If you have the MACL, don't delete this.
# Make sure this is below the MACL
#------------------------------------------------------------------------------
class Bitmap
#--------------------------------------------------------------------------
# * Dummy Bitmap
#--------------------------------------------------------------------------
@@dummy = Bitmap.new(32, 32)
attr_accessor :dummy
#--------------------------------------------------------------------------
# Name : Text Size
# Info : Gets text size based off dummy bitmap
# Author : SephirothSpawn
# Call Info : One Argument, a String
#--------------------------------------------------------------------------
def Bitmap.text_size(text)
return @@dummy.text_size(text)
end
#-------------------------------------------------------------------------
# Name : Draw Wrapped Text
# Info : Draws Text with Text Wrap
# Author : Trickster
# Call Info : Five Arguments
# Integer X and Y, Define Position
# Integer Width, defines the width of the text rectangle
# Integer Height, defines the height of the text
# String Text, Text to be drawn
# Modified : Brew. Add 'p' for line breaks
#-------------------------------------------------------------------------
def draw_wrap_text(x, y, width, height, text)
# Get Array of Text
strings = text.split
# Run Through Array of Strings
strings.each do |string|
# Get Word
word = string + ' '
# If p, move to next line
if string == "p"
x = 0
y += height
next
end
# Get Word Width
word_width = text_size(word).width
# If Can't Fit on Line move to next one
x, y = 0, y + height if x + word_width > width
# Draw Text Memory
self.draw_text(x, y, word_width, height, word)
# Add To X
x += word_width
end
end
end
Code:
#==============================================================================
# â– Scene_Journal
#------------------------------------------------------------------------------
# This class contains the windows for the quest menu
# To access from the menu, insert $scene = Scene_Journal.new in your menu
#
# Brewmeister - V10MAR08
# Props to Lambchop (original creator) & Trickster (draw_wrap_text method)
#==============================================================================
class Scene_Journal
#--------------------------------------------------------------------------
# â—