RPGVX.net

  RPGVX.net => RPGVX.net Service => Archiv => Thema gestartet von: Train am März 23, 2008, 23:15:16

Titel: Gegnerische Hp Leiste?
Beitrag von: Train am März 23, 2008, 23:15:16
Ich vermisse im Standart-Kampfsystem ne HP-Anzeige meines Gegners.

Ich denk dabei an einen kleinen Balken, ähnlich dem meiner eigenen HP.
Möglichst nur ohne die genau Anzeige als Zahl.
Als Beispiel fällt mir da nur Pokemon ein.

Könnte man sowas per Script oder Events einbauen??
Titel: Gegnerische Hp Leiste?
Beitrag von: ERZENGEL am März 23, 2008, 23:23:43
==============================================================================
# ?RGSS2
# STR15_????HP??? v0.9  08/01/22
#
# ·?????HP??????????
# ·??????????????????·???????????????
#  ??????HP?????????????
#
#------------------------------------------------------------------------------
#
# ????
# ?0.8?0.9
# ?????
# ???????????????
# ????
#
#==============================================================================
# ¦ Sprite_Battler
#==============================================================================
class Sprite_Battler < Sprite_Base
  # ???????????
  GAUGE_M = "??????"
  # ???????? [???, ????]
  GAUGE_BC = [Color.new(0,0,0), Color.new(32,48,64)]
  # ???????????? [?, ?]
  GAUGE_GC = [Color.new(64,128,96), Color.new(96,192,160)]
  #
  GAUGE_W = 96  # ????
  GAUGE_H = 6   # ?????
  GAUGE_S = 8   # ??????? 2 ?????
  GAUGE_T = 640 # ???????
  GAUGE_O = 16  # ??????????
  #--------------------------------------------------------------------------
  # ? ?????
  #--------------------------------------------------------------------------
  alias initialize_str15 initialize
  def initialize(viewport, battler = nil)
    initialize_str15(viewport, battler)
    @gauge_visible = true
    @gauge_visible = (battler.strnote.include?(GAUGE_M)) if @battler.is_a?(Game_Enemy)
    unless @gauge_visible
      b = GAUGE_BC
      c = GAUGE_GC
      # ?????
      bitmap = Bitmap.new(GAUGE_W, GAUGE_H * 2)
      bitmap.fill_rect(0, 0, GAUGE_W, GAUGE_H, b[0])
      bitmap.fill_rect(1, 1, GAUGE_W - 2, GAUGE_H - 2, b[1])
      bitmap.gradient_fill_rect(1, GAUGE_H + 1, GAUGE_W - 2, GAUGE_H - 2, c[0], c[1])
      # ??????????
      @hp_gauge_a = Sprite.new
      s = @hp_gauge_a
      s.bitmap = bitmap
      s.src_rect.set(0, 0, GAUGE_W, GAUGE_H)
      s.viewport = self.viewport
      s.x = @battler.screen_x
      s.y = @battler.screen_y - 8
      s.z += 200
      s.ox = GAUGE_W / 2
      s.oy = GAUGE_H / 2
      s.opacity = 0
      @hp_gauge_b = Sprite.new
      s = @hp_gauge_b
      s.bitmap = bitmap
      s.src_rect.set(0, GAUGE_H, GAUGE_W, GAUGE_H)
      s.viewport = self.viewport
      s.x = @battler.screen_x
      s.y = @battler.screen_y - 8
      s.z += 220
      s.ox = GAUGE_W / 2
      s.oy = GAUGE_H / 2
      s.opacity = 0
      @hp = @battler.hp
      @gauge_w = GAUGE_W + 1
      @gauge_o = 0
    end
  end
  alias dispose_str15 dispose
  def dispose
    # ?????
    unless @gauge_visible
      @hp_gauge_a.bitmap.dispose
      @hp_gauge_a.dispose
      @hp_gauge_b.dispose
    end
    dispose_str15
  end
  alias update_str15 update
  def update
    update_str15
    # ?????
    unless @gauge_visible
      if @hp != @battler.hp# and @battler.strgauge_update
        @gauge_w = ((GAUGE_W * (@battler.hp / (@battler.maxhp * 1.0))) + 1).truncate
        @gauge_o = GAUGE_T
        @hp = @battler.hp
        @battler.strgauge_update = false
      end
      # ?
      nw = @hp_gauge_b.src_rect.width
      sp = GAUGE_S
      sr = @hp_gauge_b.src_rect
      sr.width = (@gauge_w + (nw * (sp - 1))) / sp
      if sr.width != @gauge_w
        if sr.width > @gauge_w
          sr.width -= 1
        else
          sr.width += 1
        end
      end
      sr.width = 2 if sr.width <= 1 and @hp > 0
      # ???
      @hp_gauge_a.opacity = @gauge_o
      @hp_gauge_b.opacity = @gauge_o
      @gauge_o -= GAUGE_O
      # ??
#~       s = @hp_gauge_a
#~       s.x = @battler.screen_x
#~       s.y = @battler.screen_y - 8
#~       s.x = s.ox + 2 if s.x < s.ox + 2
#~       s.x = 542 - s.ox if s.x > 542 - s.ox
#~       s = @hp_gauge_b
#~       s.x = @battler.screen_x
#~       s.y = @battler.screen_y - 8
#~       s.x = s.ox + 2 if s.x < s.ox + 2
#~       s.x = 544 - s.ox if s.x > 544 - s.ox
    end
  end
end
#==============================================================================
# ¦ Game_Battler
#==============================================================================
class Game_Battler
  #--------------------------------------------------------------------------
  # ? ??????????
  #--------------------------------------------------------------------------
  attr_accessor :strgauge_update
  #--------------------------------------------------------------------------
  # ? ?????
  #--------------------------------------------------------------------------
  alias clear_sprite_effects_str15 clear_sprite_effects
  def clear_sprite_effects
    clear_sprite_effects_str15
    @strgauge_update = false
  end
end
#==============================================================================
# ¦ Game_Enemy
#==============================================================================
class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ? ??????????
  #--------------------------------------------------------------------------
  attr_reader   :strnote
  #--------------------------------------------------------------------------
  # ? ?????
  #--------------------------------------------------------------------------
  alias initialize_str15 initialize
  def initialize(index, enemy_id)
    initialize_str15(index, enemy_id)
    @strnote = enemy.note
  end
end
#==============================================================================
# ¦ Scene_Battle
#==============================================================================
class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # ? ?????
  #--------------------------------------------------------------------------
  alias display_hp_damage_str15 display_hp_damage
  def display_hp_damage(target, obj = nil)
    target.strgauge_update = true if target.hp_damage != 0
    display_hp_damage_str15(target, obj)
  end
end
Credits gehen an star. Einfügen bei Materials.
Titel: Gegnerische Hp Leiste?
Beitrag von: Afenishakur am März 23, 2008, 23:41:06
Cool, das fehlte mir auch noch, danke =) an "Star"
Titel: Gegnerische Hp Leiste?
Beitrag von: Train am März 24, 2008, 08:13:22
wow, danke für die schnelle antwort :)
Titel: Gegnerische Hp Leiste?
Beitrag von: Ray Phoenix am März 24, 2008, 09:19:53
Ehm Jungs? Bei mir kommt da folgende Fehlermeldung:

Script 'HP Anzeige' line 1: SyntaxError occurred.

Das kommt übrigens noch vor dem Titelbildschirm.
Titel: Gegnerische Hp Leiste?
Beitrag von: Rosa Canina am März 24, 2008, 09:21:15
Setz in Zeile 1 ganz vorne hin ein #, dann geht es.
Titel: Gegnerische Hp Leiste?
Beitrag von: Ray Phoenix am März 24, 2008, 09:44:51
Also abstürzen tuts nich mehr, aber auftauchen tut da irgendwie auch nix bei den Kämpfen.
Isses eventuell mit dem Side View KS nicht kompatibel? wacko.gif\" style=\"vertical-align:middle\" emoid=\":wacko:\" border=\"0\" alt=\"wacko.gif\" /]
SimplePortal 2.3.3 © 2008-2010, SimplePortal