Jump to content
Rpg²S Forum

*HP BAR


lotgd
 Share

Recommended Posts

Crea una semplice Barra Rossa che visualizza l'HP mentre si gioca.

Questo script l'ho trovato su un forum straniero.
Autore : Sconosciuto, non c'è neanche nei crediti interni... e chi l'ha postato non era l'autore.


Istruzioni :
Create una nuova classe sopra main e chiamatela HP Bar
Poi inserite questo piccolo script

 

#-----------------------------------------------------------------
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(250,-8,206,96)
		sk_initialize("Comic Sans MS")
		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
#-----------------------------------------------------------------
 

 

 

 

IL MIO NICK è FRISKON Quando mi son registrato, credevo di fare lo spettatore!

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...