Modificar SAS HUD (RGSS3)

9 Respostas   881 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Harden

  • *
  • Posts: 163
  • Ouros: 145
  • Preciso pagar o aluguel
Tópico criado em: 18/01/2016 às 13:35 - Última modificação por Vash em 19/01/2016 às 00:49

Ola,

Nao entendo nada de Ruby, se nao ja teria modificado o script, tentei inclusive gambiarras de uma hud pra outra, mas nao deu certo.

Bom, o que estou precisando eh uma modificacao na hud do sas (abs do khas).
Primeiro preciso que o sprite do personagem seja desenhado na tela, assim como na Reino RPG HUD.
E tambem preciso que as barras de hp, mp e exp sejam imagens e nao apenas cores (como sao no padrao).

Se alguem souber/puder fazer, fico agradecido.

Código: [Selecionar]
#-------------------------------------------------------------------------------
# * [ACE] SAS IV HUD
#-------------------------------------------------------------------------------
# * Por Khas Arcthunder (khasarcthunder.wordpress.com)
# * Versão: 1.0 BR
# * Lançada em: 05/01/2012
#
#-------------------------------------------------------------------------------
# * Termos de Uso
#-------------------------------------------------------------------------------
# Termos de uso – 22 de Junho de 2012
# 1. Você deve dar crédito a Khas se estiver usando algum script Khas;
# 2. Todos os scripts e aulas Khas estão sob licença Creative Commons;
# 3. Todos os scripts Khas são livres para uso não comercial. Caso queira
#    algum script para uso comercial, confira abaixo destes termos quais
#    scripts são de uso comercial livre e quais são de uso comercial pago;
# 4. Todos os scripts Khas são para uso pessoal, você pode usar e editar
#    para uso no seu projeto, porém você não pode postar nenhuma versão
#    modificada;
# 5. Você não pode dar créditos a si próprio por postar algum script Khas;
# 6. Caso queira compartilhar um script Khas, não poste o script ou o link
#    direto de download, apenas redirecione o usuário para
#    http://arcthunder.site40.net/
# 7. Todos os scripts Khas são para uso no maker em que foram feitos.
#    Não é autorizada nenhuma espécie de conversão;
# 8. É sua obrigação (usuário) conferir esta página de termos no dia em que
#    lançar seu projeto. As normas aqui presentes devem ser cumpridas pelo
#    seu projeto.
#
# Scripts de uso comercial livre:
# - Sapphire Action System IV (RPG Maker VX Ace)
# - Awesome Light Effects (RPG Maker VX Ace)
# - Pixel movement (RPG Maker VX e RPG Maker VX Ace)
# - Sprite & Window Smooth Sliding (RPG Maker VX e RPG Maker VX Ace)
# - Pathfinder (RPG Maker VX Ace)
#
# Veja todos os termos em: http://arcthunder.site40.net/termos/
#
#-------------------------------------------------------------------------------
# * Caracteristicas
#-------------------------------------------------------------------------------
# HUD do SAS IV. Configure abaixo.
#
#-------------------------------------------------------------------------------
# * Configuração
#-------------------------------------------------------------------------------
module HUD_Core
  # Nome da imagem de fundo
  Background_Name = "hud_bg"
  # Largura do conteúdo
  Contents_Width = 544
  # Altura do conteúdo
  Contents_Height = 416
  # Tamanho da fonte
  Font_Size = 16
  # Nome da fonte
  Font_Name = "Verdana"
  # Cor da fonte
  Font_Color =  Color.new(255,255,255)
  # Negrito?
  Font_Bold = true
  # Itálico?
  Font_Italic = false
  # ID do ícone de ausência de habilidade
  No_Skill_Icon = 0
  # Posição X da barra de HP
  Health_X = 0
  # Posição Y da barra de HP
  Health_Y = 10
  # Largura da barra de HP
  Health_Width = 133
  # Altura da barra de HP
  Health_Height = 9
  # Cor da barra de HP
  Health_Color = Color.new(77,4,4)
  # Posição X da barra de EXP
  Exp_X = 0
  # Posição Y da barra de EXP
  Exp_Y = 401
  # Largura da barra de EXP
  Exp_Width = 544
  # Altura da barra de EXP
  Exp_Height = 4
  # Cor da barra de EXP
  Exp_Color = Color.new(214,214,214)
  # Posição X da barra de MP
  Magic_X = 0
  # Posição Y da barra de MP
  Magic_Y = 26
  # Largura da barra de MP
  Magic_Width = 96
  # Altura da barra de MP
  Magic_Height = 9
  # Cor da barra de MP
  Magic_Color = Color.new(83,129,255)
  # Posição X do nome
  Name_X = 40
  # Posição Y do nome
  Name_Y = 40
  # Posição X da Habilidade
  Spell_X = 4
  # Posição Y da Habilidade
  Spell_Y = 74
  # Posição X do ícone
  Icon_X = 8
  # Posição Y do ícone
  Icon_Y = 44
  # Posição X do nível
  Level_X = 24
  # Posição Y do nível
  Level_Y = 55
  # String do nível
  Level_String = "Nv "
end
#-------------------------------------------------------------------------------
# * Registrar
#-------------------------------------------------------------------------------
if $khas_awesome.nil?
  $khas_awesome = []
end
scripts = []
$khas_awesome.each { |script| scripts << script[0] }
unless scripts.include?("Sapphire Action System")
  error = Sprite.new
  error.bitmap = Bitmap.new(544,416)
  error.bitmap.draw_text(0,208,544,32,"Por favor, instale o Sapphire Action System IV",1)
  error.bitmap.draw_text(0,240,544,32,"Os scripts adicionais precisam do principal",1)
  continue = Sprite.new
  continue.bitmap = Bitmap.new(544,416)
  continue.bitmap.font.color = Color.new(0,255,0)
  continue.bitmap.font.size = error.bitmap.font.size - 3
  continue.bitmap.draw_text(0,384,544,32,"Tecle ENTER para sair",1)
  add = Math::PI/80; max = 2*Math::PI; angle = 0
  loop do
    Graphics.update; Input.update
    angle += add; angle %= max
    continue.opacity = 185 + 70* Math.cos(angle)
    break if Input.trigger?(Input::C)
  end
  error.bitmap.dispose; continue.bitmap.dispose
  error.bitmap = nil; continue.bitmap = nil
  error.dispose; continue.dispose
  error = nil; continue = nil
  exit
end

$khas_awesome << ["SAS HUD",4.0]

#-------------------------------------------------------------------------------
# * Script
#-------------------------------------------------------------------------------

class Sapphire_Hud
  include HUD_Core
  def initialize
    @contents = Sprite.new
    @background = Sprite.new
    @base = Sprite.new
    @contents.bitmap = Bitmap.new(Contents_Width, Contents_Height)
    @base.bitmap = Bitmap.new(Contents_Width, Contents_Height)
    @background.bitmap = Cache.system(Background_Name)
    @base.bitmap.font.bold = Font_Bold
    @base.bitmap.font.italic = Font_Italic
    @base.bitmap.font.size = Font_Size
    @base.bitmap.font.color = Font_Color
    @base.bitmap.font.name = Font_Name
    @contents.z = 200
    @background.z = 210
    @base.z = 220
    @locked = false
    hide(true)
  end
  def refresh_bars(current_hp=@actor.hp)
    return if @hidden
    hp = ((current_hp)*Health_Width)/@actor.mhp
    mp = (@actor.mp*Magic_Width)/@actor.mmp
    exp = ((@actor.exp-@actor.current_level_exp)*Exp_Width)/(@actor.next_level_exp-@actor.current_level_exp)
    @contents.bitmap.clear
    @contents.bitmap.fill_rect(Health_X,Health_Y,hp,Health_Height,Health_Color)
    @contents.bitmap.fill_rect(Magic_X,Magic_Y,mp,Magic_Height,Magic_Color)
    @contents.bitmap.fill_rect(Exp_X,Exp_Y,exp,Exp_Height,Exp_Color)
  end
  def refresh_base
    return if @hidden
    @base.bitmap.clear
    @actor = $game_party.members[0]
    skill = $game_player.current_skill[0]
    @base.bitmap.draw_text(Name_X, Name_Y,100,Font_Size+4,@actor.name)
    @base.bitmap.draw_text(Level_X, Level_Y,64,Font_Size+4,Level_String+@actor.level.to_s,1)
    temp = Cache.system("Iconset")
    unless skill.nil?
      @base.bitmap.draw_text(Spell_X,Spell_Y,68,Font_Size+4,skill.name)
      @base.bitmap.blt(Icon_X,Icon_Y,temp,Rect.new(skill.icon_index%16*24,skill.icon_index/16*24,24,24))
    else
      @base.bitmap.blt(Icon_X,Icon_Y,temp,Rect.new(No_Skill_Icon%16*24,No_Skill_Icon/16*24,24,24))
    end
    temp.dispose
    temp = nil
  end
  def hide(lock=false)
    unless @background.nil?
      @background.bitmap.dispose
      @background.dispose
      @background = nil
    end
    unless @base.nil?
      @base.bitmap.dispose
      @base.dispose
      @base = nil
    end
    unless @contents.nil?
      @contents.bitmap.dispose
      @contents.dispose
      @contents = nil
    end
    @hidden = true
    @locked = lock unless @locked
  end
  def show(unlock=false)
    @actor = $game_party.members[0]
    return if @locked && !unlock
    @contents = Sprite.new
    @background = Sprite.new
    @base = Sprite.new
    @contents.bitmap = Bitmap.new(Contents_Width, Contents_Height)
    @base.bitmap = Bitmap.new(Contents_Width, Contents_Height)
    @background.bitmap = Cache.system(Background_Name)
    @base.bitmap.font.bold = Font_Bold
    @base.bitmap.font.italic = Font_Italic
    @base.bitmap.font.size = Font_Size
    @base.bitmap.font.color = Font_Color
    @base.bitmap.font.name = Font_Name
    @contents.z = 200
    @background.z = 210
    @base.z = 220
    @hidden = false
    refresh_base
    refresh_bars
    @locked = false
  end
end
Your drill is the drill that will pierce the Heavens!

Ven

Resposta 1: 18/01/2016 às 14:03

Sabe eu acho que é mais fácil você criar por Eventos. É muito simples, se quiser me fala que eu te ajuda na por eventos  :XD:

Harden

  • *
  • Posts: 163
  • Ouros: 145
  • Preciso pagar o aluguel
Resposta 2: 18/01/2016 às 14:12

Desenhar o char? Really? nem sabia que era possivel hahahah

Mas e a questao das barras serem por imagens? Porque no padrao eh apenas uma cor :/
Your drill is the drill that will pierce the Heavens!

Ven

Resposta 3: 18/01/2016 às 14:47

Desenhar o char eu não sei, mas as barras é muito mais fácil por Eventos  :XD:

Alucard_2

  • *
  • Posts: 102
  • Ouros: 75
  • Confesso que estou tendo um caso com o Nandik
Resposta 4: 18/01/2016 às 15:27

Pronto. Acho que deve estar funcionando.

Código: [Selecionar]
#-------------------------------------------------------------------------------
# * [ACE] SAS IV HUD
#-------------------------------------------------------------------------------
# * Por Khas Arcthunder (khasarcthunder.wordpress.com)
# * Versão: 1.0 BR
# * Lançada em: 05/01/2012
#
#-------------------------------------------------------------------------------
# * Termos de Uso
#-------------------------------------------------------------------------------
# Termos de uso – 22 de Junho de 2012
# 1. Você deve dar crédito a Khas se estiver usando algum script Khas;
# 2. Todos os scripts e aulas Khas estão sob licença Creative Commons;
# 3. Todos os scripts Khas são livres para uso não comercial. Caso queira
#    algum script para uso comercial, confira abaixo destes termos quais
#    scripts são de uso comercial livre e quais são de uso comercial pago;
# 4. Todos os scripts Khas são para uso pessoal, você pode usar e editar
#    para uso no seu projeto, porém você não pode postar nenhuma versão
#    modificada;
# 5. Você não pode dar créditos a si próprio por postar algum script Khas;
# 6. Caso queira compartilhar um script Khas, não poste o script ou o link
#    direto de download, apenas redirecione o usuário para
#    http://arcthunder.site40.net/
# 7. Todos os scripts Khas são para uso no maker em que foram feitos.
#    Não é autorizada nenhuma espécie de conversão;
# 8. É sua obrigação (usuário) conferir esta página de termos no dia em que
#    lançar seu projeto. As normas aqui presentes devem ser cumpridas pelo
#    seu projeto.
#
# Scripts de uso comercial livre:
# - Sapphire Action System IV (RPG Maker VX Ace)
# - Awesome Light Effects (RPG Maker VX Ace)
# - Pixel movement (RPG Maker VX e RPG Maker VX Ace)
# - Sprite & Window Smooth Sliding (RPG Maker VX e RPG Maker VX Ace)
# - Pathfinder (RPG Maker VX Ace)
#
# Veja todos os termos em: http://arcthunder.site40.net/termos/
#
#-------------------------------------------------------------------------------
# * Caracteristicas
#-------------------------------------------------------------------------------
# HUD do SAS IV. Configure abaixo.
#
#-------------------------------------------------------------------------------
# * Configuração
#-------------------------------------------------------------------------------
module HUD_Core
  # Nome da imagem de fundo
  Background_Name = "hud_bg"
  # Imagem da barra de HP
  HPBar_Image = "hp_bar"
  # Imagem da barra de MP
  MPBar_Image = "mp_bar"
  # Imagem da barra de EXP
  EXPBar_Image = "exp_bar"
  # Largura do conteúdo
  Contents_Width = 544
  # Altura do conteúdo
  Contents_Height = 416
  # Tamanho da fonte
  Font_Size = 16
  # Nome da fonte
  Font_Name = "Verdana"
  # Cor da fonte
  Font_Color =  Color.new(255,255,255)
  # Negrito?
  Font_Bold = true
  # Itálico?
  Font_Italic = false
  # ID do ícone de ausência de habilidade
  No_Skill_Icon = 0
  # Posição X da barra de HP
  Health_X = 0
  # Posição Y da barra de HP
  Health_Y = 10
  # Largura da barra de HP
  Health_Width = 133
  # Altura da barra de HP
  Health_Height = 9
  # Cor da barra de HP
  Health_Color = Color.new(77,4,4)
  # Posição X da barra de EXP
  Exp_X = 0
  # Posição Y da barra de EXP
  Exp_Y = 401
  # Largura da barra de EXP
  Exp_Width = 544
  # Altura da barra de EXP
  Exp_Height = 4
  # Cor da barra de EXP
  Exp_Color = Color.new(214,214,214)
  # Posição X da barra de MP
  Magic_X = 0
  # Posição Y da barra de MP
  Magic_Y = 26
  # Largura da barra de MP
  Magic_Width = 96
  # Altura da barra de MP
  Magic_Height = 9
  # Cor da barra de MP
  Magic_Color = Color.new(83,129,255)
  # Posição X do nome
  Name_X = 40
  # Posição Y do nome
  Name_Y = 40
  # Posição X da Habilidade
  Spell_X = 4
  # Posição Y da Habilidade
  Spell_Y = 74
  # Posição X do ícone
  Icon_X = 8
  # Posição Y do ícone
  Icon_Y = 44
  # Posição X do nível
  Level_X = 24
  # Posição Y do nível
  Level_Y = 55
  # String do nível
  Level_String = "Nv "
  # Posições do char do herói
  Character_X = 0
  Character_Y = 0
end
#-------------------------------------------------------------------------------
# * Registrar
#-------------------------------------------------------------------------------
if $khas_awesome.nil?
  $khas_awesome = []
end
scripts = []
$khas_awesome.each { |script| scripts << script[0] }
unless scripts.include?("Sapphire Action System")
  error = Sprite.new
  error.bitmap = Bitmap.new(544,416)
  error.bitmap.draw_text(0,208,544,32,"Por favor, instale o Sapphire Action System IV",1)
  error.bitmap.draw_text(0,240,544,32,"Os scripts adicionais precisam do principal",1)
  continue = Sprite.new
  continue.bitmap = Bitmap.new(544,416)
  continue.bitmap.font.color = Color.new(0,255,0)
  continue.bitmap.font.size = error.bitmap.font.size - 3
  continue.bitmap.draw_text(0,384,544,32,"Tecle ENTER para sair",1)
  add = Math::PI/80; max = 2*Math::PI; angle = 0
  loop do
    Graphics.update; Input.update
    angle += add; angle %= max
    continue.opacity = 185 + 70* Math.cos(angle)
    break if Input.trigger?(Input::C)
  end
  error.bitmap.dispose; continue.bitmap.dispose
  error.bitmap = nil; continue.bitmap = nil
  error.dispose; continue.dispose
  error = nil; continue = nil
  exit
end

$khas_awesome << ["SAS HUD",4.0]

#-------------------------------------------------------------------------------
# * Script
#-------------------------------------------------------------------------------

class Sapphire_Hud
  include HUD_Core
  def initialize
    @contents = Sprite.new
    @background = Sprite.new
    @base = Sprite.new
    @contents.bitmap = Bitmap.new(Contents_Width, Contents_Height)
    @base.bitmap = Bitmap.new(Contents_Width, Contents_Height)
    @background.bitmap = Cache.system(Background_Name)
    @base.bitmap.font.bold = Font_Bold
    @base.bitmap.font.italic = Font_Italic
    @base.bitmap.font.size = Font_Size
    @base.bitmap.font.color = Font_Color
    @base.bitmap.font.name = Font_Name
    @contents.z = 200
    @background.z = 210
    @base.z = 220
    @locked = false
    hide(true)
  end
  def refresh_bars(current_hp=@actor.hp)
    return if @hidden
    hp = ((current_hp)*Health_Width)/@actor.mhp
    mp = (@actor.mp*Magic_Width)/@actor.mmp
    exp = ((@actor.exp-@actor.current_level_exp)*Exp_Width)/(@actor.next_level_exp-@actor.current_level_exp)
    @contents.bitmap.clear
    hpbar = Cache.system(HPBar_Image)
    hpbar_srcrect = hpbar.rect
    hpbar_srcrect.width = hp
    mpbar = Cache.system(MPBar_Image)
    mpbar_srcrect = mpbar.rect
    mpbar_srcrect.width = mp
    expbar = Cache.system(EXPBar_Image)
    expbar_srcrect = expbar.rect
    expbar_srcrect.width = exp
    @contents.bitmap.blt(Health_X, Health_Y, hpbar, hpbar_srcrect)
    @contents.bitmap.blt(Magic_X, Magic_Y, mpbar, mpbar_srcrect)
    @contents.bitmap.blt(Exp_X, Exp_Y, expbar, expbar_srcrect)
    character = Cache.character(@actor.character_name)
    sign = @actor.character_name[/^[\!\$]./]
    if sign != nil and sign.include?('$')
      cw = character.width / 3
      ch = character.height / 4
    else
      cw = character.width / 12
      ch = character.height / 8
    end
    @contents.bitmap.blt(Character_X, Character_Y, character,
        Rect.new(0, 0, cw, ch))
  end
  def refresh_base
    return if @hidden
    @base.bitmap.clear
    @actor = $game_party.members[0]
    skill = $game_player.current_skill[0]
    @base.bitmap.draw_text(Name_X, Name_Y,100,Font_Size+4,@actor.name)
    @base.bitmap.draw_text(Level_X, Level_Y,64,Font_Size+4,Level_String+@actor.level.to_s,1)
    temp = Cache.system("Iconset")
    unless skill.nil?
      @base.bitmap.draw_text(Spell_X,Spell_Y,68,Font_Size+4,skill.name)
      @base.bitmap.blt(Icon_X,Icon_Y,temp,Rect.new(skill.icon_index%16*24,skill.icon_index/16*24,24,24))
    else
      @base.bitmap.blt(Icon_X,Icon_Y,temp,Rect.new(No_Skill_Icon%16*24,No_Skill_Icon/16*24,24,24))
    end
    temp.dispose
    temp = nil
  end
  def hide(lock=false)
    unless @background.nil?
      @background.bitmap.dispose
      @background.dispose
      @background = nil
    end
    unless @base.nil?
      @base.bitmap.dispose
      @base.dispose
      @base = nil
    end
    unless @contents.nil?
      @contents.bitmap.dispose
      @contents.dispose
      @contents = nil
    end
    @hidden = true
    @locked = lock unless @locked
  end
  def show(unlock=false)
    @actor = $game_party.members[0]
    return if @locked && !unlock
    @contents = Sprite.new
    @background = Sprite.new
    @base = Sprite.new
    @contents.bitmap = Bitmap.new(Contents_Width, Contents_Height)
    @base.bitmap = Bitmap.new(Contents_Width, Contents_Height)
    @background.bitmap = Cache.system(Background_Name)
    @base.bitmap.font.bold = Font_Bold
    @base.bitmap.font.italic = Font_Italic
    @base.bitmap.font.size = Font_Size
    @base.bitmap.font.color = Font_Color
    @base.bitmap.font.name = Font_Name
    @contents.z = 200
    @background.z = 210
    @base.z = 220
    @hidden = false
    refresh_base
    refresh_bars
    @locked = false
  end
end

Só mudar as variáveis:

No início das configurações:
  • HPBar_Image
  • MPBar_Image
  • EXPBar_Image

No final das configurações:
  • Character_X
  • Character_Y
RPG Maker Brasil.net Está de Volta!!! > http://www.rpgmakerbrasil.net/forum

Avatar by: Driko

http://i.imgur.com/cHNwiLZ.png

Harden

  • *
  • Posts: 163
  • Ouros: 145
  • Preciso pagar o aluguel
Resposta 5: 18/01/2016 às 16:59 - Última modificação por Harden em 18/01/2016 às 17:36

Opa, obrigado! Serviu como uma luva!

Agora caso eu queria mudar para onde a barra diminui, como faço?

Por exemplo: A barra comecar a diminuir de cima para baixo e nao da direita para esquerda.

Ou da esquerda pra direita, etc.
Your drill is the drill that will pierce the Heavens!

Alucard_2

  • *
  • Posts: 102
  • Ouros: 75
  • Confesso que estou tendo um caso com o Nandik
Resposta 6: 18/01/2016 às 17:48

Huuh seria simplinho também de adicionar, vai ser deterministicamente vertical? Enfim, no mais:

Código: [Selecionar]
#-------------------------------------------------------------------------------
# * [ACE] SAS IV HUD
#-------------------------------------------------------------------------------
# * Por Khas Arcthunder (khasarcthunder.wordpress.com)
# * Versão: 1.0 BR
# * Lançada em: 05/01/2012
#
#-------------------------------------------------------------------------------
# * Termos de Uso
#-------------------------------------------------------------------------------
# Termos de uso – 22 de Junho de 2012
# 1. Você deve dar crédito a Khas se estiver usando algum script Khas;
# 2. Todos os scripts e aulas Khas estão sob licença Creative Commons;
# 3. Todos os scripts Khas são livres para uso não comercial. Caso queira
#    algum script para uso comercial, confira abaixo destes termos quais
#    scripts são de uso comercial livre e quais são de uso comercial pago;
# 4. Todos os scripts Khas são para uso pessoal, você pode usar e editar
#    para uso no seu projeto, porém você não pode postar nenhuma versão
#    modificada;
# 5. Você não pode dar créditos a si próprio por postar algum script Khas;
# 6. Caso queira compartilhar um script Khas, não poste o script ou o link
#    direto de download, apenas redirecione o usuário para
#    http://arcthunder.site40.net/
# 7. Todos os scripts Khas são para uso no maker em que foram feitos.
#    Não é autorizada nenhuma espécie de conversão;
# 8. É sua obrigação (usuário) conferir esta página de termos no dia em que
#    lançar seu projeto. As normas aqui presentes devem ser cumpridas pelo
#    seu projeto.
#
# Scripts de uso comercial livre:
# - Sapphire Action System IV (RPG Maker VX Ace)
# - Awesome Light Effects (RPG Maker VX Ace)
# - Pixel movement (RPG Maker VX e RPG Maker VX Ace)
# - Sprite & Window Smooth Sliding (RPG Maker VX e RPG Maker VX Ace)
# - Pathfinder (RPG Maker VX Ace)
#
# Veja todos os termos em: http://arcthunder.site40.net/termos/
#
#-------------------------------------------------------------------------------
# * Caracteristicas
#-------------------------------------------------------------------------------
# HUD do SAS IV. Configure abaixo.
#
#-------------------------------------------------------------------------------
# * Configuração
#-------------------------------------------------------------------------------
module HUD_Core
  # Nome da imagem de fundo
  Background_Name = "hud_bg"
  # Imagem da barra de HP
  HPBar_Image = "hp_bar"
  # Imagem da barra de MP
  MPBar_Image = "mp_bar"
  # Imagem da barra de EXP
  EXPBar_Image = "exp_bar"
  # Largura do conteúdo
  Contents_Width = 544
  # Altura do conteúdo
  Contents_Height = 416
  # Tamanho da fonte
  Font_Size = 16
  # Nome da fonte
  Font_Name = "Verdana"
  # Cor da fonte
  Font_Color =  Color.new(255,255,255)
  # Negrito?
  Font_Bold = true
  # Itálico?
  Font_Italic = false
  # ID do ícone de ausência de habilidade
  No_Skill_Icon = 0
  # Posição X da barra de HP
  Health_X = 0
  # Posição Y da barra de HP
  Health_Y = 10
  # Largura da barra de HP
  Health_Width = 133
  # Altura da barra de HP
  Health_Height = 9
  # Cor da barra de HP
  Health_Color = Color.new(77,4,4)
  # Posição X da barra de EXP
  Exp_X = 0
  # Posição Y da barra de EXP
  Exp_Y = 401
  # Largura da barra de EXP
  Exp_Width = 544
  # Altura da barra de EXP
  Exp_Height = 4
  # Cor da barra de EXP
  Exp_Color = Color.new(214,214,214)
  # Posição X da barra de MP
  Magic_X = 0
  # Posição Y da barra de MP
  Magic_Y = 26
  # Largura da barra de MP
  Magic_Width = 96
  # Altura da barra de MP
  Magic_Height = 9
  # Cor da barra de MP
  Magic_Color = Color.new(83,129,255)
  # Posição X do nome
  Name_X = 40
  # Posição Y do nome
  Name_Y = 40
  # Posição X da Habilidade
  Spell_X = 4
  # Posição Y da Habilidade
  Spell_Y = 74
  # Posição X do ícone
  Icon_X = 8
  # Posição Y do ícone
  Icon_Y = 44
  # Posição X do nível
  Level_X = 24
  # Posição Y do nível
  Level_Y = 55
  # String do nível
  Level_String = "Nv "
  # Posições do char do herói
  Character_X = 0
  Character_Y = 0
end
#-------------------------------------------------------------------------------
# * Registrar
#-------------------------------------------------------------------------------
if $khas_awesome.nil?
  $khas_awesome = []
end
scripts = []
$khas_awesome.each { |script| scripts << script[0] }
unless scripts.include?("Sapphire Action System")
  error = Sprite.new
  error.bitmap = Bitmap.new(544,416)
  error.bitmap.draw_text(0,208,544,32,"Por favor, instale o Sapphire Action System IV",1)
  error.bitmap.draw_text(0,240,544,32,"Os scripts adicionais precisam do principal",1)
  continue = Sprite.new
  continue.bitmap = Bitmap.new(544,416)
  continue.bitmap.font.color = Color.new(0,255,0)
  continue.bitmap.font.size = error.bitmap.font.size - 3
  continue.bitmap.draw_text(0,384,544,32,"Tecle ENTER para sair",1)
  add = Math::PI/80; max = 2*Math::PI; angle = 0
  loop do
    Graphics.update; Input.update
    angle += add; angle %= max
    continue.opacity = 185 + 70* Math.cos(angle)
    break if Input.trigger?(Input::C)
  end
  error.bitmap.dispose; continue.bitmap.dispose
  error.bitmap = nil; continue.bitmap = nil
  error.dispose; continue.dispose
  error = nil; continue = nil
  exit
end

$khas_awesome << ["SAS HUD",4.0]

#-------------------------------------------------------------------------------
# * Script
#-------------------------------------------------------------------------------

class Sapphire_Hud
  include HUD_Core
  def initialize
    @contents = Sprite.new
    @background = Sprite.new
    @base = Sprite.new
    @contents.bitmap = Bitmap.new(Contents_Width, Contents_Height)
    @base.bitmap = Bitmap.new(Contents_Width, Contents_Height)
    @background.bitmap = Cache.system(Background_Name)
    @base.bitmap.font.bold = Font_Bold
    @base.bitmap.font.italic = Font_Italic
    @base.bitmap.font.size = Font_Size
    @base.bitmap.font.color = Font_Color
    @base.bitmap.font.name = Font_Name
    @contents.z = 200
    @background.z = 210
    @base.z = 220
    @locked = false
    hide(true)
  end
  def refresh_bars(current_hp=@actor.hp)
    return if @hidden
    hp = ((current_hp)*Health_Width)/@actor.mhp
    mp = (@actor.mp*Magic_Width)/@actor.mmp
    exp = ((@actor.exp-@actor.current_level_exp)*Exp_Width)/(@actor.next_level_exp-@actor.current_level_exp)
    @contents.bitmap.clear
    hpbar = Cache.system(HPBar_Image)
    hpbar_srcrect = hpbar.rect
    hpbar_srcrect.height = hp
    mpbar = Cache.system(MPBar_Image)
    mpbar_srcrect = mpbar.rect
    mpbar_srcrect.height = mp
    expbar = Cache.system(EXPBar_Image)
    expbar_srcrect = expbar.rect
    expbar_srcrect.height = exp
    @contents.bitmap.blt(Health_X,
        Health_Y + (hpbar.rect.height - hpbar_srcrect.height),
        hpbar, hpbar_srcrect)
    @contents.bitmap.blt(Magic_X,
        Magic_Y + (mpbar.rect.height - mpbar_srcrect.height),
        mpbar, mpbar_srcrect)
    @contents.bitmap.blt(Exp_X,
        Exp_Y + (expbar.rect.height - expbar_srcrect.height),
        expbar, expbar_srcrect)
    character = Cache.character(@actor.character_name)
    sign = @actor.character_name[/^[\!\$]./]
    if sign != nil and sign.include?('$')
      cw = character.width / 3
      ch = character.height / 4
    else
      cw = character.width / 12
      ch = character.height / 8
    end
    @contents.bitmap.blt(Character_X, Character_Y, character,
        Rect.new(0, 0, cw, ch))
  end
  def refresh_base
    return if @hidden
    @base.bitmap.clear
    @actor = $game_party.members[0]
    skill = $game_player.current_skill[0]
    @base.bitmap.draw_text(Name_X, Name_Y,100,Font_Size+4,@actor.name)
    @base.bitmap.draw_text(Level_X, Level_Y,64,Font_Size+4,Level_String+@actor.level.to_s,1)
    temp = Cache.system("Iconset")
    unless skill.nil?
      @base.bitmap.draw_text(Spell_X,Spell_Y,68,Font_Size+4,skill.name)
      @base.bitmap.blt(Icon_X,Icon_Y,temp,Rect.new(skill.icon_index%16*24,skill.icon_index/16*24,24,24))
    else
      @base.bitmap.blt(Icon_X,Icon_Y,temp,Rect.new(No_Skill_Icon%16*24,No_Skill_Icon/16*24,24,24))
    end
    temp.dispose
    temp = nil
  end
  def hide(lock=false)
    unless @background.nil?
      @background.bitmap.dispose
      @background.dispose
      @background = nil
    end
    unless @base.nil?
      @base.bitmap.dispose
      @base.dispose
      @base = nil
    end
    unless @contents.nil?
      @contents.bitmap.dispose
      @contents.dispose
      @contents = nil
    end
    @hidden = true
    @locked = lock unless @locked
  end
  def show(unlock=false)
    @actor = $game_party.members[0]
    return if @locked && !unlock
    @contents = Sprite.new
    @background = Sprite.new
    @base = Sprite.new
    @contents.bitmap = Bitmap.new(Contents_Width, Contents_Height)
    @base.bitmap = Bitmap.new(Contents_Width, Contents_Height)
    @background.bitmap = Cache.system(Background_Name)
    @base.bitmap.font.bold = Font_Bold
    @base.bitmap.font.italic = Font_Italic
    @base.bitmap.font.size = Font_Size
    @base.bitmap.font.color = Font_Color
    @base.bitmap.font.name = Font_Name
    @contents.z = 200
    @background.z = 210
    @base.z = 220
    @hidden = false
    refresh_base
    refresh_bars
    @locked = false
  end
end

Agora os _Width vão contar como .height.
RPG Maker Brasil.net Está de Volta!!! > http://www.rpgmakerbrasil.net/forum

Avatar by: Driko

http://i.imgur.com/cHNwiLZ.png

Harden

  • *
  • Posts: 163
  • Ouros: 145
  • Preciso pagar o aluguel
Resposta 7: 18/01/2016 às 17:55

Opa, valeu, deu um pequeno bug pois a imagem que eu uso eh levemente inclinada, e a imagem acaba de movendo pra esquerda por algum motivo, mas funcionou!

Obrigado =D
Your drill is the drill that will pierce the Heavens!

Alucard_2

  • *
  • Posts: 102
  • Ouros: 75
  • Confesso que estou tendo um caso com o Nandik
Resposta 8: 18/01/2016 às 18:07

De nada ;D Se a dúvida estiver completa, algum moderador pode vir trancar o tópico. Quaisquer coisa se precisar modificações (mínimas) extras da parte que eu modifiquei, mandar uma PM.
RPG Maker Brasil.net Está de Volta!!! > http://www.rpgmakerbrasil.net/forum

Avatar by: Driko

http://i.imgur.com/cHNwiLZ.png

Gabriel

Resposta 9: 18/01/2016 às 23:56

Problema resolvido, qualquer coisa avise-me via MP que estarei destrancando o tópico. . :lock: