[XP/VX] Hud Dragón [Aporte]

OP

~Doku

Banneado
Mensajes
1.024
Reacciones
0
Puntos
0
Ubicación
Mafia
Si vengo a aportar esta buena Hud que me encontré por ahí en u.maker con el permiso del dueño del foro :3

-Nombre:
HUD Dragón
-Autor: Br_lemes
-Versión: Desconocida

-Descripción:

-Este script muestra una Hud muy buena donde se muestra tu HP, MP, experiencia, equipamiento y objetos.

-Es compatible en RPG Maker XP y en RPG Maker VX.

-Puede personalizarse

-Script:

Código:
=begin
  Dragon HUD
  Autor: Br_lemes
  Traducción: D.A.C.

  Se permite copiar, modificar o distribuir este script siempre y cuando este 
  mensaje se mantenga. No hay garantía, úsalo bajo tu propia responsabilidad.
=end

######################################################################
# CONFIGURACIONES - Modificar libremente, pero con cuidado. 
######################################################################

$RMVX = $TEST != nil

$DHUD_DRAGON1 = true # mostrar dragón 1
$DHUD_DRAGON2 = true # mostrar dragón 2
 
# Lista con las ID de 4 (VX) o 6 (XP) objetos que se mostrarán
# Usar el número 0 para no mostrar nada.
$DHUD_ITEMS = [1, 4, 7, 9, 12, 13]

# Estado inicial del HUD
$DHUD_DEFAULT = true # true (verdadero) visible, false (falso) no visible.
$DHUD_SWITCH  = 1    # interruptor que activa o desactiva el HUD.
 
$DHUD_OPACITY = 215 # Opacidad de las imágenes.
 
$DHUD_Y = $RMVX ? 382 : 446 # Coordenada 'Y' de referencia.

#--------------------------------------------------------------------------
# SOLO XP - Colores de la barra PV / PM / Exp.
# 0 = Rojo
# 1 = Azul
# 2 = Verde
# 3 = Rosa
# 4 = Azul claro
# 5 = Amarillo
# 6 = Blanco
#--------------------------------------------------------------------------
$DHUD_HP_COLOR  = 0
$DHUD_SP_COLOR  = 1
$DHUD_EXP_COLOR = 2

######################################################################
# FIN DE LA CONFIGURACIÓN - No modificar nada a partir de aquí a menos que tengas
# conocimientos de RGSS / RGSS2.
######################################################################

$dhud_eq_needrefresh = true
$dhud_it_needrefresh = true

class Game_Actor < Game_Battler
  def now_exp
    return @exp - @exp_list[@level]
  end
  def next_exp
    return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  end
  if $RMVX
    alias dhud_change_equip change_equip
    def change_equip(equip_type, item, test = false)
      dhud_change_equip(equip_type, item, test)
      $dhud_eq_needrefresh = true
    end
  else
    alias dhud_equip equip
    def equip(equip_type, item)
      dhud_equip(equip_type, item)
      $dhud_eq_needrefresh = true
    end
  end
end

class Game_Party
  alias dhud_gain_item gain_item
  def gain_item(item, n, include_equip = false)
    $RMVX ? dhud_gain_item(item, n, include_equip) : dhud_gain_item(item, n)
    $dhud_it_needrefresh = true
  end
end

class Scene_Map
  alias dhud_main main
  def main
    if $RMVX then @windowskin = Cache.system("Window") end
    @hud_checkex = -1
    @hud_back = Sprite.new
    @hud_back.z += 1
    @hud_back.opacity = $DHUD_OPACITY
    @hud_dragon1 = Sprite.new
    @hud_dragon1.z += 2
    @hud_dragon1.opacity = $DHUD_OPACITY
    @hud_dragon2 = Sprite.new
    @hud_dragon2.z += 2
    @hud_dragon2.mirror = true
    @hud_dragon2.opacity = $DHUD_OPACITY
    @hud_dragon1.visible = $DHUD_DRAGON1
    @hud_dragon2.visible = $DHUD_DRAGON2
    if $RMVX
      @hud_back.bitmap = Cache.system("backVX")
      @hud_back.y = 416 - @hud_back.height
      @hud_dragon1.bitmap = Cache.system("dragon")
      @hud_dragon1.y = 416 - @hud_dragon1.height
      @hud_dragon2.bitmap = Cache.system("dragon")
      @hud_dragon2.x = 544 - @hud_dragon2.width
      @hud_dragon2.y = 416 - @hud_dragon2.height
    else
      @hud_back.bitmap = RPG::Cache.windowskin("backXP")
      @hud_back.y = 480 - @hud_back.bitmap.height
      @hud_dragon1.bitmap = RPG::Cache.windowskin("dragon")
      @hud_dragon1.y = 480 - @hud_dragon1.bitmap.height
      @hud_dragon2.bitmap = RPG::Cache.windowskin("dragon")
      @hud_dragon2.x = 640 - @hud_dragon2.bitmap.width
      @hud_dragon2.y = 480 - @hud_dragon2.bitmap.height
    end
    @hud_hp = Sprite.new
    @hud_hp.x = 70
    @hud_hp.y = $DHUD_Y + 2
    @hud_hp.z += 2
    @hud_hp.bitmap = Bitmap.new(83, 4)
    @hud_mp = Sprite.new
    @hud_mp.x = 70
    @hud_mp.y = $DHUD_Y + 10
    @hud_mp.z += 2
    @hud_mp.bitmap = Bitmap.new(83, 4)
    @hud_ex = Sprite.new
    @hud_ex.x = 70
    @hud_ex.y = $DHUD_Y + 18
    @hud_ex.z += 2
    @hud_ex.bitmap = Bitmap.new(83, 4)
    @hud_eq = Sprite.new
    @hud_eq.x = 186
    @hud_eq.y = $DHUD_Y
    @hud_eq.z += 2
    @hud_eq.bitmap = Bitmap.new(142, 24)
    @hud_it = Sprite.new
    @hud_it.x = 360
    @hud_it.y = $DHUD_Y
    @hud_it.z += 2
    if $RMVX
      @hud_it.bitmap = Bitmap.new(114, 24)
    else
      @hud_it.bitmap = Bitmap.new(172, 24)
    end
    @hud_it.bitmap.font.size = 14
    $dhud_eq_needrefresh = true
    $dhud_it_needrefresh = true
    refresh
    dhud_main
    @hud_back.dispose
    @hud_dragon1.dispose
    @hud_dragon2.dispose
    @hud_hp.dispose
    @hud_mp.dispose
    @hud_ex.dispose
    @hud_eq.dispose
    @hud_it.dispose  
  end
  def refresh
    hudswitch = (($DHUD_DEFAULT && !$game_switches[$DHUD_SWITCH]) or (!$DHUD_DEFAULT && $game_switches[$DHUD_SWITCH]))
    @hud_back.visible = hudswitch
    if hudswitch
      @hud_dragon1.visible = $DHUD_DRAGON1
      @hud_dragon2.visible = $DHUD_DRAGON2
    else
      @hud_dragon1.visible = false
      @hud_dragon2.visible = false
    end
    @hud_hp.visible = hudswitch
    @hud_mp.visible = hudswitch
    @hud_ex.visible = hudswitch
    @hud_eq.visible = hudswitch
    @hud_it.visible = hudswitch
    draw_hp
    draw_mp
    draw_ex
    draw_eq if $dhud_eq_needrefresh
    draw_it if $dhud_it_needrefresh
  end
  if $RMVX 
    def text_color(n)
      x = 64 + (n % 8) * 8
      y = 96 + (n / 8) * 8
      return @windowskin.get_pixel(x, y)
    end
  else
    def bar_color(bitmap, x, y, w, color)
      case color
      when 0
        bitmap.fill_rect(x, y + 0, w, 1, Color.new(255, 96, 96, 255))
        bitmap.fill_rect(x, y + 1, w, 1, Color.new(255, 0, 0, 255))
        bitmap.fill_rect(x, y + 2, w, 1, Color.new(192, 0, 0, 255))
        bitmap.fill_rect(x, y + 3, w, 1, Color.new(128, 0, 0, 255))
      when 1
        bitmap.fill_rect(x, y + 0, w, 1, Color.new(96, 96, 255, 255))
        bitmap.fill_rect(x, y + 1, w, 1, Color.new(0, 0, 255, 255))
        bitmap.fill_rect(x, y + 2, w, 1, Color.new(0, 0, 192, 255))
        bitmap.fill_rect(x, y + 3, w, 1, Color.new(0, 0, 128, 255))
      when 2
        bitmap.fill_rect(x, y + 0, w, 1, Color.new(96, 255, 96, 255))
        bitmap.fill_rect(x, y + 1, w, 1, Color.new(0, 255, 0, 255))
        bitmap.fill_rect(x, y + 2, w, 1, Color.new(0, 192, 0, 255))
        bitmap.fill_rect(x, y + 3, w, 1, Color.new(0, 128, 0, 255))
      when 3
        bitmap.fill_rect(x, y + 0, w, 1, Color.new(255, 128, 255, 255))
        bitmap.fill_rect(x, y + 1, w, 1, Color.new(255, 0, 255, 255))
        bitmap.fill_rect(x, y + 2, w, 1, Color.new(192, 0, 192, 255))
        bitmap.fill_rect(x, y + 3, w, 1, Color.new(128, 0, 128, 255))
      when 4
        bitmap.fill_rect(x, y + 0, w, 1, Color.new(128, 255, 255, 255))
        bitmap.fill_rect(x, y + 1, w, 1, Color.new(0, 255, 255, 255))
        bitmap.fill_rect(x, y + 2, w, 1, Color.new(0, 192, 192, 255))
        bitmap.fill_rect(x, y + 3, w, 1, Color.new(0, 128, 128, 255))
      when 5
        bitmap.fill_rect(x, y + 0, w, 1, Color.new(255, 255, 128, 255))
        bitmap.fill_rect(x, y + 1, w, 1, Color.new(255, 255, 0, 255))
        bitmap.fill_rect(x, y + 2, w, 1, Color.new(192, 192, 0, 255))
        bitmap.fill_rect(x, y + 3, w, 1, Color.new(128, 128, 0, 255))
      when 6
        bitmap.fill_rect(x, y + 0, w, 1, Color.new(255, 255, 255, 255))
        bitmap.fill_rect(x, y + 1, w, 1, Color.new(255, 255, 255, 255))
        bitmap.fill_rect(x, y + 2, w, 1, Color.new(192, 192, 192, 255))
        bitmap.fill_rect(x, y + 3, w, 1, Color.new(128, 128, 128, 255))
      end
    end  
  end
  def draw_hp
    if $RMVX
      if @hud_checkhp == $game_party.members[0].hp then return end
      @hud_mp.bitmap.clear
      gw = 83 * $game_party.members[0].hp / $game_party.members[0].maxhp
      @hud_hp.bitmap.gradient_fill_rect(0, 0, gw, 4, text_color(20), text_color(21))
      @hud_checkhp = $game_party.members[0].hp
    else
      if @hud_checkhp == $game_party.actors[0].hp then return end
      @hud_mp.bitmap.clear
      gw = 83 * $game_party.actors[0].hp / $game_party.actors[0].maxhp
      bar_color(@hud_hp.bitmap, 0, 0, gw, $DHUD_HP_COLOR)
      @hud_checkhp = $game_party.actors[0].hp
    end
  end
  def draw_mp  
    if $RMVX
      if @hud_checkmp == $game_party.members[0].mp then return end
      @hud_mp.bitmap.clear
      gw = 83 * $game_party.members[0].mp / $game_party.members[0].maxmp
      @hud_mp.bitmap.gradient_fill_rect(0, 0, gw, 4, text_color(22), text_color(23))
      @hud_checkmp = $game_party.members[0].mp
    else
      if @hud_checkmp == $game_party.actors[0].sp then return end
      @hud_mp.bitmap.clear
      gw = 83 * $game_party.actors[0].sp / $game_party.actors[0].maxsp
      bar_color(@hud_mp.bitmap, 0, 0, gw, $DHUD_SP_COLOR)
      @hud_checkmp = $game_party.actors[0].sp
    end
  end
  def draw_ex
    if $RMVX
      if @hud_checkex == $game_party.members[0].next_exp then return end
      @hud_ex.bitmap.clear
      ex = $game_party.members[0].next_exp != 0 ? ex = $game_party.members[0].now_exp : ex = 1
      gw = 83 * ex / [$game_party.members[0].next_exp, 1].max
      @hud_ex.bitmap.gradient_fill_rect(0, 0, gw, 4, text_color(30), text_color(31))
      @hud_checkex = ex
    else
      if @hud_checkex == $game_party.actors[0].next_exp then return end
      @hud_ex.bitmap.clear
      ex = $game_party.actors[0].next_exp != 0 ? ex = $game_party.actors[0].now_exp : ex = 1
      gw = 83 * ex / [$game_party.actors[0].next_exp, 1].max
      bar_color(@hud_ex.bitmap, 0, 0, gw, $DHUD_EXP_COLOR)
      @hud_checkex = ex
    end
  end
  def draw_icon(contents, icon, x, y, enabled = true)
    if $RMVX
      bitmap = Cache.system("Iconset")
      rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
      contents.blt(x, y, bitmap, rect, enabled ? 255 : 128)
    else
      bitmap = RPG::Cache.icon(icon)
      contents.blt(x, y, bitmap, Rect.new(0, 0, 24, 24), enabled ? 255 : 128)
    end
  end
  def draw_eq
    @hud_eq.bitmap.clear
    if $RMVX
      actor = $game_party.members[0]
      draw_icon(@hud_eq.bitmap, $data_weapons[actor.weapon_id].icon_index, 0, 0, true) if actor.weapon_id != 0
      if actor.armor1_id != 0
        if actor.two_swords_style
          draw_icon(@hud_eq.bitmap, $data_weapons[actor.armor1_id].icon_index, 29, 0, true) if actor.armor1_id != 0
        else
          draw_icon(@hud_eq.bitmap, $data_armors[actor.armor1_id].icon_index, 29, 0, true) if actor.armor1_id != 0
        end
      end
      draw_icon(@hud_eq.bitmap, $data_armors[actor.armor2_id].icon_index, 58, 0, true) if actor.armor2_id != 0
      draw_icon(@hud_eq.bitmap, $data_armors[actor.armor3_id].icon_index, 87, 0, true) if actor.armor3_id != 0
      draw_icon(@hud_eq.bitmap, $data_armors[actor.armor4_id].icon_index, 116, 0, true) if actor.armor4_id != 0
    else
      actor = $game_party.actors[0]
      draw_icon(@hud_eq.bitmap, $data_weapons[actor.weapon_id].icon_name, 0, 0, true) if actor.weapon_id != 0
      draw_icon(@hud_eq.bitmap, $data_armors[actor.armor1_id].icon_name, 29, 0, true) if actor.armor1_id != 0
      draw_icon(@hud_eq.bitmap, $data_armors[actor.armor2_id].icon_name, 58, 0, true) if actor.armor2_id != 0
      draw_icon(@hud_eq.bitmap, $data_armors[actor.armor3_id].icon_name, 87, 0, true) if actor.armor3_id != 0
      draw_icon(@hud_eq.bitmap, $data_armors[actor.armor4_id].icon_name, 116, 0, true) if actor.armor4_id != 0
    end
    $dhud_eq_needrefresh = false
  end
  def draw_it
    @hud_it.bitmap.clear
    x = 0
    n = $RMVX ? 3 : 5
    for i in 0..n
      if $DHUD_ITEMS[i] != 0
        item = $data_items[$DHUD_ITEMS[i]]
        if $RMVX
          if item and $game_party.item_number(item) != 0
            draw_icon(@hud_it.bitmap, item.icon_index, x, 0, true)
            @hud_it.bitmap.draw_text(x + 16, 10, 12, 14, $game_party.item_number(item))
          end
        else
          if item and $game_party.item_number($DHUD_ITEMS[i]) != 0
            draw_icon(@hud_it.bitmap, item.icon_name, x, 0, true)
            @hud_it.bitmap.draw_text(x + 16, 10, 12, 14, $game_party.item_number($DHUD_ITEMS[i]).to_s)
          end
        end
      end
      x += 29
    end
    $dhud_it_needrefresh = false
  end
  alias dhud_update update
  def update
    dhud_update
    refresh
    @hud_back.update
    @hud_dragon1.update
    @hud_dragon2.update
    @hud_hp.update
    @hud_mp.update
    @hud_ex.update
    @hud_eq.update
    @hud_it.update
  end
end

-Imágenes:

-XP:

DHUD_XP.png


-VX:

DHUD_VX.jpg


-Instrucciones:

Pega encima del main como siempre y activar el interruptor uno.

En XP agregue las imágenes en la carpeta windowskin:

dragon.png

backXP.png


En VX estas a la carpeta system:

dragon.png

backVX.png


Saludos.
 

~J

Mensajes
605
Reacciones
2
Puntos
0
¡Buen aporte!

Es una HUD bastante bonita estéticamente y muy práctica y completa, además de que no tapa ni molesta para nada.

La probaré en breve.

Salut!
 
Mensajes
790
Reacciones
155
Puntos
0
Ubicación
Venezuela
Wey, que chido que esta, me la llevo. Me cayo del cielo, ahora con mi juego "The Last Dragon Sword" (No mamen con el Nitro Techno que ese solo era una idea).

Gracias por el aporte.
 

Angie

Heroic User
Mensajes
5.212
Reacciones
144
Puntos
1.086
Ubicación
Where despair lies
no c abren los spoilers ´_`U
Actualiza la página, y si sigue sin funcionarte reinicia el navegador. A mí me funcionan perfectamente.

Y por favor, si se va a comentar evitemos poner algo que no venga al tema...
 
Arriba Pie