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

GTA San Andreas HUD v1.2

Iniciado por Black_Zero, 29/12/2013 às 19:04

29/12/2013 às 19:04 Última edição: 20/01/2017 às 09:30 por King Gerar

Compativel com: RPG Maker VX Ace
Compatibilidade: boa
Facilidade de uso: fácil
Lag gerado: baixíssimo

[box class=titlebg]
Introdução
[/box]
Olá galerinha, eu tava aqui sem fazer nada até que me deu uma ideia de fazer uma HUD semelhante ao do GTA San Andreas, bem, como vocês poderão ver na imagem mais abaixo, ficou bem parecida mesmo, só que adicionei uns extras (face do personagem e nível).

[box class=titlebg]
Para que serve o script
[/box]
Ele mostra o HP do jogador (barra vermelha), o MP (barra branca), a experiência do jogador (barra azul claro) e o nível do jogador mais acima da barra de MP (veja a screenshot abaixo) ao estilo do GTA San Andreas, o relógio e medidor de verdinhas também foram adicionados, mas são opcionais e podem ser desabilitados no script, além disso tudo, a HUD pode ser usada tanto na resolução padrão do RPG Maker VX Ace (544x416) quanto na resolução 640x480, sua posição será sempre no topo da tela à direita.

[box class=titlebg]
Imagens
[/box]

Resolução: 544x416

Resolução: 640x480

[box class=titlebg]
Script e Tutorial de uso
[/box]
Copie o script da HUD (logo abaixo) e cole acima do Main (na área de scripts adicionais):
#==============================================================================
#                            .::San Andreas HUD::.
#                            .::     v1.2.1    ::.
#------------------------------------------------------------------------------
# Criado por: Black_Zero      Data: 28/12/2013      Ultima Revisão: 02/01/2014
#==============================================================================
class Scene_Map < Scene_Base
#------------------------------------------------------------------------------
# Este script cria uma HUD ao estilo do GTA San Andreas!
#------------------------------------------------------------------------------
# Update 1.2
# - Adicionado um relógio (mostrando as horas igual ao relógio do Windows)
# - Adicionado o "medidor de dinheiro"
# - Método de atualização somente se necessário (evita lag)
# - Toda a HUD agora usa a fonte Pricedown Bl
#
# Update 1.1:
# - A HUD agora está mais compacta
# - Auto-ajusta a posição de acordo com a resolução da tela
# - Agora usa a fonte Old English Text MT para mostrar o nível
#
# Update 1.0:
# - Lançamento inicial
#------------------------------------------------------------------------------
  ENABLE_CLOCK = true              # Habilitar o relógio?
  MONEY_DISPLAY = true             # Habilitar o dinheiro?
#------------------------------------------------------------------------------
  alias sanandreas_start start
  alias sanandreas_update update
  alias sanandreas_terminate terminate
  def start
    sanandreas_start
    @actor = $game_party.members[0]
    @text = "nível: "
    @clr1 = Color.new(255,0,0)
    @clr2 = Color.new(255,255,255)
    @clr3 = Color.new(204,255,255)
    @clr4 = Color.new(255,204,0)
    @clr5 = Color.new(51,173,102)
    @time = Sprite.new
    @hud = Sprite.new
    @money = Sprite.new
    @time.bitmap = Bitmap.new(1,1)
    @hud.bitmap = Bitmap.new(1,1)
    @money.bitmap = Bitmap.new(1,1)
    @time.y = 10
    @money.y = 110
    sa_hud
    clock_sys if ENABLE_CLOCK
    money_display if MONEY_DISPLAY
  end
  def update
    sanandreas_update
    sa_hud if sahud_need_update?
    clock_sys if ENABLE_CLOCK
    if MONEY_DISPLAY
      money_display if money_disp_need_update?
    end
    @hud_hp = @actor.hp
    @hud_exp = @actor.exp
    @hud_mp = @actor.mp
    @hud_money = $game_party.gold
  end
  def sa_hud
    @hud.bitmap.clear
    @hud.bitmap = Bitmap.new("Graphics/System/sa_hud.png")
    @hud.x = Graphics.width - @hud.bitmap.width
    rect = Rect.new(5, 5, 96, 96)
    rect.x = @actor.face_index % 4 * 96
    rect.y = @actor.face_index / 4 * 96
    level = @text + @actor.level.to_s
    exp_data1 = @actor.exp - @actor.current_level_exp
    exp_data2 = @actor.next_level_exp - @actor.current_level_exp
    hp_bar = 76 * @actor.hp / @actor.mhp
    mp_bar = 76 * @actor.mp / @actor.mmp
    exp_bar = 76 * exp_data1 / exp_data2
    @hud.bitmap.blt(5, 5, Cache.face(@actor.face_name), rect)
    @hud.bitmap.fill_rect(110, 96, hp_bar, 6, @clr1)
    @hud.bitmap.fill_rect(110, 68, mp_bar, 6, @clr2)
    @hud.bitmap.fill_rect(110, 82, exp_bar, 6, @clr3)
    @hud.bitmap.font.name = "Pricedown Bl"
    @hud.bitmap.font.size = 26
    @hud.bitmap.font.color = @clr4
    @hud.bitmap.draw_text(115, 37, 82, 24, level)
  end
  def clock_sys
    clock = Time.now
    @time.bitmap.clear
    @time.bitmap = Bitmap.new(80,24)
    @time.x = Graphics.width - @time.bitmap.width
    @time.bitmap.font.name = "Pricedown Bl"
    @time.bitmap.font.size = 48
    clock_time = sprintf("%02d:%02d", clock.hour, clock.min)
    @time.bitmap.draw_text(0, -19, 80, 48, clock_time)
  end
  def money_display
    gold = $game_party.gold
    @money.bitmap.clear
    @money.bitmap = Bitmap.new(190,30)
    @money.x = Graphics.width - @money.bitmap.width + 6
    @money.bitmap.font.name = "Pricedown Bl"
    @money.bitmap.font.size = 48
    @money.bitmap.font.color = @clr5
    gold_2 = sprintf("%010d", gold)
    @money.bitmap.draw_text(0, -19, 190, 48, "$#{gold_2}")
  end
  def terminate
    sanandreas_terminate
    @time.dispose
    @hud.dispose
    @money.dispose
  end
#------------------------------------------------------------------------------
  def sahud_need_update?
    return true if @hud_hp != @actor.hp
    return true if @hud_mp != @actor.mp
    return true if @hud_exp != @actor.exp
  end
  def money_disp_need_update?
    return true if @hud_money != $game_party.gold
  end
end
#------------------------------------------------------------------------------
#                           .::End of the Script::.
#------------------------------------------------------------------------------


Depois salve a imagem abaixo na pasta "Graphics/System" renomeado como "sa_hud.png" (sem as aspas):


[box class=titlebg]
Aviso
[/box]
A HUD requer a fonte Pricedown Bl instalada no computador, ela está anexada ao tópico caso você não tenha.

Caso encontre algum bug na HUD, me informe, beleza? :ok:

[Anexo excluído pelo administrador]

Opa tudo bem xD, bom ficou legal a hud e sempre é bom pro pessoal ter mais opções, o fato de considerar o tamanho da tela é legal, muita gente esquece disso.

Só uma observação, achei um pouco pesado a atualização, tem modos de melhorar um pouco isso, tipo depois de
sanandreas_update

Colocar um
return if Graphics.frame_rate % 8 == 1

por exemplo já melhora bem o desempenho, tem outros modos ainda mais eficientes :P, de qualquer modo obrigado por participar e compartilhar os scripts xD.

@Raizen

Na versão 1.2 eu coloquei para atualizar somente se necessário (assim como eu fiz na Black HUD), isso reduziu e muito o peso do script, pode verificar :ok:

@Black_Zero: O tempo é o mesmo do computador? Teria como usar eventos se baseando nesse relógio?

02/01/2014 às 19:48 #4 Última edição: 02/01/2014 às 19:50 por Black_Zero
Citação de: Myzhuk online 02/01/2014 às 18:57
@Black_Zero: O tempo é o mesmo do computador? Teria como usar eventos se baseando nesse relógio?

Sim, é o mesmo mostrado pelo Windows.

Quando você falou em eventos, você quis dizer em usar o relógio para montar um sistema de dia e noite? Bem, não dá, eu fiz o relógio como complemento pensando nos que jogam em tela cheia e precisa ver a hora.

O GTA começou em 2D com vista de cima, alguém poderia aproveitar aha!

parabéns +ouro!

não consigo baixar as imagens :rick9:

Citação de: AndreFi1ho online 14/04/2020 às 23:14
não consigo baixar as imagens :rick9:
É porque o tópico é muito antigo.. infelizmente as imagens não existem mais  :rick8: