RPGVX.net

  RPG-Maker VX => VX Skripte [Fertiger Code] => Thema gestartet von: ERZENGEL am März 24, 2008, 01:53:29

Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: ERZENGEL am März 24, 2008, 01:53:29
Screenshot
(http://imagesload.net/daten_no/1206322235_str15.jpg)

Credits
Anleitung
<Leiste aus> in den Note eines Enemies eintragen, falls von ihn keine HP-Leiste angezeigt werden soll.

Die Farben der Leiste kann man auch ändern. Die Einstellungen dafür findet man in den Konstanten in Sprite_Battler und sehen so aus:Color.new(96,192,160)Das hier ist jetzt die Farbe, die in der Leiste rechts angezeigt wird. Die 96 ist der Anteil von Rot, 192 der von Grün und 160 von Blau an der Farbe. Mit der Hilfe von z.B. dieser (http://www.farb-tabelle.de/de/farbtabelle.htm) Tabelle kann man sich einen Überblick verschaffen, was man ändern muss, dass es so ausguckt wie man es sich vorstellt.

Andere Einstellungen findet man im Skript und sollten größtenteils durch die Kommentare geklärt sein. Falls nicht besser erkären oder einfach fragen ;)
Skript
#==============================================================================
# ** [STR15] HP-Leiste bei Gegner (von star) (Version 0.9 vom 22. Januar 2008)
#------------------------------------------------------------------------------
#  Zeigt die HP vom Gegner in einer Leiste an, wenn er attackiert wird.
#==============================================================================

#==============================================================================
# ** Sprite_Battler
#==============================================================================

class Sprite_Battler < Sprite_Base
  #--------------------------------------------------------------------------
  # * Konstanten
  #--------------------------------------------------------------------------
  # Eintrag in den Notes eines Enemies um keine Leiste anzuzeigen
  GAUGE_M = "<Leiste aus>"
  # Hintergrundfarbe der Leiste [Farbe vom Rand, Farbe vom Inhalt] (Rechteck)
  GAUGE_BC = [Color.new(0, 0, 0), Color.new(32, 48, 64)]
  # Farbe der Leiste [links, rechts] (Farbverlauf)
  GAUGE_GC = [Color.new(64, 128, 96), Color.new(96, 192, 160)]
  #
  GAUGE_W = 96  # Breite der Leiste
  GAUGE_H = 6   # Höhe der Leiste
  GAUGE_S = 8   # [[weiß nicht wie ichs beschreiben soll :-) ]]
  GAUGE_T = 640 # Anzeigedauer der Leiste
  GAUGE_O = 16  # Grad der Transparenz, die beim Erscheinen zu-/abnimmt
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  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
      # Zeichne Leiste
      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])
      # Erstelle Sprite für die Leiste
      @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
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  alias update_str15 update
  def update
    update_str15
    # Update der Leiste
    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
      # Breite
      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
      # Transparenz
      @hp_gauge_a.opacity = @gauge_o
      @hp_gauge_b.opacity = @gauge_o
      @gauge_o -= GAUGE_O
      # Koordinaten
#~       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
  #--------------------------------------------------------------------------
  # * Instanzvariable
  #--------------------------------------------------------------------------
  attr_accessor :strgauge_update
  #--------------------------------------------------------------------------
  # * Clear Variable Used for Sprite Communication
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # * Instanzvariable
  #--------------------------------------------------------------------------
  attr_reader   :strnote
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # * Display HP Damage
  #     target : Ziel
  #     obj    : Skill oder item
  #--------------------------------------------------------------------------
  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

Links
als Textdatei öffnen oder downloaden (http://rpgvx.bplaced.net/scripts/star/15.txt)
star's VX script material (Quelle) (http://strrgssvx.blog.shinobi.jp/Entry/25)
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: Razael am März 24, 2008, 02:17:51
Dir muss heute wirklich Langweilig sein XD
Danke das du diesen Script für die Community übersetzt und auch noch so schön einfach alles erklärst vorallem wegen dem Link mit der Farbtabelle die kann man auch für andere Sachen im Maker benutzen ^^
Bin Momentan am überlegen ob ich den Script nutzen soll Ideen hätte ich schon dafür aber bin mir noch nicht so sicher^^
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: Goldenboss am März 24, 2008, 09:03:40
Hi...

Ein tolles Script, aber ich werde es nicht nutzen.
Wann weiß man schon mal im realen Leben, wie viele HP ein Kerl mit dem man sich grade schlägt noch hat. ^^

Trotzdem vielen Dank.

MFG Markus
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: Ray Phoenix am März 24, 2008, 09:42:12
Das Script ist aber nicht mit dem SideView Script kompatibel oder? Bei mir wird da
nämlich nichts angezeigt. blink.gif\" style=\"vertical-align:middle\" emoid=\":blink:
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: ERZENGEL am März 24, 2008, 10:11:58
Wenn du mir sagst, welches Sideviewskript du verwendest (Autor reicht, aber Links wäre schöner :))? Dann werd ichs mir heut abend mal angucken oder jemand anderes im Laufe des Tages. Jedoch sollte es zu keinen Problemen seitens dieses Skriptes kommen, da ja jede Methode aliased wurde und nicht überschrieben.

Du kannst außerdem mal versuchen es über bzw. unter dem Sideviewskript zu setzen, je nachdem wo es sich befindet.
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: Ray Phoenix am März 24, 2008, 10:19:44
Ich benutz das SideView KS von RPG Tankentai. (Ist das mit BattleModule,SV1, SV2 version 1.2)
Zugefügt hab ich das Battle Face Script , das Konterscript und das HP MP Abwehr reg script. Hätte
ja Version 2.3 benutzt aber irgendwie nerven mich die ganzen Vierrecke die während des Kampfes
da als Text angezeigt werden soll.
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: ERZENGEL am März 24, 2008, 23:30:58
Wenn man das Skript unter den 3 Sideviewskripten einfügt, musste ich bei v2.4 nur noch die Z-Koordinate der beiden Leisten erhöhen, da sie unglücklicherweise hinter dem Battler waren ^^
Und falls das bei dir dann auch der Fall ist, findet man diese in Zeile 51 (self.z += 200) und 62 (self.z += 220). Ich hab sie dann jeweils um 200 erhöht und dann waren sie vor ihnen.
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: Talyana Meriweather Rahl am März 25, 2008, 05:08:27
Hey DANKE!!!

Das is ja ma echt hamma geil praktisch *-*

Fettes Lob das du das gefunden hast!!! ^___^~
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: Ray Phoenix am März 25, 2008, 09:40:13
@ Erzengel. Danke dir. Hat Prima geklappt mit dem erhöhen^^

Nur ist es jetzt so, dass die Balken nur angezeigt werden, wenn man einen Gegner angreift.
Ist das jetzt normal dass die sich automatisch ausblenden oder is da wieder irgendwo der
Wurm drinnen? :lol:blink.gif\" style=\"vertical-align:middle\" emoid=\":blink:
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: Dainreth am März 25, 2008, 17:43:41
Na ERZENGEL, da postet einer wieder fleißig nette Skripts! Das Skript ist wirklich schön, nur steh ich nicht auf diese Art von Kampfsystemen (wenn ich selbst maker), trotzdem vielen Dank!
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: ERZENGEL am März 25, 2008, 23:40:56
Zitat von: Ray Phoenix
@ Erzengel. Danke dir. Hat Prima geklappt mit dem erhöhen^^

Nur ist es jetzt so, dass die Balken nur angezeigt werden, wenn man einen Gegner angreift.
Ist das jetzt normal dass die sich automatisch ausblenden oder is da wieder irgendwo der
Wurm drinnen? :lol:blink.gif\" style=\"vertical-align:middle\" emoid=\":blink:
Steht im Untertitel bzw. in der Skriptbeschreibung drin, dass die Leiste nur angezeigt wird, falls der Gegner attackiert wurde.
Du kannst aber ja fragen, ob es dir jemand so umschreibt und erweitert, dass es immer angezeigt wird, obwohl das nicht sehr gut aussehen würde.
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: Train am März 28, 2008, 11:22:39
doch das würd schon gut aussehn mellow.gif\" style=\"vertical-align:middle\" emoid=\":mellow:\" border=\"0\" alt=\"mellow.gif\" /]
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: OceanBlue am März 29, 2008, 13:52:31
Nah, ich finde, es sieht eleganter, stylisher, besser usw. aus, wenn die Leiste nur beim Angriff angezeigt wird, aber das ist wohl Geschmackssache. Ich werd's wohl auch in mein Spiel einbauen, danke für's posten, EE^^
Titel: [STR15] HP-Leiste bei Gegner
Beitrag von: Agito Ace am Mai 02, 2008, 09:18:30
Ich entdecke diesen skript erst jetzt. Egal, Erzengel macht immer gutes, deshalb spreche ich meinen Dank aus:). Ich überlege mir immer: Könnte man denn... das und dies machen? Und was geschieht? Erzengel hat den SKript oder was auch immer schon bereitgestellt^^.
Titel: Re: [STR15] HP-Leiste bei Gegner
Beitrag von: Psychodelics am September 28, 2009, 11:25:43
Das Skript ist richtig gut und total einfach zu implementieren. Und es funktioniert reibungslos^^
Gefällt mir!!
Titel: Re: [STR15] HP-Leiste bei Gegner
Beitrag von: Valentine am September 23, 2011, 11:16:56
Sehr gutes Script! Funktioniert bestens =)

Auch ein Danke für das Übersetzen und die Mühe die du dir gemacht hast (Y)
SimplePortal 2.3.3 © 2008-2010, SimplePortal