Advertisement
KingGerar

KMM - Kingdom Main Menu

Oct 1st, 2012
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 19.23 KB | None | 0 0
  1. #==============================================================================
  2. # KMM - Kingdom Main Menu
  3. # Por King Gerar
  4. #------------------------------------------------------------------------------
  5. # Este script permite modificar a tela inicial do menu, permitindo uma nova
  6. # disposição das informações, o uso de imagens ou windows, BGM de fundo, uma
  7. # unidade monetária ou de item extra, tempo de jogo,nome do mapa atual e ícones
  8. # nos comandos.
  9. #==============================================================================
  10. module KMM_Config
  11. #-------------------------------------------------------------------------------
  12. # Opções configuráveis.
  13. # Para habilitar uma opção coloque "true" em frente ao sinal de igual e
  14. # respeitando o espaçamento. Caso queira desabilitar o opção, coloque "false".
  15. #-------------------------------------------------------------------------------
  16.   MenuImgMode = false                  # Usar menu por imagens
  17.   PlayMenuBGM = true                   # Ativar BGM de fundo no menu
  18.   ShowGameTime = true                  # Mostrar o tempo de jogo
  19.   ShowExtraItem = true                 # Mostrar unidade monetária/item extra
  20. #-------------------------------------------------------------------------------
  21. # Definição das imagens utilizadas.
  22. # Estas imagens somente serão usadas se a opção "MenuImgMode", logo acima,
  23. # estiver habilitada.
  24. #-------------------------------------------------------------------------------
  25.   ImgStatusBG = "KMM - MenuStatus"     # Fundo dos status dos personagens
  26.   ImgItens = "KMM - Itens"             # Comando Itens
  27.   ImgSkills = "KMM - Habilidades"      # Comando Habilidades
  28.   ImgEquips = "KMM - Equipamentos"     # Comando Equipamentos
  29.   ImgStatus = "KMM - Status"           # Comando Status/Condições
  30.   ImgFormation = "KMM - Formacao"      # Comando Formação
  31.   ImgSave = "KMM - Salvar"             # Comando Salvar
  32.   ImgQuit = "KMM - Sair"               # Comando Sair
  33.   ImgInfoMap = "KMM - InfoMapName"     # Fundo da localização/mapa atual
  34.   ImgInfoWdw = "KMM - InfoWdw"         # Fundo das informações dinheiro, tempo
  35.                                        # de jogo e unidade extra
  36. #-------------------------------------------------------------------------------
  37. # Definição dos ícones utilizados.
  38. # Alguns ícones somente serão utilizados se a opção "MenuImgMode", logo acima,
  39. # estiver desabilitada.
  40. #-------------------------------------------------------------------------------
  41.   IconItens = 261                      # Comando Itens
  42.   IconSkills = 113                     # Comando Habilidades
  43.   IconEquips = 389                     # Comando Equipamentos
  44.   IconStatus = 121                     # Comando Status/Condições
  45.   IconFormtn = 233                     # Comando Formação
  46.   IconSave = 117                       # Comando Salvar
  47.   IconQuit = 229                       # Comando Sair
  48.  
  49.   IconTime = 280                       # Tempo de jogo
  50.   IconExtra = 359                      # Unidade monetária ou item extra
  51.   IconGold = 361                       # Dinheiro
  52. #-------------------------------------------------------------------------------
  53. # Definição das palavras/expressões utilizadas.
  54. #-------------------------------------------------------------------------------
  55.   SystemFont = "Aardvark Cafe"         # Fonte do menu
  56.   FontSize = 18                        # Tamanho da fonte
  57.  
  58.   VocTime = "Tempo de Jogo"            # Tempo de jogo
  59.   VocExtra = "Runas"                   # Nome da unidade monetária ou item extra
  60.   VocExp = "Exp"                       # Sigla para barra de experiência
  61.  
  62.   MenuBGM = "Theme1"                   # BGM de fundo o menu
  63.  
  64.   ExpBarColor1 = 21                    # Primeira cor da barra de experiência
  65.   ExpBarColor2 = 17                    # Segunda cor da barra de experiência
  66.  
  67.   ImgRecue = -48                       # Recuo dos comandos do menu
  68.   CmdSpacing = 32                      # Espaçamento entre os comandos do menu
  69.  
  70.   ExtraUnit = 1                        # Variével que irá mostrar o quanto da
  71.                                        # unidade monetária/item extra possui.
  72. end
  73. #===============================================================================
  74. # Fim do módulo. Não modifique abaixo.
  75. #===============================================================================
  76. class Scene_Menu < Scene_MenuBase
  77.   include KMM_Config
  78.   #-----------------------------------------------------------------------------
  79.   # Inicialização do processo
  80.   #-----------------------------------------------------------------------------
  81.   def start
  82.     super
  83.     create_command_window
  84.     create_game_time_window if ShowGameTime
  85.     create_extra_window if ShowExtraItem
  86.     create_gold_window
  87.     create_status_window
  88.     create_namemap_window
  89.     cmd_create
  90.     Audio.bgm_play("Audio/BGM/#{MenuBGM}") if PlayMenuBGM
  91.   end
  92.   #-----------------------------------------------------------------------------
  93.   # Finalização do processo
  94.   #-----------------------------------------------------------------------------
  95.   def terminate
  96.     super
  97.     Audio.bgm_stop if PlayMenuBGM
  98.   end
  99.   #-----------------------------------------------------------------------------
  100.   # Atualização do processo
  101.   #-----------------------------------------------------------------------------
  102.   def update
  103.     super
  104.     if @command_window.index == 0 && @cmd_itens.x < 0
  105.       @cmd_itens.x += 3
  106.     elsif @command_window.index != 0 && @cmd_itens.x > ImgRecue
  107.       @cmd_itens.x -= 3
  108.     end
  109.     if @command_window.index == 1 && @cmd_skills.x < 0
  110.       @cmd_skills.x += 3
  111.     elsif @command_window.index != 1 && @cmd_skills.x > ImgRecue
  112.       @cmd_skills.x -= 3
  113.     end
  114.     if @command_window.index == 2 && @cmd_equips.x < 0
  115.       @cmd_equips.x += 3
  116.     elsif @command_window.index != 2 && @cmd_equips.x > ImgRecue
  117.       @cmd_equips.x -= 3
  118.     end
  119.     if @command_window.index == 3 && @cmd_status.x < 0
  120.       @cmd_status.x += 3
  121.     elsif @command_window.index != 3 && @cmd_status.x > ImgRecue
  122.       @cmd_status.x -= 3
  123.     end
  124.     if @command_window.index == 4 && @cmd_formation.x < 0
  125.       @cmd_formation.x += 3
  126.     elsif @command_window.index != 4 && @cmd_formation.x > ImgRecue
  127.       @cmd_formation.x -= 3
  128.     end
  129.     if @command_window.index == 5 && @cmd_save.x < 0
  130.       @cmd_save.x += 3
  131.     elsif @command_window.index != 5 && @cmd_save.x > ImgRecue
  132.       @cmd_save.x -= 3
  133.     end
  134.     if @command_window.index == 6 && @cmd_quit.x < 0
  135.       @cmd_quit.x += 3
  136.     elsif @command_window.index != 6 && @cmd_quit.x > ImgRecue
  137.       @cmd_quit.x -= 3
  138.     end
  139.   end
  140.   #--------------------------------------------------------------------------
  141.   # Criação da janela de comando
  142.   #--------------------------------------------------------------------------
  143.   alias gerar_menu_create create_command_window
  144.   def create_command_window
  145.     gerar_menu_create
  146.     @command_window.opacity = 0
  147.     @command_window.contents_opacity = 0
  148.   end
  149.   #-----------------------------------------------------------------------------
  150.   # Criação da janela de tempo
  151.   #-----------------------------------------------------------------------------
  152.   def create_game_time_window
  153.     @game_time_window = Window_GameTime.new
  154.     @game_time_window.opacity = 0 if MenuImgMode
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # Criação da janela de elemento extra
  158.   #--------------------------------------------------------------------------
  159.   def create_extra_window
  160.     @extra_window = Window_Extra.new
  161.     @extra_window.opacity = 0 if MenuImgMode
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # Criação da janela do nome do mapa
  165.   #--------------------------------------------------------------------------
  166.   def create_namemap_window
  167.     @namemap_window = Window_NameMap.new
  168.     @namemap_window.opacity = 0 if MenuImgMode
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # Criação da janela de dinheiro
  172.   #--------------------------------------------------------------------------
  173.   def create_gold_window
  174.     @gold_window = Window_MenuGold.new
  175.     @gold_window.opacity = 0 if MenuImgMode
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # Criação da janela de atributos
  179.   #--------------------------------------------------------------------------
  180.   def create_status_window
  181.     @status_window = Window_MenuStatus.new(@command_window.width, 0)
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # * Criação das imagens
  185.   #--------------------------------------------------------------------------
  186.   def cmd_create
  187.     if MenuImgMode == true
  188.       @status_background = Sprite.new
  189.       @status_background.bitmap = Cache.system(ImgStatusBG)
  190.       @status_background.x = 150
  191.       @status_background.y = 0
  192.    
  193.       @cmd_itens = Sprite.new
  194.       @cmd_itens.bitmap = Cache.system(ImgItens)
  195.       @cmd_itens.x = ImgRecue
  196.       @cmd_itens.y = 0
  197.       @cmd_skills = Sprite.new
  198.       @cmd_skills.bitmap = Cache.system(ImgSkills)
  199.       @cmd_skills.x = ImgRecue
  200.       @cmd_skills.y = @cmd_itens.y + CmdSpacing
  201.       @cmd_equips = Sprite.new
  202.       @cmd_equips.bitmap = Cache.system(ImgEquips)
  203.       @cmd_equips.x = ImgRecue
  204.       @cmd_equips.y = @cmd_skills.y + CmdSpacing
  205.       @cmd_status = Sprite.new
  206.       @cmd_status.bitmap = Cache.system(ImgStatus)
  207.       @cmd_status.x = ImgRecue
  208.       @cmd_status.y = @cmd_equips.y + CmdSpacing
  209.       @cmd_formation = Sprite.new
  210.       @cmd_formation.bitmap = Cache.system(ImgFormation)
  211.       @cmd_formation.x = ImgRecue
  212.       @cmd_formation.y = @cmd_status.y + CmdSpacing
  213.       @cmd_save = Sprite.new
  214.       @cmd_save.bitmap = Cache.system(ImgSave)
  215.       @cmd_save.x = ImgRecue
  216.       @cmd_save.y = @cmd_formation.y + CmdSpacing
  217.       @cmd_quit = Sprite.new
  218.       @cmd_quit.bitmap = Cache.system(ImgQuit)
  219.       @cmd_quit.x = ImgRecue
  220.       @cmd_quit.y = @cmd_save.y + CmdSpacing
  221.      
  222.       if ShowGameTime == true
  223.         @img_gametime = Sprite.new
  224.         @img_gametime.bitmap = Cache.system(ImgInfoWdw)
  225.         @img_gametime.x = @game_time_window.x
  226.         @img_gametime.y = @game_time_window.y
  227.       end
  228.      
  229.       if ShowExtraItem == true
  230.         @img_extra = Sprite.new
  231.         @img_extra.bitmap = Cache.system(ImgInfoWdw)
  232.         @img_extra.x = @extra_window.x
  233.         @img_extra.y = @extra_window.y
  234.       end
  235.    
  236.       @img_gold = Sprite.new
  237.       @img_gold.bitmap = Cache.system(ImgInfoWdw)
  238.       @img_gold.x = @gold_window.x
  239.       @img_gold.y = @gold_window.y
  240.    
  241.       @img_mapname = Sprite.new
  242.       @img_mapname.bitmap = Cache.system(ImgInfoMap)
  243.       @img_mapname.x = @namemap_window.x
  244.       @img_mapname.y = @namemap_window.y
  245.     else
  246.       @cmd_itens = Window_SingleCommand.new
  247.       @cmd_itens.y = 0
  248.       @cmd_itens.draw_icon(IconItens, 0, 0)
  249.       @cmd_itens.draw_text( 42, 0, 140, 24, Vocab::item, 0)
  250.       @cmd_skills = Window_SingleCommand.new
  251.       @cmd_skills.y = @cmd_itens.y + CmdSpacing
  252.       @cmd_skills.draw_icon(IconSkills, 0, 0)
  253.       @cmd_skills.draw_text( 42, 0, 140, 24, Vocab::skill, 0)
  254.       @cmd_equips = Window_SingleCommand.new
  255.       @cmd_equips.y = @cmd_skills.y + CmdSpacing
  256.       @cmd_equips.draw_icon(IconEquips, 0, 0)
  257.       @cmd_equips.draw_text( 42, 0, 140, 24, Vocab::equip, 0)
  258.       @cmd_status = Window_SingleCommand.new
  259.       @cmd_status.y = @cmd_equips.y + CmdSpacing
  260.       @cmd_status.draw_icon(IconStatus, 0, 0)
  261.       @cmd_status.draw_text( 42, 0, 140, 24, Vocab::status, 0)
  262.       @cmd_formation = Window_SingleCommand.new
  263.       @cmd_formation.y = @cmd_status.y + CmdSpacing
  264.       @cmd_formation.draw_icon(IconFormtn, 0, 0)
  265.       @cmd_formation.draw_text( 42, 0, 140, 24, Vocab::formation, 0)
  266.       @cmd_save = Window_SingleCommand.new
  267.       @cmd_save.y = @cmd_formation.y + CmdSpacing
  268.       @cmd_save.draw_icon(IconSave, 0, 0)
  269.       @cmd_save.draw_text( 42, 0, 140, 24, Vocab::save, 0)
  270.       @cmd_quit = Window_SingleCommand.new
  271.       @cmd_quit.y = @cmd_save.y + CmdSpacing
  272.       @cmd_quit.draw_icon(IconQuit, 0, 0)
  273.       @cmd_quit.draw_text( 42, 0, 140, 24, Vocab::game_end, 0)
  274.     end
  275.   end
  276. end
  277. #===============================================================================
  278. # Window_GameTime
  279. #-------------------------------------------------------------------------------
  280. # Esta janela é responsável por mostrar o tempo de jogo no menu.
  281. #===============================================================================
  282. class Window_GameTime < Window_Base
  283.   include KMM_Config
  284.   def initialize
  285.     super(0, 246, 150, 64)
  286.     self.contents.font.name = SystemFont
  287.     self.contents.font.size = FontSize
  288.     update
  289.   end
  290.  
  291.   def start
  292.     draw_icon(IconTime, 0, 10)
  293.     draw_text( 28,  0, 140, line_height, VocTime, 0)
  294.     draw_text( 28, 22, 130, line_height, $game_system.playtime_s, 0)
  295.   end
  296.  
  297.   def update
  298.     contents.clear
  299.     start
  300.   end
  301. end
  302. #===============================================================================
  303. # Window_Extra
  304. #-------------------------------------------------------------------------------
  305. # Esta janela é responsável por mostrar a quantidade da unidade monetária/item
  306. # extra que o jogador possui.
  307. #===============================================================================
  308. class Window_Extra < Window_Base
  309.   include KMM_Config
  310.   def initialize
  311.     super(0, 299, 150, 64)
  312.     self.contents.font.name = SystemFont
  313.     self.contents.font.size = FontSize
  314.     start
  315.   end
  316.  
  317.   def start
  318.     draw_icon(IconExtra, 0, 10)
  319.     draw_text( 28,  0, 140, line_height, VocExtra, 0)
  320.     draw_text( 28, 22, 130, line_height, $game_variables[ExtraUnit], 0)
  321.   end
  322. end
  323. #===============================================================================
  324. # Window_MenuGold
  325. #-------------------------------------------------------------------------------
  326. # Esta janela é responsável por mostrar a quantidade de dinheiro em posse na
  327. # tela do menu principal.
  328. #===============================================================================
  329. class Window_MenuGold < Window_Base
  330.   include KMM_Config
  331.   def initialize
  332.     super(0, 352, 150, 64)
  333.     self.contents.font.name = SystemFont
  334.     self.contents.font.size = FontSize
  335.     start
  336.   end
  337.  
  338.   def start
  339.     draw_icon(IconGold, 0, 10)
  340.     draw_text( 28,  0, 140, line_height, Vocab::currency_unit, 0)
  341.     draw_text( 28, 22, 130, line_height, $game_party.gold, 0)
  342.   end
  343. end
  344. #===============================================================================
  345. # Window_NameMap
  346. #-------------------------------------------------------------------------------
  347. # Esta janela é responsável por mostrar o nome do mapa atual, em que o
  348. # personagem está localizado.
  349. #===============================================================================
  350. class Window_NameMap < Window_Base
  351.   def initialize
  352.     super(150, 368, 394, 48)
  353.     self.contents.font.name = SystemFont
  354.     self.contents.font.size = FontSize
  355.     draw_text(  0,  0, 367, line_height, $game_map.display_name, 1)
  356.   end
  357. end
  358. #==============================================================================
  359. # Window_MenuStatus
  360. #------------------------------------------------------------------------------
  361. # Esta janela exibe os parâmetros dos membros do grupo na tela de menu.
  362. #==============================================================================
  363. class Window_MenuStatus < Window_Selectable
  364.   include KMM_Config
  365.   #--------------------------------------------------------------------------
  366.   # * Variáveis públicas
  367.   #--------------------------------------------------------------------------
  368.   attr_reader   :pending_index            # Manter a posição (para organizar)
  369.   #--------------------------------------------------------------------------
  370.   # * Inicialização do objeto
  371.   #     x      : coordenada X
  372.   #     y      : coordenada Y
  373.   #--------------------------------------------------------------------------
  374.   def initialize(x, y)
  375.     super(150, 0, 394, 368)
  376.     self.contents.font.name = SystemFont
  377.     self.contents.font.size = FontSize
  378.     self.opacity = 0 if MenuImgMode
  379.     @pending_index = -1
  380.     refresh
  381.   end
  382.  
  383.   def col_max
  384.     return 2
  385.   end
  386.  
  387.   def spacing
  388.     return 0
  389.   end
  390.   #--------------------------------------------------------------------------
  391.   # * Aquisição da largura da janela
  392.   #--------------------------------------------------------------------------
  393.   def window_width
  394.     Graphics.width - 150
  395.   end
  396.   #--------------------------------------------------------------------------
  397.   # * Aquisição da altura da janela
  398.   #--------------------------------------------------------------------------
  399.   def window_height
  400.     Graphics.height - 48
  401.   end
  402.   #--------------------------------------------------------------------------
  403.   # * Aquisição de altura do item
  404.   #--------------------------------------------------------------------------
  405.   def item_height
  406.     (height - standard_padding * 2) / 2
  407.   end
  408. end
  409. #==============================================================================
  410. # Window_Base
  411. #------------------------------------------------------------------------------
  412. # Esta é a superclasse para todas as janelas no jogo.
  413. #==============================================================================
  414. class Window_Base < Window
  415.   include KMM_Config
  416.   #--------------------------------------------------------------------------
  417.   # * Desenho dos atributos básicos
  418.   #     actor : herói
  419.   #     x     : coordenada X
  420.   #     y     : coordenada Y
  421.   #--------------------------------------------------------------------------
  422.   def draw_actor_simple_status(actor, x, y)
  423.     self.contents.font.size = FontSize + 4
  424.     draw_actor_name(actor, x, y - 10)
  425.     self.contents.font.size = FontSize + 2
  426.     draw_actor_level(actor, x, y - 10 + line_height * 1)
  427.     draw_actor_icons(actor, x, y - 10 + line_height * 2)
  428.     draw_actor_class(actor, x, y - 10 + line_height * 3)
  429.     self.contents.font.size = FontSize
  430.     draw_actor_hp(actor, x - 100, y - 12 + line_height * 4)
  431.     draw_actor_mp(actor, x - 80, y - 12 + line_height * 5)
  432.     draw_actor_exp(actor, x - 60, y - 12 + line_height * 6)
  433.   end
  434.  
  435.   def draw_actor_exp(actor, x, y, width = 124)
  436.     draw_gauge(x, y, width, actor.exp.to_f / actor.next_level_exp.to_f, exp_gauge_color1, exp_gauge_color2)
  437.     change_color(system_color)
  438.     draw_text(x, y, 30, line_height, VocExp)
  439.     draw_current_and_max_values(x, y, width, actor.exp, actor.next_level_exp,
  440.       normal_color, normal_color)
  441.   end
  442.  
  443.   def exp_gauge_color1
  444.     text_color(ExpBarColor1)
  445.   end
  446.  
  447.   def exp_gauge_color2
  448.     text_color(ExpBarColor2)
  449.   end
  450. end
  451. #===============================================================================
  452. # Window_SingleCommand
  453. #-------------------------------------------------------------------------------
  454. # Esta janela é responsável por criar as janelas dos comandos do menu principal.
  455. #===============================================================================
  456. class Window_SingleCommand < Window_Base
  457. include KMM_Config
  458.   def initialize
  459.     super(ImgRecue, 0, 150, 48)
  460.     self.contents.font.name = SystemFont
  461.     self.contents.font.size = FontSize
  462.   end
  463. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement