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!
I like doing things. I'll try to do stuff.
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?
@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!
I think it's coming along.
(https://rmrk.net/proxy.php?request=http%3A%2F%2Fi.imgur.com%2Fz00sBgW.png&hash=ff8eb3dee44ca204dc240b709dcd439131d8833e)
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?
I can do playtime.
Edit: Here you go.
(https://rmrk.net/proxy.php?request=http%3A%2F%2Fi.imgur.com%2F4ym70ro.png&hash=d173437a5806cc83511f61b0f7ed5762c419e879)
#--------------------------------------------------------------------------
# * 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
Whoa, that looks great, Stark! ;o; +rep
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.
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!!
Ah. Never mind me then.
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?
Quote from: ve3167 on March 06, 2014, 11:07:32 PM
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.
Quote from: Pac on March 02, 2014, 09:54:18 PM
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. ;_;
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.
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!