Advertisement
Skyloftian_Link

Esteem - Menu More Options Window

Dec 25th, 2016
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 9.85 KB | None | 0 0
  1. #===============================================================================
  2. # Esteem - Menu More Options Window
  3. #===============================================================================
  4. # Por: Skyloftian
  5. #===============================================================================
  6. # > Versão 1.0
  7. #-------------------------------------------------------------------------------
  8. # > Atualizações:
  9. #   - 26/12/16 (v1.0) : Concluído
  10. #-------------------------------------------------------------------------------
  11. # > Termos de Uso:
  12. #   - O uso é livre em qualquer tipo de projeto.
  13. #   - Os créditos não são obrigatórios, mas sinta-se livre para creditar-me.
  14. #   - O script não deve ser postado em outro lugar, caso deseje isso, favor me
  15. #   contatar antes.
  16. #   - O script pode ser modificado por sua conta e risco, mas não me responsabi-
  17. #   lizo por quaisquer erros que venham a ocorrer posteriormente.
  18. #-------------------------------------------------------------------------------
  19. # > Notas:
  20. #   - O script foi feito sob encomenda do membro 357.
  21. #===============================================================================
  22. # > Função:
  23. #   - Este script cria uma nova cena no menu principal do jogo, mostrando mais
  24. #   opções.
  25. #-------------------------------------------------------------------------------
  26. # > Instruções:
  27. #   - Para que tudo funcione corretamente é preciso configurar a parte configurá-
  28. #   vel do código.
  29. #   - As configurações serão explicadas detalhadamente mais abaixo, ao lado de
  30. #   cada ponto a ser configurado.
  31. #===============================================================================
  32. # > Dúvidas e afins? Acesse: www.centrorpg.com
  33. #===============================================================================
  34. module Esteem
  35.   module Options
  36.    
  37.     #===========================================================================
  38.     # > Configurações:
  39.     #   - Aqui você encontrará todas as configurações que podem ser realizadas
  40.     #   no script.
  41.     #---------------------------------------------------------------------------
  42.    
  43.     # > Configurações básicas:
  44.    
  45.     OPTIONS_NAME = "Opções"     # Termo a aparecer no menu principal que abri-
  46.                                 # rá a nova cena com opções a se selecionar.
  47.                                
  48.     OPTIONS = { # Não apague!!!
  49.    
  50.   # "Termo"     => [Key, ID],
  51.   # "Termo" = Palavra a aparecer no menu.
  52.   #     Key = Chave que será usada para que o script identifique a qual cena
  53.   #           pertence cada configuração.
  54.   #           Não deve ser 0. Recomendo que siga uma ordem crescente para que
  55.   #           não se confunda. Ex: (1, 2, 3...)
  56.   #      ID = ID da Switch para ativar/desativar a opção.
  57.   #           Coloque 0 para não útilizar uma switch e a opção estar sempre ati-
  58.   #           vada.
  59.  
  60.   # Exemplo:
  61.  
  62.   # "Bestiário" => [1, 1],
  63.    
  64.     "Cena 01"   => [1, 0],      
  65.    
  66.     "Cena 02"   => [2, 5],
  67.      
  68.               } # Não apague!!!
  69.    
  70.     # > Configurações das cenas:
  71.    
  72.     # Está configuração é obrigatória e exigirá um pouco de conhecimento de sua
  73.     # parte quanto as cenas que deseja chamar através das opções.
  74.     # Você deverá saber o nome da cena para chamá-la.
  75.     # Seu nome geralmente vem informada nos scripts como a maneira que você deve
  76.     # chamá-la através de Script Call(Chamar Script), entretando isso não é ga-
  77.     # rantido.
  78.    
  79.     def scene_call(scene_key) # Não apague!!!
  80.       if scene_key == 0       # Não apague!!!
  81.        
  82.     # elsif scene_key == Key
  83.     #   SceneManager.call(Nome_da_Cena)
  84.    
  85.     # Na primeira linha você deve substituir Key pelo número colocado na Key das
  86.     # configurações acima correspondente a cema em questão.
  87.    
  88.     # Na segunda linha você deve substituir Nome_da_Cena pelo nome da cena en
  89.     # questão.
  90.    
  91.     # Lembre-se que Key e Nome_da_Cena devem se corresponder.
  92.  
  93.     # Exemplo:
  94.    
  95.     # elsif scene_key == 1
  96.     #   SceneManager.call(Scene_MonsterBook)
  97.    
  98.       elsif scene_key == 1
  99.         SceneManager.call(Cena_01)
  100.        
  101.       elsif scene_key == 2
  102.         SceneManager.call(Cena_02)
  103.        
  104.       end # if
  105.     end # def
  106.    
  107.     # O script é razoavelmente simples, porém suas configurações podem parecer
  108.     # um pouco complexas quando não se entende exatamente como elas funcionam.
  109.     # Mesmo assim, é fácil configurá-lo e é possível adicionar quantas opçoões
  110.     # desejar.
  111.     # Para adicionar novas opções basta apenas repetir os processos ensinados
  112.     # acima.
  113.    
  114.   end # Options
  115. end # Esteem
  116. #===============================================================================
  117. # > Fim das Configurações
  118. #   - Aqui termina a área configurável do script e começa o código. Não recomen-
  119. #   do que o altere, isso é, a menos que tenha certeza do que está fazendo.
  120. #===============================================================================
  121.  
  122. #=============================================================
  123. # > Window_Options < Window_MenuCommand
  124. #=============================================================
  125. class Window_Options < Window_MenuCommand
  126.   include Esteem::Options
  127.  
  128.   #---------------------------------------------------------
  129.   # ~ Iitialize
  130.   #---------------------------------------------------------
  131.   def initialize
  132.     super
  133.     select_last
  134.   end
  135.  
  136.   #---------------------------------------------------------
  137.   # ~ Window_Width
  138.   #---------------------------------------------------------
  139.   def window_width
  140.     return 160
  141.   end
  142.  
  143.   #---------------------------------------------------------
  144.   # ~ Window_Height
  145.   #---------------------------------------------------------
  146.   def window_height
  147.     if fitting_height(visible_line_number) > 360
  148.       return 360
  149.     else
  150.       fitting_height(visible_line_number)
  151.     end
  152.   end
  153.  
  154.   #---------------------------------------------------------
  155.   # ~ Visible_Line_Number
  156.   #---------------------------------------------------------
  157.   def visible_line_number
  158.     item_max
  159.   end
  160.  
  161.   #---------------------------------------------------------
  162.   # ~ Make_Command_List
  163.   #---------------------------------------------------------
  164.   def make_command_list
  165.     OPTIONS.each do |opt, key|
  166.       add_command(opt, opt.to_sym, enable_this(key[1]))
  167.     end
  168.   end
  169.  
  170.   #---------------------------------------------------------
  171.   # ~ Enable_This
  172.   #---------------------------------------------------------
  173.   def enable_this(switch_id)
  174.     if switch_id <= 0
  175.       return true
  176.     else
  177.       $game_switches[switch_id]
  178.     end
  179.   end
  180.  
  181. end # Window_Options
  182. #=============================================================
  183. # > Window_MenuCommand < Window_Command
  184. #=============================================================
  185. class Window_MenuCommand < Window_Command  
  186.   include Esteem::Options
  187.  
  188.   #---------------------------------------------------------
  189.   # ~ Add_Main_Commands
  190.   #---------------------------------------------------------
  191.   alias :add_new_command :add_main_commands
  192.   def add_main_commands
  193.       add_new_command
  194.       add_command(OPTIONS_NAME, :options, main_commands_enabled)
  195.   end
  196.    
  197. end # Window_MenuCommand  
  198. #=============================================================
  199. # > Scene_Menu < Scene_MenuBase
  200. #=============================================================
  201. class Scene_Menu < Scene_MenuBase
  202.   include Esteem::Options
  203.    
  204.   #---------------------------------------------------------
  205.   # ~ Create_Command_Window
  206.   #---------------------------------------------------------
  207.    alias :new_command :create_command_window
  208.    def create_command_window
  209.        new_command
  210.        @command_window.set_handler(:options, method(:command_options))
  211.    end
  212.    
  213.   #---------------------------------------------------------
  214.   # ~ Command_Options
  215.   #---------------------------------------------------------
  216.    def command_options
  217.      SceneManager.call(Scene_MenuOptions)
  218.    end
  219.    
  220.  end # Scene_Menu
  221. #=============================================================
  222. # > Scene_MenuOptions < Scene_MenuBase
  223. #=============================================================
  224. class Scene_MenuOptions < Scene_MenuBase
  225.   include Esteem::Options
  226.  
  227.   #---------------------------------------------------------
  228.   # ~ Start
  229.   #---------------------------------------------------------
  230.   def start
  231.     super
  232.     create_options_window
  233.     create_status_window
  234.     create_gold_window
  235.   end
  236.  
  237.   #---------------------------------------------------------
  238.   # ~ Create_Gold_Window
  239.   #---------------------------------------------------------
  240.   def create_gold_window
  241.     @gold_window = Window_Gold.new
  242.     @gold_window.x = 0
  243.     @gold_window.y = Graphics.height - @gold_window.height
  244.   end
  245.  
  246.   #---------------------------------------------------------
  247.   # ~ Create_Status_Window
  248.   #---------------------------------------------------------
  249.   def create_status_window
  250.     @status_window = Window_MenuStatus.new(@options_window.width, 0)
  251.   end
  252.  
  253.   #---------------------------------------------------------
  254.   # ~ Create_Options_Window
  255.   #---------------------------------------------------------
  256.   def create_options_window
  257.     @options_window = Window_Options.new
  258.     OPTIONS.each_key do |opt|
  259.       @options_window.set_handler(opt.to_sym, method(:scene_caller))
  260.     end
  261.     @options_window.set_handler(:cancel,    method(:return_scene))
  262.   end
  263.    
  264.   #---------------------------------------------------------
  265.   # ~ Scene_Caller
  266.   #---------------------------------------------------------
  267.   def scene_caller
  268.     @actual_slct = @options_window.current_symbol
  269.     OPTIONS.each do |key, opt|
  270.       case key.to_sym
  271.       when @actual_slct
  272.         scene_call(opt[0])
  273.       end
  274.     end
  275.   end
  276.  
  277. end # Scene_MenuOptions
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement