1 KMM - Kingdom Main Menu 21/11/2012, 18:24
Tiaguu
Membro I
Kingdom Main Menu
por King Gerar
por King Gerar
Descrição: Este script permite modificar a tela inicial do menu,
permitindo uma nova disposição das informações, o uso de imagens
ou windows, BGM de fundo, uma unidade monetária ou de item extra,
tempo de jogo,nome do mapa atual e ícones nos comandos.
Lag: Mínimo ou imperceptível
Compatibilidade: Deve ser incompatível com outro script que altere a Scene_Menu.
Este script também altera informações no Window_Base e no Window_MenuStatus.
Menu por Imagens
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Menu por Windows
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Requerimentos:
-Como existe a opção de fazer a Scene Menu com o uso de imagens, são necessárias 11 imagens. Caso modifique, conserve os tamanhos e padrões para bom visual e funcionamento.
Modelo das imagens
-A fonte utilizada nos exemplos da screens também segue no link, por ser a padrão do script.
- Código:
#==============================================================================
# KMM - Kingdom Main Menu
# Por King Gerar
#------------------------------------------------------------------------------
# Este script permite modificar a tela inicial do menu, permitindo uma nova
# disposição das informações, o uso de imagens ou windows, BGM de fundo, uma
# unidade monetária ou de item extra, tempo de jogo,nome do mapa atual e ícones
# nos comandos.
#==============================================================================
module KMM_Config
#-------------------------------------------------------------------------------
# Opções configuráveis.
# Para habilitar uma opção coloque "true" em frente ao sinal de igual e
# respeitando o espaçamento. Caso queira desabilitar o opção, coloque "false".
#-------------------------------------------------------------------------------
MenuImgMode = false # Usar menu por imagens
PlayMenuBGM = true # Ativar BGM de fundo no menu
ShowGameTime = true # Mostrar o tempo de jogo
ShowExtraItem = true # Mostrar unidade monetária/item extra
#-------------------------------------------------------------------------------
# Definição das imagens utilizadas.
# Estas imagens somente serão usadas se a opção "MenuImgMode", logo acima,
# estiver habilitada.
#-------------------------------------------------------------------------------
ImgStatusBG = "KMM - MenuStatus" # Fundo dos status dos personagens
ImgItens = "KMM - Itens" # Comando Itens
ImgSkills = "KMM - Habilidades" # Comando Habilidades
ImgEquips = "KMM - Equipamentos" # Comando Equipamentos
ImgStatus = "KMM - Status" # Comando Status/Condições
ImgFormation = "KMM - Formacao" # Comando Formação
ImgSave = "KMM - Salvar" # Comando Salvar
ImgQuit = "KMM - Sair" # Comando Sair
ImgInfoMap = "KMM - InfoMapName" # Fundo da localização/mapa atual
ImgInfoWdw = "KMM - InfoWdw" # Fundo das informações dinheiro, tempo
# de jogo e unidade extra
#-------------------------------------------------------------------------------
# Definição dos ícones utilizados.
# Alguns ícones somente serão utilizados se a opção "MenuImgMode", logo acima,
# estiver desabilitada.
#-------------------------------------------------------------------------------
IconItens = 261 # Comando Itens
IconSkills = 113 # Comando Habilidades
IconEquips = 389 # Comando Equipamentos
IconStatus = 121 # Comando Status/Condições
IconFormtn = 233 # Comando Formação
IconSave = 117 # Comando Salvar
IconQuit = 229 # Comando Sair
IconTime = 280 # Tempo de jogo
IconExtra = 359 # Unidade monetária ou item extra
IconGold = 361 # Dinheiro
#-------------------------------------------------------------------------------
# Definição das palavras/expressões utilizadas.
#-------------------------------------------------------------------------------
SystemFont = "Aardvark Cafe" # Fonte do menu
FontSize = 18 # Tamanho da fonte
VocTime = "Tempo de Jogo" # Tempo de jogo
VocExtra = "Runas" # Nome da unidade monetária ou item extra
VocExp = "Exp" # Sigla para barra de experiência
MenuBGM = "Theme1" # BGM de fundo o menu
ExpBarColor1 = 21 # Primeira cor da barra de experiência
ExpBarColor2 = 17 # Segunda cor da barra de experiência
ImgRecue = -48 # Recuo dos comandos do menu
CmdSpacing = 32 # Espaçamento entre os comandos do menu
ExtraUnit = 1 # Variével que irá mostrar o quanto da
# unidade monetária/item extra possui.
end
#===============================================================================
# Fim do módulo. Não modifique abaixo.
#===============================================================================
class Scene_Menu < Scene_MenuBase
include KMM_Config
#-----------------------------------------------------------------------------
# Inicialização do processo
#-----------------------------------------------------------------------------
def start
super
create_command_window
create_game_time_window if ShowGameTime
create_extra_window if ShowExtraItem
create_gold_window
create_status_window
create_namemap_window
cmd_create
Audio.bgm_play("Audio/BGM/#{MenuBGM}") if PlayMenuBGM
end
#-----------------------------------------------------------------------------
# Finalização do processo
#-----------------------------------------------------------------------------
def terminate
super
Audio.bgm_stop if PlayMenuBGM
end
#-----------------------------------------------------------------------------
# Atualização do processo
#-----------------------------------------------------------------------------
def update
super
if @command_window.index == 0 && @cmd_itens.x < 0
@cmd_itens.x += 3
elsif @command_window.index != 0 && @cmd_itens.x > ImgRecue
@cmd_itens.x -= 3
end
if @command_window.index == 1 && @cmd_skills.x < 0
@cmd_skills.x += 3
elsif @command_window.index != 1 && @cmd_skills.x > ImgRecue
@cmd_skills.x -= 3
end
if @command_window.index == 2 && @cmd_equips.x < 0
@cmd_equips.x += 3
elsif @command_window.index != 2 && @cmd_equips.x > ImgRecue
@cmd_equips.x -= 3
end
if @command_window.index == 3 && @cmd_status.x < 0
@cmd_status.x += 3
elsif @command_window.index != 3 && @cmd_status.x > ImgRecue
@cmd_status.x -= 3
end
if @command_window.index == 4 && @cmd_formation.x < 0
@cmd_formation.x += 3
elsif @command_window.index != 4 && @cmd_formation.x > ImgRecue
@cmd_formation.x -= 3
end
if @command_window.index == 5 && @cmd_save.x < 0
@cmd_save.x += 3
elsif @command_window.index != 5 && @cmd_save.x > ImgRecue
@cmd_save.x -= 3
end
if @command_window.index == 6 && @cmd_quit.x < 0
@cmd_quit.x += 3
elsif @command_window.index != 6 && @cmd_quit.x > ImgRecue
@cmd_quit.x -= 3
end
end
#--------------------------------------------------------------------------
# Criação da janela de comando
#--------------------------------------------------------------------------
alias gerar_menu_create create_command_window
def create_command_window
gerar_menu_create
@command_window.opacity = 0
@command_window.contents_opacity = 0
end
#-----------------------------------------------------------------------------
# Criação da janela de tempo
#-----------------------------------------------------------------------------
def create_game_time_window
@game_time_window = Window_GameTime.new
@game_time_window.opacity = 0 if MenuImgMode
end
#--------------------------------------------------------------------------
# Criação da janela de elemento extra
#--------------------------------------------------------------------------
def create_extra_window
@extra_window = Window_Extra.new
@extra_window.opacity = 0 if MenuImgMode
end
#--------------------------------------------------------------------------
# Criação da janela do nome do mapa
#--------------------------------------------------------------------------
def create_namemap_window
@namemap_window = Window_NameMap.new
@namemap_window.opacity = 0 if MenuImgMode
end
#--------------------------------------------------------------------------
# Criação da janela de dinheiro
#--------------------------------------------------------------------------
def create_gold_window
@gold_window = Window_MenuGold.new
@gold_window.opacity = 0 if MenuImgMode
end
#--------------------------------------------------------------------------
# Criação da janela de atributos
#--------------------------------------------------------------------------
def create_status_window
@status_window = Window_MenuStatus.new(@command_window.width, 0)
end
#--------------------------------------------------------------------------
# * Criação das imagens
#--------------------------------------------------------------------------
def cmd_create
if MenuImgMode == true
@status_background = Sprite.new
@status_background.bitmap = Cache.system(ImgStatusBG)
@status_background.x = 150
@status_background.y = 0
@cmd_itens = Sprite.new
@cmd_itens.bitmap = Cache.system(ImgItens)
@cmd_itens.x = ImgRecue
@cmd_itens.y = 0
@cmd_skills = Sprite.new
@cmd_skills.bitmap = Cache.system(ImgSkills)
@cmd_skills.x = ImgRecue
@cmd_skills.y = @cmd_itens.y + CmdSpacing
@cmd_equips = Sprite.new
@cmd_equips.bitmap = Cache.system(ImgEquips)
@cmd_equips.x = ImgRecue
@cmd_equips.y = @cmd_skills.y + CmdSpacing
@cmd_status = Sprite.new
@cmd_status.bitmap = Cache.system(ImgStatus)
@cmd_status.x = ImgRecue
@cmd_status.y = @cmd_equips.y + CmdSpacing
@cmd_formation = Sprite.new
@cmd_formation.bitmap = Cache.system(ImgFormation)
@cmd_formation.x = ImgRecue
@cmd_formation.y = @cmd_status.y + CmdSpacing
@cmd_save = Sprite.new
@cmd_save.bitmap = Cache.system(ImgSave)
@cmd_save.x = ImgRecue
@cmd_save.y = @cmd_formation.y + CmdSpacing
@cmd_quit = Sprite.new
@cmd_quit.bitmap = Cache.system(ImgQuit)
@cmd_quit.x = ImgRecue
@cmd_quit.y = @cmd_save.y + CmdSpacing
if ShowGameTime == true
@img_gametime = Sprite.new
@img_gametime.bitmap = Cache.system(ImgInfoWdw)
@img_gametime.x = @game_time_window.x
@img_gametime.y = @game_time_window.y
end
if ShowExtraItem == true
@img_extra = Sprite.new
@img_extra.bitmap = Cache.system(ImgInfoWdw)
@img_extra.x = @extra_window.x
@img_extra.y = @extra_window.y
end
@img_gold = Sprite.new
@img_gold.bitmap = Cache.system(ImgInfoWdw)
@img_gold.x = @gold_window.x
@img_gold.y = @gold_window.y
@img_mapname = Sprite.new
@img_mapname.bitmap = Cache.system(ImgInfoMap)
@img_mapname.x = @namemap_window.x
@img_mapname.y = @namemap_window.y
else
@cmd_itens = Window_SingleCommand.new
@cmd_itens.y = 0
@cmd_itens.draw_icon(IconItens, 0, 0)
@cmd_itens.draw_text( 42, 0, 140, 24, Vocab::item, 0)
@cmd_skills = Window_SingleCommand.new
@cmd_skills.y = @cmd_itens.y + CmdSpacing
@cmd_skills.draw_icon(IconSkills, 0, 0)
@cmd_skills.draw_text( 42, 0, 140, 24, Vocab::skill, 0)
@cmd_equips = Window_SingleCommand.new
@cmd_equips.y = @cmd_skills.y + CmdSpacing
@cmd_equips.draw_icon(IconEquips, 0, 0)
@cmd_equips.draw_text( 42, 0, 140, 24, Vocab::equip, 0)
@cmd_status = Window_SingleCommand.new
@cmd_status.y = @cmd_equips.y + CmdSpacing
@cmd_status.draw_icon(IconStatus, 0, 0)
@cmd_status.draw_text( 42, 0, 140, 24, Vocab::status, 0)
@cmd_formation = Window_SingleCommand.new
@cmd_formation.y = @cmd_status.y + CmdSpacing
@cmd_formation.draw_icon(IconFormtn, 0, 0)
@cmd_formation.draw_text( 42, 0, 140, 24, Vocab::formation, 0)
@cmd_save = Window_SingleCommand.new
@cmd_save.y = @cmd_formation.y + CmdSpacing
@cmd_save.draw_icon(IconSave, 0, 0)
@cmd_save.draw_text( 42, 0, 140, 24, Vocab::save, 0)
@cmd_quit = Window_SingleCommand.new
@cmd_quit.y = @cmd_save.y + CmdSpacing
@cmd_quit.draw_icon(IconQuit, 0, 0)
@cmd_quit.draw_text( 42, 0, 140, 24, Vocab::game_end, 0)
end
end
end
#===============================================================================
# Window_GameTime
#-------------------------------------------------------------------------------
# Esta janela é responsável por mostrar o tempo de jogo no menu.
#===============================================================================
class Window_GameTime < Window_Base
include KMM_Config
def initialize
super(0, 246, 150, 64)
self.contents.font.name = SystemFont
self.contents.font.size = FontSize
update
end
def start
draw_icon(IconTime, 0, 10)
draw_text( 28, 0, 140, line_height, VocTime, 0)
draw_text( 28, 22, 130, line_height, $game_system.playtime_s, 0)
end
def update
contents.clear
start
end
end
#===============================================================================
# Window_Extra
#-------------------------------------------------------------------------------
# Esta janela é responsável por mostrar a quantidade da unidade monetária/item
# extra que o jogador possui.
#===============================================================================
class Window_Extra < Window_Base
include KMM_Config
def initialize
super(0, 299, 150, 64)
self.contents.font.name = SystemFont
self.contents.font.size = FontSize
start
end
def start
draw_icon(IconExtra, 0, 10)
draw_text( 28, 0, 140, line_height, VocExtra, 0)
draw_text( 28, 22, 130, line_height, $game_variables[ExtraUnit], 0)
end
end
#===============================================================================
# Window_MenuGold
#-------------------------------------------------------------------------------
# Esta janela é responsável por mostrar a quantidade de dinheiro em posse na
# tela do menu principal.
#===============================================================================
class Window_MenuGold < Window_Base
include KMM_Config
def initialize
super(0, 352, 150, 64)
self.contents.font.name = SystemFont
self.contents.font.size = FontSize
start
end
def start
draw_icon(IconGold, 0, 10)
draw_text( 28, 0, 140, line_height, Vocab::currency_unit, 0)
draw_text( 28, 22, 130, line_height, $game_party.gold, 0)
end
end
#===============================================================================
# Window_NameMap
#-------------------------------------------------------------------------------
# Esta janela é responsável por mostrar o nome do mapa atual, em que o
# personagem está localizado.
#===============================================================================
class Window_NameMap < Window_Base
def initialize
super(150, 368, 394, 48)
self.contents.font.name = SystemFont
self.contents.font.size = FontSize
draw_text( 0, 0, 367, line_height, $game_map.display_name, 1)
end
end
#==============================================================================
# Window_MenuStatus
#------------------------------------------------------------------------------
# Esta janela exibe os parâmetros dos membros do grupo na tela de menu.
#==============================================================================
class Window_MenuStatus < Window_Selectable
include KMM_Config
#--------------------------------------------------------------------------
# * Variáveis públicas
#--------------------------------------------------------------------------
attr_reader :pending_index # Manter a posição (para organizar)
#--------------------------------------------------------------------------
# * Inicialização do objeto
# x : coordenada X
# y : coordenada Y
#--------------------------------------------------------------------------
def initialize(x, y)
super(150, 0, 394, 368)
self.contents.font.name = SystemFont
self.contents.font.size = FontSize
self.opacity = 0 if MenuImgMode
@pending_index = -1
refresh
end
def col_max
return 2
end
def spacing
return 0
end
#--------------------------------------------------------------------------
# * Aquisição da largura da janela
#--------------------------------------------------------------------------
def window_width
Graphics.width - 150
end
#--------------------------------------------------------------------------
# * Aquisição da altura da janela
#--------------------------------------------------------------------------
def window_height
Graphics.height - 48
end
#--------------------------------------------------------------------------
# * Aquisição de altura do item
#--------------------------------------------------------------------------
def item_height
(height - standard_padding * 2) / 2
end
end
#==============================================================================
# Window_Base
#------------------------------------------------------------------------------
# Esta é a superclasse para todas as janelas no jogo.
#==============================================================================
class Window_Base < Window
include KMM_Config
#--------------------------------------------------------------------------
# * Desenho dos atributos básicos
# actor : herói
# x : coordenada X
# y : coordenada Y
#--------------------------------------------------------------------------
def draw_actor_simple_status(actor, x, y)
self.contents.font.size = FontSize + 4
draw_actor_name(actor, x, y - 10)
self.contents.font.size = FontSize + 2
draw_actor_level(actor, x, y - 10 + line_height * 1)
draw_actor_icons(actor, x, y - 10 + line_height * 2)
draw_actor_class(actor, x, y - 10 + line_height * 3)
self.contents.font.size = FontSize
draw_actor_hp(actor, x - 100, y - 12 + line_height * 4)
draw_actor_mp(actor, x - 80, y - 12 + line_height * 5)
draw_actor_exp(actor, x - 60, y - 12 + line_height * 6)
end
def draw_actor_exp(actor, x, y, width = 124)
draw_gauge(x, y, width, actor.exp.to_f / actor.next_level_exp.to_f, exp_gauge_color1, exp_gauge_color2)
change_color(system_color)
draw_text(x, y, 30, line_height, VocExp)
draw_current_and_max_values(x, y, width, actor.exp, actor.next_level_exp,
normal_color, normal_color)
end
def exp_gauge_color1
text_color(ExpBarColor1)
end
def exp_gauge_color2
text_color(ExpBarColor2)
end
end
#===============================================================================
# Window_SingleCommand
#-------------------------------------------------------------------------------
# Esta janela é responsável por criar as janelas dos comandos do menu principal.
#===============================================================================
class Window_SingleCommand < Window_Base
include KMM_Config
def initialize
super(ImgRecue, 0, 150, 48)
self.contents.font.name = SystemFont
self.contents.font.size = FontSize
end
end
________________________
Engines: Somente Ace.
Créditos:
-King Gerar por criar o script.
-Victor Gomez/Misugami e Raizen