¡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 [VX] Barra de PV enemigos sin imagen el Mar Feb 28, 2012 1:21 pm

FIGO

avatar
Barra de HP para los enemigos
Créditos: Star

Descripción:
Un script que muestra una barra pequeña de HP del enemigo al ser atacado. No requiere imagen.

Imagen:


Codigo:
Código:
 #================================================= =============================
 # ★ RGSS2
 #enemy # STR15_ HP Gauge v1.1 08/08/10
 # Suporte: http://strcatyou.u-abel.net/
 #
 # Inimigos mostram uma barra de HP.
 # Ela aparece quando eles levam um hit.
 #
 #------------------------------------------------- -----------------------------
 #
 # O que tem de novo?
 # ◇ 1.0 → 1.1 
 # O cursor.
 # Agora nós podemos ver a barra.
 # Barra atualizada porque o tempo de resposta não estava correto.
 # ◇ 0.9 → 1.0
 # Agora consertada a parte que não podia se ver a barra.
 # ◇ 0.8 → 0.9
 # Trabalho mais leve.
 # Melhorado o tempo de resposta.
 #
 #================================================= =============================

 #================================================= =============================
 # ■ Sprite_Battler
 #================================================= =============================
class Sprite_Battler < Sprite_Base

  # Adicione ao campo "notas" do imigo para não mostrar a barra
  GAUGE_M = "<nobar>"

  GAUGE_BC = [Color.new(0,0,0), Color.new(32,48,64)]

  GAUGE_GC = [Color.new(64,128,96), Color.new(96,192,160)]
  # Ajustes de Posição da barra
  GAUGE_W = 96
  GAUGE_H = 6 
  GAUGE_S = 8
  GAUGE_T = 640
  GAUGE_O = 16
  #
  GAUGE_V = false
  #--------------------------------------------------------------------------
  # Criar
  #--------------------------------------------------------------------------
  def create_enhpgauge
    g_width = GAUGE_W
    g_height = GAUGE_H
    f_color = GAUGE_BC
    g_color = GAUGE_GC
    bitmap = Bitmap.new(g_width, g_height * 2)
    bitmap.fill_rect(0, 0, g_width, g_height, f_color[0])
    bitmap.fill_rect(1, 1, g_width - 2, g_height - 2, f_color[1])
    bitmap.gradient_fill_rect(1, g_height + 1, g_width - 2, g_height - 2,
                              g_color[0], g_color[1])
    @hp_gauge = [Sprite.new, Sprite.new]
    for i in 0..1
      sprite = @hp_gauge[i]
      sprite.viewport = self.viewport
      sprite.bitmap = bitmap
      sprite.src_rect.set(0, 0, g_width, g_height)
      sprite.src_rect.y = g_height if i == 1
      sprite.x = @battler.screen_x
      sprite.y = @battler.screen_y - 8
      sprite.ox = g_width / 2
      sprite.oy = g_height / 2
      sprite.z = 200
      sprite.z += 20 if i == 1
      sprite.opacity = 0
    end
    @enid = @battler.enemy_id
    @hp = @battler.hp
    @gauge_width = GAUGE_W + 1
    @gauge_opacity = 0
  end
  #--------------------------------------------------------------------------
  # Atualizar a barra
  #--------------------------------------------------------------------------
  def enhpgauge_update
    if @enid != @battler.enemy_id
      @enid = @battler.enemy_id
      @gauge_visible = true
      @gauge_visible = false if $data_enemies[@enid].note.include?(GAUGE_M)
      for i in @hp_gauge do i.visible = @gauge_visible end
      end
    return unless @gauge_visible
    if @hp != @battler.hp
      g_width = (@battler.hp / (@battler.maxhp * 1.0))
      @gauge_width = ((GAUGE_W * g_width) + 1).truncate
      @gauge_opacity = GAUGE_T
      @hp = @battler.hp
    end
    g_width = @hp_gauge[1].src_rect.width
    speed = GAUGE_S
    rect = @hp_gauge[1].src_rect
    rect.width = (@gauge_width + (g_width * (speed - 1))) / speed
    if rect.width != @gauge_width
      if rect.width > @gauge_width
        rect.width -= 1
      else
        rect.width += 1
      end
    end
    rect.width = 2 if rect.width <= 1 and @hp > 0
    if GAUGE_V and @battler.cursor_flash
      @gauge_opacity += GAUGE_O * 2 if @gauge_opacity <= GAUGE_T / 2
    else
      @gauge_opacity -= GAUGE_O if @gauge_opacity > 0
    end
    # “§–¾“x“K—p
    for i in @hp_gauge do i.opacity = @gauge_opacity end
  end
  #--------------------------------------------------------------------------
  # Iniciar Objeto (alias)
  #--------------------------------------------------------------------------
  alias initialize_str15 initialize
  def initialize(viewport, battler = nil)
    initialize_str15(viewport, battler)
    if @battler.is_a?(Game_Enemy)
      create_enhpgauge
      @gauge_visible = true
      @gauge_visible = false if $data_enemies[@enid].note.include?(GAUGE_M)
      for i in @hp_gauge do i.visible = @gauge_visible end
    end
  end
  #--------------------------------------------------------------------------
  # Liberação (alias)
  #--------------------------------------------------------------------------
  alias dispose_str15 dispose
  def dispose
    dispose_str15
    if @battler.is_a?(Game_Enemy)
      @hp_gauge[0].bitmap.dispose
      @hp_gauge[0].dispose
      @hp_gauge[1].dispose
    end
  end
  #--------------------------------------------------------------------------
  # Atualizar Frame (alias)
  #--------------------------------------------------------------------------
  alias update_str15 update
  def update
    update_str15
    enhpgauge_update if @battler.is_a?(Game_Enemy)
  end
end

#2 Re: [VX] Barra de PV enemigos sin imagen el Miér Ene 02, 2013 4:44 am

crs_falso

avatar
Genial, cuanto me ha tomado encontrar uno que funcione...
Gracias.
drink

#3 Re: [VX] Barra de PV enemigos sin imagen el Miér Ene 02, 2013 8:07 pm

Calbant

avatar
Muy buen aporte. Es excelente, y queda bastante bien.
Creo que voy a usarlo.

Saludos

#4 Re: [VX] Barra de PV enemigos sin imagen el Dom Ene 06, 2013 4:41 am

Razor

avatar
¡Figo!
Buenísimo el aporte, la estetica es parte importante con detalles pequeños como este y la verdad, este script tiene muy buena estetica en su función.

+3 Makedas
137+3=40

Un Saludo, sigue aportando al foro.
Out.-





Todos mis aportes por Mediafire tienen contraseña, esa es: www.universomaker.net
Esto es para evitar plagio, asegúrense de copiar y pegar la contraseña.

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.