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

Resident evil menu

Iniciado por Alanzdr, 28/07/2014 às 14:38

28/07/2014 às 14:38 Última edição: 15/02/2015 às 00:15 por Alanzdr
Resident evil menu
Introdução:
Spoiler

Bom eu tava procurando um menu estilo resident evil e não encontrei então resolvi fazer um menu, sei programar em c# e java e resolvi aprende um pouco de RGSS3, o script não ta perfeito ainda tem bastante falhas, mas não pretendo mexer nele por enquanto. Se quiser disponibilizar em outros forum ou editá-lo você está livre pra faze mais só peço que deem os créditos 
[close]
Características:
Spoiler

Sistema de Combinação
Uso para jogos de terror
Separação entre itens e key_itens
Menu de itens direto no menu
[close]

Screenshots:
Spoiler



[close]

Como usar:
Spoiler

Para usar basta colocar o script do menu em cima do Main
Para fazer uma combinação basta ir no script e criar uma nova linha no recipe no inicio do código(mais informações no script)
[close]

Script:
click Aqui para ir para a pagina onde esta o script

Créditos e Agradecimentos:
Spoiler

A min por ter feio o codigo
ao Khas pelas video aulas que me ajudaram um pouco em intende RGSS3
[close]

28/07/2014 às 19:17 #1 Última edição: 28/07/2014 às 19:19 por Mistyrol
Ora, é um script interessante, o menu do Resident Evil sempre foi algo legal e realista em relação a quantidade máxima de itens que se pode carregar. Meus parabéns, continue treinando sua programação! :33

Muito bom,porém eu não sei como retira a função "combinar",pois ela não me é útil.  :T.T:

@Jingoku

Tente com este script (é o mesmo, só que sem a parte de Combine... - Portanto não me dê créditos. Ninguém tem que receber créditos por remover linhas :v):

#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  Esta classe executa o processamento da tela de menu.
#==============================================================================
module RE_MENU
  #--------------------------------------------------------------------------
  # * Vocabulario do menu
  #--------------------------------------------------------------------------
  # * Menu que mostra o item equipado
  Equip = "Equipado: "
  # * Para descarta itens
  Descarte = "Descartar"
  # * Para usar itens
  Use = "Usar"
  # * para equipar itens
  Equipe = "Equipar"
  # * para cabeçalho do invetario
  Inventario = "Inventario"
  # * para cabeçalhos dos keys itens
  Key_itens = "Documentos"
  # * para janela de help, nome da descrição
  Help_desc = "Descrição: "
  # * para janela de help, nome para o item
  Help_name = "Nome: "

end







#==============================================================================
# ** Window_Help
#------------------------------------------------------------------------------
#  Esta janela exibe explicação de habilidades e itens e outras informações.
#==============================================================================

class RE_Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     line_number : número de linhas
  #--------------------------------------------------------------------------
  def initialize(line_number = 3)
    super(0, 150, 345, Graphics.height - 150)
  end
  #--------------------------------------------------------------------------
  # * Configuração de texto
  #     text : texto
  #--------------------------------------------------------------------------
  def set_text(text)
    if text != @text
      @text = text
      refresh
    end
  end
  #--------------------------------------------------------------------------
  # * Limpeza
  #--------------------------------------------------------------------------
  def clear
    set_text("")
  end
  #--------------------------------------------------------------------------
  # * Definição de item
  #     item : habilidades, itens, etc.
  #--------------------------------------------------------------------------
  def set_item(item)
    set_text(item ? item.description : "")
    @item = item
  end
  #--------------------------------------------------------------------------
  # * Renovação
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    if @item != nil
      
      draw_text(5, 120, 150, 50, RE_MENU::Help_desc)
      draw_text_ex(5, 170, @text)
      draw_text(5, 0 , 350, 50, RE_MENU::Help_name + @item.name)
    end
    
  end
end

#==============================================================================
# ** Window_MenuCommand
#------------------------------------------------------------------------------
#  Esta janela exibe os comandos do menu.
#==============================================================================
class MenuCommand < Window_HorzCommand
  #--------------------------------------------------------------------------
  # * Inicialização da posição do comando de seleção (método da classe)
  #--------------------------------------------------------------------------
  def self.init_command_position
    @@last_command_symbol = nil
  end
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize
    super(244, 0)
  end
  #--------------------------------------------------------------------------
  # * Aquisição da largura da janela
  #--------------------------------------------------------------------------
  def window_width
    return 300
  end
  
  #--------------------------------------------------------------------------
  # * Aquisição da largura da janela
  #--------------------------------------------------------------------------
  def window_height
    50
  end
  #--------------------------------------------------------------------------
  # * Aquisição do número de linhas exibidas
  #--------------------------------------------------------------------------
  def col_max
    return 3
  end
  #def visible_line_number
   # 3
 # end
  #--------------------------------------------------------------------------
  # * Criação da lista de comandos
  #--------------------------------------------------------------------------
  def make_command_list
    add_main_commands
    add_game_end_command
  end
  #--------------------------------------------------------------------------
  # * Adição dos comandos principais
  #--------------------------------------------------------------------------
  def add_main_commands
    add_command(RE_MENU::Inventario,   :item,   main_commands_enabled)
    add_command(RE_MENU::Key_itens, :key_item, main_commands_enabled)
  end
  
  #--------------------------------------------------------------------------
  # * Definição de habilitação dos comandos principais
  #--------------------------------------------------------------------------
  def main_commands_enabled
    $game_party.exists
  end
  #--------------------------------------------------------------------------
  # * Adição do comando de fim do jogo
  #--------------------------------------------------------------------------
  def add_game_end_command
    add_command(Vocab::game_end, :game_end)
  end
  #--------------------------------------------------------------------------
  # * Definição de resultado ao pressionar o botão de confirmação
  #--------------------------------------------------------------------------
  def process_ok
    @@last_command_symbol = current_symbol
    super
  end
  #--------------------------------------------------------------------------
  # * Definição da janela de itens
  #     item_window : janela de itens
  #--------------------------------------------------------------------------
  def item_window=(item_window)
    @item_window = item_window
    @item_window.category = current_symbol
  end
end

