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.
Compact Menu System

0 Members and 1 Guest are viewing this topic.

**
Rep:
Level 87
The price of freedom is steep.
Compact Menu System
Version: 1.0
Author: Rubymattt
Description

This script is a very compact CMS, similar to the one I used in castorvian legends - but for VX!  The script was basically to get me into RGSS2 more than anything so I can start makin' some VX scripts.

Screenshot



Instructions / Notes
You have to have at least one person in the party at any time, or the scriipt will fail.  To be honest, I wouldn't see the point in a menu if there was nobody in the party, so make sure menu is DISABLED at all times if you ever, for some reason, end up in this situation.

That's all there is.  Place above main, below Materials.  No need for a demo, it really is that simple to install.

Script


Code: [Select]
#==============================================================================
#  Compact Custom Menu System
#         RMVX Version
#            v1.0
#         by  Rubymatt
#==============================================================================


#==============================================================================
# ** NEW Window_Gold
#==============================================================================

class Window_Gold < Window_Base
  def initialize(x, y)
    super(x, y, 224, WLH + 32)
    refresh
  end
  def refresh
    self.contents.clear
    draw_currency_value($game_party.gold, 4, 0, 184)
  end
end

#==============================================================================
# ** NEW Window_MenuStatus
#==============================================================================

class Window_NewMenuStatus < Window_Selectable
  def initialize(x, y)
    super(0, 0, 64, $game_party.members.size * 36 + 32)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
    self.active = false
    self.index = -1
  end
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    for actor in $game_party.members
      x = 66
      y = actor.index * 36
      draw_actor_graphic(actor, x - 51, y + 32)
    end
  end
  def update_cursor
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(-2, @index * 36 - 2, 36, 36)
    end
  end
end

#==============================================================================
# ** NEW Scene_Menu
#==============================================================================

class Scene_Menu < Scene_Base
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(160, 248)
    @status_window = Window_NewMenuStatus.new(160, 0)
    @status_window.x = 320
    if $game_party.members.size == 4
      @status_window.y = 72
    elsif $game_party.members.size == 3
      @status_window.y = 88
    elsif $game_party.members.size == 2
      @status_window.y = 104
    elsif $game_party.members.size == 1
      @status_window.y = 120
    else
      @status_window.y = 72
    end
  end
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  def update
    super
    update_menu_background
    @command_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.x = 160
    @command_window.y = 72
    @command_window.height = 176
    @command_window.index = @menu_index
    if $game_party.members.size == 0       
      @command_window.draw_item(0, false)   
      @command_window.draw_item(1, false)   
      @command_window.draw_item(2, false)     
      @command_window.draw_item(3, false)     
    end
    if $game_system.save_disabled             
      @command_window.draw_item(4, false)   
    end
  end
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0     
        $scene = Scene_Item.new
      when 1,2,3 
        start_actor_selection
      when 4     
        $scene = Scene_File.new(true, false, false)
      when 5   
        $scene = Scene_End.new
      end
    end
  end
  def start_actor_selection
    @command_window.active = false
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  def end_actor_selection
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
  end
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when 1
        $scene = Scene_Skill.new(@status_window.index)
      when 2
        $scene = Scene_Equip.new(@status_window.index)
      when 3 
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end

Author's Notes / Credit

Not much else to say really.  Give credit, and enjoy.
« Last Edit: June 08, 2008, 01:03:32 PM by Rubymatt »

*
Rep:
Level 87
Nice work, simple and clean. ;D


********
Shadow Knight
Rep:
Level 91
Ruin that brick wall!
Project of the Month winner for October 2008
Classic and simple. Clean-looking too.
Good job, rubymatt. ;8
Be kind, everyone you meet is fighting a hard battle.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 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 RPG Maker User (Scripting)2011 Best Use of Avatar and Signature Space2010 Most Mature Member2010 Favourite Staff Member
Yeah, it is a tidy little menu. Good job.

*
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Rep:
Level 96
&&&&&&&&&&&&&&&&&&&&&&&&&&&
GIAW 14: 2nd Place (Hard Mode)2013 Biggest Drama Whore2013 Zero to HeroParticipant - GIAW 11Secret Santa 2013 ParticipantFor taking arms in the name of your breakfast.
=3
It's tiny and cute and it fits in with the chibi little sprites.
&&&&&&&&&&&&&&&&

*
Rep: +0/-0Level 85
This is pretty Awesome. Is there a way I could put the menu in the upper-left corner and not have the actual game in the back all faded? 

**
Rep:
Level 85
this thing rules. good work. i shall be using.
yes!

**
Rep:
Level 87
The price of freedom is steep.
@Jeffrey: To get the position you want, just mess around with the x and y values in all the windows.  I can't really give you exact numbers, since I don't know what position in the top left you want it (Pressed up against the side, or with a gap...)

Thanks for teh comments.  Makes it all worthwile =D

**
Rep: +0/-0Level 84
Good work! I'll use it!  :D

***
Chodemeister
Rep:
Level 84
the screenshot didn't load...?
Tahl died when I got my WoW account activated lol
And I lost my GoE 1 & 2 unecrypted data when my backup harddrive died after I reformatted...go figure
-GoE http://rmrk.net/index.php/topic,30050.0.html
-GoE2 http://rmrk.net/index.php/topic,30045.0.html

**
Rep:
Level 84
I'm am God of Light
Love it, thanks man.

Click here to feed me a Rare Candy!
Get your own at Pokeplushies!

Raiden.
I am the God Of Light.

Proud owner of,
http://www.majorrpg.com
Check my website out!
Thank you!

Current Game Project:
Name: Silent Hill - Time Lapse
Percent done: 2%
Genre: Horror

**
Rep: +0/-0Level 70
RMRK Junior
can someone upload a screen shot of this, since the pic. wont load... plz  :)

*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Most Missed Member2014 Zero to Hero2014 Best IRC Quote2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
Nobody else probably would, because it's over two years old, but lucky for you I'm in a non-strangly mood.

Pretty much.
Don't really see why you needed a screenie if it's a plug-and-play script that is in code tags...
it's like a metaphor or something i don't know