Hero HP Bar in map
#1
Hero HP Bar in map
Sheol
Nov 19 2005

This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.


Visit this link for a better script: (HP & SP Bars on Map)

Is a simple script to show a HP bar in the map screen.
It only shows the hero HP, but can be easy edited.

Code:
#-----------------------------------------------------------------
class Scene_Map
#-----------------------------------------------------------------
  alias sk_bar_main main
  def main
    @bars = Window_Sk_Bars.new
    sk_bar_main
    @bars.dispose if @bars != nil
  end
#-----------------------------------------------------------------
  alias sk_bar_update update
  def update
    @bars.update
    sk_bar_update
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Window_Base < Window
#-----------------------------------------------------------------
  def sk_initialize(font=0,size=22)
    font = "Tahoma" if font == 0
    self.contents = Bitmap.new(self.width-32,self.height-32)
    self.contents.font.name = font
    self.contents.font.size = size
  end
#-----------------------------------------------------------------
  def draw_text_outline(x,y,w,h,str,c=normal_color,a=0)
    self.contents.font.color = Color.new(0,0,0,255)
    self.contents.draw_text(x-1,y,w,h,str,a)
    self.contents.draw_text(x+1,y,w,h,str,a)
    self.contents.draw_text(x,y+1,w,h,str,a)
    self.contents.draw_text(x,y-1,w,h,str,a)
    self.contents.font.color = c
    self.contents.draw_text(x,y,w,h,str,a)
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Window_Sk_Bars < Window_Base
#-----------------------------------------------------------------
  def initialize
    super(444,-8,206,96)
    sk_initialize("Arial")
    self.opacity = 0
  end
#-----------------------------------------------------------------
  def update
    self.contents.clear
    actor = $game_party.actors[0]
    draw_text_outline(0,-4,64,26,"HP")
    draw_actor_hp(actor,30,0)
  end
#-----------------------------------------------------------------
  def draw_actor_hp(actor,x,y)
    width = 128
    y += 4
    white = Color.new(255,255,255,255)
    black = Color.new(0,0,0,255)
    w = width * actor.hp / actor.maxhp
    # White border
    self.contents.fill_rect(x+1, y-1, width-2, 1, white)
    self.contents.fill_rect(x, y, width, 1, white)
    self.contents.fill_rect(x-1, y+1, width+2, 9, white)
    self.contents.fill_rect(x, y+10, width, 1, white)
    self.contents.fill_rect(x+1, y+11, width-2, 1, white)
    # Black back
    self.contents.fill_rect(x+2, y, width-4, 1, black)
    self.contents.fill_rect(x+1, y+1, width-2, 1, black)
    self.contents.fill_rect(x, y+2, width, 7, black)
    self.contents.fill_rect(x+1, y+9, width-2, 1, black)
    self.contents.fill_rect(x+2, y+10, width-4, 1, black)
    # Generating the color
    val = 255 * ((actor.hp*100)/actor.maxhp)
    green = 255 - val/100
    color = Color.new(224,green,0,255)
    w_color = Color.new(255,green+32,96,255)
    if green > 64 then green -= 32
    elsif green > 128 then green -= 64 end
    b_color = Color.new(172,green,0,255)
    # Making the bar
    self.contents.fill_rect(x+2, y, w-4, 1, w_color)
    self.contents.fill_rect(x+1, y+1, w-2, 1, w_color)
    self.contents.fill_rect(x, y+2, w, 7, color)
    self.contents.fill_rect(x+1, y+9, w-2, 1, color)
    self.contents.fill_rect(x+2, y+10, w-4, 1, b_color)
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
}


Possibly Related Threads…
Thread Author Replies Views Last Post
  Level Modification by Hero iPenguin 0 2,597 06-09-2010, 01:00 PM
Last Post: iPenguin



Users browsing this thread: 1 Guest(s)