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.

Need a CMS

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:
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
Quest Log edited by Brewmeister (called from selecting the Quest option)
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
  #--------------------------------------------------------------------------
  # â—
 

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