Fala autor: Fala pessoal tudo certo? Bem estou trazendo aqui hoje a segunda versão de um Menu que fiz a pouco tempo (visite ele aqui) então resolvi deixar o mesmo ainda mais compacto adicionei também algumas funcionalidades a mais, como por exemplo a mostragem de ícones na MenuCommand o que deu um aspecto mais profissional ao script. Então e isso espero que todos gostem de mais esse script meu, qualquer dúvida ou problema pode ser tirada nesse tópico.
Lag: Inexistente, mínimo ou imperceptível.
Incompatibilidade: Com outro script que altere a Scene_Menu.
Este script também altera informações no Window_MenuCommand, Window_Gold,Window_Base, Window_Gold e Window_MenuStatus.
Script:
Ruby:
#==============================================================================
# Taka Engine - Menu Plus II
# Autor: Takkun (a.k.a Faalco)
# Criado: 13/18/2014
# Version: 1.0a
#==============================================================================
# ? Instruções:
# -----------------------------------------------------------------------------
# Copie o script e cole o mesmo acima do Main de seu projeto. Pode causar
# incompatibilidade com outros scripts que modifiquem o Menu ou acresentem
# algo no mesmo (Devido a modificação das janelas).
#
#==============================================================================
#
# Nova versão do meu antigo Menu Plus I foram adicionadas novas funcionalidades
# e opções ao Menu, ele foi mais compactado mas continua com o mesmo visual
# simples e bonito de antes.Todos os efeitos foram criados recursos do próprio
# maker para que tivesse o mínimo de incompatibilidades possíveis.
# Alguns comandos foram recriados para que caso eles fossem usados em outros
# scripts não sofressem mudanças.
#
# Qualquer dúvida perante ao script pode ser tirada no tópico onde encontrou
# o mesmo, caso queira dar uma sugestão para melhoria ou ideia para script
# mande-me uma mensagem pessoal em umas das comunidades que atuo.
#
# ? Apenas para RPG Maker VXAce ?
#==============================================================================
($imported ||= {})["Taka_Engine_MenuPlus2"] = true
#==============================================================================#
# ? Módulo de configuração do Script
#==============================================================================#
module TAKA
module MENU
#--------------------------------------------------------------------------#
# ? COnfigurações
#--------------------------------------------------------------------------#
# Fonte que irá mostrar o nome dos Heróis.
FONT_NAME = "Verdana"
# Tamanho da fonte que mostrará o nome dos Heróis
FONT_NAME_SIZE = 18
# Fonte que mostrará demais informações.
FONT_NORMAL_NAME = "Verdana"
# Tamanho da fonte que mostrará demais informações.
FONT_NORMAL_SIZE = 14
# Ícone que será mostrada na janela de Gold.
ICON_GOLD = 361
# Ícone que será mostrada na janela de Exibição do nome do Mapa.
ICON_MAPS = 231
#Ícones que serão mostrados ao lado da janela de comando do Menu.
ICONS = [
260, #Item
14, #Habilidades
170, #Equipamentos
121, #Condição
12, #Formação
230, #Salvar
1, #Sair
] #Favor não remover.
MUSIC = "Field1"
MUSIC_PLAY = true
#Configurações Extras:
Font.default_name = TAKA::MENU::FONT_NAME
Font.default_size = TAKA::MENU::FONT_NAME_SIZE
end #MENU
end #TAKA
#==============================================================================#
# ? Window_Base
#==============================================================================#
class Window_Base < Window
#--------------------------------------------------------------------------
# ? Desenho da barra de HP (Neo)
#--------------------------------------------------------------------------
def draw_actor_neohp(actor, x, y, width = 62)
draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
change_color(system_color)
draw_text(x, y, 30, line_height, Vocab::hp_a)
draw_current_and_max_values(x, y, width, actor.hp, actor.mhp,
hp_color(actor), normal_color)
end
#--------------------------------------------------------------------------
# ? Desenho da barra de MP (Neo)
#--------------------------------------------------------------------------
def draw_actor_neomp(actor, x, y, width = 62)
draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
change_color(system_color)
draw_text(x, y, 30, line_height, Vocab::mp_a)
draw_current_and_max_values(x, y, width, actor.mp, actor.mmp,
mp_color(actor), normal_color)
end
#--------------------------------------------------------------------------
# ? Desenho dos ícones de Status (Neo)
#--------------------------------------------------------------------------
def draw_neo_actor_icons(actor, x, y, width = 72)
icons = (actor.state_icons + actor.buff_icons)[0, width / 24]
icons.each_with_index {|n, i| draw_icon(n, x + 24 * i, y) }
end
#--------------------------------------------------------------------------
# ? Desenho dos grupo de Status (Neo)
#--------------------------------------------------------------------------
def draw_actor_neo_simple_status(actor, x, y)
self.contents.font.name = TAKA::MENU::FONT_NAME
self.contents.font.size = TAKA::MENU::FONT_NAME_SIZE
draw_actor_name(actor, x - 55, y - 10)
self.contents.font.name = TAKA::MENU::FONT_NORMAL_NAME
self.contents.font.size = TAKA::MENU::FONT_NORMAL_SIZE
draw_actor_level(actor, x + 35, y - 10 + line_height * 1)
draw_neo_actor_icons(actor, x + 20, y - 10)
draw_actor_class(actor, x - 55, y - 10 + line_height * 1)
draw_actor_neohp(actor, x - 55, y - 10 + line_height * 2)
draw_actor_neomp(actor, x + 27, y - 10 + line_height * 2)
end
end
#==============================================================================#
# ? Window_MenuStatus
#==============================================================================#
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# ? Aquisição da largura da Janela
#--------------------------------------------------------------------------
def window_width
Graphics.width - 300
end
#--------------------------------------------------------------------------
# ? Aquisição da altura da Janela
#--------------------------------------------------------------------------
def window_height
Graphics.height - 225
end
#--------------------------------------------------------------------------
# ? Aquisição de altura do Item
#--------------------------------------------------------------------------
def item_height
(height - standard_padding * 2) / 2
end
#--------------------------------------------------------------------------
# ? Desenho de um Item
#--------------------------------------------------------------------------
def draw_item(index)
actor = $game_party.members[index]
enabled = $game_party.battle_members.include?(actor)
rect = item_rect(index)
draw_item_background(index)
draw_actor_graphic(actor, rect.x + 25, rect.y + 55)
draw_actor_neo_simple_status(actor, rect.x + 108, rect.y + line_height / 2)
end
end
#==============================================================================
# ? Window_MenuCommand
#==============================================================================
class Window_MenuCommand < Window_Command
include TAKA
include MENU
#--------------------------------------------------------------------------
# ? Inicialização do objeto
#--------------------------------------------------------------------------
def initialize
super(72, 80)
select_last
iconsmenu = TAKA::MENU::ICONS
x = 0
y = 0
for i in iconsmenu
draw_icon(i, x - 2, y, enabled = true)
y += 24
end
end
def item_rect(index)
rect = Rect.new
rect.width = item_width - 23
rect.height = item_height
rect.x = index % col_max * (item_width + spacing) + 23
rect.y = index / col_max * item_height
rect
end
end
#==============================================================================
# ? Window_Gold
#==============================================================================
class Window_Gold < Window_Base
#--------------------------------------------------------------------------
# ? Aquisição da largura da janela
#--------------------------------------------------------------------------
def window_width
return 404
end
#--------------------------------------------------------------------------
# ? Renovação
#--------------------------------------------------------------------------
def refresh
contents.clear
icon = draw_icon(TAKA::MENU::ICON_GOLD, 280, 0)
icon = draw_icon(TAKA::MENU::ICON_MAPS, 0, 0)
self.contents.font.name = TAKA::MENU::FONT_NORMAL_NAME
self.contents.font.size = TAKA::MENU::FONT_NORMAL_SIZE
draw_currency_value(value, currency_unit, 4, 0, contents.width - 8)
self.change_color(normal_color)
draw_text(x + 35, y, width, line_height, $game_map.display_name)
end
end
#==============================================================================
# ? Scene_Menu
#==============================================================================
class Scene_Menu < Scene_MenuBase
#--------------------------------------------------------------------------
# ? Criação da janela de atributos
#--------------------------------------------------------------------------
def create_status_window
@status_window = Window_MenuStatus.new(232, 80)
end
#--------------------------------------------------------------------------
# ? Criação da janela de dinheiro
#--------------------------------------------------------------------------
def create_gold_window
@gold_window = Window_Gold.new
@gold_window.x = 72
@gold_window.y = 270
end
end
Engines: RPG Maker VXAce.
Créditos:
[o]Takkun por criar o script.
[o]XP por me ajudar a sanar algumas dúvidas durante a criação.
[o]Guyts por um dos seus scripts que foi de essência importância para criação desse.