class Window_ItemList < Window_Selectable
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     x      : coordenada X
  #     y      : coordenada Y
  #     width  : largura
  #     height : altura
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super
    @category = :none
    @data = []
  end
  #--------------------------------------------------------------------------
  # * Definição de categoria
  #--------------------------------------------------------------------------
  def category=(category)
    return if @category == category
    @category = category
    refresh
    self.oy = 0
  end
  #--------------------------------------------------------------------------
  # * Aquisição do número de colunas
  #--------------------------------------------------------------------------
  def col_max
    return 2
  end
  
  #--------------------------------------------------------------------------
  # * Aquisição do número máximo de itens
  #--------------------------------------------------------------------------
  def item_max
    @data ? @data.size : 1
  end
  #--------------------------------------------------------------------------
  # * Aquisição do espaçamento entre os itens
  #--------------------------------------------------------------------------
  def spacing
    return 5
  end
  
  #--------------------------------------------------------------------------
  # * Aquisição de altura do item
  #--------------------------------------------------------------------------
  def item_height
    80
  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
  #--------------------------------------------------------------------------
  # * Inclusão do item na lista
  #     item : item
  #--------------------------------------------------------------------------
  def include?(item)
    case @category
    when :item
      item.is_a?(RPG::Item) && !item.key_item? or item.is_a?(RPG::Weapon)
    when :key_item
      item.is_a?(RPG::Item) && item.key_item?
    else
      false
    end
  end
  #--------------------------------------------------------------------------
  # * Definição de itens disponíveis para uso
  #--------------------------------------------------------------------------
  def usable?(item)
    if item.is_a?(RPG::Weapon)
      return true
    else
      return $game_party.usable?(item)
    end
    return false
    
  end
  #--------------------------------------------------------------------------
  # * Definição de habilitação do item
  #     item : item
  #--------------------------------------------------------------------------
  def enable?(item)
    #$game_party.usable?(item)
    return true
  end
  #--------------------------------------------------------------------------
  # * Criação da lista de itens
  #--------------------------------------------------------------------------
  def make_item_list
    @data = $game_party.all_items.select {|item| include?(item) }
    @data.push(nil) if include?(nil)
  end
  #--------------------------------------------------------------------------
  # * Retorno à seleção anterior
  #--------------------------------------------------------------------------
  
  def select_last
    select(@data.index($game_party.last_item.object) || 0)
  end
  #--------------------------------------------------------------------------
  # * desenhar o item
  #--------------------------------------------------------------------------
  
  def draw_item_name(item, x, y, enabled = true, width = 80)
    return unless item
    draw_icon(item.icon_index, x + 30, y + 20, enabled)
    change_color(normal_color, enabled)
    draw_text(x + 5, y + 50, width, line_height, item.name)
  end
  #--------------------------------------------------------------------------
  # * Desenho de um item
  #     index : índice do item
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    
    if item
      rect = item_rect(index)
      rect.width -= 4
      draw_item_name(item, rect.x , rect.y, true)
      rect.y -= 20
      draw_item_number(rect, item)
    end
  end
  
  #--------------------------------------------------------------------------
  # * Desenho do número de itens possuido
  #     rect : retângulo
  #     item : item
  #--------------------------------------------------------------------------
  def draw_item_number(rect, item)
    draw_text(rect, sprintf(" %2d", $game_party.item_number(item)), 2)
  end
  #--------------------------------------------------------------------------
  # * Atualização da janela de ajuda
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_item(item)
    @help_window.refresh
  end
  
  #--------------------------------------------------------------------------
  # * Renovação
  #--------------------------------------------------------------------------
  def refresh
    make_item_list
    create_contents
    draw_all_items
    update_help
  end
end

class Comand_itens < Window_Command
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize
    super(300, 200)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Aquisição da largura da janela
  #--------------------------------------------------------------------------
  def window_width
    return 100
  end
  def window_height
    return 100
  end
  def usename=(name)
    @usename = name
  end
  def usename
    return @usename
  end
  def important=(value)
    @important = value
  end
  def important
    return @important
  end
  def isuse=(value)
    @isuse = value
  end
  def isuse
    return @isuse
  end
  #--------------------------------------------------------------------------
  # * Criação da lista de comandos
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(usename,   :usar,   isuse)
    add_command(RE_MENU::Descarte,  :discart,  important)
  end
end
class Scene_Menu < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    create_Help_window
    create_command_window
    create_item_window
    create_status_window
    create_command_itens
    create_Equip_window
    @actor = $game_party.members[0]
  end
  
  #--------------------------------------------------------------------------
  # * Criação da janela de comando
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = MenuCommand.new
    @command_window.set_handler(:item,      method(:command_item))
    @command_window.set_handler(:key_item,      method(:command_item))
    @command_window.set_handler(:game_end,  method(:command_game_end))
    @command_window.set_handler(:cancel,    method(:return_scene))
  end
  
  #--------------------------------------------------------------------------
  # * Criação da janela de itens
  #--------------------------------------------------------------------------
  def create_item_window
    wy = @command_window.y + @command_window.height + 100
    wh = Graphics.height - wy
    @item_window = Window_ItemList.new(344, wy, 200, wh)
    @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.item_window = @item_window
    #@command_window.item_window = @item_window
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de comando dos intems
  #--------------------------------------------------------------------------
  def create_command_itens
    @command_item = Comand_itens.new
    @command_item.set_handler(:usar,      method(:use_item))
    @command_item.set_handler(:discart,  method(:discart_item))
    @command_item.set_handler(:cancel,    method(:return_itens))
    @command_item.visible = false
    @command_item.active = false
  end
  
  #--------------------------------------------------------------------------
  # * Criação das janelas
  #--------------------------------------------------------------------------
  def create_status_window
    @Status_window = Window_Base.new(0,0,245,150)
    @Status_window.contents.clear
    @Status_window.draw_actor_face(@actor, 1, 10)
    @Status_window.draw_text(100, 10 , 120, 50, @actor.name)
    @Status_window.draw_actor_hp(@actor, 100, 40, 120)
  end
  
  def create_Help_window
    @help_window = RE_Window_Help.new()
  end
  def create_Equip_window
    @Equip_window = Window_Base.new(244,50,300,100)
    @Equip_window.contents.clear
    if @actor.equips[0] != nil
      @Equip_window.draw_icon(@actor.equips[0].icon_index, 30, 20, true)
      @Equip_window.draw_text(0, -15 , 120, 50, RE_MENU::Equip)
      @Equip_window.draw_text(10, 40 , 150, 50, @actor.equips[0].name)
    end
    
    
  end
  def use_item
    if @item.is_a?(RPG::Weapon)
      @actor.change_equip(0,@item)
      Sound.play_equip
    else
      Sound.play_use_item
      @actor.use_item(@item)
      use_item_to_actors
      
    end
    return_itens
    refresh
    check_common_event
  end
  def use_item_to_actors
    $game_party.members.each do |target|
      @item.repeats.times { target.item_apply(@actor, @item) }
    end
  end
  def check_common_event
    if $game_temp.common_event_reserved?
      SceneManager.goto(Scene_Map)
    end
  end
  def discart_item
    $game_party.gain_item(@item, -1, true)
    return_itens
  end
  def return_itens
    @command_item.visible = false
    @command_item.active = false
    @item_window.active = true
    @item_window.refresh
  end
  #--------------------------------------------------------------------------
  # * Item [Confirmação]
  #--------------------------------------------------------------------------
  def on_item_ok
    @item = @item_window.item
    if @item != nil
      if @item.is_a?(RPG::Weapon)
        @command_item.usename = RE_MENU::Equipe
      else
        @command_item.usename = RE_MENU::Use
      end
      if @item.is_a?(RPG::Item) && @item.key_item?
        @command_item.important = true
      else
        @command_item.important = false
      end
      if @item_window.usable?(@item)
        @command_item.isuse = true
      else
        @command_item.isuse = false
      end
      
      @command_item.refresh
      @command_item.visible = true
      @command_item.active = true
    else
      Sound.play_buzzer
      @item_window.active = true
    end
    @help_window.set_item(@item)
  end
  #--------------------------------------------------------------------------
  # * Item [Cancelamento]
  #--------------------------------------------------------------------------
  def on_item_cancel
    @item_window.unselect
    @command_window.activate
  end
  
  #--------------------------------------------------------------------------
  # * Comando [Item]
  #--------------------------------------------------------------------------
  def command_item
    @command_window.item_window = @item_window
    @item_window.activate
    @item_window.select_last
    
  end
  #--------------------------------------------------------------------------
  # * Comando [Fim do Jogo]
  #--------------------------------------------------------------------------
  def command_game_end
    SceneManager.call(Scene_End)
  end
  #--------------------------------------------------------------------------
  # * Comandos individuais [Cancelamento]
  #--------------------------------------------------------------------------
  def on_personal_cancel
    @status_window.unselect
    @command_window.activate
  end
  
  def refresh
    @actor = $game_party.members[0]
    @item_window.refresh
    @Equip_window.contents.clear
    if @actor.equips[0] != nil
      @Equip_window.draw_icon(@actor.equips[0].icon_index, 30, 20, true)
      @Equip_window.draw_text(0, -15 , 120, 50, RE_MENU::Equip)
      @Equip_window.draw_text(10, 40 , 150, 50, @actor.equips[0].name)
    end
    @Status_window.contents.clear
    @Status_window.draw_actor_face(@actor, 1, 10)
    @Status_window.draw_text(100, 10 , 120, 50, @actor.name)
    @Status_window.draw_actor_hp(@actor, 100, 40, 120)
  end
end

Citação de: Alucard_2 online 31/07/2014 às 02:27
@Jingoku

Tente com este script (é o mesmo, só que sem a parte de Combine... - Portanto não me dê créditos. Ninguém tem que receber créditos por remover linhas :v):

#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  Esta classe executa o processamento da tela de menu.
#==============================================================================
module RE_MENU
  #--------------------------------------------------------------------------
  # * Vocabulario do menu
  #--------------------------------------------------------------------------
  # * Menu que mostra o item equipado
  Equip = "Equipado: "
  # * Para descarta itens
  Descarte = "Descartar"
  # * Para usar itens
  Use = "Usar"
  # * para equipar itens
  Equipe = "Equipar"
  # * para cabeçalho do invetario
  Inventario = "Inventario"
  # * para cabeçalhos dos keys itens
  Key_itens = "Documentos"
  # * para janela de help, nome da descrição
  Help_desc = "Descrição: "
  # * para janela de help, nome para o item
  Help_name = "Nome: "

end







#==============================================================================
# ** Window_Help
#------------------------------------------------------------------------------
#  Esta janela exibe explicação de habilidades e itens e outras informações.
#==============================================================================

class RE_Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     line_number : número de linhas
  #--------------------------------------------------------------------------
  def initialize(line_number = 3)
    super(0, 150, 345, Graphics.height - 150)
  end
  #--------------------------------------------------------------------------
  # * Configuração de texto
  #     text : texto
  #--------------------------------------------------------------------------
  def set_text(text)
    if text != @text
      @text = text
      refresh
    end
  end
  #--------------------------------------------------------------------------
  # * Limpeza
  #--------------------------------------------------------------------------
  def clear
    set_text("")
  end
  #--------------------------------------------------------------------------
  # * Definição de item
  #     item : habilidades, itens, etc.
  #--------------------------------------------------------------------------
  def set_item(item)
    set_text(item ? item.description : "")
    @item = item
  end
  #--------------------------------------------------------------------------
  # * Renovação
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    if @item != nil
      
      draw_text(5, 120, 150, 50, RE_MENU::Help_desc)
      draw_text_ex(5, 170, @text)
      draw_text(5, 0 , 350, 50, RE_MENU::Help_name + @item.name)
    end
    
  end
end

#==============================================================================
# ** Window_MenuCommand
#------------------------------------------------------------------------------
#  Esta janela exibe os comandos do menu.
#==============================================================================
class MenuCommand < Window_HorzCommand
  #--------------------------------------------------------------------------
  # * Inicialização da posição do comando de seleção (método da classe)
  #--------------------------------------------------------------------------
  def self.init_command_position
    @@last_command_symbol = nil
  end
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize
    super(244, 0)
  end
  #--------------------------------------------------------------------------
  # * Aquisição da largura da janela
  #--------------------------------------------------------------------------
  def window_width
    return 300
  end
  
  #--------------------------------------------------------------------------
  # * Aquisição da largura da janela
  #--------------------------------------------------------------------------
  def window_height
    50
  end
  #--------------------------------------------------------------------------
  # * Aquisição do número de linhas exibidas
  #--------------------------------------------------------------------------
  def col_max
    return 3
  end
  #def visible_line_number
   # 3
 # end
  #--------------------------------------------------------------------------
  # * Criação da lista de comandos
  #--------------------------------------------------------------------------
  def make_command_list
    add_main_commands
    add_game_end_command
  end
  #--------------------------------------------------------------------------
  # * Adição dos comandos principais
  #--------------------------------------------------------------------------
  def add_main_commands
    add_command(RE_MENU::Inventario,   :item,   main_commands_enabled)
    add_command(RE_MENU::Key_itens, :key_item, main_commands_enabled)
  end
  
  #--------------------------------------------------------------------------
  # * Definição de habilitação dos comandos principais
  #--------------------------------------------------------------------------
  def main_commands_enabled
    $game_party.exists
  end
  #--------------------------------------------------------------------------
  # * Adição do comando de fim do jogo
  #--------------------------------------------------------------------------
  def add_game_end_command
    add_command(Vocab::game_end, :game_end)
  end
  #--------------------------------------------------------------------------
  # * Definição de resultado ao pressionar o botão de confirmação
  #--------------------------------------------------------------------------
  def process_ok
    @@last_command_symbol = current_symbol
    super
  end
  #--------------------------------------------------------------------------
  # * Definição da janela de itens
  #     item_window : janela de itens
  #--------------------------------------------------------------------------
  def item_window=(item_window)
    @item_window = item_window
    @item_window.category = current_symbol
  end
end

class Window_ItemList < Window_Selectable
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     x      : coordenada X
  #     y      : coordenada Y
  #     width  : largura
  #     height : altura
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super
    @category = :none
    @data = []
  end
  #--------------------------------------------------------------------------
  # * Definição de categoria
  #--------------------------------------------------------------------------
  def category=(category)
    return if @category == category
    @category = category
    refresh
    self.oy = 0
  end
  #--------------------------------------------------------------------------
  # * Aquisição do número de colunas
  #--------------------------------------------------------------------------
  def col_max
    return 2
  end
  
  #--------------------------------------------------------------------------
  # * Aquisição do número máximo de itens
  #--------------------------------------------------------------------------
  def item_max
    @data ? @data.size : 1
  end
  #--------------------------------------------------------------------------
  # * Aquisição do espaçamento entre os itens
  #--------------------------------------------------------------------------
  def spacing
    return 5
  end
  
  #--------------------------------------------------------------------------
  # * Aquisição de altura do item
  #--------------------------------------------------------------------------
  def item_height
    80
  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
  #--------------------------------------------------------------------------
  # * Inclusão do item na lista
  #     item : item
  #--------------------------------------------------------------------------
  def include?(item)
    case @category
    when :item
      item.is_a?(RPG::Item) && !item.key_item? or item.is_a?(RPG::Weapon)
    when :key_item
      item.is_a?(RPG::Item) && item.key_item?
    else
      false
    end
  end
  #--------------------------------------------------------------------------
  # * Definição de itens disponíveis para uso
  #--------------------------------------------------------------------------
  def usable?(item)
    if item.is_a?(RPG::Weapon)
      return true
    else
      return $game_party.usable?(item)
    end
    return false
    
  end
  #--------------------------------------------------------------------------
  # * Definição de habilitação do item
  #     item : item
  #--------------------------------------------------------------------------
  def enable?(item)
    #$game_party.usable?(item)
    return true
  end
  #--------------------------------------------------------------------------
  # * Criação da lista de itens
  #--------------------------------------------------------------------------
  def make_item_list
    @data = $game_party.all_items.select {|item| include?(item) }
    @data.push(nil) if include?(nil)
  end
  #--------------------------------------------------------------------------
  # * Retorno à seleção anterior
  #--------------------------------------------------------------------------
  
  def select_last
    select(@data.index($game_party.last_item.object) || 0)
  end
  #--------------------------------------------------------------------------
  # * desenhar o item
  #--------------------------------------------------------------------------
  
  def draw_item_name(item, x, y, enabled = true, width = 80)
    return unless item
    draw_icon(item.icon_index, x + 30, y + 20, enabled)
    change_color(normal_color, enabled)
    draw_text(x + 5, y + 50, width, line_height, item.name)
  end
  #--------------------------------------------------------------------------
  # * Desenho de um item
  #     index : índice do item
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    
    if item
      rect = item_rect(index)
      rect.width -= 4
      draw_item_name(item, rect.x , rect.y, true)
      rect.y -= 20
      draw_item_number(rect, item)
    end
  end
  
  #--------------------------------------------------------------------------
  # * Desenho do número de itens possuido
  #     rect : retângulo
  #     item : item
  #--------------------------------------------------------------------------
  def draw_item_number(rect, item)
    draw_text(rect, sprintf(" %2d", $game_party.item_number(item)), 2)
  end
  #--------------------------------------------------------------------------
  # * Atualização da janela de ajuda
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_item(item)
    @help_window.refresh
  end
  
  #--------------------------------------------------------------------------
  # * Renovação
  #--------------------------------------------------------------------------
  def refresh
    make_item_list
    create_contents
    draw_all_items
    update_help
  end
end

class Comand_itens < Window_Command
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize
    super(300, 200)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Aquisição da largura da janela
  #--------------------------------------------------------------------------
  def window_width
    return 100
  end
  def window_height
    return 100
  end
  def usename=(name)
    @usename = name
  end
  def usename
    return @usename
  end
  def important=(value)
    @important = value
  end
  def important
    return @important
  end
  def isuse=(value)
    @isuse = value
  end
  def isuse
    return @isuse
  end
  #--------------------------------------------------------------------------
  # * Criação da lista de comandos
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(usename,   :usar,   isuse)
    add_command(RE_MENU::Descarte,  :discart,  important)
  end
end
class Scene_Menu < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    create_Help_window
    create_command_window
    create_item_window
    create_status_window
    create_command_itens
    create_Equip_window
    @actor = $game_party.members[0]
  end
  
  #--------------------------------------------------------------------------
  # * Criação da janela de comando
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = MenuCommand.new
    @command_window.set_handler(:item,      method(:command_item))
    @command_window.set_handler(:key_item,      method(:command_item))
    @command_window.set_handler(:game_end,  method(:command_game_end))
    @command_window.set_handler(:cancel,    method(:return_scene))
  end
  
  #--------------------------------------------------------------------------
  # * Criação da janela de itens
  #--------------------------------------------------------------------------
  def create_item_window
    wy = @command_window.y + @command_window.height + 100
    wh = Graphics.height - wy
    @item_window = Window_ItemList.new(344, wy, 200, wh)
    @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.item_window = @item_window
    #@command_window.item_window = @item_window
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de comando dos intems
  #--------------------------------------------------------------------------
  def create_command_itens
    @command_item = Comand_itens.new
    @command_item.set_handler(:usar,      method(:use_item))
    @command_item.set_handler(:discart,  method(:discart_item))
    @command_item.set_handler(:cancel,    method(:return_itens))
    @command_item.visible = false
    @command_item.active = false
  end
  
  #--------------------------------------------------------------------------
  # * Criação das janelas
  #--------------------------------------------------------------------------
  def create_status_window
    @Status_window = Window_Base.new(0,0,245,150)
    @Status_window.contents.clear
    @Status_window.draw_actor_face(@actor, 1, 10)
    @Status_window.draw_text(100, 10 , 120, 50, @actor.name)
    @Status_window.draw_actor_hp(@actor, 100, 40, 120)
  end
  
  def create_Help_window
    @help_window = RE_Window_Help.new()
  end
  def create_Equip_window
    @Equip_window = Window_Base.new(244,50,300,100)
    @Equip_window.contents.clear
    if @actor.equips[0] != nil
      @Equip_window.draw_icon(@actor.equips[0].icon_index, 30, 20, true)
      @Equip_window.draw_text(0, -15 , 120, 50, RE_MENU::Equip)
      @Equip_window.draw_text(10, 40 , 150, 50, @actor.equips[0].name)
    end
    
    
  end
  def use_item
    if @item.is_a?(RPG::Weapon)
      @actor.change_equip(0,@item)
      Sound.play_equip
    else
      Sound.play_use_item
      @actor.use_item(@item)
      use_item_to_actors
      
    end
    return_itens
    refresh
    check_common_event
  end
  def use_item_to_actors
    $game_party.members.each do |target|
      @item.repeats.times { target.item_apply(@actor, @item) }
    end
  end
  def check_common_event
    if $game_temp.common_event_reserved?
      SceneManager.goto(Scene_Map)
    end
  end
  def discart_item
    $game_party.gain_item(@item, -1, true)
    return_itens
  end
  def return_itens
    @command_item.visible = false
    @command_item.active = false
    @item_window.active = true
    @item_window.refresh
  end
  #--------------------------------------------------------------------------
  # * Item [Confirmação]
  #--------------------------------------------------------------------------
  def on_item_ok
    @item = @item_window.item
    if @item != nil
      if @item.is_a?(RPG::Weapon)
        @command_item.usename = RE_MENU::Equipe
      else
        @command_item.usename = RE_MENU::Use
      end
      if @item.is_a?(RPG::Item) && @item.key_item?
        @command_item.important = true
      else
        @command_item.important = false
      end
      if @item_window.usable?(@item)
        @command_item.isuse = true
      else
        @command_item.isuse = false
      end
      
      @command_item.refresh
      @command_item.visible = true
      @command_item.active = true
    else
      Sound.play_buzzer
      @item_window.active = true
    end
    @help_window.set_item(@item)
  end
  #--------------------------------------------------------------------------
  # * Item [Cancelamento]
  #--------------------------------------------------------------------------
  def on_item_cancel
    @item_window.unselect
    @command_window.activate
  end
  
  #--------------------------------------------------------------------------
  # * Comando [Item]
  #--------------------------------------------------------------------------
  def command_item
    @command_window.item_window = @item_window
    @item_window.activate
    @item_window.select_last
    
  end
  #--------------------------------------------------------------------------
  # * Comando [Fim do Jogo]
  #--------------------------------------------------------------------------
  def command_game_end
    SceneManager.call(Scene_End)
  end
  #--------------------------------------------------------------------------
  # * Comandos individuais [Cancelamento]
  #--------------------------------------------------------------------------
  def on_personal_cancel
    @status_window.unselect
    @command_window.activate
  end
  
  def refresh
    @actor = $game_party.members[0]
    @item_window.refresh
    @Equip_window.contents.clear
    if @actor.equips[0] != nil
      @Equip_window.draw_icon(@actor.equips[0].icon_index, 30, 20, true)
      @Equip_window.draw_text(0, -15 , 120, 50, RE_MENU::Equip)
      @Equip_window.draw_text(10, 40 , 150, 50, @actor.equips[0].name)
    end
    @Status_window.contents.clear
    @Status_window.draw_actor_face(@actor, 1, 10)
    @Status_window.draw_text(100, 10 , 120, 50, @actor.name)
    @Status_window.draw_actor_hp(@actor, 100, 40, 120)
  end
end

Muito obrigado!Eu poderia fazer isso eu mesmo,mas eu ainda não aprendí Ruby  :urra:

Bom Script , gostei muito :wow:
muito bom para jogos de tiro

cara mto toop :D :D :D curti pkas era bem isso q eu queria
pois gostaria d um diferente :o :o
queria que não tivesse essa hud com o rosto do personagem e q nau tivesse o item que está equipando pois meu jogo nau terá armas e etc
vc podeira  adaptar esse script ??

Vai ser perfeito para meu projeto para o Halloween  :malvado:


Tem Como Adicionar mais 1 Aba? Se Sim Por Favor Coloque a de "Equipamentos" (Sem o modo de "Combinação")   :*-*: Obrigado
"A nossa maior ilusão é acreditar que somos o que pensamos ser"

Perfeito! Será de grande ajuda para o meu projeto! Obrigada por postar!  :*-*: