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

Como deixar a janela de "Escolhas" transparente e mais embaixo?

Iniciado por Nogueira, 05/03/2019 às 22:55

 Olá makers! Uso o rpg maker VX Ace e minha dúvida na real é bem simples: a janela "Mostrar escolhas" mostra uma série de escolhas (dãããã), mas ela aparece com o fundo da windowskin e no meio/a direita da tela. Gostaria de deixá-la transparente e o mais embaixo possível da tela, como posso fazer isso? Tem alguma maneira de deixá-la transparente ou não transparente de maneira fácil durante o jogo? Ou só definitivamente? Valeu!

Obs: Se for pra escolher, prefiro deixá-la transparente permanentemente

Se você estiver usando o VX Ace, não tem como deixar as escolhas transparentes, com fundo preto ou movê-las para outro local.
Há um script que pode ajudar: https://galvs-scripts.com/category/rmvxa-scripts/audiovisual-effects/#post-454

Se você está usando o MV, na aba das escolhas você pode configurar facilmente.
-=-

Citação de: Biel1595 online 06/03/2019 às 12:24
Se você estiver usando o VX Ace, não tem como deixar as escolhas transparentes, com fundo preto ou movê-las para outro local.
Há um script que pode ajudar: https://galvs-scripts.com/category/rmvxa-scripts/audiovisual-effects/#post-454

Se você está usando o MV, na aba das escolhas você pode configurar facilmente.

Uso o vx ace mesmo, mals não especificar. Estou dando uma olhada nesse script, provavelmente usarei ele, muito obrigado; mas não há nenhuma maneira de mexer nos scripts do jogo e modificar a opacidade da janela mais facilmente mesmo?

Ter pode até ter, mas você parece ser iniciante no RPGM, e script é uma coisa muito complicada, principalmente os do próprio RPG Maker.
Esse script é fácil de usar, e você pode personalizá-lo do seu jeito, recomento que use esse script :ok:
-=-

06/03/2019 às 12:55 #4 Última edição: 06/03/2019 às 12:56 por Nogueira
Citação de: Biel1595 online 06/03/2019 às 12:35
Ter pode até ter, mas você parece ser iniciante no RPGM, e script é uma coisa muito complicada, principalmente os do próprio RPG Maker.
Esse script é fácil de usar, e você pode personalizá-lo do seu jeito, recomento que use esse script :ok:

Iniciante com scripts até que sim, com o rpg maker não hahaha Então, me ajude com o seguinte se possível, olha aqui o script do cara:
#------------------------------------------------------------------------------#
#  Galv's Visual Novel Choices
#------------------------------------------------------------------------------#
#  For: RPGMAKER VX ACE
#  Version 1.9
#------------------------------------------------------------------------------#
#  2013-01-16 - Version 1.9 - Added Y offset for choice window
#  2012-11-28 - Version 1.8 - Z level setting added
#  2012-11-28 - Version 1.7 - Added compatability for some cursor scripts
#  2012-11-28 - Version 1.6 - Fixed a bug that could crash the game.
#  2012-11-28 - Version 1.5 - Added offset to change postion of cursor x and y
#  2012-11-28 - Version 1.4 - Fixed z levels and made cursor use an image
#  2012-11-27 - Version 1.3 - Fixed a bug with cancel choice selection
#  2012-11-27 - Version 1.2 - added a switch to disable script effects
#  2012-11-27 - Version 1.1 - added ability to use different image per choice
#                           - added a couple more options
#  2012-11-27 - Version 1.0 - release
#------------------------------------------------------------------------------#
#  This script overwrites the default "Show Choices" list. The choices are
#  changed so they display centered on the screen with a graphic behind each
#  of them. Made with visual novel choice selection in mind.
#------------------------------------------------------------------------------#
#  INSTRUCTIONS:
#  Copy the graphic from the demo /Graphics/System into your project.
#  Copy the script into your script list, below Materials and above Main
#
#  Some setup options below, most only need to be changed if you use your own
#  custom choice image.
#------------------------------------------------------------------------------#
#  Codes:
#------------------------------------------------------------------------------#
#  Most of the usual codes that work in messages should work in choices.
#  (eg. \V[x], \N[x], \C[x], etc. Look at message tooltip to know more.)
#
#  A new one has been added so you can change the background image for separate
#  choice options.
#
#  \B[x]
#
#  This works by adding the number x (as you put in the code above) to the end
#  of the CHOICE IMAGE file name. For example, the default choice image is:
#  "Choice.png" located in /Graphics/System/. If you put the code anywhere in
#  a choice box:  \B[3]  it will look for "Choice3.png" image in the same
#  location.
#------------------------------------------------------------------------------#
 
($imported ||= {})["Galvs_Image_Choices"] = true
module Galv_Choice
 
#------------------------------------------------------------------------------#
#  SCRIPT SETUP OPTIONS
#------------------------------------------------------------------------------#
   
  CURSOR_IMAGE = "Cursor"  # Images used to determine which option you select
  CURSOR_OPACITY = 255      # Opacity of the cursor
  CURSOR_Y_OFFSET = 0       # Nudge cursor position vertically
  CURSOR_X_OFFSET = 0       # Nudge cursor position horizontally
 
  CHOICE_IMAGE = "Choice"   # Image for each choice located in /Graphics/System
  IMAGE_Y_OFFSET = 3        # Nudge your choice image vertically if needed
  IMAGE_OPACITY = 215       # The opacity of the image
 
  CHOICE_HEIGHT = 45        # How tall each choice.
  CHOICE_ITEM_Y = 2         # Offset for choice item text
   
  CENTER_TEXT = true        # left aligned if false, centered if true
                             
  DISABLE_SWITCH = 1        # Turn this switch ON to disable this script
   
  CHOICES_Y = 0             # Y offset to move choice window up or down.
                            # useful if you use a script that creates a namebox
  CHOICES_Z = 50            # The z value of the choices window. Try changing it
                            # if pictures or other scripts appear over or under
                            # the choices window to how you like.
   
#------------------------------------------------------------------------------#
  OTHER_Y_OFFSET = 12       # May fix other cursor scripts positioning
#------------------------------------------------------------------------------#
#  SCRIPT SETUP OPTIONS
#------------------------------------------------------------------------------#
 
end
 
class Window_ChoiceList < Window_Command
 
  alias galv_choice_initialize initialize
  def initialize(message_window)
    galv_choice_initialize(message_window)
    self.z = Galv_Choice::CHOICES_Z
  end
   
  def start
    @index = 0
    setup_choices
    make_cursor
    refresh
    open
    activate
    update_placement
    update_bgs
    refresh
    select(0)
  end
   
  def make_cursor
    return if $game_switches[Galv_Choice::DISABLE_SWITCH]
    @cursor_sprite = Sprite.new
    @cursor_sprite.bitmap = Cache.system(Galv_Choice::CURSOR_IMAGE)
  end
   
  def setup_choices
    @choice_sprite = []
    if !$game_switches[Galv_Choice::DISABLE_SWITCH]
      self.opacity = 0
      get_widths
    else
      self.opacity = 255
    end
  end
   
  alias galv_choice_update_placement update_placement
  def update_placement
    if $game_switches[Galv_Choice::DISABLE_SWITCH]
      galv_choice_update_placement
    else
      self.width = [max_choice_width + 12, 96].max + padding * 4
      self.width = [width, Graphics.width].min
      self.height = contents_height + Galv_Choice::CHOICE_HEIGHT - 10
      self.x = (Graphics.width - width) / 2
       
      if @message_window.openness < 100
        self.y = Graphics.height - contents_height + item_height / 2
      elsif @message_window.y >= Graphics.height / 2
        self.y = @message_window.y - contents_height + item_height / 2 - Galv_Choice::CHOICES_Y
      else
        self.y = @message_window.y + @message_window.height + item_height / 2 + Galv_Choice::CHOICES_Y
      end
    end
  end
 
  alias galv_choice_contents_height contents_height
  def contents_height
    if $game_switches[Galv_Choice::DISABLE_SWITCH]
      galv_choice_contents_height
    else
      (item_max + 1) * item_height
    end
  end
   
  def draw_item(index)
    rect = item_rect_for_text(index)
    draw_text_ex(rect.x, rect.y, command_name(index))
    if !$game_switches[Galv_Choice::DISABLE_SWITCH]
      draw_bgs(index)
    end
  end
   
  def item_rect_for_text(index)
    rect = item_rect(index)
     
    if $game_switches[Galv_Choice::DISABLE_SWITCH]
      rect.x += 4
      rect.width -= 8
      rect
    else
      if Galv_Choice::CENTER_TEXT
        rect.x = (max_choice_width - @text_sizes.collect {|s| text_size(s).width }[index] + (padding * 3)) / 2
      else
        rect.x += 4
      end
      rect.width -= 8
      rect.y += Galv_Choice::CHOICE_ITEM_Y
      rect
    end
  end
   
  def get_widths
    @text_sizes = []
    @choice_background = []
    $game_message.choices.each_with_index do |c,i|
      @text_sizes[i] = esc_characters(c,i)
    end
  end
   
  def esc_characters(text,index)
    result = text.to_s.clone
    result.gsub!(/\\/)            { "\e" }
    result.gsub!(/\e\e/)          { "\\" }
    result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
    result.gsub!(/\eN\[(\d+)\]/i) { $game_actors[$1.to_i].name}
    result.gsub!(/\eP\[(\d+)\]/i) {
      if $game_party.members[$1.to_i].nil?
        ""
      else
        $game_party.members[$1.to_i].name 
      end
    }
    result.gsub!(/\eG/i)          { Vocab::currency_unit }
    result.gsub!(/\eC\[(\d+)\]/i)  { "" }
    result.gsub!(/\eI\[(\d+)\]/i)  { "   " }
    result.gsub!(/\eB\[(\d+)\]/i)  { @choice_background[index] = $1.to_i }
    result.gsub!(/\eB\[(\d+)\]/i)  { "" }
    result
  end
   
  def convert_escape_characters(text)
    result = text.to_s.clone
    result.gsub!(/\\/)            { "\e" }
    result.gsub!(/\e\e/)          { "\\" }
    result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
    result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
    result.gsub!(/\eN\[(\d+)\]/i) { actor_name($1.to_i) }
    result.gsub!(/\eP\[(\d+)\]/i) { party_member_name($1.to_i) }
    result.gsub!(/\eG/i)          { Vocab::currency_unit }
    result.gsub!(/\eB\[(\d+)\]/i)  { "" }
    result
  end
   
  def item_height
    return line_height if $game_switches[Galv_Choice::DISABLE_SWITCH]
    return Galv_Choice::CHOICE_HEIGHT
  end
   
  def item_rect(index)
    rect = Rect.new
    rect.width = item_width
    rect.height = item_height - 15
    rect.height += 15 if $game_switches[Galv_Choice::DISABLE_SWITCH]
    rect.x = index % col_max * (item_width + spacing)
    rect.y = index / col_max * item_height
    rect
  end
   
  def draw_bgs(index)
    return if @choice_sprite[index] != nil
     
    if @choice_background[index].nil?
      b = ""
    else
      b = @choice_background[index]
    end
    @choice_sprite[index] = Sprite.new
    @choice_sprite[index].bitmap = Cache.system(Galv_Choice::CHOICE_IMAGE + b.to_s)
    @choice_sprite[index].x = index % col_max * (item_width + spacing)
    @choice_sprite[index].y = index / col_max * item_height
    @choice_sprite[index].z = self.z - 2
  end
 
  def update_bgs
    @choice_sprite.each_with_index do |s,i|
      s.y = self.y + i * Galv_Choice::CHOICE_HEIGHT + Galv_Choice::IMAGE_Y_OFFSET
      s.x = (Graphics.width - s.width) / 2
      s.opacity = Galv_Choice::IMAGE_OPACITY
    end
  end
   
  def dispose_bgs
    @choice_sprite.each_with_index do |s,i|
      s.dispose
      s.bitmap.dispose
    end
    if !$game_switches[Galv_Choice::DISABLE_SWITCH]
      @cursor_sprite.dispose
      @cursor_sprite.bitmap.dispose
      @choice_sprite = []
    end
  end
   
  alias galv_choice_call_ok_handler call_ok_handler
  def call_ok_handler
    galv_choice_call_ok_handler
    dispose_bgs
  end
  alias galv_choice_call_cancel_handler call_cancel_handler
  def call_cancel_handler
    galv_choice_call_cancel_handler
    dispose_bgs
  end
   
  def update_cursor
    if $game_switches[Galv_Choice::DISABLE_SWITCH]
      super
    else
      cursor_rect.empty
      return if @cursor_sprite.nil? || @choice_sprite.nil?
      if @index < 0
        @cursor_sprite.opacity = 0
      else
        @cursor_sprite.opacity = Galv_Choice::CURSOR_OPACITY
        @cursor_sprite.x = @choice_sprite[@index].x + Galv_Choice::CURSOR_X_OFFSET
        @cursor_sprite.y = @choice_sprite[@index].y + Galv_Choice::CURSOR_Y_OFFSET
        @cursor_sprite.z = self.z - 1
        cursor_rect.y = (item_height * @index) + Galv_Choice::OTHER_Y_OFFSET
      end
    end
  end
 
end # Window_ChoiceList < Window_Command


Na linha 70 (em  SCRIPT SETUP OPTIONS, onde está escrito   CHOICES_Y = 0 ) ele fala para mudar esse valor caso queira mexer na "altura" da janela de escolhas. Porém, mesmo mudando o valor não acontece nada, sabe o que estou fazendo errado? Quero descer as janelas um pouco mais.

Bem, eu coloquei -50 e 50 e as escolhas mudaram de lugar.
Talvez tente colocar um número mais alto?
-=-

Citação de: Biel1595 online 06/03/2019 às 13:03
Bem, eu coloquei -50 e 50 e as escolhas mudaram de lugar.
Talvez tente colocar um número mais alto?

Sim, tentei vários valores diferentes e mesmo assim elas não mudam de lugar. Será que é só aqui?

Cria um novo projeto e testa, ou tenta colocar o script no topo de todos.
Por final, vê se ele tá dando problema de compatibilidade com algum q vc tem
-=-

06/03/2019 às 13:13 #8 Última edição: 06/03/2019 às 13:26 por Nogueira
Bom, não deu em outro projeto também, mas não tem problema, não é nada que não dê para me adaptar. Muito obrigado pelo script, ficou esteticamente bem bonito! Terei todo o prazer de botar seu nome nos créditos.

De nada, e, obrigado!
Quero ver seu projeto quando estiver pronto! :XD:
-=-

Fiz pra você, vê se funciona do jeitinho que você quer.
Pra configurar é só mudar os valores dos locais comentados.

class Window_ChoiceList < Window_Command
  
  alias shu_initialize initialize
  def initialize(message_window)
    shu_initialize(message_window)
    self.opacity = 0 # Opacidade da janela de escolhas
    @swi = 1         # ID de uma switch para ativar posição personalizada
    @wdx = 150       # Coordenada X da posição personalizada 
    @wdy = 150       # Coordenada Y da posição personalizada
  end
  
  alias shu_update_place update_placement
  def update_placement
    if $game_switches[@swi]
      self.x = @wdx
      self.y = @wdy
    else
      shu_update_place
    end
  end
  
end # FIM


Espero que ajude. ^^,