Script de janela de itens simples?

5 Respostas   91 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Teikolg

  • *
  • Posts: 87
  • Ouros: 24
  • "It all returns to nothing"
Tópico criado em: 15/06/2018 às 22:51 - Última modificação por Skyloftian em 15/06/2018 às 23:52

Olá!
Preciso de um script que modifique e simplifique a janela de itens, retirando as outras categorias de itens e deixando apenas a categoria "Itens".
Já tentei fazer isso pelos scripts de menu padrões, mas ao selecionar a opção "Itens" do menu, os espaços onde ficariam as categorias de itens permanecem, mesmo sem as opções das categorias estando lá.
Se alguém já tiver ou puder fazer um script que ajuste isso e puder disponibilizá-lo para mim, ficarei agradecido.

~Tako

Corvo

Resposta 1: 15/06/2018 às 22:57

Estou sem o Ace, mas dá pra te guiar mais ou menos. Acontece que não basta apenas remover as opções, você precisa desativar o espaço reservado para elas da janela. Em algum lugar do Window_ItemCategory - não tenho como abrir pra te dizer a linha certa - existe o seguinte método:

Código: [Selecionar]
  def col_max
    return 4
  end

Essa é a definição de quantas opções são mostradas na janela. Troque 4 por 1 e pronto. Porém, recomendo que você não deixe apenas a aba Itens. Deixe a Itens Importantes, pois eles tem mais funcionalidades que os itens comuns. Você pode renomeá-la pra Itens e vai dar no mesmo. Mas adianto que fica bem estranho a tela completa com o menu desse jeito.

Teikolg

  • *
  • Posts: 87
  • Ouros: 24
  • "It all returns to nothing"
Resposta 2: 15/06/2018 às 23:06

E tem algum jeito de retirar todas as opções, tipo tirar todas categorias para deixar apenas a lista de itens?

~Tako

Corvo


Gabriel

Resposta 4: 15/06/2018 às 23:20 - Última modificação por Skyloftian em 15/06/2018 às 23:31

Em Window_ItemCategory, no método da linha 41 basta você remover os "add_command" referentes as categorias que você não deseja utilizar.

Fazer apenas isso pode fazer com que o menu padrão fique um pouco estranho, você precisa mudar o col_max para 1 para que o comando fique centralizado e ocupando todo o espaço vazio da janela.

Eis aqui um código rápido que deixa tudo ajustadinho:

Código: [Selecionar]
class Window_ItemCategory < Window_HorzCommand
 
  def col_max
    return 1
  end
 
  def make_command_list
    add_command(Vocab::item,     :item)
  end
 
end



Mas talvez você esteja querendo é remover de vez a janela de categorias (já que dessa forma ela se torna inútil). Seja o caso irei fazer aqui e depois dou um edit nessa mensagem.

EDIT: Aqui está:
Código: [Selecionar]
#===============================================================================
# Simplified Item_Scene
#===============================================================================
class Scene_Item < Scene_ItemBase
 
  def start
    super
    create_help_window
    create_item_window
  end
 
  def create_item_window
    wy = @help_window.height
    wh = Graphics.height - wy
    @item_window = Window_ItemList.new(0, wy, Graphics.width, wh)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.set_handler(:ok,     method(:on_item_ok))
    @item_window.set_handler(:cancel, method(:return_scene))
    @item_window.category = :item
    @item_window.activate
    @item_window.select_last
  end

end # Scene_Item

Nesse caso o primeiro código se torna desnecessário.


Teikolg

  • *
  • Posts: 87
  • Ouros: 24
  • "It all returns to nothing"
Resposta 5: 15/06/2018 às 23:45

Sempre tem. :D
Infelizmente não funcionou aqui mas provavelmente é porque eu já estou usando um script de menu personalizado. Bom, obrigado de qualquer forma! :lol:

EDIT: Aqui está:
Código: [Selecionar]
#===============================================================================
# Simplified Item_Scene
#===============================================================================
class Scene_Item < Scene_ItemBase
 
  def start
    super
    create_help_window
    create_item_window
  end
 
  def create_item_window
    wy = @help_window.height
    wh = Graphics.height - wy
    @item_window = Window_ItemList.new(0, wy, Graphics.width, wh)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.set_handler(:ok,     method(:on_item_ok))
    @item_window.set_handler(:cancel, method(:return_scene))
    @item_window.category = :item
    @item_window.activate
    @item_window.select_last
  end

end # Scene_Item

Nesse caso o primeiro código se torna desnecessário.
Obrigado, realmente funcionou! Eu estava um pouco duvidoso sobre esse script, pois estou usando um script de menu personalizado, mas no final das contas deu certo. :XD: