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

[VX ACE] Janela de Escolhas

Iniciado por dragolipe2, 12/12/2021 às 21:43

12/12/2021 às 21:43 Última edição: 16/12/2021 às 11:59 por dragolipe2
Salve galera !!!

Venho aqui novamente fazer outro pedido, eu havia editado a janela de escolhas para o meu jogo, reposicionei ela para baixo e aumentei a largura dela, também retirei a opacidade e coloquei uma imagem de fundo, tudo mexendo na Window_ChoiceList ficou assim:

Spoiler
[close]

Enfim, o problema é que agora estou fazendo uma arvore de habilidades e precisaria das escolhas no centro, em baixo fica inviável. Porém, eu queria mudar apenas enquanto o jogador estivesse na tela da arvore de habilidades, depois a janela de escolhas voltaria ao normal, então queria saber se seria possível reposicionar ela através de uma condição com uma switch, por exemplo, quando a switch fosse ativada, a janela de escolha mudaria a altura e se fosse possível mudar a largura tbm e quando a switch fosse desativada, a janela voltava ao local padrão. Eu ate encontrei scripts que fazem isso, mas eu n queria utilizar um script, pq a maioria deles modificam a janela e fazem coisas bem mais complexas, eu queria algo bem simples mesmo, então se alguém puder me ajudar com isso, agradeço desde já !

Aqui esta o meu código atualmente :)
Spoiler
#==============================================================================
# ** Window_ChoiceList
#------------------------------------------------------------------------------
#  Esta janela é utilizada para o comando de eventos [Mostrar Escolhas]
#==============================================================================
class Window_ChoiceList < Window_Command
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     message_window : janela de mensagem
  #--------------------------------------------------------------------------
  def initialize(message_window)
    @message_window = message_window
    super(0, 0)
    self.openness = 0
    self.opacity = 0
    deactivate
  end
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    update_placement
    refresh
    select(0)
    open
    activate
  end
  #--------------------------------------------------------------------------
  # * Atualização da posição da janela
  #--------------------------------------------------------------------------
  def update_placement
    self.width = [max_choice_width + 12, 625].max + padding * 2  #Largura Janela
    self.width = [width, Graphics.width].min
    self.height = 117 #Altura Janela #Center = 310 Down = 117
    self.x = Graphics.width - width
    self.y = (Graphics.height - height) / 1
    end
  #--------------------------------------------------------------------------
  # * Aquisição da largura máxima das escolhas
  #--------------------------------------------------------------------------
  def max_choice_width
    $game_message.choices.collect {|s| text_size(s).width }.max
  end
  #--------------------------------------------------------------------------
  # * Cálculo da altura do conteúdo da janela
  #--------------------------------------------------------------------------
  def contents_height
    item_max * item_height
  end
  #--------------------------------------------------------------------------
  # * Criação da lista de comandos
  #--------------------------------------------------------------------------
  def make_command_list
    $game_message.choices.each do |choice|
      add_command(choice, :choice)
    end
  end
  #--------------------------------------------------------------------------
  # * Desenho de um item
  #     index : índice do item
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect_for_text(index)
    draw_text_ex(rect.x, rect.y, command_name(index))
  end
  #--------------------------------------------------------------------------
  # * Definição de cancelamento
  #--------------------------------------------------------------------------
  def cancel_enabled?
    $game_message.choice_cancel_type > 0
  end
  #--------------------------------------------------------------------------
  # * Chamada de controlador de confirmação
  #--------------------------------------------------------------------------
  def call_ok_handler
    $game_message.choice_proc.call(index)
    close
  end
  #--------------------------------------------------------------------------
  # * Chamada de controlador de cancelamento
  #--------------------------------------------------------------------------
  def call_cancel_handler
    $game_message.choice_proc.call($game_message.choice_cancel_type - 1)
    close
  end
end
[close]

(OBS: Problema resolvido, depois de mt procurar em vários fóruns makers encontrei esse Script perfeito, que faz exatamente oque eu quero)


"Não se pode chegar à alvorada, a não ser pelo caminho da escuridão"