
Ce script remplace le menu par défaut de RPG Maker VX par un menu allégé, plus simple visuellement, centré sur l’essentiel.
Il ne refait pas tout le système de menu. Il modifie surtout la scène de menu principale pour proposer une interface plus minimaliste, avec :
- une fenêtre de commandes recentrée ;
- une sélection d’acteur simplifiée ;
- moins d’informations affichées à l’écran.
À quoi sert ce script ?
Le but du script est clairement de faire un menu léger.
Par défaut, le menu VX affiche pas mal d’infos en même temps : statut des personnages, ressources, fenêtres diverses.
Ici, on coupe dans le gras. Le script garde seulement :
- les commandes principales ;
- une liste simple des membres du groupe quand il faut choisir un acteur.
C’est utile si vous voulez :
- un menu plus propre ;
- une présentation plus sobre ;
- un projet qui n’a pas besoin d’un gros menu chargé ;
- une base à personnaliser.
#==============================================================================
# ¦ [RMVX] Lite Menu Version 1.01
#------------------------------------------------------------------------------
# by Woratana [[email protected]]
# released on 03/02/2008
#
# Features Version 1.01
# - Fixed Bug in Gold_Text
# Features Version 1.0
# - Allow user to config menu
# - Add Gold/Location Window (user can turn on/off)
#==============================================================================
module Wor_Litemenu
#================
# SETUP Script Here!
#================
MENU_WINDOW_Y = 50
CHARA_WINDOW_Y = 160
CHARA_WINDOW_WIDTH = 175
SHOW_LV = true
SHOW_LOCATION_WINDOW = true
VOCAB_LOCATION = "Location:"
VOCAB_GOLD = "Gold:"
LOCATION_WINDOW_Y = 295
LOCATION_TEXT_X = 96
GOLD_TEXT_X = 84
end
class Scene_Menu < Scene_Base
def initialize(menu_index = 0)
@menu_index = menu_index
end
def start
super
create_menu_background
create_command_window
lite_create_location_window if Wor_Litemenu::SHOW_LOCATION_WINDOW == true
lite_create_actor_window
end
# START LITE METHOD
def lite_create_actor_window
member = []
@item_max = $game_party.members.size
for actor in $game_party.members
member.push(actor.name + " Lv." + actor.level.to_s) if Wor_Litemenu::SHOW_LV == true
member.push (actor.name) if Wor_Litemenu::SHOW_LV == false
end
@status_window = Window_Command.new(Wor_Litemenu::CHARA_WINDOW_WIDTH, member)
@status_window.index = @menu_index
@status_window.x = (554 /2) - (@status_window.width/2)
@status_window.y = Wor_Litemenu::CHARA_WINDOW_Y
@status_window.visible = false
end
def lite_get_map_name
mapdata = load_data("Data/MapInfos.rvdata")
map_id = $game_map.map_id
@map_name = mapdata[map_id].name
end
def lite_draw_currency_value(value, x, y, width)
# Dessine tout aligné à droite dans une zone fixe
text = value.to_s + " " + Vocab::gold
@location_window.contents.font.color = @location_window.normal_color
@location_window.contents.draw_text(x, y, width, 24, text, 2) # 2 = aligné à droite
end
def lite_create_location_window
width = 300
height = 90
x = (554 /2) - (width/2)
y = Wor_Litemenu::LOCATION_WINDOW_Y
@location_window = Window_Base.new(x, y, width, height)
@location_window.create_contents
lite_get_map_name
@location_window.contents.font.color = @location_window.system_color
@location_window.contents.draw_text(0, 0, 300, 24, Wor_Litemenu::VOCAB_GOLD)
@location_window.contents.font.color = @location_window.normal_color
lite_draw_currency_value($game_party.gold, 4, 0, Wor_Litemenu::GOLD_TEXT_X)
@location_window.contents.font.color = @location_window.system_color
@location_window.contents.draw_text(0, 32, 300, 24, Wor_Litemenu::VOCAB_LOCATION)
@location_window.contents.font.color = @location_window.normal_color
@location_window.contents.draw_text(Wor_Litemenu::LOCATION_TEXT_X, 32, 300, 24, @map_name)
end
# END LITE METHOD
def terminate
super
dispose_menu_background
@command_window.dispose
@location_window.dispose if @location_window
@status_window.dispose
end
def update
super
update_menu_background
@command_window.update
if @command_window.active
update_command_selection
elsif @status_window.active
@status_window.update
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(200, [s1, s2, s3, s4, s5, s6],2,3)
@command_window.index = @menu_index
@command_window.x = (554 /2) - (@command_window.width/2) #167
@command_window.y = Wor_Litemenu::MENU_WINDOW_Y
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 start_actor_selection
@command_window.active = false
@status_window.visible = true
@status_window.active = true
@status_window.index = 0
end
def end_actor_selection
@command_window.active = true
@status_window.visible = false
@status_window.active = false
@status_window.index = -1
end
end