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

Script de janela de itens simples?

Iniciado por Teikolg, 15/06/2018 às 22:51

15/06/2018 às 22:51 Última edição: 15/06/2018 às 23:52 por Skyloftian
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

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:

  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.

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

~Tako


15/06/2018 às 23:20 #4 Última edição: 15/06/2018 às 23:31 por Skyloftian
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:

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á:
#===============================================================================
# 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.


Citação de: Corvo online 15/06/2018 às 23:09
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:

Citação de: Skyloftian online 15/06/2018 às 23:20
EDIT: Aqui está:
#===============================================================================
# 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: