Advertisement
Sainthell

Saell - Tutorial Scene

Aug 11th, 2015
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 12.21 KB | None | 0 0
  1. #-----------------------------------------------------------------------------#
  2. # Saell - Tutorial Scene v1.02
  3. # Autor/Author: Sainthell
  4. # Data/Date: 8/11/15
  5. # Recomendado/Recommended: Tsukihime Scene Interpreter
  6. #-----------------------------------------------------------------------------#
  7. # Changelog
  8. # 8/15/15 - Código atualizado / Script updated
  9. #
  10. # 8/13/15 - Update no tamanho da Window_TutorialDescr / Updates on
  11. # Window_TutorialDescr's parameters
  12. #
  13. # 8/11/15 - Script Terminado / Finished Script
  14. #
  15. #-----------------------------------------------------------------------------#
  16. # Descrição
  17. # Faz uma cena personalizada, que roda eventos comums. O script Scene
  18. # Interpreter do autor Tsukihime é altamente recomendado, já que permite eventos
  19. # comuns rodarem em menus.
  20. #
  21. # Description
  22. # Makes a custom scene that runs common events. Tsukihime's Scene Interpreter
  23. # is highly recommended, as it makes common events run on scenes.
  24. #
  25. #-----------------------------------------------------------------------------#
  26. # Agradecimentos Especiais
  27. # Esses agradecimentos vão para todos os que me ajudaram, de uma maneira ou
  28. # outra, a conseguir fazer esse script, diretamente, ou indiretamente, na
  29. # criação desse script.
  30. #
  31. # Special Thanks
  32. # I would like to thank you all who helped me out, in one way or another to
  33. # make it through, directly or indirectly, during the creation of this script.
  34. #
  35. # - Feldherren      - Masked
  36. # - Hudell          - Tsukihime
  37. # - DP3             - Trihan
  38. # - Khas            - Balack Maniactics
  39. # - Sonic Ghost
  40. #
  41. #-----------------------------------------------------------------------------#
  42. # Terms of Use
  43. # You're free to use this script in any game you want, just credit Sainthell
  44. # and those thanked for the help in making this script.
  45. #
  46. # Termos de Uso
  47. # Você está livre para usar esse script em qualquer jogo que desejar. Só credite
  48. # o autor (Sainthell) e os que ajudaram no script.
  49. #
  50. #-----------------------------------------------------------------------------#
  51. # FAQ
  52. # 1- Criando seu comando / Creating your command
  53. # Na hash TUTORIAL_LIST, faça uma nova entrada de tal maneira:
  54. # On the TUTORIAL_LIST hash, make a new entry following this syntax:
  55. #
  56. # :simbolo/:symbol =>
  57. # ["Nome"/"Name",
  58. # "Descrição"/"Description",
  59. #  ID de evento comum/Common event ID],
  60. #
  61. # 2- Adicionando seu comando / Adding your Command
  62. # Adicione o SIMBOLO da sua entrada na array COMMAND, e pronto!
  63. # Add your first command entry (AKA the :symbol) on the COMMAND array.
  64. #
  65. #-----------------------------------------------------------------------------#
  66. module SRC
  67.  
  68.   MENU_NAME= "Tutorial"                  #Menu Name / Nome do Menu
  69.   INITIAL_TEXT= "Escolha seu tutorial."  #Help window text / Texto de Ajuda
  70.   CONTENT_TEXT= "Conteúdo:"              #Texto de conteúdo do Tutorial
  71.   USE_DESCRIPTION = true                 #Usar janela de descrição? /
  72.                                          #Use description window?
  73.  
  74.   COMMAND = [
  75.   #Add commands made in TUTORIAL_LIST here
  76.   :tutorial1,
  77.   :tutorial2,
  78.   :tutorial3,
  79.   :tutorial4,
  80.   :tutorial5,
  81.   :tutorial6,
  82.   :tutorial7,
  83.   ]
  84.  
  85.   TUTORIAL_LIST ={
  86.   :tutorial1 =>  
  87.   ["Basico",        
  88.   "Explicação dos básicos do jogo, \ncomo: \n
  89.  •Classes\n  •Parâmetros\n  •Habilidades\n  •Equipamento\n  •Estados",              
  90.    1],
  91.    
  92.   :tutorial2 =>  
  93.   ["Classes",  
  94.   "Explicação sobre classes, e \nseus tipos mais comuns.\n
  95.  •Física\n  •Mágica\n  •Suporte\n  •Debuff\n  •Mistas",
  96.    2],
  97.    
  98.   :tutorial3 =>  
  99.   ["Parâmetros",      
  100.   "Explicação sobre tipos de \nparâmetros, e seus usos.\n
  101.  •Parâmetros Base\n  •Parâmetros Extras\n  •Parâmetros Especiais",
  102.    3],
  103.  
  104.   :tutorial4 =>  
  105.   ["Habilidades (Ativas)",  
  106.   "Explicação sobre habilidades \nativas, e seus tipos principais.\n
  107.  •Dano\n  •Proteção\n  •Cura\n  •Buff\n  •Debuff\n  •Mistas",
  108.    4],
  109.  
  110.   :tutorial5 =>  
  111.   ["Habilidades (Passivas)",  
  112.   "Explicação sobre habilidades \npassivas, notando seus tipos \nprincipais.\n
  113.  •Adição de Habilidade\n  •Movimento\n  •Reação\n  •Aprimoramento\n  ",
  114.    5],
  115.    
  116.   :tutorial6 =>  
  117.   ["Equipamento",  
  118.   "Explicação dos tipos de \nequipamento, como:\n
  119.  •Armas\n  •Escudos\n  •Capacetes\n  •Armaduras\n  •Acessórios",
  120.    6],
  121.  
  122.   :tutorial7 =>  
  123.   ["Estados",  
  124.   "Explicação sobre estados, \ncitando os mais comuns, como:\n
  125.  •Envenenado\n  •Paralisia\n  •Sono\n  •Desacordado\n  ",
  126.    7],
  127.  
  128.   } # Do not touch / Não toque
  129.  
  130.  
  131. end
  132.  
  133.  
  134.    
  135. #Scene Setup
  136. class SaellTutorialScene < Scene_Base
  137.   #--------------------------------------------------------------------------
  138.   # * Inicialização do processo
  139.   #--------------------------------------------------------------------------
  140.   def start
  141.     super()
  142.     create_help_window
  143.     create_command_window
  144.   end
  145.  
  146.  
  147.   def create_help_window
  148.     @shelp_window = Window_Help.new
  149.     @shelp_window.viewport = @viewport
  150.   end
  151.  
  152.  
  153.   def create_command_window
  154.     wy = @shelp_window.height
  155.     ww = Graphics.width / 2
  156.     wh = Graphics.height - @shelp_window.height
  157.     @list_window = Window_Smain.new(0, @shelp_window.height, 200)
  158.     @list_window.activate
  159.     @list_window.help_window = @tutorial_window
  160.     @list_window.set_handler(:cancel,  method(:return_scene))
  161.   end
  162.  
  163.  
  164.   #--------------------------------------------------------------------------
  165.   # * Processamento pós-inicio
  166.   #--------------------------------------------------------------------------
  167.   def post_start
  168.     super()
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # * Atualização da tela
  172.   #--------------------------------------------------------------------------
  173.   def update
  174.     super()
  175.     @shelp_window.set_text(SRC::INITIAL_TEXT)
  176.   end
  177.  
  178.   #--------------------------------------------------------------------------
  179.   # * Definição de habilitação de seleção
  180.   #--------------------------------------------------------------------------
  181.   def current_item_enabled?
  182.     enable?(@data[index])
  183.   end
  184. end
  185.  
  186.   #--------------------------------------------------------------------------
  187.   # * Processamento pré finalização
  188.   #--------------------------------------------------------------------------
  189.   def pre_terminate
  190.   end
  191.   #--------------------------------------------------------------------------
  192.   # * Finalização do processo
  193.   #--------------------------------------------------------------------------
  194.   def terminate
  195.     super()
  196.     @shelp_window.dispose
  197.     @list_window.dispose
  198.   end #End SaellTutorialScene
  199.  
  200. #==============================================================================
  201. # ** Window_Tutorialdescr
  202. #------------------------------------------------------------------------------
  203. #  Essa é a janela de descrição principal do script.
  204. #==============================================================================
  205.   class Window_Tutorialdescr < Window_Base # Tutorial Description Window
  206.    
  207.   attr_accessor :tutorial_window # Atributo
  208.   #--------------------------------------------------------------------------
  209.   # * inicialização da janela
  210.   #--------------------------------------------------------------------------
  211.    def initialize(tutorial_window, x, y, width, height)
  212.      @tutorial_window = tutorial_window # Propriedade
  213.      @data = []
  214.      super(x, y, width, height)
  215.      refresh
  216.    end
  217.  
  218.   #--------------------------------------------------------------------------
  219.   # * Atualização da janela de descrição
  220.   #--------------------------------------------------------------------------
  221.   def update
  222.     super
  223.     refresh
  224.     @tutorial_window.index
  225.   end
  226.  
  227.    def refresh
  228.     return if @index == @tutorial_window.index
  229.     @data = SRC::COMMAND
  230.     item = []
  231.     item = @data[tutorial_window.index]
  232.     contents.clear
  233.     draw_text_ex(0,0,SRC::CONTENT_TEXT + "\n" + SRC::TUTORIAL_LIST[item][1])
  234.    end
  235.  end # End Description Window
  236.  
  237.  
  238. #==============================================================================
  239. # ** Window_Smain
  240. #------------------------------------------------------------------------------
  241. #  Essa é a lista de itens de comando da cena
  242. #==============================================================================
  243.  class Window_Smain < Window_Selectable
  244.      
  245.   #--------------------------------------------------------------------------
  246.   # * inicialização do processo
  247.   #--------------------------------------------------------------------------
  248.   def initialize(x, y, width)
  249.     super(0 , y, width, Graphics.height - y)
  250.     data = []
  251.     self.index = 0
  252.     if SRC::USE_DESCRIPTION == true
  253.     @tutorial_window = Window_Tutorialdescr.new(self, 200, y, Graphics.width - 200, Graphics.height - y)
  254.     @tutorial_window.viewport = @viewport
  255.     end
  256.     activate
  257.     refresh
  258.     set_handler(:ok, method(:command_tutorial_list))
  259.   end
  260.  
  261.   #--------------------------------------------------------------------------
  262.   # * inicialização, definição, e processamento de index
  263.   #--------------------------------------------------------------------------
  264.   def item_max
  265.     @data ? @data.size : 1
  266.   end
  267.    
  268.   def make_item_list
  269.     @data = SRC::COMMAND
  270.   end
  271.  
  272.  
  273.   def draw_item(index)
  274.     item = @data[index]
  275.     if item
  276.       rect = item_rect_for_text(index)
  277.       draw_text(rect, SRC::TUTORIAL_LIST[item][0])
  278.     end
  279.   end
  280.  
  281.   def command_tutorial_list
  282.     $game_temp.reserve_common_event(SRC::TUTORIAL_LIST[item][2])
  283.     activate
  284.   end
  285.  
  286.   def select(index)
  287.     self.index = index if index
  288.     if SRC::USE_DESCRIPTION == true
  289.     @tutorial_window.contents.clear
  290.     @tutorial_window.draw_text_ex(0,0,SRC::CONTENT_TEXT + "\n" + SRC::TUTORIAL_LIST[item][1])
  291.     end
  292.   end
  293.  
  294.   def item
  295.    @data && index >= 0 ? @data[index] : nil
  296.   end
  297.  
  298.   #--------------------------------------------------------------------------
  299.   # * atualização da janela
  300.   #--------------------------------------------------------------------------
  301.   def refresh
  302.     make_item_list
  303.     create_contents
  304.     draw_all_items
  305.   end
  306.  
  307.   def dispose
  308.     super
  309.     @tutorial_window.dispose
  310.   end
  311. end #End Window_Smain
  312.  
  313.    
  314. #==============================================================================
  315. # ** Window_MenuCommand
  316. #------------------------------------------------------------------------------
  317. #  Esta janela exibe os comandos do menu.
  318. #==============================================================================
  319.  
  320. class Window_MenuCommand < Window_Command
  321.   #--------------------------------------------------------------------------
  322.   # * Adição de comandos próprios
  323.   #--------------------------------------------------------------------------
  324.   alias saell_original_commands add_original_commands
  325.   #----------------------------------------------------
  326.   def add_original_commands
  327.     saell_original_commands
  328.     add_command(SRC::MENU_NAME, :tutorial)
  329.   end
  330. end
  331.   #--------------------------------------------------------------------------
  332.   # * interpreter
  333.   #--------------------------------------------------------------------------
  334. class Scene_Base
  335.   def interpreter
  336.     @interpreter
  337.   end
  338. end
  339. #==============================================================================
  340. # ** Scene_Menu
  341. #------------------------------------------------------------------------------
  342. #  Esta classe executa o processamento da tela de menu.
  343. #==============================================================================
  344.  
  345. class Scene_Menu < Scene_MenuBase
  346.   #--------------------------------------------------------------------------
  347.   # * Criação da janela de comando
  348.   #--------------------------------------------------------------------------
  349.   alias saell_command_window create_command_window
  350.   def create_command_window
  351.     saell_command_window()
  352.     @command_window.set_handler(:tutorial,      method(:command_tutorial))
  353.   end
  354.  
  355.   #--------------------------------------------------------------------------
  356.   # * definir command_tutorial
  357.   #--------------------------------------------------------------------------
  358.   def command_tutorial
  359.     SceneManager.call(SaellTutorialScene)
  360.   end
  361. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement