O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Item Class Change

Iniciado por diohellfire, 07/09/2013 às 00:33

07/09/2013 às 00:33 Última edição: 01/08/2019 às 16:10 por Gabriel N.
ItemClassChange

Compativel com:RMVXA
Compatibilidade: boa
Facilidade de uso: fácil
Lag gerado: desprezível

[box class=titlebg]
Condições de Uso
[/box]
Livre

[box class=titlebg]
Para que serve o script
[/box]
com esse script você cria um item que muda a classe do personagem do grupo a sua escolha, mantendo o nível do personagem, ele detecta quantos personagens tem no grupo e da a opção(funciona com até 6 personagens),é bem simples, eu fiz para o meu jogo, eu decidi postar porque acho que pode ser útil pra alguem rs.

[box class=titlebg]
Imagens
[/box]
Spoiler
[close]

[box class=titlebg]
Script
[/box]
class Window_ChangeClassCommand < Window_Command

  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(Graphics.width - 160, 100)
    
  end
  #--------------------------------------------------------------------------
  # * Configura a largura e altura da janela
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end
  def window_height
        if $game_party.members.size == 1
          return 50
        end
        if $game_party.members.size == 2
          return 75
        end
        if $game_party.members.size == 3
          return 100
        end
        if $game_party.members.size == 4
          return 120
        end
        if $game_party.members.size == 5
          return 145
        end
        if $game_party.members.size == 6
          return 170
        end

        
        
         
  end

  def make_command_list
    add_main_commands
  end
  
  #--------------------------------------------------------------------------
  # Detecta quantos membros tem no grupo e da as opções
  #--------------------------------------------------------------------------
  def add_main_commands
    if $game_party.members.size == 1
    add_command($data_actors[1].name, :actor1)
    end
  if $game_party.members.size == 2
    add_command($data_actors[1].name, :actor1) 
    add_command($data_actors[2].name,  :actor2)
    end
  if $game_party.members.size == 3
    add_command($data_actors[1].name, :actor1)
    add_command($data_actors[2].name,  :actor2)
    add_command($data_actors[3].name,   :actor3)
    end
  if $game_party.members.size == 4
    add_command($data_actors[1].name, :actor1)
    add_command($data_actors[2].name,  :actor2)
    add_command($data_actors[3].name,   :actor3)
    add_command($data_actors[4].name, :actor4)
    
  end
  if $game_party.members.size == 5
    add_command($data_actors[1].name, :actor1)
    add_command($data_actors[2].name,  :actor2)
    add_command($data_actors[3].name,   :actor3)
    add_command($data_actors[4].name, :actor4)
    add_command($data_actors[5].name, :actor5)
    
  end
  if $game_party.members.size == 6
    add_command($data_actors[1].name, :actor1)
    add_command($data_actors[2].name,  :actor2)
    add_command($data_actors[3].name,   :actor3)
    add_command($data_actors[4].name, :actor4)
    add_command($data_actors[5].name, :actor5)
    add_command($data_actors[6].name, :actor6)
    
    end
  end

end


module SceneManager
  def self.call_CC(int,text)
    @scene = Scene_ChangeClass.new(int,text)
  end
end

#==============================================================================
# ** Scene_ChangeClass
#------------------------------------------------------------------------------
#  Função principal
#==============================================================================
class Scene_ChangeClass < Scene_MenuBase
    def initialize(int,text)
    @c = int
    @crist = text
    end
    def start
      super
      create_background
      @window = Window_Base.new(0,0,Graphics.width ,100)
      @window.contents.draw_text(0,0,Graphics.width ,40,"Escolha em qual personagem você deseja usar o " + @crist + ":")
      create_windows

     end
     def update
       super
      if Input.trigger?(:B)
      SceneManager.call(Scene_Map)
      SceneManager.call(Scene_Menu)
SceneManager.call(Scene_Item)
    end
    end

  #--------------------------------------------------------------------------
  # * Cria a janela de escolhas
  #--------------------------------------------------------------------------
    def create_windows
      @mycmd = Window_ChangeClassCommand.new
      @mycmd.set_handler(:actor1, method(:s_actor1))
      @mycmd.set_handler(:actor2, method(:s_actor2))
      @mycmd.set_handler(:actor3, method(:s_actor3))
      @mycmd.set_handler(:actor4, method(:s_actor4))

    end
    
    def s_actor1
      $game_actors[1].change_class(@c, true)
      SceneManager.call(Scene_Map)
      SceneManager.call(Scene_Menu)
      SceneManager.call(Scene_Item)
      
      end
    def s_actor2
      $game_actors[2].change_class(@c, true)
      SceneManager.call(Scene_Map)
      SceneManager.call(Scene_Menu)
      SceneManager.call(Scene_Item)
    end
    def s_actor3
      $game_actors[3].change_class(@c, true)
      SceneManager.call(Scene_Map)
      SceneManager.call(Scene_Menu)
      SceneManager.call(Scene_Item)
    end
    def s_actor4
      $game_actors[4].change_class(@c, true)
      SceneManager.call(Scene_Map)
      SceneManager.call(Scene_Menu)
      SceneManager.call(Scene_Item)
    end
    def s_actor4
      $game_actors[5].change_class(@c, true)
      SceneManager.call(Scene_Map)
      SceneManager.call(Scene_Menu)
      SceneManager.call(Scene_Item)
    end
    def s_actor4
      $game_actors[6].change_class(@c, true)
      SceneManager.call(Scene_Map)
      SceneManager.call(Scene_Menu)
      SceneManager.call(Scene_Item)
    end
  
  end
  
 

[box class=titlebg]
Como Usar
[/box]
Coloque o script acima do Main,
Faça um common event(evento comum), nele faça um evento que chama o script:

SceneManager.call_CC(1,"Nome_do_item")

Onde o 1 é o numero da classe para qual vai ser mudada e o Nome_do_item é o nome do item cujo irá aparecer ao usar o item,
Exemplo:
Spoiler

[close]
Apos isso é só criar um item , no Effects(effeitos) fazer chamar o common event criado
Exemplo:
Spoiler
[close]

[box class=titlebg]
Créditos e Avisos
[/box]
Criador: Dio(eu)
"Se o conhecimento pode criar problemas, não é através da ignorância que podemos solucioná-los." (Isaac Asimov)

Bem interessante, me lembrou um pouco do sistema de Jobs do Final Fantasy V que você tinha que pegar aqueles cristais, ou jóias, ou sei lá o que, para liberar as classes. De fácil manuseio também. Bom trabalho!

Viva a lenda!



Na verdade a minha intenção foi fazer algo bem parecido rs
Valeu!
"Se o conhecimento pode criar problemas, não é através da ignorância que podemos solucioná-los." (Isaac Asimov)