The RPG Maker Resource Kit

RMRK RPG Maker Creation => Requests => Script Request => Topic started by: ve3167 on February 28, 2014, 12:43:58 AM

Title: [RESOLVED] Help with simple menu edit!
Post by: ve3167 on February 28, 2014, 12:43:58 AM
Hi all,
 
I was wondering if there was a simple way to edit the main menu. I want to resize the windows so that they're compact and smaller, as shown in my attachment. Is there a simple way to edit the default scripts for this, or is there a script that will make the menu look like this? I've been messing around a bit but seem to be too stupid to accomplish this. I think it looks much neater and concise.

I've looked around quite a bit and there are a lot of nice menu systems and a lot of customizable ones. I have come close to getting what I want but not quite, I always have trouble resizing and making it a compact square without that gap. And still looking like the default menu.
 
Oh, in the picture, imagine the remaining white screen is the map. So the menu is a smaller, compact, square-ish menu in the middle of the screen that does not fill up the screen.

Edit: This is for VX Ace, not VX!

Any advice would be helpful!
Thanks!
Title: Re: Help with simple menu edit!
Post by: &&&&&&&&&&&&& on February 28, 2014, 12:59:03 AM
I like doing things. I'll try to do stuff.
Title: Re: Help with simple menu edit!
Post by: pacdiggity on February 28, 2014, 01:31:58 AM
You should probably specify whether you're using VX or VX Ace.
Also, to clarify, you just want the menu to take up less space on the screen?
Title: Re: Help with simple menu edit!
Post by: ve3167 on February 28, 2014, 02:00:22 AM
@Lord Stark: Oh thanks so much!  I'm using other scripts that add themselves to the main menu, but no menu scripts that would cause a problem. Thanks so much for the fast reply!

@Pac: Yes, I'm using VX Ace, you're right I should have specified! And I want it to be smaller, but I also want it to be compact, I hate that huge gap on the left side of that default menu. I just it want it  compact and completely square to look neater! I thought I could just edit window sizes and move them but I'm apparently missing how to do that!
Title: Re: Help with simple menu edit!
Post by: &&&&&&&&&&&&& on March 01, 2014, 03:49:26 AM
I think it's coming along.

(https://rmrk.net/proxy.php?request=http%3A%2F%2Fi.imgur.com%2Fz00sBgW.png&hash=fa44c13f23efb2b107684f684b208df1ac224d95)
Title: Re: Help with simple menu edit!
Post by: ve3167 on March 01, 2014, 07:49:57 PM
Hey that looks really good! Thanks so much! It is smaller and so much cuter, and hey as for the little gap, I am using a quest script and a class script that go in the main menu, so that menu will be longer. Perhaps just putting one variable above the gold window, like playtime, would close the whole gap! What do you think?
Title: Re: Help with simple menu edit!
Post by: &&&&&&&&&&&&& on March 01, 2014, 08:12:14 PM
I can do playtime.

Edit: Here you go.

(https://rmrk.net/proxy.php?request=http%3A%2F%2Fi.imgur.com%2F4ym70ro.png&hash=e67de3dde03ff0c2b4daa8e5c3ee135a312f6bf0)

Code: [Select]
#--------------------------------------------------------------------------
# * Edited by Stark
#--------------------------------------------------------------------------

class Window_Base < Window

  def initialize(x, y, width, height)
    super
    self.windowskin = Cache.system("Window")
    update_padding
    update_tone
    create_contents
    @opening = @closing = false
  end

  def draw_face(face_name, face_index, x, y, enabled = true)
    bitmap = Cache.face(face_name)
    rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, 96, 73)
    contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
    bitmap.dispose
  end

  def draw_actor_name(actor, x, y, width = 112)
    change_color(hp_color(actor))
    draw_text(x, y, width, line_height, actor.name)
  end

  def draw_actor_class(actor, x, y, width = 64)
    change_color(normal_color)
    draw_text(x, y, width, line_height, actor.class.name)
  end

  def draw_actor_level(actor, x, y, width = 16)
    change_color(system_color)
    draw_text(x, y, 32, line_height, Vocab::level_a)
    change_color(normal_color)
    draw_text(x + 20, y, 24, line_height, actor.level, 2)
  end

  def draw_actor_simple_status(actor, x, y)
    draw_actor_name(actor, x, y - 15)
    draw_actor_level(actor, x, y + 3)
    draw_actor_icons(actor, x - 100, y + 40)
    draw_actor_class(actor, x + 52, y + 3)
    draw_actor_hp(actor, x, y + 20)
    draw_actor_mp(actor, x, y + 40)
  end
end

class Window_MenuStatus < Window_Selectable

  attr_reader   :pending_index            # Pending position (for formation)

  def initialize(x, y)
    super(x, y, 256, window_height)
    @pending_index = -1
    refresh
  end

  def window_width
    Graphics.width
  end
 
  def window_height
    Graphics.height - 86
  end
end

class Scene_Menu < Scene_MenuBase

  def start
    super
    create_command_window
    create_gold_window
    create_status_window
    create_playtime_window
  end
 
  def create_command_window
    @command_window = Window_MenuCommand.new
    @command_window.set_handler(:item,      method(:command_item))
    @command_window.set_handler(:skill,     method(:command_personal))
    @command_window.set_handler(:equip,     method(:command_personal))
    @command_window.set_handler(:status,    method(:command_personal))
    @command_window.set_handler(:formation, method(:command_formation))
    @command_window.set_handler(:save,      method(:command_save))
    @command_window.set_handler(:game_end,  method(:command_game_end))
    @command_window.set_handler(:cancel,    method(:return_scene))
    @command_window.x = 64
    @command_window.y = 32
  end
 
  def create_gold_window
    @gold_window = Window_Gold.new
    @gold_window.x = 64
    @gold_window.y = 314
  end

  def create_playtime_window
    @playtime_window = Window_Playtime.new
    @playtime_window.x = 64
    @playtime_window.y = 267
  end
 
  def create_status_window
    @status_window = Window_MenuStatus.new(@command_window.width, 0)
    @status_window.x = 224
    @status_window.y = 32
  end

  def command_item
    SceneManager.call(Scene_Item)
  end

  def item_height
    (height - standard_padding * 1)
  end
 
  def draw_item(index)
    actor = $game_party.members[index]
    enabled = $game_party.battle_members.include?(actor)
    rect = 0
    draw_item_background(index)
    draw_actor_face(actor, rect.x - 0, rect.y - 0, enabled)
    draw_actor_simple_status(actor, rect.x + 0, rect.y + 0)
  end
end

class Window_Playtime < Window_Base

  def initialize
    super(0, 0, window_width, fitting_height(1))
    refresh
  end

  def window_width
    return 160
  end

  def refresh
    contents.clear
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    draw_playtime(0, contents.height - line_height, contents.width - 4, 2)
  end

  def draw_playtime(x, y, width, align)
    change_color(normal_color)
    draw_text(x, y, width, line_height, value, 2)
  end

  def value
    $game_system.playtime_s
  end

  def play_time
    Vocab::playtime_unit
  end

  def open
    refresh
    super
  end
end
Title: Re: Help with simple menu edit!
Post by: yuyu! on March 02, 2014, 12:19:58 AM
Whoa, that looks great, Stark! ;o; +rep
Title: Re: Help with simple menu edit!
Post by: pacdiggity on March 02, 2014, 01:31:14 AM
If I could offer any criticism, it's the faces, which haven't been scaled, just cropped. If you want to, see if you can figure out a way of scaling them ;]
Also, of course, there's still some gap left over. If you don't want that I advise either finding another variable to display or increasing the size of some other windows.

Looks great otherwise.
Title: Re: Help with simple menu edit!
Post by: ve3167 on March 02, 2014, 05:30:41 PM
Thank you so much, it's exactly what I was looking for! Here is a screen of it- with the extra two menu options there's no gap. it's perfect! Thank you so much!!
Title: Re: Help with simple menu edit!
Post by: pacdiggity on March 02, 2014, 09:54:18 PM
Ah. Never mind me then.
Title: Re: Help with simple menu edit!
Post by: ve3167 on March 06, 2014, 11:07:32 PM
Hey, hope it's not to late to say this; thank you so much for the script, it's just what I wanted, and I don't mind the faces in the menu, but the thing is that the faces in the text box are also cut off now. I cropped them but a smaller face just looks strange. Is there anyway to fix the cutting off in the text box?
Title: Re: Help with simple menu edit!
Post by: &&&&&&&&&&&&& on March 08, 2014, 04:32:20 AM
Hey, hope it's not to late to say this; ... Is there anyway to fix the cutting off in the text box?

It is not too late. I will look into it.

Ah. Never mind me then.

I will not. You said that I should try to fix the whole face thing, and now it seems it is a problem. ._.
I tried to find out how to resize the faces, but I could only find out how to crop them.
I really don't know what I'm doing. ;_;
Title: Re: Help with simple menu edit!
Post by: pacdiggity on March 08, 2014, 03:05:37 PM
I did make that original post as though I knew how to solve that issue myself, and I probably could if I were sitting in front of RPG Maker right now, but alas, this is the price we pay for me using a macbook.

From memory, there are width and height arguments for the face drawing method in Window_Base or whatever. I can't recall whether these crop or resize, though (so apologies if that's what you already tried). I know it's possible because I've done it before, I just can't remember how off the top of my head. I would give you that code I wrote, but I think it's from a script that never saw the light of day.
Title: Re: Help with simple menu edit!
Post by: ve3167 on March 08, 2014, 08:25:15 PM
Hey, don't worry about it! I actually figured it out. I love the menu Stark, I just didn't know it cropped the faces in the message box until later. But I figure out how to resize them, and then I made smaller faces just for the menu so they don't overlap! It looks awesome, it's just what I wanted. So this is solved!