Guilink’s Barras De HP & MP

29 de outubro de 2011

Guilink's Barras De HP & MP
Guilink’s Barras De HP & MP é um script para o RPG Maker XP que adiciona duas barras (ou HUDs, como alguns os chamam) na tela do game.

As barras ficam sempre visíveis no canto superior direito da tela. A de Hit Points (HP) é a vermelha, e a de Spell Points (SP) é a azul. Este script pode ser interessante pro seu projeto, se seu jogo tiver mais ação ou algum sistema de batalha sem ser em turnos, por exemplo, por permitir ao jogador acompanhar estes stats, sem precisar de ficar abrindo toda hora o menu.

A instalação é muito simples. Basta adicionar no projeto que as barras já aparecem!

#-----------------------------------------------------------------
# ¦ Guilink's barras de HP & MP  ¦
#-----------------------------------------------------------------
# Ultimo  Update: 24/11/05
# - Adicionado barra de  MP
#-----------------------------------------------------------------
$hp_bar = true
$sp_bar = true
#-----------------------------------------------------------------
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 if $hp_bar or $sp_bar
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,-10,206,96)
sk_initialize("Arial")
self.opacity = 0
end
#-----------------------------------------------------------------
def update
self.contents.clear
actor = $game_party.actors[0]
if $hp_bar
draw_text_outline(0,0,64,26,"HP")
draw_actor_hp(actor,32,2)
end
if $sp_bar
draw_text_outline(0,24,64,26,"MP")
draw_actor_sp(actor,32,26)
end
end
#-----------------------------------------------------------------
def draw_actor_hp(actor,x,y)
width = 128
y += 4
w = width * actor.hp / actor.maxhp
# White border and black back
border_back(x,y,width)
# 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
make_bar(x,y,w,color,w_color,b_color)
end
#-----------------------------------------------------------------
def draw_actor_sp(actor,x,y)
width = 128
y += 4
w = width * actor.sp / actor.maxsp
# White border and black back
border_back(x,y,width)
# Generating the color
val = 255 * ((actor.sp*100)/actor.maxsp)
red = 255 - val/100
color = Color.new(red,0,224,255)
w_color = Color.new(red,64,255,255)
if red > 64 then red -= 32
elsif red > 128 then red -= 64 end
b_color = Color.new(red,0,172,255)
# Making the bar
make_bar(x,y,w,color,w_color,b_color)
end
#-----------------------------------------------------------------
def border_back(x,y,width)
white = Color.new(255,255,255,255)
black = Color.new(0,0,0,255)
# 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)
end
#-----------------------------------------------------------------
def make_bar(x,y,w,color,w_color,b_color)
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
#-----------------------------------------------------------------

Observação: se você gostou deste post ou ele lhe foi útil de alguma forma, por favor considere apoiar financeiramente a Gaming Room. Fico feliz só de ajudar, mas a contribuição do visitante é muito importante para que este site continua existindo e para que eu possa continuar provendo este tipo de conteúdo e melhorar cada vez mais. Clique aqui e saiba como. Obrigado!

Deixe um comentário

Inscreva-se na nossa newsletter!