Advertisement
Sainthell

Saell - Basic Tutorial Scene

Aug 1st, 2015
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 11.35 KB | None | 0 0
  1. #-----------------------------------------------------------------------------#
  2. # Saell - Basic Tutorial Scene v1.10
  3. # Autor/Author: Sainthell
  4. # Data/Date: 8/11/15
  5. # Recomendado/Recommended: Tsukihime Scene Interpreter
  6. #-----------------------------------------------------------------------------#
  7. # Changelog
  8. # 8/9/15
  9. #  - Help window now shows static message -- Tutorial descriptions are now
  10. # handled by another, bigger window.
  11. #
  12. # 8/3/15
  13. #  - Updates - Now you can bind commands to switches, or disable them
  14. # altogether.
  15. #
  16. # 8/1/15
  17. #  - Finished Script / Script Terminado
  18. #-----------------------------------------------------------------------------#
  19. # Descrição
  20. # Faz uma cena personalizada, que roda eventos comums. O script Scene
  21. # Interpreter do autor Tsukihime é altamente recomendado, já que permite eventos
  22. # comuns rodarem em menus.
  23. #
  24. # Description
  25. # Makes a custom scene that runs common events. Tsukihime's Scene Interpreter
  26. # is highly recommended, as it makes common events run on scenes.
  27. #
  28. #-----------------------------------------------------------------------------#
  29. # Agradecimentos Especiais
  30. # Esses agradecimentos vão para todos os que me ajudaram, de uma maneira ou
  31. # outra, a conseguir fazer esse script, diretamente, ou indiretamente, na
  32. # criação desse script.
  33. #
  34. # Special Thanks
  35. # I would like to thank you all who helped me out, in one way or another to
  36. # make it through, directly or indirectly, during the creation of this script.
  37. #
  38. # - Feldherren      - Masked
  39. # - Hudell          - Tsukihime
  40. # - DP3             - Trihan
  41. # - Khas            - Balack Maniactics
  42. # - Sonic Ghost
  43. #
  44. #-----------------------------------------------------------------------------#
  45. # Terms of Use
  46. # You're free to use this script in any game you want, just credit Sainthell
  47. # and those thanked for the help in making this script.
  48. #
  49. # Termos de Uso
  50. # Você está livre para usar esse script em qualquer jogo que desejar. Só credite
  51. # o autor (Sainthell) e os que ajudaram no script.
  52. #
  53. #-----------------------------------------------------------------------------#
  54. module SRC
  55.  
  56.   MENU_NAME= "Tutorial"                 #Menu Name / Nome do Menu
  57.   INITIAL_TEXT= "Choose your Tutorial." #Help window text / Texto de Ajuda
  58.   CONTENT_TEXT= "Conteúdo"              #Texto de conteúdo do Tutorial
  59.   USE_DESCRIPTION = true                #Usa janela de descrição?
  60.  
  61.   #Commands / Comandos
  62.   #ID 1
  63.   ID1NAME = "Opção 1"                         #Entry Name / Nome de entrada
  64.   ID1DESCR = "Essa é a primeira opção!"       #Description / Descrição
  65.   ID_1 = 1                                    #Common Event ID / ID de Evento Comum
  66.  
  67.   #ID 2
  68.   ID2NAME = "Opção 2"
  69.   ID2DESCR = "Essa é a segunda opção!"
  70.   ID_2 = 2
  71.   ID2ACTIVATE = 0                            #0 for always activated / 0 para ativo
  72.   ID2AVALIABLE = true                        #Use option? / usar opção?
  73.  
  74.   #ID 3      
  75.   ID3NAME = "Opção 3"
  76.   ID3DESCR = "Essa é a terceira opção!"
  77.   ID_3 = 3
  78.   ID3ACTIVATE = 0
  79.   ID3AVALIABLE = true
  80.  
  81.   #ID 4
  82.   ID4NAME = "Opção 4"
  83.   ID4DESCR = "Essa é a quarta opção!"
  84.   ID_4 = 4
  85.   ID4ACTIVATE = 0
  86.   ID4AVALIABLE = true
  87.  
  88.   #ID 5
  89.   ID5NAME = "Opção 5"
  90.   ID5DESCR = "Essa é a quinta opção!"
  91.   ID_5 = 5
  92.   ID5ACTIVATE = 0
  93.   ID5AVALIABLE = true
  94.  
  95.   #ID 6
  96.   ID6NAME = "Opção 6"
  97.   ID6DESCR = "Essa é a sexta opção!"
  98.   ID_6 = 6
  99.   ID6ACTIVATE = 0
  100.   ID6AVALIABLE = true
  101.  
  102.   #ID 7
  103.   ID7NAME = "Opção 7"
  104.   ID7DESCR = "Essa é a sétima opção!"
  105.   ID_7 = 7
  106.   ID7ACTIVATE = 0
  107.   ID7AVALIABLE = true
  108.  
  109. end
  110.  
  111. class Window_Commands < Window_Command
  112.   def make_command_list
  113.     super()
  114.    add_command(SRC::ID1NAME, :tutorial1)
  115.    
  116.    if SRC::ID2AVALIABLE == true
  117.    if SRC::ID2ACTIVATE == 0
  118.      add_command(SRC::ID2NAME, :tutorial2)
  119.    else if $game_switches[SRC::ID2ACTIVATE]
  120.      add_command(SRC::ID2NAME, :tutorial2)
  121.    end
  122.  end
  123.  end
  124.  
  125.    if SRC::ID3AVALIABLE == true
  126.    if SRC::ID3ACTIVATE == 0
  127.      add_command(SRC::ID3NAME, :tutorial3)
  128.    else if $game_switches[SRC::ID3ACTIVATE];
  129.      add_command(SRC::ID3NAME, :tutorial3)
  130.    end
  131.  end
  132.  end
  133.  
  134.  if SRC::ID4AVALIABLE == true
  135.  if SRC::ID4ACTIVATE == 0
  136.      add_command(SRC::ID4NAME, :tutorial4)
  137.    else if $game_switches[SRC::ID4ACTIVATE];
  138.      add_command(SRC::ID4NAME, :tutorial4)
  139.    end
  140.  end
  141. end
  142.  
  143.  if SRC::ID5AVALIABLE == true
  144.  if SRC::ID5ACTIVATE == 0
  145.      add_command(SRC::ID5NAME, :tutorial5)
  146.    else if $game_switches[SRC::ID5ACTIVATE];
  147.      add_command(SRC::ID5NAME, :tutorial5)
  148.    end
  149.  end
  150. end
  151.  
  152.  if SRC::ID6AVALIABLE == true
  153.  if SRC::ID6ACTIVATE == 0
  154.      add_command(SRC::ID6NAME, :tutorial6)
  155.    else if $game_switches[SRC::ID6ACTIVATE];
  156.      add_command(SRC::ID6NAME, :tutorial6)
  157.    end
  158.  end
  159. end
  160.  
  161.  if SRC::ID7AVALIABLE == true
  162.  if SRC::ID7ACTIVATE == 0
  163.      add_command(SRC::ID7NAME, :tutorial7)
  164.    else if $game_switches[SRC::ID7ACTIVATE];
  165.      add_command(SRC::ID7NAME, :tutorial7)
  166.    end
  167.  end
  168. end
  169.  
  170.  end
  171.    
  172. end
  173. class SaellTutorialScene < Scene_Base
  174.   #--------------------------------------------------------------------------
  175.   # * Inicialização do processo
  176.   #--------------------------------------------------------------------------
  177.   def start
  178.     super()
  179.     create_help_window
  180.     create_tutorialdesc_window if SRC::USE_DESCRIPTION == true
  181.     create_command_window
  182.   end
  183.   #Creates help Menu
  184.   def create_help_window
  185.     @shelp_window = Window_Help.new
  186.     @shelp_window.viewport = @viewport
  187.     clear_help
  188.   end
  189.  
  190.   #Creates Tutorial Description Menu
  191.   def create_tutorialdesc_window
  192.     hx = @smain_window
  193.     @tutorial_window = Window_Tutorialdescr.new(0, 200, @shelp_window.height, Graphics.width - 200, Graphics.height - @shelp_window.height)
  194.     @tutorial_window.viewport = @viewport
  195.   end
  196.  
  197.   #Creates Main Command Menu
  198.   def create_command_window
  199.     hx = Graphics.height / 10
  200.     wy = @shelp_window.height
  201.     @smain_window = Window_Commands.new(0, wy)
  202.     @smain_window.help_window = @shelp2_window
  203.     @smain_window.set_handler(:tutorial1, method(:command_tutorial1))
  204.     @smain_window.set_handler(:tutorial2, method(:command_tutorial2))
  205.     @smain_window.set_handler(:tutorial3, method(:command_tutorial3))
  206.     @smain_window.set_handler(:tutorial4, method(:command_tutorial4))
  207.     @smain_window.set_handler(:tutorial5, method(:command_tutorial5))
  208.     @smain_window.set_handler(:tutorial6, method(:command_tutorial6))
  209.     @smain_window.set_handler(:tutorial7, method(:command_tutorial7))
  210.     @smain_window.set_handler(:cancel,  method(:return_scene))
  211.     @smain_window.activate
  212.   end
  213.  
  214.   #Run Option1
  215.   def command_tutorial1
  216.     $game_temp.reserve_common_event(SRC::ID_1)
  217.     @smain_window.activate
  218.   end
  219.  
  220.   #Run Option2
  221.   def command_tutorial2
  222.     $game_temp.reserve_common_event(SRC::ID_2)
  223.     @smain_window.activate
  224.   end
  225.  
  226.   #Run Option3
  227.   def command_tutorial3
  228.     $game_temp.reserve_common_event(SRC::ID_3)
  229.     @smain_window.activate
  230.   end
  231.  
  232.   #Run Option4
  233.   def command_tutorial4
  234.     $game_temp.reserve_common_event(SRC::ID_4)
  235.     @smain_window.activate
  236.   end
  237.  
  238.   #Run Option5
  239.   def command_tutorial5
  240.     $game_temp.reserve_common_event(SRC::ID_5)
  241.     @smain_window.activate
  242.   end
  243.  
  244.   #Run Option6
  245.   def command_tutorial6
  246.     $game_temp.reserve_common_event(SRC::ID_6)
  247.     @smain_window.activate
  248.   end
  249.  
  250.   #Run Option7
  251.   def command_tutorial7
  252.     $game_temp.reserve_common_event(SRC::ID_7)
  253.     @smain_window.activate
  254.   end
  255.  
  256.   #--------------------------------------------------------------------------
  257.   # * Processamento pós-inicio
  258.   #--------------------------------------------------------------------------
  259.   def post_start
  260.     super()
  261.   end
  262.   #--------------------------------------------------------------------------
  263.   # * Atualização da tela
  264.   #--------------------------------------------------------------------------
  265.   def update
  266.     super()
  267.     @shelp_window.set_text(SRC::INITIAL_TEXT)
  268.     #Show Tutorial Description
  269.     if SRC::USE_DESCRIPTION == true
  270.     case @smain_window.current_symbol
  271.     when :tutorial1; @tutorial_window.draw_text_ex(0,0,SRC::CONTENT_TEXT + "\n" + SRC::ID1DESCR)
  272.     when :tutorial2; @tutorial_window.draw_text_ex(0,0,SRC::CONTENT_TEXT + "\n" + SRC::ID2DESCR)
  273.     when :tutorial3; @tutorial_window.draw_text_ex(0,0,SRC::CONTENT_TEXT + "\n" + SRC::ID3DESCR)
  274.     when :tutorial4; @tutorial_window.draw_text_ex(0,0,SRC::CONTENT_TEXT + "\n" + SRC::ID4DESCR)
  275.     when :tutorial5; @tutorial_window.draw_text_ex(0,0,SRC::CONTENT_TEXT + "\n" + SRC::ID5DESCR)
  276.     when :tutorial6; @tutorial_window.draw_text_ex(0,0,SRC::CONTENT_TEXT + "\n" + SRC::ID6DESCR)
  277.     when :tutorial7; @tutorial_window.draw_text_ex(0,0,SRC::CONTENT_TEXT + "\n" + SRC::ID7DESCR)
  278.     end
  279.     end
  280.   end
  281.  
  282.    def clear_help
  283.     if @shelp_window
  284.       @shelp_window.clear
  285.     end
  286.   end
  287. end
  288.   #--------------------------------------------------------------------------
  289.   # * Processamento pré finalização
  290.   #--------------------------------------------------------------------------
  291.   def pre_terminate
  292.   end
  293.   #--------------------------------------------------------------------------
  294.   # * Finalização do processo
  295.   #--------------------------------------------------------------------------
  296.   def terminate
  297.     super()
  298.     @shelp_window.dispose
  299.     @smain_window.dispose
  300.   end
  301.  
  302.     class Window_Tutorialdescr < Window_Base # Tutorial Description Window
  303.    
  304.   attr_accessor :tutorial_window # Atributo
  305.  
  306.    def initialize(tutorial_window, x, y, width, height) # Propriedade
  307.      super(x, y, width, height)
  308.      refresh
  309.    end
  310.  
  311.   def update
  312.     super
  313.     refresh
  314.   end
  315.  
  316.    def refresh
  317.     contents.clear
  318.    end
  319.  end # End Window_TutorialDescr
  320. #==============================================================================
  321. # ** Window_MenuCommand
  322. #------------------------------------------------------------------------------
  323. #  Esta janela exibe os comandos do menu.
  324. #==============================================================================
  325.  
  326. class Window_MenuCommand < Window_Command
  327.   #--------------------------------------------------------------------------
  328.   # * Adição de comandos próprios
  329.   #--------------------------------------------------------------------------
  330.   alias saell_original_commands add_original_commands
  331.   #----------------------------------------------------
  332.   def add_original_commands
  333.     saell_original_commands
  334.     add_command(SRC::MENU_NAME, :tutorial)
  335.   end
  336. end
  337.  
  338. class Scene_Base
  339.   def interpreter
  340.     @interpreter
  341.   end
  342. end
  343. #==============================================================================
  344. # ** Scene_Menu
  345. #------------------------------------------------------------------------------
  346. #  Esta classe executa o processamento da tela de menu.
  347. #==============================================================================
  348.  
  349. class Scene_Menu < Scene_MenuBase
  350.   #--------------------------------------------------------------------------
  351.   # * Criação da janela de comando / Create Command Window
  352.   #--------------------------------------------------------------------------
  353.   alias saell_command_window create_command_window
  354.   def create_command_window
  355.     saell_command_window()
  356.     @command_window.set_handler(:tutorial,      method(:command_tutorial))
  357.   end
  358.  
  359.   def command_tutorial
  360.     SceneManager.call(SaellTutorialScene)
  361.   end
  362. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement