Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # • Menu Horror System
- #==============================================================================
- # Autor: Dax
- # Versão: 1.0
- # Site: www.dax-soft.weebly.com
- # Requerimento: N/A
- #==============================================================================
- # • Descrição:
- #------------------------------------------------------------------------------
- # Um menu bem simples onde somente aparece duas opções, uma para mostrar
- # os itens em geral é a outra para mostrar os itens chaves. Ele também mostra
- # uma imagem num item espécifico.
- # ** Configurando a imagem para mostrar **
- # Para isso, basta você ir no campo de notas do Item(Note). E lá, digitar
- # picture: Nome da Imagem
- # A imagem deve estar na pasta System. Importante saber que ela será redimensi_
- # onada para 48x48
- #==============================================================================
- #==============================================================================
- # • Reconfiguração da Fonte do jogo.
- #==============================================================================
- Font.default_name = "Trebuchet MS" # Nome padrão da fonte do jogo.
- Font.default_size = 20 # Tamanho padrão da fonte do jogo.
- Font.default_bold = false # true - Para usar negrito | false - para não usar.
- Font.default_italic = false # true - Para usar italico | false - para não usar.
- Font.default_shadow = true # true - Para usar sombra na fonte | false - para não usar.
- Font.default_outline = true # true - Para usar borda da fonte | false - para não usar.
- Font.default_out_color = Color.new(0, 0, 0, 200) # Cor da fonte padrão da borda da fonte.
- Font.default_color = Color.new(255, 255, 255) # Cor da fonte padrão.
- #==============================================================================
- # • Window_Base
- #==============================================================================
- class Window_Base < Window
- #--------------------------------------------------------------------------
- # * Desenho de ícones
- # icon_index : índice do ícone
- # x : coordenada X
- # y : coordenada Y
- # enabled : habilitar flag, translucido quando false
- #--------------------------------------------------------------------------
- def drawItemPicture(filename, x=nil, y=nil)
- bitmap = Cache.system(filename || "")
- rect = Rect.new(x||40, y||0, 48, 48)
- contents.stretch_blt(rect, bitmap, bitmap.rect)
- end
- end
- #==============================================================================
- # • Window_Help
- #==============================================================================
- class Window_Help < Window_Base
- #--------------------------------------------------------------------------
- #. * Inicialização do objeto
- # line_number : número de linhas
- #--------------------------------------------------------------------------
- def initialize(x, y, w, line_number = 2)
- super(x, y, w, fitting_height(line_number))
- end
- end
- #==============================================================================
- # • Scene_MenuBase
- #==============================================================================
- class Scene_MenuBase < Scene_Base
- #--------------------------------------------------------------------------
- # * Criação da janela de ajuda.
- #--------------------------------------------------------------------------
- def create_help_window
- @help_window = Window_Help.new(160, 0, Graphics.width-160)
- @help_window.viewport = @viewport
- end
- end
- #==============================================================================
- # • Scene_ItemBase
- #==============================================================================
- class Scene_ItemBase < Scene_MenuBase
- #--------------------------------------------------------------------------
- # * Aquisição das informações do item selecionado
- #--------------------------------------------------------------------------
- def item
- @windowItemList.item
- end
- #--------------------------------------------------------------------------
- # * Definição de cursor na coluna da esquerda
- #--------------------------------------------------------------------------
- def cursor_left?
- @windowItemList.index % 2 == 0
- end
- #--------------------------------------------------------------------------
- # * Ativação da janela do item
- #--------------------------------------------------------------------------
- def activate_item_window
- @windowItemList.refresh
- @windowItemList.activate
- end
- end
- #==============================================================================
- # • Scene_Menu
- #==============================================================================
- Object.send(:remove_const, :Scene_Menu)
- class Scene_Menu < Scene_ItemBase
- #----------------------------------------------------------------------------
- # • Inicialização dos objetos.
- #----------------------------------------------------------------------------
- def start
- super
- create_help_window
- Background.default
- @windowItemDraw = Window_Base.new(0, 72, 160, 96)
- @windowItemCategory = Window_ItemCategory.new
- @windowItemCategory.help_window = @help_window
- @windowItemCategory.viewport = @viewport
- @windowItemCategory.set_handler(:ok, method(:on_category_ok))
- @windowItemList = Window_ItemList.new(160, 72, Graphics.width-160, 96)
- @windowItemList.viewport = @viewport
- @windowItemList.help_window = @help_window
- @windowItemList.set_handler(:ok, method(:on_item_ok))
- @windowItemList.set_handler(:cancel, method(:on_item_cancel))
- @windowItemCategory.item_window = @windowItemList
- end
- #----------------------------------------------------------------------------
- # • Renovação dos objetos.
- #----------------------------------------------------------------------------
- def terminate
- super
- Background.default_dispose
- end
- #----------------------------------------------------------------------------
- # • Atualização dos objetos.
- #----------------------------------------------------------------------------
- def update
- super
- return_scene if Input.trigger?(:B)
- @windowItemDraw.contents.clear
- if @windowItemList.active and @windowItemList.data.size > 0
- if @windowItemList.data[@windowItemList.index].note.match(/picture: ([^>]*)/m)
- @windowItemDraw.drawItemPicture($1.to_s)
- @windowItemDraw.draw_text(-12, 16, @windowItemDraw.width, @windowItemDraw.height,
- @windowItemList.data[@windowItemList.index].name.to_s, 1)
- end
- end
- end
- #--------------------------------------------------------------------------
- # * Categoria [Confirmação]
- #--------------------------------------------------------------------------
- def on_category_ok
- @windowItemList.activate
- @windowItemList.select_last
- end
- #--------------------------------------------------------------------------
- # * Item [Confirmação]
- #--------------------------------------------------------------------------
- def on_item_ok
- $game_party.last_item.object = item
- determine_item
- end
- #--------------------------------------------------------------------------
- # * Item [Cancelamento]
- #--------------------------------------------------------------------------
- def on_item_cancel
- @windowItemList.unselect
- @windowItemCategory.activate
- end
- #--------------------------------------------------------------------------
- # * Execução de SE para o item
- #--------------------------------------------------------------------------
- def play_se_for_item
- Sound.play_use_item
- end
- #--------------------------------------------------------------------------
- # * Usando um item
- #--------------------------------------------------------------------------
- def use_item
- super
- @windowItemList.redraw_current_item
- end
- end
- #==============================================================================
- # • Window_ItemCategory
- #==============================================================================
- Object.send(:remove_const, :Window_ItemCategory)
- class Window_ItemCategory < 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
- 160
- end
- #--------------------------------------------------------------------------
- # * Aquisição do número de colunas
- #--------------------------------------------------------------------------
- def col_max
- return 1
- 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::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
- #==============================================================================
- # ** Window_ItemList
- #------------------------------------------------------------------------------
- # Esta janela exibe a lista de itens possuidos na tela de itens.
- #==============================================================================
- class Window_ItemList < Window_Selectable
- attr_reader :data
- #--------------------------------------------------------------------------
- # * Aquisição do número de colunas
- #--------------------------------------------------------------------------
- def col_max
- return 2
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment