¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [RPG Maker XP] Silent's Easy HUD el Vie Jul 20, 2012 6:06 pm

Night

avatar
Script: Silent's Easy HUD
Autor: silentwalker
Versión: 1.0
Descripción:
Muestra HP, SP y EXP en barras y actualiza cada una por separado solo si es necesario.
Ademas muestra tambien el nombre y la arma equipada.


Código:

    #==============================================================================
# ** Silent's Easy HUD
#------------------------------------------------------------------------------
# * Version - 1.0
# * Versopm - 1.1
# * Fecha - 04/04/10 (DD/MM/YY)
# * Fecha - 05/04/10 (DD/MM/YY)
#------------------------------------------------------------------------------
# * Introduccion - Ejemplo de HUD basico para tutorial, muestra HP, SP y EXP
# en barras y actualiza cada una por separado solo si es necesario.
#==============================================================================

  #--------------------------------------------------------------------------
  # * Fuente del hud, tamaño
  #--------------------------------------------------------------------------
  HUD_FONTV = ['Tahoma', 18]
  #--------------------------------------------------------------------------
  # * ID del switch para activar/desactivar el HUD
  #--------------------------------------------------------------------------
  TOGGLE_SW = 10
  #--------------------------------------------------------------------------
  # * Colores para las barras
  #--------------------------------------------------------------------------
  BAR_COLOR = [
  # Color para la barra de HP
  Color.new(255, 0, 0, 200),
  # Color para la barra de SP
  Color.new(0, 0, 255, 200),
  # Color para la barra de EXP
  Color.new(0, 255, 0, 200)
  ]
  #-------------------------------------------------------------------------
  # * Teclas para cambiar el orden de los personajes
  #-------------------------------------------------------------------------
  TOGGLE_KS = [Input::R, Input::L]
  #-------------------------------------------------------------------------
  # * true = En nivel 99 la barra permanece llena, false = permanece vacia
  #-------------------------------------------------------------------------
  LVL_99STL = true

#==============================================================================
# ** HUD
#------------------------------------------------------------------------------
# - Clase del HUD
#==============================================================================

class SWHUD
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  def initialize(hero)
    # variables basicas
    @hero_base = hero
    @hero_base_hp = hero.hp
    @hero_base_sp = hero.sp
    @hero_base_ep = hero.exp_s.to_i
    # sprite para el fondo
    @back_sprite = Sprite.new
    @back_sprite.bitmap = Bitmap.new(160, 128)
    @back_sprite.bitmap.fill_rect(2, 32, 160, 32, Color.new(0, 0, 0, 120))
    @back_sprite.z = 999
    @back_sprite.x = 4
    # para mostrar la parte superior del chara
    bitmap = RPG::Cache.character(@hero_base.character_name, @hero_base.character_hue)
    rect = Rect.new(0, 0, bitmap.width / 4, bitmap.height / 8)
    @back_sprite.bitmap.blt(4, 4, bitmap, rect)
    # crea el borde de las barras
    @back_sprite.bitmap.fill_rect(3, 33, 155 + 1, 8, Color.new(255, 255, 255, 255))
    @back_sprite.bitmap.fill_rect(3 + 1, 33 + 1, 155 - 1, 8 - 2, Color.new(0, 0, 0, 120))
    @back_sprite.bitmap.fill_rect(3, 44, 155 + 1, 8, Color.new(255, 255, 255, 255))
    @back_sprite.bitmap.fill_rect(3 + 1, 44 + 1, 155 - 1, 8 - 2, Color.new(0, 0, 0, 120))
    @back_sprite.bitmap.fill_rect(3, 55, 155 + 1, 8, Color.new(255, 255, 255, 255))
    @back_sprite.bitmap.fill_rect(3 + 1, 55 + 1, 155 - 1, 8 - 2, Color.new(0, 0, 0, 120))
    # setea configuracion de fuentes, dibuja fondos extras y escribe informacion
    @back_sprite.bitmap.font.name = HUD_FONTV[0]
    @back_sprite.bitmap.font.size = HUD_FONTV[1]
    @back_sprite.bitmap.fill_rect(40, 12 - 8, 120, 26, Color.new(0, 0, 0, 120))
    @back_sprite.bitmap.fill_rect(40, 12 + 16, 120, 2, Color.new(255, 255, 255, 120))
    draw_shadow_font(40, 2, 120, 32, hero.name, 1)
    @back_sprite.bitmap.fill_rect(2, 66, 160, 26, Color.new(0, 0, 0, 120))
    @back_sprite.bitmap.fill_rect(2, 66 + 24, 160, 2, Color.new(255, 255, 255, 120))
    draw_equip_icon(4, 66, $data_weapons[@hero_base.weapon_id])
    draw_shadow_font(32, 64, 96, 32, $data_weapons[@hero_base.weapon_id].name)
    # primer seteado de informacion
    hp_w = (@hero_base.hp * 154) / @hero_base.maxhp.to_i
    @back_sprite.bitmap.fill_rect(4, 34, hp_w, 6, BAR_COLOR[0])
    @hero_base_hp = @hero_base.hp
    sp_w = (@hero_base.sp * 154) / @hero_base.maxsp.to_i
    @back_sprite.bitmap.fill_rect(4, 45, sp_w, 6, BAR_COLOR[1])
    @hero_base_sp = @hero_base.sp
    ep_w = (@hero_base.exp_s.to_i * 154) / @hero_base.next_exp_s.to_i
    @back_sprite.bitmap.fill_rect(4, 56, ep_w, 6, BAR_COLOR[2])
    @hero_base_ep = @hero_base.exp_s.to_i
  end
  #--------------------------------------------------------------------------
  # * Metodo para mostrar el icono del arma equipada
  #--------------------------------------------------------------------------
  def draw_equip_icon(x, y, item)
    return if item == nil
    bitmap = RPG::Cache.icon(item.icon_name)
    @back_sprite.bitmap.blt(x, y, bitmap, Rect.new(0, 0, 24, 24))
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    if @hero_base_hp != @hero_base.hp
      hp_w = (@hero_base.hp * 154) / @hero_base.maxhp.to_i
      @back_sprite.bitmap.fill_rect(4, 34, 154, 6, Color.new(0, 0, 0, 120))
      @back_sprite.bitmap.fill_rect(4, 34, hp_w, 6, BAR_COLOR[0])
      @hero_base_hp = @hero_base.hp
    elsif @hero_base_sp != @hero_base.sp
      sp_w = (@hero_base.sp * 154) / @hero_base.maxsp.to_i
      @back_sprite.bitmap.fill_rect(4, 45, 154, 6, Color.new(0, 0, 0, 120))
      @back_sprite.bitmap.fill_rect(4, 45, sp_w, 6, BAR_COLOR[1])
      @hero_base_sp = @hero_base.sp
    elsif @hero_base_ep != @hero_base.exp_s.to_i
      if LVL_99STL == false
        end_value = 1 if @hero_base.next_exp_s.to_i == 0
        end_value = @hero_base.next_exp_s.to_i if @hero_base.next_exp_s.to_i != 0
        ep_w = (@hero_base.exp_s.to_i * 154) / end_value
      elsif LVL_99STL == true
        if @hero_base.next_exp_s.to_i == 0
          ep_w = 154
        elsif @hero_base.next_exp_s.to_i != 0
          ep_w = (@hero_base.exp_s.to_i * 154) / @hero_base.next_exp_s.to_i
        end
      end
      @back_sprite.bitmap.fill_rect(4, 56, 154, 6, Color.new(0, 0, 0, 120))
      @back_sprite.bitmap.fill_rect(4, 56, ep_w, 6, BAR_COLOR[2])
      @hero_base_ep = @hero_base.exp_s.to_i
    end
  end
  #--------------------------------------------------------------------------
  # * Metodo que disposea los sprites usados y pones las variables a nil
  #--------------------------------------------------------------------------
  def dispose
    @hero_base, @hero_base_hp, @hero_base_sp, @hero_base_ep = nil, nil, nil, nil
    @back_sprite.bitmap.clear
    @back_sprite.bitmap.dispose
    @back_sprite.dispose
  end
  #--------------------------------------------------------------------------
  # * Metodo para mostrar fuente con sombreado
  #--------------------------------------------------------------------------
  def draw_shadow_font(x, y, w, h, string, a = 0)
    @back_sprite.bitmap.font.color = Color.new(0, 0, 0, 255)
    @back_sprite.bitmap.draw_text(x + 2, y + 2, w, h, string, a)
    @back_sprite.bitmap.font.color = Color.new(255, 255, 255, 255)
    @back_sprite.bitmap.draw_text(x, y, w, h, string, a)
  end
end

#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
# - Agregados a la clase para manejar el HUD
#==============================================================================

class Scene_Map
  #--------------------------------------------------------------------------
  # * Alias al metodo Main
  #--------------------------------------------------------------------------
  alias silentwalker_hud_main main
  #--------------------------------------------------------------------------
  # * Alias al metodo update
  #--------------------------------------------------------------------------
  alias silentwalker_hud_update update
  #--------------------------------------------------------------------------
  # * Main
  #--------------------------------------------------------------------------
  def main
    @sw_hud = SWHUD.new($game_party.actors[0]) if $game_switches[10] == true
    silentwalker_hud_main
    @sw_hud.dispose if @sw_hud != nil
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    if $game_switches[TOGGLE_SW] == false && @sw_hud != nil
      @sw_hud.dispose
      @sw_hud = nil
      $game_map.need_refresh = true
    elsif $game_switches[TOGGLE_SW] == true && @sw_hud == nil
      @sw_hud = SWHUD.new($game_party.actors[0])
      $game_map.need_refresh = true
    elsif $game_switches[TOGGLE_SW] == true && @sw_hud != nil
      @sw_hud.update
      if Input.trigger?(TOGGLE_KS[0])
        @sw_hud.dispose
        lider = $game_party.actors.shift
        $game_party.add_actor(lider.id)
        @sw_hud = SWHUD.new($game_party.actors[0])
      elsif Input.trigger?(TOGGLE_KS[1])
        @sw_hud.dispose
        n_lider = $game_party.actors.pop
        $game_party.actors.unshift(n_lider)
        $game_player.refresh
        @sw_hud = SWHUD.new($game_party.actors[0])
      end
    end
    silentwalker_hud_update
  end
end
   

Imagen:




Instrucciones de uso:
  1. Coloque arriba el Main.
  2. Para activarse es necesario activar el interruptor 10 por defecto.
  3. Puedes personalizar el script de manera sencilla en la parte editable.




Tenia mucho tiempo sin aportar a esta hermosa comunidad, en fin.
Espero que les guste Ópalo Contento

Salu2

#2 Re: [RPG Maker XP] Silent's Easy HUD el Sáb Jul 21, 2012 4:51 am

Kululu

avatar
Una HUD bastante sencilla, pero útil y modificable, nada menos. Un bonito aporte, Night.

¡+15 Makedas!



     

¡Visita mis galerías de Tumblr y DeviantArt!

#3 Re: [RPG Maker XP] Silent's Easy HUD el Sáb Jul 21, 2012 5:56 am

Cuervoso

avatar
Hola Night, que puedo decir, la interfaz es básica y de fácil uso (lo que caracteriza a este Script).

Muy útil para las personas que no quieren molestarse en hacer complicadas interfaces o que simplemente no se manejan con Scripts y el Diseño.

Gracias por aportar, es bueno que estés de regreso aquí.

Saludos!






Cuervoso! No te pases ¬_¬

#4 Re: [RPG Maker XP] Silent's Easy HUD el Sáb Jul 21, 2012 7:41 am

Night

avatar
Gracias DarkRaven por la bienvenida Ópalo Contento
Gracias Kululu por las makedas Ópalo Sonriente me gustaria que tomaras algo de mi gran fortuna (xD) ya que te debo por la ayuda que me diste en este tema:

http://www.universomaker.net/t1710-charas-de-digimon

Salu2!

#5 Re: [RPG Maker XP] Silent's Easy HUD el Sáb Jul 21, 2012 5:38 pm

Faye Valentine

avatar
Hey, que script más simple, pero es cool, si que lo es. Ideal para novatos, aunque, si sabes un poco de scripting, lo puedes tomar como base para hacer otro aún más cool, hoho.

-Zvanzhicq Spolszvenzka

#6 Re: [RPG Maker XP] Silent's Easy HUD el Sáb Jul 21, 2012 7:06 pm

orochii

avatar
Odio tu firma de Copia de Misty 2 =D.
==
El script me gusta, por su simplicidad y porque funciona muy bien, bien optimizado, y aun así se ve muy limpio. Es del tipo de scripts que me gustan, con buenas optimizaciones xDDD. En el VX/A últimamente se ha ido perdiendo eso >=D (que está bien que no se compliquen y que "no sea necesario", pero...).

Calidad es calidad C:,
Orochii Zouveleki

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.