Welcome! Here you can paste sources and general debugging text, You can even set yourself a password if you want to keep it just for yourself.

Posted by Heromerom on June Tue 14th 7:33 PM - Never Expires - Views: 5480

  1. #===============================================================================
  2. # ** Choose Class System
  3. # Autor: miguel8884
  4. #-------------------------------------------------------------------------------
  5. # Data de lançamento: 17/08/2014
  6. # Versão: 1.0
  7. #-------------------------------------------------------------------------------
  8. # Dependências:
  9. # * Nenhum
  10. #-------------------------------------------------------------------------------
  11. # Descrição:
  12. #
  13. # O script faz com que apareça uma tela de escolha de classe onde é possível
  14. # aparecer uma imagem da classe, e seus atributos, além de uma curta descrição
  15. # da mesma!
  16. #-------------------------------------------------------------------------------
  17. # Características:
  18. # * Altamente configurável!
  19. # * Número de classes ilimitadas!
  20. # * Mudança automática de classe!
  21. # * Barras de atributos!
  22. # * Descrição para a classe!
  23. #-------------------------------------------------------------------------------
  24. # Log:
  25. # v1.0
  26. #   17/08/2014 - Script lançado!
  27. #===============================================================================
  28. module Choose_Class
  29.   #=============================================================================
  30.   # Vocabulário
  31.   #=============================================================================
  32.   # Vocabulário da window superior #
  33.   Choose_Class_Vocab = "Escolha uma classe"
  34.   # Vocabulário para barra de ataque #
  35.   Attack_Vocab = "ATK"
  36.   # Vocabulário para barra de defesa #
  37.   Defense_Vocab = "DEF"
  38.   # Vocabulário para barra de ataque mágico #
  39.   Mag_Attack_Vocab = "MAT"
  40.   # Vocabulário para barra de defesa mágica #
  41.   Mag_Defense_Vocab = "MDF"
  42.   # Vocabulário para barra de agilidade #
  43.   Agility_Vocab = "AGI"
  44.   # Vocabulário para barra de sorte #
  45.   Luck_Vocab = "LUC"
  46.   #=============================================================================
  47.   # Configurações básicas
  48.   #=============================================================================
  49.   # Chamar a escolha de classe após definir novo jogo? #
  50.   Call_After_Scene_Title = true
  51.   # Número que os atributos das classes serão divididos #
  52.   Max_Number = 99
  53.   #=============================================================================
  54.   # Imagens
  55.   #=============================================================================
  56.   # Fundo de parallax? #
  57.   Parallax_Background = true
  58.   # Nome do fundo de parallax #
  59.   Parallax_Background_Img = "DarkSpace2"
  60.   # Animação no fundo de parallax? #
  61.   Parallax_Background_Animation = true
  62.   # Velocidade da aniamção #
  63.   Parallax_Background_Speed = 1
  64.   # Imagem na pasta pictures caso não use parallax #
  65.   Image_Background_Img = ""
  66.   # Imagem do battler de cada classe - deve estar na ordem das classes definidas #
  67.   Class_Image = [
  68.   "Warrior_m",
  69.   "Assassin",
  70.   "Delf_f",
  71.   "Cleric_m",
  72.   "Captain"
  73.   ]
  74.   #=============================================================================
  75.   # Classes
  76.   #=============================================================================
  77.   # Id das classes no abnco de dados que serão utilziadas na lista #
  78.   Classes = [
  79.   1,2,3,4,5
  80.   ]
  81.   # Descrição das classes, em ordem das classes definidas #
  82.   Description = [
  83.   "É uma classe forte invencível matador louco",
  84.   "É uma classe incrível",
  85.   "É super forte",
  86.   "Extra coldres",
  87.   "Bruxos super bruxo"
  88.   ]
  89.   #=============================================================================
  90.   # Cores
  91.   #=============================================================================
  92.   # Cor de cada barra, sendo a primeira a cor 1 do degradê e a segunda a cor
  93.   # 2 do degradê, cada cor segue esse padrão: RGB, ou seja, vermelho verde e
  94.   # azul.
  95.   # A sequência de cores é a seguinte:
  96.   # Ataque
  97.   # Defesa
  98.   # Ataque Mágico
  99.   # Defesa Mágica
  100.   # Agilidade
  101.   # Sorte
  102.   #=============================================================================
  103.   Color1 = [Color.new(0,255,0),Color.new(0,190,0)]
  104.   Color2 = [Color.new(0,255,0),Color.new(0,190,0)]
  105.   Color3 = [Color.new(0,255,0),Color.new(0,190,0)]
  106.   Color4 = [Color.new(0,255,0),Color.new(0,190,0)]
  107.   Color5 = [Color.new(0,255,0),Color.new(0,190,0)]
  108.   Color6 = [Color.new(0,255,0),Color.new(0,190,0)]
  109.   #=============================================================================
  110.   # Fim das configurações
  111.   #=============================================================================
  112. end
  113. #===============================================================================
  114. # Aqui começa o script - Não mexa
  115. #===============================================================================
  116. class Scene_Title < Scene_Base
  117.   alias gst_cc_cng command_new_game
  118.   def command_new_game
  119.     if Choose_Class::Call_After_Scene_Title
  120.       SceneManager.call(Scene_Classes)
  121.     else
  122.       gst_cc_cng
  123.     end
  124.   end
  125. end
  126. #===============================================================================
  127. # Classe que cria a window superior
  128. #===============================================================================
  129. class Window_ChooseClass < Window_Base
  130.   def initialize
  131.     super(0,0,544,54)
  132.     draw_text(0,0,544,30,Choose_Class::Choose_Class_Vocab,1)
  133.   end
  134. end
  135. #===============================================================================
  136. # Cria a window que guarda as barras
  137. #===============================================================================
  138. class Window_ClassesBase < Window_Base
  139.   attr_accessor :index
  140.   def initialize
  141.     super(130,54,249,299-54)
  142.     @index = 0
  143.     create_gauges
  144.   end
  145.   def update
  146.     super
  147.     create_gauges
  148.   end
  149.   def create_gauges
  150.     self.contents.clear
  151.     draw_text(0,0,130,30,$data_classes[Choose_Class::Classes[@index]].name)
  152.     draw_gauge(0,30,200,$data_classes[Choose_Class::Classes[@index]].params[2,1].to_f/Choose_Class::Max_Number.to_f,Choose_Class::Color1[0],Choose_Class::Color1[1])
  153.     draw_text(0,30,200,30,Choose_Class::Attack_Vocab,1)
  154.     draw_gauge(0,60,200,$data_classes[Choose_Class::Classes[@index]].params[3,1].to_f/Choose_Class::Max_Number.to_f,Choose_Class::Color2[0],Choose_Class::Color2[1])
  155.     draw_text(0,60,200,30,Choose_Class::Defense_Vocab,1)
  156.     draw_gauge(0,90,200,$data_classes[Choose_Class::Classes[@index]].params[4,1].to_f/Choose_Class::Max_Number.to_f,Choose_Class::Color3[0],Choose_Class::Color3[1])
  157.     draw_text(0,90,200,30,Choose_Class::Mag_Attack_Vocab,1)
  158.     draw_gauge(0,120,200,$data_classes[Choose_Class::Classes[@index]].params[5,1].to_f/Choose_Class::Max_Number.to_f,Choose_Class::Color4[0],Choose_Class::Color4[1])
  159.     draw_text(0,120,200,30,Choose_Class::Mag_Defense_Vocab,1)
  160.     draw_gauge(0,150,200,$data_classes[Choose_Class::Classes[@index]].params[6,1].to_f/Choose_Class::Max_Number.to_f,Choose_Class::Color5[0],Choose_Class::Color5[1])
  161.     draw_text(0,150,200,30,Choose_Class::Agility_Vocab,1)
  162.     draw_gauge(0,180,200,$data_classes[Choose_Class::Classes[@index]].params[7,1].to_f/Choose_Class::Max_Number.to_f,Choose_Class::Color6[0],Choose_Class::Color6[1])
  163.     draw_text(0,180,200,30,Choose_Class::Luck_Vocab,1)
  164.   end
  165. end
  166. #===============================================================================
  167. # Cria a window que faz a lista de classes
  168. #===============================================================================
  169. class Window_ClassesList < Window_Command
  170.   def initialize
  171.     super(0,54)
  172.   end
  173.   def window_width
  174.     return 130
  175.   end
  176.   def window_height
  177.     if item_max >= 14
  178.       return 416-54
  179.     else
  180.       return fitting_height(item_max)
  181.     end
  182.   end
  183.   def visible_line_number
  184.     return 16
  185.   end
  186.   def make_command_list
  187.     Choose_Class::Classes.each_index{|c|
  188.       add_command($data_classes[Choose_Class::Classes[c]].name,:class)
  189.     }
  190.   end
  191. end
  192. #===============================================================================
  193. # Classe que cria a window de descrição
  194. #===============================================================================
  195. class Window_ClassDescription < Window_Base
  196.   attr_accessor :index
  197.   def initialize
  198.     super(130,416-118,544-130,118)
  199.     @index = 0
  200.     create_description
  201.   end
  202.   def update
  203.     super
  204.     create_description
  205.   end
  206.   def create_description
  207.     self.contents.clear
  208.     draw_text(0,0,544-130,40,Choose_Class::Description[@index],1)
  209.   end
  210. end
  211. #===============================================================================
  212. # Classe que gerencia a scene das classes
  213. #===============================================================================
  214. class Scene_Classes < Scene_Base
  215.   def start
  216.     super
  217.     create_background
  218.     create_windows
  219.     create_command_window
  220.     @battler = Sprite.new
  221.     create_battlers
  222.   end
  223.   def update
  224.     super
  225.     @window_description.index = @command_window.index
  226.     @window_base.index = @command_window.index
  227.     if Choose_Class::Parallax_Background_Animation && @back.is_a?(Plane)
  228.       @back.ox += Choose_Class::Parallax_Background_Speed
  229.     end
  230.     create_battlers
  231.   end
  232.   def terminate
  233.     super
  234.     dispose_background
  235.     dispose_windows
  236.     dispose_battlers
  237.   end
  238.   def create_background
  239.     if Choose_Class::Parallax_Background
  240.       @back = Plane.new
  241.       @back.bitmap = Cache.parallax(Choose_Class::Parallax_Background_Img)
  242.     else
  243.       @back = Sprite.new
  244.       @back.bitmap = Cache.picture(Choose_Class::Image_Background_Img)
  245.     end
  246.   end
  247.   def dispose_background
  248.     @back.bitmap.dispose
  249.     @back.dispose
  250.   end
  251.   def dispose_windows
  252.     @window_description.dispose
  253.     @window_base.dispose
  254.     @window_classchoose.dispose
  255.     @command_window.dispose
  256.   end
  257.   def create_windows
  258.     @window_description = Window_ClassDescription.new
  259.     @window_base = Window_ClassesBase.new
  260.     @window_classchoose = Window_ChooseClass.new
  261.   end
  262.   def create_command_window
  263.     @command_window = Window_ClassesList.new
  264.     @command_window.set_handler(:class,method(:choosed_class))
  265.   end
  266.   def create_battlers
  267.     @battler.dispose
  268.     @battler = Sprite.new
  269.     @battler.bitmap = Cache.battler(Choose_Class::Class_Image[@command_window.index],0)
  270.     @battler.z = 999
  271.     @battler.x = 130+249
  272.     @battler.y = 74
  273.   end
  274.   def dispose_battlers
  275.     @battler.bitmap.dispose
  276.     @battler.dispose
  277.   end
  278.   def choosed_class
  279.     DataManager.setup_new_game
  280.     fadeout_all
  281.     $game_map.autoplay
  282.     SceneManager.goto(Scene_Map)
  283.     $game_party.members[0].change_class(Choose_Class::Classes[@command_window.index])
  284.     $game_party.members[0].hp = $game_party.members[0].mhp
  285.     $game_party.members[0].mp = $game_party.members[0].mmp
  286.   end
  287. end
  288. #===============================================================================
  289. # Fim do script
  290. #===============================================================================
Language:
To highlight particular lines, prefix each line with @@




© 2017  admin@YSblue (Implemented and Adapted) - Powered by PASTE 1.0