Advertisement
KingGerar

KMM 2 - Kingdom Main Menu II

Oct 16th, 2012
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 21.33 KB | None | 0 0
  1. #===============================================================================
  2. # Kingdom Main Manu II
  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 um gráfico de window diferente para o
  7. # menu principal, a utilização de uma unidade monetária extra, uma janela com
  8. # as informações do progress do jogo e número de missões completas ou não,
  9. # utilização de ícones, nome do mapa, tempo de jogo, configuração da fonte,
  10. # cor dos degradês e a visualização dos status de somente um personagem por vez.
  11. #===============================================================================
  12.  
  13. module KMM2_Config
  14. #-------------------------------------------------------------------------------
  15. #                               GRÁFICOS
  16. #-------------------------------------------------------------------------------
  17.   Wdw_Standard = "Window"       # Gráfico da janela normal.
  18. #-------------------------------------------------------------------------------
  19. #                                ÍCONES
  20. #-------------------------------------------------------------------------------
  21.   IconItens = 261                      # Comando Itens
  22.   IconSkills = 113                     # Comando Habilidades
  23.   IconEquips = 389                     # Comando Equipamentos
  24.   IconStatus = 121                     # Comando Status/Condições
  25.   IconFormtn = 233                     # Comando Formação
  26.   IconSave = 117                       # Comando Salvar
  27.   IconQuit = 229                       # Comando Sair
  28.  
  29.   IconTime = 280                       # Tempo de jogo
  30.   IconGold = 361                       # Dinheiro
  31.   IconExtra = 358                      # Item Extra
  32.   IconMap = 231                        # Mapa
  33. #-------------------------------------------------------------------------------
  34. #                            PALAVRAS / EXPRESÕES
  35. #-------------------------------------------------------------------------------
  36.   SystemFont = "Candara"         # Fonte do menu.
  37.   FontSize = 18                        # Tamanho da fonte.
  38.  
  39.   VocProgress = "Progresso Total"      # Progresso total no jogo.
  40.   VocQuests = "Quests Completas"       # Quantidade de missões completas.
  41.   VocGameTime = "Tempo de Jogo"        # Tempo de jogo.
  42.   VocExp = "Exp"                       # Sigla para barra de experiência.
  43.   VocExtra = "Rubys"                   # Nome do item extra.
  44.   VocClass = "Classe"                  # Definição de Classe.
  45.   VocStatus = "Condição"               # Definição de Condições.
  46. #-------------------------------------------------------------------------------
  47. #                                  VARIÁVIES
  48. #                                Indique o ID
  49. #-------------------------------------------------------------------------------
  50. # ExtraUnit é a variável que indica a quantidade do item extra em posse.
  51. #-------------------------------------------------------------------------------
  52.   ExtraUnit = 1
  53. #-------------------------------------------------------------------------------
  54. # GameProgress é a variável que indica a quantidade de progresso que o jogador
  55. # completou do jogo, lembrando que o valor máximo para perfeito funcionamento
  56. # é 100, visto que corresponde aos 100%(cem porcento) de progresso.
  57. #-------------------------------------------------------------------------------
  58.   GameProgress = 2
  59. #-------------------------------------------------------------------------------
  60. # CurrentQuests é a variável que indica o número de missões que você já
  61. # completou. Para o perfeito funcionamento, a variável CurrentQuests tem que
  62. # ter valor menor ou igual à variável MaxQuests, que indica o número máximo
  63. # de missões a serem completadas.
  64. #-------------------------------------------------------------------------------
  65.   CurrentQuests = 3
  66.   MaxQuests = 4
  67.  
  68.   NoMaxQuests = 30                     # Defina o número máximo de missões.
  69.  
  70. #-------------------------------------------------------------------------------
  71. #                                    CORES
  72. #-------------------------------------------------------------------------------
  73. # Cor dos textos.
  74. #-------------------------------------------------------------------------------
  75.   Clr2_Command = Color.new(255, 255, 0, 255)    # Valores Principais
  76.   Clr1_Command = Color.new(255, 255, 255, 255)  # Valores Normais
  77.  
  78.   Clr1_Progress = Color.new(150, 150, 0, 255)   # Cor 1 da barra de progresso.
  79.   Clr2_Progress = Color.new(255, 255, 0, 255)   # Cor 2 da barra de progresso.
  80.  
  81.   Clr1_Quests = Color.new(165, 135, 0, 255)     # Cor 1 da barra de missões.
  82.   Clr2_Quests = Color.new(255, 220, 0, 255)     # Cor 2 da barra de missões.
  83.  
  84.   Clr1_ExpBar = Color.new(150, 150, 0, 255)     # Cor 1 da barra de experiência.
  85.   Clr2_ExpBar = Color.new(255, 220, 0, 255)     # Cor 2 da barra de experiência.
  86. end
  87.  
  88. #===============================================================================
  89. #                    FIM DO MÓDULO. NÃO MODIFIQUE ABAIXO
  90. #===============================================================================
  91.  
  92. class Scene_Menu < Scene_MenuBase
  93.   include KMM2_Config
  94.   #-----------------------------------------------------------------------------
  95.   # * Inicialização do processo
  96.   #-----------------------------------------------------------------------------
  97.   def start
  98.       super
  99.       create_command_window
  100.       create_gamedata_window
  101.       create_mapname_window
  102.       create_status_window
  103.       create_extraitem_window
  104.     create_goldgame_window
  105.       create_commands
  106.   end
  107.   #-----------------------------------------------------------------------------
  108.   # * Criação da janela de comando
  109.   #-----------------------------------------------------------------------------
  110.   alias create_menu_cmd_window create_command_window
  111.   def create_command_window
  112.       create_menu_cmd_window
  113.       @command_window = Window_MenuCommand.new
  114.       @command_window.set_handler(:item,      method(:command_item))
  115.       @command_window.set_handler(:skill,     method(:command_personal))
  116.       @command_window.set_handler(:equip,     method(:command_personal))
  117.       @command_window.set_handler(:status,    method(:command_personal))
  118.       @command_window.set_handler(:formation, method(:command_formation))
  119.       @command_window.set_handler(:save,      method(:command_save))
  120.       @command_window.set_handler(:game_end,  method(:command_game_end))
  121.       @command_window.set_handler(:cancel,    method(:return_scene))
  122.       @command_window.opacity = 0
  123.       @command_window.contents_opacity = 0
  124.   end
  125.   #-----------------------------------------------------------------------------
  126.   # Criação da janela de dados do jogo.
  127.   #-----------------------------------------------------------------------------
  128.   def create_gamedata_window
  129.     @gamedata_window = Window_GameData.new
  130.   end
  131.   #-----------------------------------------------------------------------------
  132.   # Criação da janela de exibição do dinheiro em posse.
  133.   #-----------------------------------------------------------------------------
  134.   def create_goldgame_window
  135.       @goldgame_window = Window_MenuGold.new
  136.   end
  137.   #-----------------------------------------------------------------------------
  138.   # Criação da janela de exibição do item extra.
  139.   #-----------------------------------------------------------------------------
  140.   def create_extraitem_window
  141.     @extraitem_window = Window_Extra.new
  142.   end
  143.   #-----------------------------------------------------------------------------
  144.   # Criação da janela que exibe o nome do mapa.
  145.   #-----------------------------------------------------------------------------
  146.   def create_mapname_window
  147.     @gold_window = Window_NameMap.new
  148.   end
  149.   #-----------------------------------------------------------------------------
  150.   # Criação das janelas dos comandos.
  151.   #-----------------------------------------------------------------------------
  152.   def create_commands
  153.     @total_x = 2
  154.     #---------------------------------------------------------------------------
  155.       @cmd_itens = Window_CommandBox.new
  156.       @cmd_itens.x = @total_x
  157.       @cmd_itens.y = 0
  158.     @cmd_itens.draw_icon(IconItens, (((@cmd_itens.width - 20) / 2) - 12), -2)
  159.     @cmd_itens.draw_text( 0, 20, (@cmd_itens.width - 20), 24, Vocab::item, 1)
  160.       #---------------------------------------------------------------------------
  161.     @total_x += @cmd_itens.width
  162.     @cmd_skills = Window_CommandBox.new
  163.     @cmd_skills.x = @total_x
  164.     @cmd_skills.y = 0
  165.     @cmd_skills.draw_icon(IconSkills, (((@cmd_skills.width - 20) / 2) - 12), -2)
  166.     @cmd_skills.draw_text( 0, 20, (@cmd_skills.width - 20), 24, Vocab::skill, 1)
  167.     #---------------------------------------------------------------------------
  168.       @total_x += @cmd_skills.width
  169.       @cmd_equips = Window_CommandBox.new
  170.       @cmd_equips.x = @total_x
  171.     @cmd_equips.y = 0
  172.     @cmd_equips.draw_icon(IconEquips, (((@cmd_equips.width - 20) / 2) - 12), -2)
  173.     @cmd_equips.draw_text( 0, 20, (@cmd_equips.width - 20), 24, Vocab::equip, 1)
  174.     #---------------------------------------------------------------------------
  175.     @total_x += @cmd_equips.width
  176.     @cmd_status = Window_CommandBox.new
  177.     @cmd_status.x = @total_x
  178.     @cmd_status.y = 0
  179.     @cmd_status.draw_icon(IconStatus, (((@cmd_status.width - 20) / 2) - 12), -2)
  180.     @cmd_status.draw_text( 0, 20, (@cmd_status.width - 20), 24, Vocab::status, 1)
  181.     #---------------------------------------------------------------------------
  182.     @total_x += @cmd_status.width
  183.       @cmd_formation = Window_CommandBox.new
  184.     @cmd_formation.x = @total_x
  185.     @cmd_formation.y = 0
  186.     @cmd_formation.draw_icon(IconFormtn, (((@cmd_formation.width - 20) / 2) - 12), -2)
  187.     @cmd_formation.draw_text( 0, 20, (@cmd_formation.width - 20), 24, Vocab::formation, 1)
  188.       #---------------------------------------------------------------------------
  189.     @total_x += @cmd_formation.width
  190.     @cmd_save = Window_CommandBox.new
  191.       @cmd_save.x = @total_x
  192.       @cmd_save.y = 0
  193.     @cmd_save.draw_icon(IconSave, (((@cmd_save.width - 20) / 2) - 12), -2)
  194.       @cmd_save.draw_text( 0, 20, (@cmd_save.width - 20), 24, Vocab::save, 1)
  195.     #---------------------------------------------------------------------------
  196.     @total_x += @cmd_save.width
  197.     @cmd_quit = Window_CommandBox.new
  198.     @cmd_quit.x = @total_x
  199.       @cmd_quit.y = 0
  200.     @cmd_quit.draw_icon(IconQuit, (((@cmd_quit.width - 20) / 2) - 12), -2)
  201.     @cmd_quit.draw_text( 0, 20, (@cmd_quit.width - 20), 24, Vocab::game_end, 1)
  202.   end
  203.   #-----------------------------------------------------------------------------
  204.   # Atualização das janelas dos comandos.
  205.   #-----------------------------------------------------------------------------
  206.   def update
  207.     super
  208.     if Input.trigger?(:RIGHT)
  209.       @command_window.index += 1
  210.       @command_window.index = 0 if @command_window.index > 6
  211.     end
  212.     if Input.trigger?(:LEFT)
  213.       @command_window.index -= 1
  214.       @command_window.index = 6 if @command_window.index < 0
  215.     end
  216.     if @command_window.index == 0 && @cmd_itens.y < 16
  217.         @cmd_itens.y += 3
  218.     elsif @command_window.index != 0 && @cmd_itens.y > 0
  219.       @cmd_itens.y -= 3
  220.     end
  221.     if @command_window.index == 1 && @cmd_skills.y < 16
  222.       @cmd_skills.y += 3
  223.     elsif @command_window.index != 1 && @cmd_skills.y > 0
  224.         @cmd_skills.y -= 3
  225.     end
  226.     if @command_window.index == 2 && @cmd_equips.y < 16
  227.       @cmd_equips.y += 3
  228.     elsif @command_window.index != 2 && @cmd_equips.y > 0
  229.         @cmd_equips.y -= 3
  230.     end
  231.     if @command_window.index == 3 && @cmd_status.y < 16
  232.       @cmd_status.y += 3
  233.     elsif @command_window.index != 3 && @cmd_status.y > 0
  234.       @cmd_status.y -= 3
  235.     end
  236.     if @command_window.index == 4 && @cmd_formation.y < 16
  237.       @cmd_formation.y += 3
  238.     elsif @command_window.index != 4 && @cmd_formation.y > 0
  239.       @cmd_formation.y -= 3
  240.     end
  241.     if @command_window.index == 5 && @cmd_save.y < 16
  242.       @cmd_save.y += 3
  243.     elsif @command_window.index != 5 && @cmd_save.y > 0
  244.       @cmd_save.y -= 3
  245.     end
  246.     if @command_window.index == 6 && @cmd_quit.y < 16
  247.       @cmd_quit.y += 3
  248.     elsif @command_window.index != 6 && @cmd_quit.y > 0
  249.       @cmd_quit.y -= 3
  250.     end
  251.   end
  252. end
  253. #===============================================================================
  254. # Window_GameData
  255. #-------------------------------------------------------------------------------
  256. # Esta janela é responsável por mostrar os progressos do jogo.
  257. #===============================================================================
  258. class Window_GameData < Window_Base
  259.   include KMM2_Config
  260.   def initialize
  261.     super(0, 100, 160, 252)
  262.     self.windowskin = Cache.system(Wdw_Standard)
  263.     self.contents.font.name = SystemFont
  264.     self.contents.font.size = FontSize
  265.       $game_variables[MaxQuests] = NoMaxQuests
  266.       update
  267.   end
  268.  
  269.   def start
  270.     # Mostrar textos principais
  271.       change_color(Clr2_Command)
  272.     draw_text( 0, 8, 136, line_height, VocProgress, 1)
  273.     draw_text( 0, 88, 136, line_height, VocQuests, 1)
  274.     draw_text( 0, 170, 136, line_height, VocGameTime, 1)
  275.       # Mostrar ícones
  276.     draw_icon(IconTime, 4, 196)
  277.     # Mostrar textos dos valores
  278.     change_color(Clr1_Command)
  279.     draw_text( 0, 53, 60, line_height, $game_variables[GameProgress], 2)
  280.     draw_text( 0, 53, 136, line_height, "/", 1)
  281.     draw_text( 76, 53, 60, line_height, "100", 0)
  282.     draw_text( 0, 134, 60, line_height, $game_variables[CurrentQuests], 2)
  283.     draw_text( 0, 134, 136, line_height, "/", 1)
  284.     draw_text( 76, 134, 60, line_height, $game_variables[MaxQuests], 0)
  285.     draw_text( 0, 196, 130, line_height, $game_system.playtime_s, 2)
  286.     # Mostrar barras
  287.     draw_gauge( 16, 24, 104, $game_variables[GameProgress].to_f / 100.000, Clr1_Progress, Clr2_Progress)
  288.       draw_gauge( 16, 103, 104, $game_variables[CurrentQuests].to_f / $game_variables[MaxQuests].to_f, Clr1_Quests, Clr2_Quests)
  289.   end
  290.  
  291.   def update
  292.       contents.clear
  293.     start
  294.   end
  295. end
  296. #===============================================================================
  297. # Window_Extra
  298. #-------------------------------------------------------------------------------
  299. # Esta janela é responsável por mostrar a quantidade da unidade monetária/item
  300. # extra que o jogador possui.
  301. #===============================================================================
  302. class Window_Extra < Window_Base
  303.   include KMM2_Config
  304.   def initialize
  305.       super(224, 352, 160, 64)
  306.       self.windowskin = Cache.system(Wdw_Standard)
  307.       self.contents.font.name = SystemFont
  308.     self.contents.font.size = FontSize
  309.     start
  310.   end
  311.  
  312.   def start
  313.     draw_icon(IconExtra, 4, 7)
  314.     change_color(Clr1_Command)
  315.     draw_text( 0, 8, 80, line_height, $game_variables[ExtraUnit], 2)
  316.     change_color(Clr2_Command)
  317.       draw_text( 0, 8, 128, line_height, VocExtra, 2)
  318.   end
  319. end
  320. #===============================================================================
  321. # Window_MenuGold
  322. #-------------------------------------------------------------------------------
  323. # Esta janela é responsável por mostrar a quantidade de dinheiro em posse na
  324. # tela do menu principal.
  325. #===============================================================================
  326. class Window_MenuGold < Window_Base
  327.   include KMM2_Config
  328.   def initialize
  329.     super(384, 352, 160, 64)
  330.     self.windowskin = Cache.system(Wdw_Standard)
  331.     self.contents.font.name = SystemFont
  332.     self.contents.font.size = FontSize
  333.     start
  334.   end
  335.  
  336.   def start
  337.     draw_icon(IconGold, 4, 7)
  338.     change_color(Clr1_Command)
  339.     draw_text( 0, 8, 72, line_height, $game_party.gold, 2)
  340.       change_color(Clr2_Command)
  341.     draw_text( 0, 8, 128, line_height, Vocab::currency_unit, 2)
  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.   include KMM2_Config
  352.   def initialize
  353.       super(0, 352, 224, 64)
  354.       self.windowskin = Cache.system(Wdw_Standard)
  355.     self.contents.font.name = SystemFont
  356.       self.contents.font.size = FontSize
  357.       draw_icon(IconMap, 4, 7)
  358.       change_color(Clr2_Command)
  359.     draw_text( 0, 8, 192, line_height, $game_map.display_name, 2)
  360.   end
  361. end
  362. #===============================================================================
  363. # Window_CommandBox
  364. #-------------------------------------------------------------------------------
  365. # Esta janela é responsável pela inserção dos comandos do menu principal.
  366. #===============================================================================
  367. class Window_CommandBox < Window_Base
  368. include KMM2_Config
  369.   def initialize
  370.       super(0, 0, 77, 64)
  371.       self.windowskin = Cache.system(Wdw_Standard)
  372.       self.contents.font.name = SystemFont
  373.     self.contents.font.size = FontSize
  374.       change_color(Clr2_Command)
  375.   end
  376. end
  377. #===============================================================================
  378. # Window_MenuStatus
  379. #-------------------------------------------------------------------------------
  380. # Esta janela exibe os parâmetros dos membros do grupo na tela de menu.
  381. #===============================================================================
  382. class Window_MenuStatus < Window_Selectable
  383.   include KMM2_Config
  384.   #-----------------------------------------------------------------------------
  385.   # * Variáveis públicas
  386.   #-----------------------------------------------------------------------------
  387.   attr_reader   :pending_index            # Manter a posição (para organizar)
  388.   #-----------------------------------------------------------------------------
  389.   # * Inicialização do objeto
  390.   #     x      : coordenada X
  391.   #     y      : coordenada Y
  392.   #-----------------------------------------------------------------------------
  393.   def initialize(x, y)
  394.       super(200, 100, 344, 252)
  395.     self.windowskin = Cache.system(Wdw_Standard)
  396.     self.contents.font.name = SystemFont
  397.     self.contents.font.size = FontSize
  398.       @pending_index = -1
  399.     refresh
  400.   end
  401.  
  402.   def col_max
  403.       return 1
  404.   end
  405.  
  406.   def spacing
  407.       return 0
  408.   end
  409.  
  410.   #-----------------------------------------------------------------------------
  411.   # * Aquisição de altura do item
  412.   #-----------------------------------------------------------------------------
  413.   def item_height
  414.     (height - standard_padding * 2)
  415.   end
  416.   #-----------------------------------------------------------------------------
  417.   # Desenho dos status de um personagem no menu.
  418.   #-----------------------------------------------------------------------------
  419.   def draw_item(index)
  420.     actor = $game_party.members[index]
  421.     enabled = $game_party.battle_members.include?(actor)
  422.     rect = item_rect(index)
  423.     draw_item_background(index)
  424.     draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)
  425.     draw_actor_advanced_status(actor, rect.x + 108, rect.y + line_height / 2)
  426.   end
  427.   #-----------------------------------------------------------------------------
  428.   # Desenho dos atributos de status do personagem.
  429.   #-----------------------------------------------------------------------------
  430.   def draw_actor_advanced_status(actor, x, y)
  431.     self.contents.font.size = FontSize + 8
  432.     draw_actor_name(actor, x, y)
  433.     self.contents.font.size = FontSize + 4
  434.     draw_text(x, y + 10 + line_height * 1, 120, line_height, VocClass, 0)
  435.     draw_actor_class(actor, x + 100, y + 10 + line_height * 1)
  436.     self.contents.font.size = FontSize + 2
  437.     draw_actor_level(actor, x, y + 10 + line_height * 2)
  438.     draw_text(x - 100, y + line_height * 4, 100, line_height, VocStatus, 0)
  439.     draw_actor_icons(actor, x, y + line_height * 4)
  440.     draw_actor_hp(actor, x - 100, y + line_height * 5)
  441.     draw_actor_mp(actor, x - 100, y + line_height * 6)
  442.     draw_actor_exp(actor, x - 100, y + line_height * 7)
  443.   end
  444.   #-----------------------------------------------------------------------------
  445.   # Desenho da barra de Hp.
  446.   #-----------------------------------------------------------------------------
  447.   def draw_actor_hp(actor, x, y, width = 300)
  448.     draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
  449.     change_color(system_color)
  450.     draw_text(x, y, 30, line_height, Vocab::hp_a)
  451.     draw_current_and_max_values(x, y, width, actor.hp, actor.mhp,
  452.       hp_color(actor), normal_color)
  453.   end
  454.   #-----------------------------------------------------------------------------
  455.   # Desenho da barra de Mp.
  456.   #-----------------------------------------------------------------------------
  457.   def draw_actor_mp(actor, x, y, width = 300)
  458.     draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
  459.     change_color(system_color)
  460.     draw_text(x, y, 30, line_height, Vocab::mp_a)
  461.     draw_current_and_max_values(x, y, width, actor.mp, actor.mmp,
  462.       mp_color(actor), normal_color)
  463.   end
  464.   #-----------------------------------------------------------------------------
  465.   # Desenho da barra de experiência.
  466.   #-----------------------------------------------------------------------------
  467.   def draw_actor_exp(actor, x, y, width = 300)
  468.     draw_gauge(x, y, width, actor.exp.to_f / actor.next_level_exp.to_f, Clr1_ExpBar, Clr2_ExpBar)
  469.     change_color(system_color)
  470.     draw_text(x, y, 30, line_height, VocExp)
  471.     draw_current_and_max_values(x, y, width, actor.exp, actor.next_level_exp,
  472.     normal_color, normal_color)
  473.   end
  474. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement