por blackcrow Sex Set 26, 2014 12:57 pm
Agora lembrei, vc precisa usar um Switch pra ativar e desativar a HUD, já que o "Chamar Script" não funciona pra isso.
Eu editei o script(não testei, não uso vxace), teste:
- Código:
#==============================================================================
# • SAO HUD
#==============================================================================
# Autor: Dax
# Versão: 1.2
# Site: www.dax-soft.weebly.com
# Requerimento: Dax Core
#==============================================================================
# • Descrição:
#------------------------------------------------------------------------------
# Trata-se de uma HUD baseada no anime Sword Art Online, Quando a barra
# estiver mais ou menos na metade ela irá ficar alaranjada é quando
# estiver quase no fim ficará meio avermelhada e quando estiver cheia verde.
# Nela irá mostrar o nome, hp, level do personagem, de certo modo igual ao Anime.
#==============================================================================
# • Como usar:
#------------------------------------------------------------------------------
# Para ativar/desativar a HUD.. Basta chamar o comando
# Rpg.sao_hud | no 'Chamar Script'..
# * Para ativar : Rpg.sao_hud = true
# * Para desativar : Rpg.sao_hud = false
#==============================================================================
Dax.register(:sao_hud)
#==============================================================================
# • Para Ativar/Desativar HUD.
#==============================================================================
class << Rpg
#----------------------------------------------------------------------------
# • Variável pública do módulo.
#----------------------------------------------------------------------------
attr_accessor :sao_hud # Ativar/Desativar HUD.
attr_reader :sao_hud_switch # Switch para Ligar/Desligar HUD no jogo.
#----------------------------------------------------------------------------
# • DataManager
#----------------------------------------------------------------------------
alias :sao_hud_data_manager :data_manager
def data_manager
sao_hud_data_manager
@sao_hud = true
@sao_hud_switch = 1 # Switch para Ligar/Desligar a HUD.
end
end
#==============================================================================
# • Configuração
#==============================================================================
class << Rpg::Hud
def sao
return {
id_actor: 0, # ID do Personagem.
background: "Base Hud", # Nome da imagem de fundo da HUD.
x: 16, # Posição no eicho X onde a HUD se encontra.
y: 16, # Posição no eicho Y onde a HUD se encontra.
z: 200, # Prioridade da HUD no mapa.
bar_hp: "Hp", # Nome da imagem da barra de HP.
speed_fade_to_map: 6, # Velocidade para aparecer no mapa.
key_hide: Key::D, # Chave para ativar/desativar HUD.
dead: true, # Morrer quando chegar a 0 o HP.
}
end
end
#==============================================================================
# • Objeto da HUD.
#==============================================================================
class SAO_HUD
#----------------------------------------------------------------------------
# • Inicialização dos objetos.
#----------------------------------------------------------------------------
def initialize
@actor = $game_party.members[Rpg::Hud.sao[:id_actor]]
@background = Sprite.new("S: " + Rpg::Hud.sao[:background])
@background.x, @background.y, @background.z = Rpg::Hud.sao[:x],Rpg::Hud.sao[:y],Rpg::Hud.sao[:z]
@bitmap_hp = Cache.system(Rpg::Hud.sao[:bar_hp])
@hp = Sprite.new([@background.width, @background.height])
@hp.x, @hp.y, @hp.z = @background.x, @background.y, @background.z
percent = @bitmap_hp.width.to_p(@actor.hp, @actor.mhp)
@hp.bitmap.blt(82, 8, @bitmap_hp, Rect.new(0,0,percent,@bitmap_hp.height))
@hp.bitmap.hue_change(percent >= 100 ? -360 : percent >= 10 ? -51 : -81)
@name = Sprite_Text.new(@background.x+36, @background.y+5, 48, 20, @actor.name)
@number_hp = Sprite_Text.new(@background.x+174,@background.y+23,64,16,"#{@actor.hp}/#{@actor.mhp}")
@level = Sprite_Text.new(@background.x+235,@background.y+23,64,16,"Lv. #{@actor.level}")
@fade_to_map = false
[@background, @hp, @name, @number_hp, @level].each { |i| i.opacity = 0 }
[@background, @hp, @name, @number_hp, @level].each { |i| i.visible = Rpg.sao_hud }
end
#----------------------------------------------------------------------------
# • Renovação dos objetos.
#----------------------------------------------------------------------------
def dispose
[@background, @hp, @name, @number_hp, @level].each(&:dispose)
end
#----------------------------------------------------------------------------
# • Atualização dos objetos.
#----------------------------------------------------------------------------
def update
if (Rpg.sao_hud && !$game_switches[Rpg.sao_hud_switch]) or (!Rpg.sao_hud && $game_switches[Rpg.sao_hud_switch])
[@background, @hp, @name, @number_hp, @level].each { |i| i.visible = true }
else
[@background, @hp, @name, @number_hp, @level].each { |i| i.visible = false }
end
SceneManager.goto(Scene_Gameover) if Rpg::Hud.sao[:dead] and @actor.hp <= 1
[@name, @number_hp, @level].each(&:update)
[@number_hp, @level].each_with_index{|i,a|i.bitmap.font.size = 14-(a*4)}
if trigger?(Rpg::Hud.sao[:key_hide])
Rpg.sao_hud = Rpg.sao_hud ? false : true
[@background, @hp, @name, @number_hp, @level].each { |i| i.visible = Rpg.sao_hud }
end
unless @fade_to_map
[@background, @hp, @name, @number_hp, @level].each { |i| i.opacity += Rpg::Hud.sao[:speed_fade_to_map] unless i.opacity >= 255}
@fade_to_map = @level.opacity >= 255
end
@number_hp.text = "#{@actor.hp}/#{@actor.mhp}"
@level.text = "Lv. #{@actor.level}"
@name.text = @actor.name unless @name.text == @actor.name
@hp.bitmap.clear
percent = @bitmap_hp.width.to_p(@actor.hp, @actor.mhp)
@hp.bitmap.blt(82, 8, @bitmap_hp, Rect.new(0,0,percent,@bitmap_hp.height))
@hp.bitmap.hue_change(percent >= 100 ? -360 : percent >= 10 ? -51 : -81)
end
#==============================================================================
# • Desenhar no Mapa.
#==============================================================================
class Scene_Map < Scene_Base
#----------------------------------------------------------------------------
# • Principal dos objetos.
#----------------------------------------------------------------------------
alias :hud_sao_main :main
def main
@sao_hud = SAO_HUD.new
hud_sao_main
@sao_hud.dispose
end
#----------------------------------------------------------------------------
# • Atualização dos objetos.
#----------------------------------------------------------------------------
alias :hud_sao_update :update
def update
hud_sao_update
@sao_hud.update
end
end
o ID do Switch que liga/desliga a HUD é 1, se quiser pode mudar na variável
@sao_hud_switchBasta criar um evento e ativar o Switch (comando "Opções de Switch").
Se a HUD está ativada(
@sao_hud = true) vc precisa ligar o Switch(ON) pra desativar a HUD ou desligar o Switch(OFF) pra ativar a HUD.
Se a HUD está desativada(
@sao_hud = false) basta ligar a Switch pra ativar a HUD ou desligar o Switch pra desativar a HUD.
Se quiser desativar a HUD, no inicio do script procure por
@sao_hud = true e mude para
@sao_hud = falseQuando o jogo iniciar a HUD já estará desativada.
Sobre o erro:
No script imperial system, procure por
hud_need_refresh= e de print em todo o código e poste aqui.
Última edição por blackcrow em Seg Set 29, 2014 5:46 pm, editado 9 vez(es)