nininho_2000 Maker Inteligente
Mensagens : 151 Cash Makers : 272
| Assunto: [SYS] GL Item Menu Sáb Set 19, 2009 3:50 pm | |
| GL Item Menu DescriçãoAdiciona uma "descrição" melhor do item, e opções de Drop e Uso. Novidades- Janela com transparência ajustável- Opções de Derrubar e UsarTutorialPrimeiro, você precisa criar uma pasta Itens dentro de Graphics. Depois, colocar as imagens no formato configurado no script (normal: *.png). Por exemplo, se o item usa o ícone "021-Poção01", você deverá colocar uma imagem 140 x 160 com o nome 021-Poção01 na pasta Itens. Configure no script: - Código:
-
# Formato das imagens na pasta Itens FORDEF = ".png" # Linguagem do Menu Secundário LGMDROP = "Dropar" LGMUSE = "Usar" # Opacidade das Janelas OPACITEM = 200 Screenshot- Spoiler:
script- Spoiler:
- Código:
-
#============================================================================== # GL Item Menu #------------------------------------------------------------------------------ # script criado por Glucas # - www.upgamesbr.com # - www.mundorpgmaker.com #------------------------------------------------------------------------------ # Instrução: # Crie uma pasta chamada Itens dentro da pasta Graphics, e coloque imagens # do tamanho 140 x 150 ~ 160 e outra chamada "default". #==============================================================================
#============================================================================== # Módulo Glucas #------------------------------------------------------------------------------ # Configure aqui #==============================================================================
module GLUCAS # Formato das imagens na pasta Itens FORDEF = ".png" # Linguagem do Menu Secundário LGMDROP = "Dropar" LGMUSE = "Usar" # Opacidade das Janelas OPACITEM = 200 end
#============================================================================== # Módulo RPG #------------------------------------------------------------------------------ # Carrega imagens da pasta Graphics #==============================================================================
module RPG module Cache def self.item(filename) self.load_bitmap("Graphics/Itens/", filename) end end end
#============================================================================== # Scene_Item #------------------------------------------------------------------------------ # Esta classe processa a tela de Itens #==============================================================================
class Scene_Item #-------------------------------------------------------------------------- # - Processamento Principal #-------------------------------------------------------------------------- def main opacity = GLUCAS::OPACITEM @sprite = Spriteset_Map.new @help_window = Window_Help2.new @command_window = Window_Command.new(100, [GLUCAS::LGMDROP, GLUCAS::LGMUSE]) @command_window.back_opacity = 160 @command_window.x = 540 @command_window.y = 290 # Aqui são criadas as janelas de Ajuda e de Itens @item_window = Window_Item.new @item_window.height = 290 @item_window.x = 0 @item_window.y = 0 @help_window.height = 190 @help_window.y = 290 # Opacidade das Janelas @help_window.opacity = opacity @item_window.opacity = opacity # Associar a janela de Ajuda @item_window.help_window = @help_window # Criar janela alvo (definir como invisível / inativa) @target_window = Window_Target.new @target_window.visible = false @target_window.active = false @command_window.visible = false @command_window.active = false # Executar transição Graphics.transition # Loop principal loop do # Atualizar a tela de jogo Graphics.update # Atualizar a entrada de informações Input.update # Atualização do frame update # Abortar o loop se a tela foi alterada if $scene != self break end end # Prepara para transição Graphics.freeze # Exibição das janelas @help_window.dispose @item_window.dispose @target_window.dispose @sprite.dispose @command_window.dispose end #-------------------------------------------------------------------------- # - Atualização do Frame #-------------------------------------------------------------------------- def update # Atualizar janelas @sprite.update @help_window.update @command_window.update @item_window.update @target_window.update # Se a janela de Itens estiver ativa: chamar update_item if @item_window.active update_item return end if @command_window.active update_menu return end # Se a janela alvo estiver ativa: chamar update_target if @target_window.active update_target return end end # =======================================================
def update_menu if Input.trigger?(Input::C) case @command_window.index when 0 if @item.is_a?(RPG::Item) $game_party.lose_item(@item.id, 1) #@del = 1 @item_window.draw_item(@item_window.index) elsif @item.is_a?(RPG::Weapon) $game_party.lose_weapon(@item.id, 1) @item_window.draw_item(@item_window.index) elsif @item.is_a?(RPG::Armor) $game_party.lose_armor(@item.id, 1) @item_window.draw_item(@item_window.index) end return when 1 if @use_item # Se o alcance do Item for um aliado if @item.scope >= 3 # Ativar a janela alvo @command_window.active = false @command_window.visible = false @item_window.active = false @target_window.x = (@item_window.index + 1) % 2 * 304 @target_window.visible = true @target_window.active = true # Definir a posição do cursor no alvo (aliado / todo grupo) if @item.scope == 4 || @item.scope == 6 @target_window.index = -1 else @target_window.index = 0 end # Se o alcance for outro senão um aliado else # Se o ID do evento comum for inválido if @item.common_event_id > 0 # Chamar evento comum da reserva $game_temp.common_event_id = @item.common_event_id # Reproduzir SE do Item $game_system.se_play(@item.menu_se) # Se for consumível if @item.consumable # Diminui 1 Item da quantidade total $game_party.lose_item(@item.id, 1) # Desenhar o Item @item_window.draw_item(@item_window.index) end # Alternar para a tela do Mapa $scene = Scene_Map.new return end end return else $game_system.se_play($data_system.buzzer_se) end end end # Se o botão B for pressionado if Input.trigger?(Input::B) #or @del == 1 # Reproduzir SE de cancelamento $game_system.se_play($data_system.cancel_se) # Se for impossível utilizar porque o Item não existe mais unless $game_party.item_can_use?(@item.id) # Recriar os conteúdos da janela de ìtens @item_window.refresh end # Apagar a janela alvo @del == 0 @item_window.active = true @target_window.visible = false @target_window.active = false @command_window.active = false @command_window.visible = false return end end #-------------------------------------------------------------------------- # - Atualização do Frame (Quando a janela de Itens estiver Ativa) #-------------------------------------------------------------------------- def update_item # Se o botão B for pressionado if Input.trigger?(Input::B) # Reproduzir SE de cancelamento $game_system.se_play($data_system.cancel_se) # Alternar para a tela de Menu $scene = Scene_Menu.new(0) return end # Se o botão C for pressionado if Input.trigger?(Input::C) # Selecionar os dados escolhidos na janela de Itens @item = @item_window.item return if @item == nil # Se não for um Item usável @use_item = false if @item.is_a?(RPG::Item) if $game_party.item_can_use?(@item.id) @command_window.index = 1 # Color.new(255, 255, 255, 255) @command_window.draw_item(1, Color.new(255, 255, 255, 255)) @use_item = true else @command_window.index = 0 @command_window.disable_item(1) end else @command_window.index = 0 @command_window.disable_item(1) end @command_window.active = true @command_window.visible = true @item_window.active = false return end end #-------------------------------------------------------------------------- # - Atualização do Frame (Quando a janela alvo estiver Ativa) #-------------------------------------------------------------------------- def update_target # Se o botão B for pressionado if Input.trigger?(Input::B) # Reproduzir SE de cancelamento $game_system.se_play($data_system.cancel_se) # Se for impossível utilizar porque o Item não existe mais unless $game_party.item_can_use?(@item.id) # Recriar os conteúdos da janela de ìtens @item_window.refresh end # Apagar a janela alvo @item_window.active = false @command_window.active = true @command_window.visible = true @target_window.visible = false @target_window.active = false return end # Se o botão C for pressionado if Input.trigger?(Input::C) # Se chegar ao número 0 da quantidade de Itens if $game_party.item_number(@item.id) == 0 # Reproduzir SE de erro $game_system.se_play($data_system.buzzer_se) return end # Se o alvo for todos o Grupo if @target_window.index == -1 # Os efeitos serão aplicados a todos used = false for i in $game_party.actors used |= i.item_effect(@item) end end # Se for apenas um aliado o alvo if @target_window.index >= 0 # Aplicar os efeitos apenas no Herói alvo target = $game_party.actors[@target_window.index] used = target.item_effect(@item) end # Se o Item for usado if used # Reproduzir SE do Item $game_system.se_play(@item.menu_se) # Se for consumível if @item.consumable # Diminui 1 item da quantidade total $game_party.lose_item(@item.id, 1) # Redesenhar o Item @item_window.draw_item(@item_window.index) end # Recriar os conteúdos da janela alvo @target_window.refresh # Se todos no Grupo de Heróis estiverm mortos if $game_party.all_dead? # Alternar para a tela de Game Over $scene = Scene_Gameover.new return end # Se o ID do evento comum for válido if @item.common_event_id > 0 # Chamar o evento comum da reserva $game_temp.common_event_id = @item.common_event_id # Alternar para a tela do Mapa $scene = Scene_Map.new return end end # Se o Item não for usado unless used # Reproduzir SE de erro $game_system.se_play($data_system.buzzer_se) end return end end end
#============================================================================== # Window_Item #------------------------------------------------------------------------------ # Esta janela exibe os Itens possuídos na tela de Itens #==============================================================================
class Window_Item < Window_Selectable #-------------------------------------------------------------------------- # - Inicialização dos Objetos #-------------------------------------------------------------------------- def initialize super(0, 64, 640, 416) @column_max = 2 refresh self.index = 0 # Caso se está em uma batalha a janela será movida para o centro da tela # e esta é transformada em semi-transparente if $game_temp.in_battle self.y = 64 self.height = 256 self.back_opacity = 160 end end #-------------------------------------------------------------------------- # - Selecionar Item #-------------------------------------------------------------------------- def item return @data[self.index] end #-------------------------------------------------------------------------- # - Atualização #-------------------------------------------------------------------------- def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Adicionar Item for i in 1...$data_items.size if $game_party.item_number(i) > 0 @data.push($data_items[i]) end end # Também é adicionados os equipamentos e os Itens chave caso se esteja fora # de uma batalha unless $game_temp.in_battle for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 @data.push($data_weapons[i]) end end for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 @data.push($data_armors[i]) end end end # Caso haja algum Item aqui a janela é desenhada, junto com todos os Itens @item_max = @data.size if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end end end #-------------------------------------------------------------------------- # - Desenhar Item # # index : índice de Itens #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] case item when RPG::Item number = $game_party.item_number(item.id) when RPG::Weapon number = $game_party.weapon_number(item.id) when RPG::Armor number = $game_party.armor_number(item.id) end if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end x = 4 + index % 2 * (288 + 32) y = index / 2 * 32 rect = Rect.new(x, y, self.width / @column_max - 32, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(item.icon_name) opacity = self.contents.font.color == normal_color ? 255 : 128 self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 212, 32, item.name, 0) self.contents.draw_text(x + 240, y, 16, 32, ":", 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2) end #-------------------------------------------------------------------------- # - Atualização do Texto de Ajuda #-------------------------------------------------------------------------- def update_help @status = [] if self.item == nil for i in 0..2 @status.push("") end else @status.push(self.item.description) @status.push(self.item.name) @status.push(self.item.icon_name) end @help_window.set_status(@status) #@help_window.set_status(self.item == nil ? "" : self.item.description, self.item == nil ? "" :self.item.icon_name, self.item == nil ? "" :self.item.name) end end
#============================================================================== # Window_Help #------------------------------------------------------------------------------ # Esta classe exibe uma janela de explicação para Habilidades e Itens. #==============================================================================
class Window_Help2 < Window_Base
def initialize super(0, 0, 640, 190) self.contents = Bitmap.new(width - 32, height - 32) end #def set_status(text, image, name) def set_status(status) @status = status self.contents.clear if @status[0] != "" self.contents.font.color = system_color self.contents.draw_text(140, -50, self.contents.width - 32, self.contents.height - 32, @status[1], 0) self.contents.font.color = normal_color self.contents.draw_text(140, -30, self.contents.width - 32, self.contents.height - 32, @status[0], 0) if FileTest.exist?("Graphics/Itens/" + @status[2] + GLUCAS::FORDEF) bitmap = RPG::Cache.item(@status[2]) src_rect = Rect.new(0, 0, bitmap.width, bitmap.height) self.contents.blt(0, 0, bitmap, src_rect) else bitmap = RPG::Cache.item("default") src_rect = Rect.new(0, 0, bitmap.width, bitmap.height) self.contents.blt(0, 0, bitmap, src_rect) end end end
end CréditosGlucas pelo script. TAG'sitemgl menuRipado by MrM | |
|
lz-leo Super Maker [******]
Mensagens : 604 Cash Makers : 895
| Assunto: Re: [SYS] GL Item Menu Ter Set 22, 2009 6:59 pm | |
| Não consigo ver as screens,ajeita aew. | |
|