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

Kinsoyo RGSS3 Factory - Basic Scripts (Interrompida)

Iniciado por miguel8884, 30/08/2014 às 17:32

Sim! esta igual ao que eu imaginei ficou excelente: )

07/09/2014 às 13:28 #31 Última edição: 07/09/2014 às 14:15 por miguel8884
Ok, então vou seguir para as outras!

Edit: Eu estava aqui fazendo, e houve um problema na parte dos itens, não é nada com o script, é o tamanho, olha:

Spoiler
[close]

Como pode ver, a quantidade de itens sobrepõe o nome do item devido o tamanho da janela! O que quer que eu faça?

Voce pode deixar uma coluna de descrição ao inves de duas,tipo apareceria roupa de aventureiro e em baixo o escudo de aço, a janela escrito itens,armadura e etc é um pouco mais para baixo.


A mesma coisa você pode fazer  na janela de equipamento,se der o mesmo problema : )

Pedido pronto!

Bem hategum rpg, seu pedido está aqui, a janela de equipamentos foi um dilema, não consegui resolver um problema, então fiz de um jeito que imagino que possa se aproximar do pedido, vou tentar descobrir uma forma de deixa-la corretamente, mas não garanto...

Enfim, o resto não foi um problema  :XD:

#===============================================================================
# Kinsoyo RGSS3 Factory - Scene_Menu edit
# By: Miguel8884
#
# Não foi 100% por alguns erros que encontrei no caminho, mas tentei me
# aproximar ao máximo ao pedido!
#===============================================================================
class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     x      : coordenada X
  #     y      : coordenada Y
  #--------------------------------------------------------------------------
  def initialize(x,y)
    super(x, window_y, window_width, window_height)
    @pending_index = -1
    refresh
  end
  #--------------------------------------------------------------------------
  # * Aquisição da altura da janela
  #--------------------------------------------------------------------------
  def window_height
    98 + 24
  end
  #--------------------------------------------------------------------------
  # * Aquisição da coordenada Y
  #--------------------------------------------------------------------------
  def window_y
    Graphics.height-(98+24)
  end
  #--------------------------------------------------------------------------
  # * Aquisição de altura do item
  #--------------------------------------------------------------------------
  def item_height
    98
  end
end

class Window_MenuCommand < Window_Command
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     x      : coordenada X
  #--------------------------------------------------------------------------
  def initialize(x)
    super(x, window_y)
    select_last
  end
  #--------------------------------------------------------------------------
  # * Aquisição da coordenada Y
  #--------------------------------------------------------------------------
  def window_y
    Graphics.height-(98+24)-fitting_height(7)
  end
end

class Scene_Menu < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    create_command_window
    create_status_window
    create_gold_window
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de atributos
  #--------------------------------------------------------------------------
  def create_status_window
    @status_window = Window_MenuStatus.new(0,0)
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de comando
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_MenuCommand.new(0)
    @command_window.set_handler(:item,      method(:command_item))
    @command_window.set_handler(:skill,     method(:command_personal))
    @command_window.set_handler(:equip,     method(:command_personal))
    @command_window.set_handler(:status,    method(:command_personal))
    @command_window.set_handler(:formation, method(:command_formation))
    @command_window.set_handler(:save,      method(:command_save))
    @command_window.set_handler(:game_end,  method(:command_game_end))
    @command_window.set_handler(:cancel,    method(:return_scene))
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de dinheiro
  #--------------------------------------------------------------------------
  def create_gold_window
    @gold_window = Window_Gold.new
    @gold_window.x = 160
    @gold_window.y = Graphics.height - @gold_window.height - @status_window.height
  end
end

class Scene_Item < Scene_ItemBase
  #--------------------------------------------------------------------------
  # * Criação da janela de categorias
  #--------------------------------------------------------------------------
  def create_category_window
    @category_window = Window_ItemCategoryEdit.new
    @category_window.viewport = @viewport
    @category_window.help_window = @help_window
    @category_window.y = Graphics.height - @help_window.height - @category_window.height
    @category_window.set_handler(:ok,     method(:on_category_ok))
    @category_window.set_handler(:cancel, method(:return_scene))
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de ajuda.
  #--------------------------------------------------------------------------
  def create_help_window
    @help_window = Window_HelpItem.new
    @help_window.viewport = @viewport
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de itens
  #--------------------------------------------------------------------------
  def create_item_window
    @item_window = Window_ItemList.new(160, 0, Graphics.width-160, Graphics.height-96*2)
    @item_window.y = Graphics.height - @help_window.height - @item_window.height
    @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(:on_item_cancel))
    @category_window.item_window = @item_window
  end
end

class Window_ItemCategoryEdit < Window_Command
  #--------------------------------------------------------------------------
  # * Variáveis públicas
  #--------------------------------------------------------------------------
  attr_reader   :item_window
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
  end
  #--------------------------------------------------------------------------
  # * Aquisição da largura da janela
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end
  #--------------------------------------------------------------------------
  # * Aquisição do número de colunas
  #--------------------------------------------------------------------------
  def visible_line_number
    return 4
  end
  #--------------------------------------------------------------------------
  # * Atualização da tela
  #--------------------------------------------------------------------------
  def update
    super
    @item_window.category = current_symbol if @item_window
  end
  #--------------------------------------------------------------------------
  # * Criação da lista de comandos
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(Vocab::item,     :item)
    add_command(Vocab::weapon,   :weapon)
    add_command(Vocab::armor,    :armor)
    add_command(Vocab::key_item, :key_item)
  end
  #--------------------------------------------------------------------------
  # * Definição da janela de itens
  #     item_window : janela de itens
  #--------------------------------------------------------------------------
  def item_window=(item_window)
    @item_window = item_window
    update
  end
end

class Window_HelpItem < Window_Base
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     line_number : número de linhas
  #--------------------------------------------------------------------------
  def initialize(line_number = 2)
    super(0, window_y, Graphics.width, fitting_height(line_number))
  end
  #--------------------------------------------------------------------------
  # * Configuração de texto
  #     text : texto
  #--------------------------------------------------------------------------
  def set_text(text)
    if text != @text
      @text = text
      refresh
    end
  end
  def window_y
    return Graphics.height-fitting_height(2)
  end
  #--------------------------------------------------------------------------
  # * Limpeza
  #--------------------------------------------------------------------------
  def clear
    set_text("")
  end
  #--------------------------------------------------------------------------
  # * Definição de item
  #     item : habilidades, itens, etc.
  #--------------------------------------------------------------------------
  def set_item(item)
    set_text(item ? item.description : "")
  end
  #--------------------------------------------------------------------------
  # * Renovação
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    draw_text_ex(4, 0, @text)
  end
end

class Window_ItemList < Window_Selectable
  #--------------------------------------------------------------------------
  # * Aquisição do número de colunas
  #--------------------------------------------------------------------------
  def col_max
    return 1
  end
end

class Window_SkillList < Window_Selectable
  #--------------------------------------------------------------------------
  # * Aquisição do número de colunas
  #--------------------------------------------------------------------------
  def col_max
    return 1
  end
end

class Scene_Skill < Scene_ItemBase
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    create_help_window
    create_status_window
    create_command_window
    create_item_window
    @help_window.y = Graphics.height - @status_window.height - @item_window.height - @help_window.height
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de atributos
  #--------------------------------------------------------------------------
  def create_status_window
    @status_window = Window_SkillStatus.new(0, Graphics.height-(98+22))
    @status_window.viewport = @viewport
    @status_window.actor = @actor
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de itens
  #--------------------------------------------------------------------------
  def create_item_window
    wx = 160
    ww = Graphics.width - 160
    @item_window = Window_SkillList.new(wx, 0, ww, 4*24+24)
    @item_window.y = Graphics.height - @status_window.height - @item_window.height
    @item_window.actor = @actor
    @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(:on_item_cancel))
    @command_window.skill_window = @item_window
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de comando
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_SkillCommand.new(0, 0)
    @command_window.y = Graphics.height - @status_window.height - (4*24+24)
    @command_window.viewport = @viewport
    @command_window.help_window = @help_window
    @command_window.actor = @actor
    @command_window.set_handler(:skill,    method(:command_skill))
    @command_window.set_handler(:cancel,   method(:return_scene))
    @command_window.set_handler(:pagedown, method(:next_actor))
    @command_window.set_handler(:pageup,   method(:prev_actor))
  end
end

class Scene_Equip < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Criação da janela de atributos
  #--------------------------------------------------------------------------
  def create_status_window
    @status_window = Window_EquipStatus.new(0, 0)
    @status_window.x = Graphics.width-@status_window.width
    @status_window.y = Graphics.height-@status_window.height
    @status_window.viewport = @viewport
    @status_window.actor = @actor
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de slots
  #--------------------------------------------------------------------------
  def create_slot_window
    wy = @command_window.y + @command_window.height
    ww = Graphics.width - @status_window.width
    @slot_window = Window_EquipSlot.new(0, wy, ww)
    @slot_window.viewport = @viewport
    @slot_window.help_window = @help_window
    @slot_window.status_window = @status_window
    @slot_window.actor = @actor
    @slot_window.set_handler(:ok,       method(:on_slot_ok))
    @slot_window.set_handler(:cancel,   method(:on_slot_cancel))
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de comando
  #--------------------------------------------------------------------------
  def create_command_window
    wy = @help_window.height
    @command_window = Window_EquipCommandItem.new(0, wy)
    @command_window.viewport = @viewport
    @command_window.help_window = @help_window
    @command_window.set_handler(:equip,    method(:command_equip))
    @command_window.set_handler(:optimize, method(:command_optimize))
    @command_window.set_handler(:clear,    method(:command_clear))
    @command_window.set_handler(:cancel,   method(:return_scene))
    @command_window.set_handler(:pagedown, method(:next_actor))
    @command_window.set_handler(:pageup,   method(:prev_actor))
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de item
  #--------------------------------------------------------------------------
  def create_item_window
    wx = 0
    wy = @slot_window.y + @slot_window.height
    ww = Graphics.width-@status_window.width
    wh = Graphics.height - wy
    @item_window = Window_EquipItem.new(wx, wy, ww, wh)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.status_window = @status_window
    @item_window.actor = @actor
    @item_window.set_handler(:ok,     method(:on_item_ok))
    @item_window.set_handler(:cancel, method(:on_item_cancel))
    @slot_window.item_window = @item_window
  end
end

class Window_EquipCommandItem < Window_Command
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     x      : coordenada X
  #     y      : coordenada Y
  #     width  : largura
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y)
  end
  #--------------------------------------------------------------------------
  # * Aquisição da largura da janela
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end
  #--------------------------------------------------------------------------
  # * Criação da lista de comandos
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(Vocab::equip2,   :equip)
    add_command(Vocab::optimize, :optimize)
    add_command(Vocab::clear,    :clear)
  end
end
# Fim do script #

owww!!!
Parece perfeito!!!
+ golds

obrigado,muito obrigado  :*-*:

Opa, que bom que gostou! Precisando de mais alguma coisa... Se eu puder fazer eu faço!

Double Topic mas para entregar o script!  :XD:

Então ArrowPotter seu script está pronto, como eu disse por mp ele demorou mais do que devia por uma parte em que dei uma empacada mas no fim deu certo!

Então nas notas você coloca Gender=id

No id você coloca o id do gênero do item, assim quando chamar a cena de itens por gênero só vão aparecer aqueles que você definiu com tal id, pois para chamar a cena use esse comando no chamar script:

call_gitem(id)

No lugar de id você coloca o id dos itens que irão aparecer, por exemplo eu tenho lá no database

Maçã nas notas eu coloquei Gender=0
Banana nas notas Gender=0
Suco nas notas Gender=1

Então se eu abrir call_gitem(0) assim só vão aparecer a maçã e a banana, claro, caso o herói tenha!
Fiz utilizando as mesmas medidas do outro script, e para as imagens dos itens, é o mesmo esquema, nas notas coloque antes ou depois do Gender Image=id onde id é o id da imagem configurado no script!

Acho que essas foram todas as explicações que eu precisava dar, caso ocorra algum erro, ou alguma coisa que você queira mudar, me fale!

O script:

#===============================================================================
# Kinsoyo RGSS3 Factory - Scene_ItemGender
# By: Miguel8884
#
# Espero que tenha atendido ao pedido!
#===============================================================================
module Item_Menu_Gender
  #--------------------------------------------------------------------------
  # * Criação de variável - Não mexa
  #--------------------------------------------------------------------------
  Photo = Array.new
  #--------------------------------------------------------------------------
  # * Imagens
  #--------------------------------------------------------------------------
  # Posições das imagens #
  Images_XY = [310,135]
  Name_And_Amount_Y = [254,274]
  #--------------------------------------------------------------------------
  # * Vocabulário
  #--------------------------------------------------------------------------
  # Vocabulário para quantidade de itens #
  Item_Amount_Vocab = "Possui:"
  #--------------------------------------------------------------------------
  # * Imagens que irão ser utilizadas para os itens
  #--------------------------------------------------------------------------
  Photo[0] = ""
  Photo[1] = "Img1"
  #--------------------------------------------------------------------------
  # * Fim das configurações
  #--------------------------------------------------------------------------
end

class RPG::BaseItem
  #--------------------------------------------------------------------------
  # * Método para pegar o gênero do item
  #--------------------------------------------------------------------------
  def gender
    if @note.match(/Gender=(\d+)/im)
      return $1
    end
  end
end

class Game_Interpreter
  #--------------------------------------------------------------------------
  # * Chamar a cena de itens por gênero
  #   id  : Id dos itens que irão aparecer
  #--------------------------------------------------------------------------
  def call_gitem(id)
    $gst_igender = id
    SceneManager.call(Scene_ItemGender)
  end
end

class Window_ItemHelp < Window_Base
  #--------------------------------------------------------------------------
  # * Variável pública
  #--------------------------------------------------------------------------
  attr_accessor :item
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize
    @item = 0
    super(0,0,Graphics.width,fitting_height(2))
  end
  #--------------------------------------------------------------------------
  # * Atualização do objeto
  #--------------------------------------------------------------------------
  def update
    super
    set_text
  end
  #--------------------------------------------------------------------------
  # * Configuração de texto
  #--------------------------------------------------------------------------
  def set_text
    self.contents.clear
    if @item != 0 and @item != nil
      draw_text_ex(0,0,@item.description)
    end
  end
end

class Window_ItemGlist < Window_Selectable
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     x      : coordenada X
  #     y      : coordenada Y
  #     width  : largura
  #     height : altura
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super
    @data = []
  end
  #--------------------------------------------------------------------------
  # * Aquisição do número de colunas
  #--------------------------------------------------------------------------
  def item_width
    return 24
  end
  #--------------------------------------------------------------------------
  # * Aquisição de altura do item
  #--------------------------------------------------------------------------
  def item_height
    return 24
  end
  #--------------------------------------------------------------------------
  # * Aquisição do espaçamento entre os itens
  #--------------------------------------------------------------------------
  def spacing
    return 15
  end
  #--------------------------------------------------------------------------
  # * Aquisição do número de colunas
  #--------------------------------------------------------------------------
  def col_max
    return 7
  end
  #--------------------------------------------------------------------------
  # * Aquisição do número máximo de itens
  #--------------------------------------------------------------------------
  def item_max
    @data ? @data.size : 1
  end
  #--------------------------------------------------------------------------
  # * Aquisição das informações do item
  #--------------------------------------------------------------------------
  def item
    @data && index >= 0 ? @data[index] : nil
  end
  #--------------------------------------------------------------------------
  # * Definição de habilitação de seleção
  #--------------------------------------------------------------------------
  def current_item_enabled?
    enable?(@data[index])
  end
  #--------------------------------------------------------------------------
  # * Definição de habilitação do item
  #     item : item
  #--------------------------------------------------------------------------
  def enable?(item)
    $game_party.usable?(item)
  end
  #--------------------------------------------------------------------------
  # * Criação da lista de itens
  #--------------------------------------------------------------------------
  def make_item_list
    @data = $game_party.items.select{|item| item.gender.to_i == $gst_igender}
  end
  #--------------------------------------------------------------------------
  # * Retorno à seleção anterior
  #--------------------------------------------------------------------------
  def select_last
    select(index)
  end
  #--------------------------------------------------------------------------
  # * Desenho de um item
  #     index : índice do item
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    rect = item_rect(index)
    rect.width -= 4
    draw_icon(item.icon_index, rect.x, rect.y, enable?(item))
  end
  #--------------------------------------------------------------------------
  # * Renovação
  #--------------------------------------------------------------------------
  def refresh
    make_item_list
    create_contents
    draw_all_items
  end
end

class Scene_ItemGender < Scene_ItemBase
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    create_window_help
    create_item_list
    create_item_data
  end
  #--------------------------------------------------------------------------
  # * Atualização da tela
  #--------------------------------------------------------------------------
  def update
    super
    @help_window.item = @item_window.item
    @data_window.actual_item = @item_window.item
  end
  #--------------------------------------------------------------------------
  # * Finalização do processo
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_all_windows
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de informação
  #--------------------------------------------------------------------------
  def create_window_help
    @help_window = Window_ItemHelp.new
    @help_window.viewport = @viewport
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de itens
  #--------------------------------------------------------------------------
  def create_item_list
    wh = Graphics.height - @help_window.height
    @item_window = Window_ItemGlist.new(0, @help_window.height, Graphics.width-252, wh)
    @help_window.item = @item_window.item
    @item_window.set_handler(:ok,     method(:on_item_ok))
    @item_window.set_handler(:cancel, method(:on_item_cancel))
    @item_window.viewport = @viewport
    @item_window.activate
    @item_window.select(0)
    @item_window.refresh
  end
  #--------------------------------------------------------------------------
  # * Criação da janela dos dados dos itens
  #--------------------------------------------------------------------------
  def create_item_data
    wy = @help_window.height
    wh = Graphics.height - wy
    @data_window = Window_ItemDataGender.new(@item_window.width,wy,Graphics.width-@item_window.width,wh,@viewport)
    @data_window.viewport = @viewport
  end
  #--------------------------------------------------------------------------
  # * Item [Confirmação]
  #--------------------------------------------------------------------------
  def on_item_ok
    $game_party.last_item.object = item
    determine_item
  end
  #--------------------------------------------------------------------------
  # * Item [Cancelamento]
  #--------------------------------------------------------------------------
  def on_item_cancel
    @item_window.unselect
    return_scene
  end
  #--------------------------------------------------------------------------
  # * Execução de SE para o item
  #--------------------------------------------------------------------------
  def play_se_for_item
    Sound.play_use_item
  end
  #--------------------------------------------------------------------------
  # * Apagar todas as janelas
  #--------------------------------------------------------------------------
  def dispose_all_windows
    @help_window.dispose
    @item_window.dispose
    @data_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Usando um item
  #--------------------------------------------------------------------------
  def use_item
    super
    @item_window.redraw_current_item
  end
end

class Window_ItemDataGender < Window_Base
  attr_accessor :actual_item
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     x        : coordenada X
  #     y        : coordenada Y
  #     width    : largura
  #     height   : altura
  #     viewport : camada
  #--------------------------------------------------------------------------
  def initialize(x,y,width,height,viewport)
    super(x,y,width,height)
    @actual_item = 0
    @image = Sprite.new(viewport)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Atualização do objeto
  #--------------------------------------------------------------------------
  def update
    super
    refresh
  end
  #--------------------------------------------------------------------------
  # * Criação e renovação do conteúdo
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if @actual_item != 0 and @actual_item != nil
      draw_text(0,Item_Menu_Gender::Name_And_Amount_Y[0],self.width,24,@actual_item.name)
      draw_text(0,Item_Menu_Gender::Name_And_Amount_Y[1],self.width,24,"#{Item_Menu_Gender::Item_Amount_Vocab} #{sprintf("%2d",$game_party.item_number(@actual_item))}")
      if @actual_item.note.match(/Image=(\d+)/im)
        image_note = Item_Menu_Gender::Photo[$1.to_i]
      else
        image_note = Item_Menu_Gender::Photo[0]
      end
      @image.bitmap = Cache.picture(image_note)
      @image.x = Item_Menu_Gender::Images_XY[0]
      @image.z = 100
      @image.y = Item_Menu_Gender::Images_XY[1]
    end
  end
  #--------------------------------------------------------------------------
  # * Apagar as imagens
  #--------------------------------------------------------------------------
  def dispose_images
    @image.bitmap.dispose
    @image.dispose
  end
end
# Fim do script #

Ei amigo, tenho um bug no script, quando vou usar magia de cura pelo menu.



pode consertar?melhorar a aparencia, que parece que ele corta um pedaço do menu.

09/09/2014 às 16:48 #40 Última edição: 09/09/2014 às 17:19 por miguel8884
Então, hora que avistei esse bug, já tinha ido! Vou tentar consertar aqui e te passo  :ok:

Edit:

Pronto, dei uma resolvida meio que na gambiarra mas resolvi:

#===============================================================================
# Kinsoyo RGSS3 Factory - Scene_Menu edit
# By: Miguel8884
#
# Não foi 100% por alguns erros que encontrei no caminho, mas tentei me
# aproximar ao máximo ao pedido!
#===============================================================================
class Scene_ItemBase < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Exibição da sub-janela
  #     window : sub-janela
  #--------------------------------------------------------------------------
  def show_sub_window(window)
    width_remain = Graphics.width - window.width
    window.x = 0
    window.y = 0
    window.show.activate
  end
  #--------------------------------------------------------------------------
  # * Ocultação da sub-janela
  #     window : sub-janela
  #--------------------------------------------------------------------------
  def hide_sub_window(window)
    window.hide.deactivate
    activate_item_window
  end
end

class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     x      : coordenada X
  #     y      : coordenada Y
  #--------------------------------------------------------------------------
  def initialize(x,y)
    super(x, window_y, window_width, window_height)
    @pending_index = -1
    refresh
  end
  #--------------------------------------------------------------------------
  # * Aquisição da altura da janela
  #--------------------------------------------------------------------------
  def window_height
    98 + 24
  end
  #--------------------------------------------------------------------------
  # * Aquisição da coordenada Y
  #--------------------------------------------------------------------------
  def window_y
    Graphics.height-(98+24)
  end
  #--------------------------------------------------------------------------
  # * Aquisição de altura do item
  #--------------------------------------------------------------------------
  def item_height
    98
  end
end

class Window_MenuCommand < Window_Command
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     x      : coordenada X
  #--------------------------------------------------------------------------
  def initialize(x)
    super(x, window_y)
    select_last
  end
  #--------------------------------------------------------------------------
  # * Aquisição da coordenada Y
  #--------------------------------------------------------------------------
  def window_y
    Graphics.height-(98+24)-fitting_height(7)
  end
end

class Scene_Menu < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    create_command_window
    create_status_window
    create_gold_window
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de atributos
  #--------------------------------------------------------------------------
  def create_status_window
    @status_window = Window_MenuStatus.new(0,0)
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de comando
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_MenuCommand.new(0)
    @command_window.set_handler(:item,      method(:command_item))
    @command_window.set_handler(:skill,     method(:command_personal))
    @command_window.set_handler(:equip,     method(:command_personal))
    @command_window.set_handler(:status,    method(:command_personal))
    @command_window.set_handler(:formation, method(:command_formation))
    @command_window.set_handler(:save,      method(:command_save))
    @command_window.set_handler(:game_end,  method(:command_game_end))
    @command_window.set_handler(:cancel,    method(:return_scene))
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de dinheiro
  #--------------------------------------------------------------------------
  def create_gold_window
    @gold_window = Window_Gold.new
    @gold_window.x = 160
    @gold_window.y = Graphics.height - @gold_window.height - @status_window.height
  end
end

class Scene_Item < Scene_ItemBase
  #--------------------------------------------------------------------------
  # * Criação da janela de categorias
  #--------------------------------------------------------------------------
  def create_category_window
    @category_window = Window_ItemCategoryEdit.new
    @category_window.viewport = @viewport
    @category_window.help_window = @help_window
    @category_window.y = Graphics.height - @help_window.height - @category_window.height
    @category_window.set_handler(:ok,     method(:on_category_ok))
    @category_window.set_handler(:cancel, method(:return_scene))
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de ajuda.
  #--------------------------------------------------------------------------
  def create_help_window
    @help_window = Window_HelpItem.new
    @help_window.viewport = @viewport
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de itens
  #--------------------------------------------------------------------------
  def create_item_window
    @item_window = Window_ItemList.new(160, 0, Graphics.width-160, Graphics.height-96*2)
    @item_window.y = Graphics.height - @help_window.height - @item_window.height
    @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(:on_item_cancel))
    @category_window.item_window = @item_window
  end
end

class Window_ItemCategoryEdit < Window_Command
  #--------------------------------------------------------------------------
  # * Variáveis públicas
  #--------------------------------------------------------------------------
  attr_reader   :item_window
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
  end
  #--------------------------------------------------------------------------
  # * Aquisição da largura da janela
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end
  #--------------------------------------------------------------------------
  # * Aquisição do número de colunas
  #--------------------------------------------------------------------------
  def visible_line_number
    return 4
  end
  #--------------------------------------------------------------------------
  # * Atualização da tela
  #--------------------------------------------------------------------------
  def update
    super
    @item_window.category = current_symbol if @item_window
  end
  #--------------------------------------------------------------------------
  # * Criação da lista de comandos
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(Vocab::item,     :item)
    add_command(Vocab::weapon,   :weapon)
    add_command(Vocab::armor,    :armor)
    add_command(Vocab::key_item, :key_item)
  end
  #--------------------------------------------------------------------------
  # * Definição da janela de itens
  #     item_window : janela de itens
  #--------------------------------------------------------------------------
  def item_window=(item_window)
    @item_window = item_window
    update
  end
end

class Window_HelpItem < Window_Base
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     line_number : número de linhas
  #--------------------------------------------------------------------------
  def initialize(line_number = 2)
    super(0, window_y, Graphics.width, fitting_height(line_number))
  end
  #--------------------------------------------------------------------------
  # * Configuração de texto
  #     text : texto
  #--------------------------------------------------------------------------
  def set_text(text)
    if text != @text
      @text = text
      refresh
    end
  end
  def window_y
    return Graphics.height-fitting_height(2)
  end
  #--------------------------------------------------------------------------
  # * Limpeza
  #--------------------------------------------------------------------------
  def clear
    set_text("")
  end
  #--------------------------------------------------------------------------
  # * Definição de item
  #     item : habilidades, itens, etc.
  #--------------------------------------------------------------------------
  def set_item(item)
    set_text(item ? item.description : "")
  end
  #--------------------------------------------------------------------------
  # * Renovação
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    draw_text_ex(4, 0, @text)
  end
end

class Window_ItemList < Window_Selectable
  #--------------------------------------------------------------------------
  # * Aquisição do número de colunas
  #--------------------------------------------------------------------------
  def col_max
    return 1
  end
end

class Window_SkillList < Window_Selectable
  #--------------------------------------------------------------------------
  # * Aquisição do número de colunas
  #--------------------------------------------------------------------------
  def col_max
    return 1
  end
end

class Scene_Skill < Scene_ItemBase
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    create_help_window
    create_status_window
    create_command_window
    create_item_window
    @help_window.y = Graphics.height - @status_window.height - @item_window.height - @help_window.height
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de atributos
  #--------------------------------------------------------------------------
  def create_status_window
    @status_window = Window_SkillStatus.new(0, Graphics.height-(98+22))
    @status_window.viewport = @viewport
    @status_window.actor = @actor
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de itens
  #--------------------------------------------------------------------------
  def create_item_window
    wx = 160
    ww = Graphics.width - 160
    @item_window = Window_SkillList.new(wx, 0, ww, 4*24+24)
    @item_window.y = Graphics.height - @status_window.height - @item_window.height
    @item_window.actor = @actor
    @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(:on_item_cancel))
    @command_window.skill_window = @item_window
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de comando
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_SkillCommand.new(0, 0)
    @command_window.y = Graphics.height - @status_window.height - (4*24+24)
    @command_window.viewport = @viewport
    @command_window.help_window = @help_window
    @command_window.actor = @actor
    @command_window.set_handler(:skill,    method(:command_skill))
    @command_window.set_handler(:cancel,   method(:return_scene))
    @command_window.set_handler(:pagedown, method(:next_actor))
    @command_window.set_handler(:pageup,   method(:prev_actor))
  end
end

class Scene_Equip < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Criação da janela de atributos
  #--------------------------------------------------------------------------
  def create_status_window
    @status_window = Window_EquipStatus.new(0, 0)
    @status_window.x = Graphics.width-@status_window.width
    @status_window.y = Graphics.height-@status_window.height
    @status_window.viewport = @viewport
    @status_window.actor = @actor
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de slots
  #--------------------------------------------------------------------------
  def create_slot_window
    wy = @command_window.y + @command_window.height
    ww = Graphics.width - @status_window.width
    @slot_window = Window_EquipSlot.new(0, wy, ww)
    @slot_window.viewport = @viewport
    @slot_window.help_window = @help_window
    @slot_window.status_window = @status_window
    @slot_window.actor = @actor
    @slot_window.set_handler(:ok,       method(:on_slot_ok))
    @slot_window.set_handler(:cancel,   method(:on_slot_cancel))
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de comando
  #--------------------------------------------------------------------------
  def create_command_window
    wy = @help_window.height
    @command_window = Window_EquipCommandItem.new(0, wy)
    @command_window.viewport = @viewport
    @command_window.help_window = @help_window
    @command_window.set_handler(:equip,    method(:command_equip))
    @command_window.set_handler(:optimize, method(:command_optimize))
    @command_window.set_handler(:clear,    method(:command_clear))
    @command_window.set_handler(:cancel,   method(:return_scene))
    @command_window.set_handler(:pagedown, method(:next_actor))
    @command_window.set_handler(:pageup,   method(:prev_actor))
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de item
  #--------------------------------------------------------------------------
  def create_item_window
    wx = 0
    wy = @slot_window.y + @slot_window.height
    ww = Graphics.width-@status_window.width
    wh = Graphics.height - wy
    @item_window = Window_EquipItem.new(wx, wy, ww, wh)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.status_window = @status_window
    @item_window.actor = @actor
    @item_window.set_handler(:ok,     method(:on_item_ok))
    @item_window.set_handler(:cancel, method(:on_item_cancel))
    @slot_window.item_window = @item_window
  end
end

class Window_EquipCommandItem < Window_Command
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     x      : coordenada X
  #     y      : coordenada Y
  #     width  : largura
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y)
  end
  #--------------------------------------------------------------------------
  # * Aquisição da largura da janela
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end
  #--------------------------------------------------------------------------
  # * Criação da lista de comandos
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(Vocab::equip2,   :equip)
    add_command(Vocab::optimize, :optimize)
    add_command(Vocab::clear,    :clear)
  end
end
# Fim do script #

09/09/2014 às 17:13 #41 Última edição: 09/09/2014 às 17:38 por hategum rpg
Legal, fico aguardando : )

edt:  :*-*: agora esta perfeito!!! : )

+golds

Bem é para substituir o outro script? Tipo e como eu adiciono Gêneros? Fiquei tonto rsrsrs mas valeu!

Não não, não substitua o outro script, este adiciona a opção de menu por gêneros, então você faz o seguinte, no chamar script, você coloca esse comando e então ele chama a cena e já com os itens do gênero definido, que é o id!

call_gitem(id)

No id você coloca o número de id que apenas os itens que tiverem aquele id no banco de dados nas notas, vão aparecer! É meio dificil de explicar kkk. Tente ver se entendeu!

Ufa antes de vc responder eu já tinha descoberto hihihi tão fácil e eu quebrando a cabeça. Valeu o script funcionou perfeitamente. Pena que eu tenha que colocar as imagens neste script também. Só uma dúvida... meu jogo terá centenas de itens, o Editor de scripts não tem limite de linhas tem? Porquê vou colocar imagens em mais de 400 itens.