Partagez
Aller en bas
Brandobscure
Brandobscure
Membre

Nombre de messages : 531
Age : 23
Localisation : Belgique
Distinction : aucune
Date d'inscription : 03/01/2011

[Vx]Barre de vie sur les ennemis. Empty [Vx]Barre de vie sur les ennemis.

le Dim 24 Juin 2012 - 20:05
Bonjours
j'ai trouvé un script qui permet de mettre
une barre de vie sur un ennemis.
Pour Rpg Maker Vx.

Auteur : STR15

Configurations : ligne 27 a 42.

Screen :

[Vx]Barre de vie sur les ennemis. 25116d10

Ce script s'adapte pour tout mode de combat excepté les A-RPG

Script :

Code:
 #================================================= =============================
 # ★ 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

Voilà bonne soirée.

Dénérion
Dénérion
Membre

Nombre de messages : 284
Distinction : aucune
Date d'inscription : 15/03/2008

[Vx]Barre de vie sur les ennemis. Empty Re: [Vx]Barre de vie sur les ennemis.

le Lun 25 Juin 2012 - 15:40
C'est du RGSS2, pas sûr que ça ait sa place ici vu que VXAce est en RGSS3... enfin, loin de moi l'idée de vouloir jouer les modos, ce n'est qu'une constatation.

Dommage d'ailleurs, car c'est intéressant comme script, c'est ce genre de petits détails qui font se démarquer les jeux complets ^^.
Ewaldar
Ewaldar
Membre

Nombre de messages : 1387
Age : 26
Localisation : Suisse
Distinction : aucune
Date d'inscription : 29/12/2011
http://ewaldar.wixsite.com/les-ames-perdues

[Vx]Barre de vie sur les ennemis. Empty Re: [Vx]Barre de vie sur les ennemis.

le Lun 25 Juin 2012 - 15:53
Voilà le script pour VX Ace : http://yanflychannel.wordpress.com/rmvxa/battle-scripts/ace-battle-engine/enemy-hp-bars/
maror
maror
Membre

Nombre de messages : 35
Age : 22
Distinction : aucune
Date d'inscription : 29/07/2010

[Vx]Barre de vie sur les ennemis. Empty Re: [Vx]Barre de vie sur les ennemis.

le Ven 6 Juil 2012 - 13:03
Moghunter en a fait un aussi >> http://www.atelier-rgss.com/RGSS/Battle/ACE_BAT07.html
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum