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

MBS - HUD + Equipment HUD

Iniciado por Brandt, 14/09/2013 às 17:09

14/09/2013 às 17:09 Última edição: 14/09/2013 às 17:12 por Masked
MBS - Advanced HUD




Introdução:
       
        Este script foi encomendado por mensagem, este não é o original, já que o original foi feito sob medida, mas o script ainda cria uma hud de hp, mp e equipamentos

Características:

        Cria uma HUD por imagens, com Hp, Mp e Equip HUD, que possui uma posição na tela independente da outra Hud.

Screenshots:

   

Como usar:

        Configure no Script o nome do arquivo que contém o gráfico da HUD em si, do gráfico da  barra de Hp, da barra de Mp e do slot onde aparece o ícone do equip, imagens para quem tem preguiça de procurar quem não encontrou em anexo, é possível definir, também, a posição da HUD principal e da de Equipamentos por texto, (Ex.: Cima, Baixo...)a HUD foi testada com imagens de 544 X 416 pra a base, 200 X 15 para as barras e 30 X 30 para o slot.
        As imagens devem estar na pasta Pictures
Script:

#==============================================================================#
# MBS - HUD Avançada                                                           #
#                                                                              #
# by Masked                                                                    #
#                                                                              #
#==============================================================================#
module MBS_HUD_Config
#==============================================================================#
# Configurações                                                                #
#==============================================================================#
  HUD_Image = "HUD_Base"             # Gráfico da HUD
  HUD_Hp_Image = "HUD_Hp"            # Gráfico da barra de Hp
  HUD_Mp_Image = "HUD_Mp"            # Gráfico da barra de Mp
  HUD_Icon_Slot = "HUD_IconSlot"     # Gráfico de slot de equipamento
  HUD_Position = "Cima"              # Cima ou Baixo
  HUD_Icon_Position = "Cima"         # Cima, Baixo, Direita ou Esquerda
end
#==============================================================================#
# Fim das Configurações                                                        #
#==============================================================================#
class MBS_HUD < Sprite
  include MBS_HUD_Config
  def initialize
    super
    self.bitmap = bitmap = Bitmap.new(544,300)
    if HUD_Position == "Cima"
    self.x = 0
    self.y = 0
  elsif HUD_Position == "Baixo"
    self.x = 0
    self.y = 375
  else
    print "MBS - Hud Avançada: \nErro: #{HUD_Position} não é definido como posição para HUD\n"
    self.x = 0
    self.y = 0
    end
    self.z = 98
    base3 = Cache.picture(HUD_Image)
    base1 = base3.width
    base2 = base3.height
    base4 = Rect.new(0,0,base1,base2)
    self.bitmap.blt(0,0,base3,base4)
    @actor = $game_party.members[0]
    @hp = Cache.picture(HUD_Hp_Image)
    hpbarwidth = @hp.width * @actor.hp / @actor.mhp
    hpbarheight = @hp.height
    @hpbar_rect = Rect.new(0, 0,hpbarwidth,hpbarheight)
    self.bitmap.blt(13 ,4,@hp,@hpbar_rect)
    @mp = Cache.picture(HUD_Mp_Image)
    mpbarwidth = @mp.width * @actor.mp / @actor.mmp
    mpbarheight = @mp.height
    @mpbar_rect = Rect.new(0, 0,mpbarwidth,mpbarheight)
    self.bitmap.blt(13 ,22,@mp,@mpbar_rect)
    @icon_slot1 = Sprite.new
    @icon_slot1.bitmap = Cache.picture(HUD_Icon_Slot)
        @icon_slot2 = Sprite.new
    @icon_slot2.bitmap = Cache.picture(HUD_Icon_Slot)
        @icon_slot3 = Sprite.new
    @icon_slot3.bitmap = Cache.picture(HUD_Icon_Slot)
        @icon_slot4 = Sprite.new
    @icon_slot4.bitmap = Cache.picture(HUD_Icon_Slot)
        @icon_slot5 = Sprite.new
    @icon_slot5.bitmap = Cache.picture(HUD_Icon_Slot)
    if HUD_Icon_Position == "Cima"
        @icon_slot1.x = 251
    @icon_slot1.y = 2
        @icon_slot2.x = 291
    @icon_slot2.y = 2
        @icon_slot3.x = 331
    @icon_slot3.y = 2
        @icon_slot4.x = 371
    @icon_slot4.y = 2
        @icon_slot5.x = 411
    @icon_slot5.y = 2
  elsif HUD_Icon_Position == "Baixo"
    @icon_slot1.x = 251
    @icon_slot1.y = 380
        @icon_slot2.x = 291
    @icon_slot2.y = 380
        @icon_slot3.x = 331
    @icon_slot3.y = 380
        @icon_slot4.x = 371
    @icon_slot4.y = 380
        @icon_slot5.x = 411
    @icon_slot5.y = 380
  elsif HUD_Icon_Position == "Esquerda"
    @icon_slot1.x = 2
    @icon_slot1.y = 150
        @icon_slot2.x = 2
    @icon_slot2.y = 190
        @icon_slot3.x = 2
    @icon_slot3.y = 230
        @icon_slot4.x = 2
    @icon_slot4.y = 260
        @icon_slot5.x = 2
    @icon_slot5.y = 300
      elsif HUD_Icon_Position == "Direita"
    @icon_slot1.x = 508
    @icon_slot1.y = 150
        @icon_slot2.x = 508
    @icon_slot2.y = 190
        @icon_slot3.x = 508
    @icon_slot3.y = 230
        @icon_slot4.x = 508
    @icon_slot4.y = 260
        @icon_slot5.x = 508
    @icon_slot5.y = 300
  else
    print "MBS - HUD Avançada: \n Erro: #{HUD_Icon_Position} não é definido como posição para os ícones\n"
        @icon_slot1.x = 251
    @icon_slot1.y = 2
        @icon_slot2.x = 291
    @icon_slot2.y = 2
        @icon_slot3.x = 331
    @icon_slot3.y = 2
        @icon_slot4.x = 371
    @icon_slot4.y = 2
        @icon_slot5.x = 411
    @icon_slot5.y = 2
    end
    @icon_slot1.z = 99
    @icon_slot1.opacity = 255
        @icon_slot2.z = 99
    @icon_slot1.opacity = 255
        @icon_slot3.z = 99
    @icon_slot1.opacity = 255
        @icon_slot4.z = 99
    @icon_slot1.opacity = 255
        @icon_slot5.z = 99
    @icon_slot1.opacity = 255
    @icon2 = Window_Base.new(@icon_slot2.x - 10, @icon_slot2.y - 8, 48, 48)
    @icon2.opacity = 0
    @icon1 = Window_Base.new(@icon_slot1.x - 10, @icon_slot1.y - 8, 48, 48)
    @icon1.opacity = 0
    @icon3 = Window_Base.new(@icon_slot3.x - 10, @icon_slot3.y - 8, 48, 48)
    @icon3.opacity = 0 
    @icon4 = Window_Base.new(@icon_slot4.x - 10, @icon_slot4.y - 8, 48, 48)
    @icon4.opacity = 0
    @icon5 = Window_Base.new(@icon_slot5.x - 10, @icon_slot5.y - 8, 48, 48)
    @icon5.opacity = 0
    @old_hp = @actor.hp
    @old_mp = @actor.mp
  end
  def changed?
    return true if @old_hp != @hp
    return true if @old_mp != @mp
    return false
  end
  def refresh
    self.bitmap.clear
    base3 = Cache.picture(HUD_Image)
    base1 = base3.width
    base2 = base3.height
    base4 = Rect.new(0,0,base1,base2)
    self.bitmap.blt(0,0,base3,base4)
    @hp = Cache.picture(HUD_Hp_Image)
    hpbarwidth = @hp.width * @actor.hp / @actor.mhp
    hpbarheight = @hp.height
    @hpbar_rect = Rect.new(0, 0,hpbarwidth,hpbarheight)
        self.bitmap.blt(13 ,4,@hp,@hpbar_rect)
    @mp = Cache.picture(HUD_Mp_Image)
    mpbarwidth = @mp.width * @actor.mp / @actor.mmp
    mpbarheight = @mp.height
    @mpbar_rect = Rect.new(0, 0,mpbarwidth,mpbarheight)
     self.bitmap.blt(13 ,22,@mp,@mpbar_rect)
    @old_hp = @actor.hp
    @old_mp = @actor.mp
    if $game_party.members[0].equips[0] != nil
          @icon1.contents.clear
    @icon1.draw_icon($game_party.members[0].equips[0].icon_index, 0, 0) 
    end
    if $game_party.members[0].equips[1] != nil
          @icon2.contents.clear
    @icon2.draw_icon($game_party.members[0].equips[1].icon_index, 0, 0)
    end
     if $game_party.members[0].equips[2] != nil
           @icon3.contents.clear
    @icon3.draw_icon($game_party.members[0].equips[2].icon_index, 0, 0)
    end    
     if $game_party.members[0].equips[3] != nil
           @icon4.contents.clear
    @icon4.draw_icon($game_party.members[0].equips[3].icon_index, 0, 0)
    end    
     if $game_party.members[0].equips[4] != nil
           @icon5.contents.clear
    @icon5.draw_icon($game_party.members[0].equips[4].icon_index, 0, 0)
end
    end
  end
class Scene_Map < Scene_Base
  alias mbs_main main
  alias mbs_update update
  def main
    @hud = MBS_HUD.new
    mbs_main
    @hud.dispose
  end
  def update
    @hud.refresh if @hud.changed?
    mbs_update
    end
  end


Créditos e Agradecimentos:

- A mim, por criar e disponibilizar;

- A Naemegashi Yokohuro, pela ideia

[Anexo excluído pelo administrador]
~ Masked

Masked você é muito bom!
Eu adoro HUDs antigas e básicas ao invés daquelas que poluem o mapa todo mas você criou uma arte!

 O script é muito bom cara,só que possui alguns bugs,por exemplo na tela de GameOver onde os botões dos equipamentos não somem junto com a HUD. E acho que faltou um comando para ligar/desligar.
Uma visita ao Museu não é interessante quando você faz parte da exposição.