Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

HP Bars

Hi, my name is Ruben and I just started using rmxp recently. I know there are tons of hud scripts out there that display really nice looking gradient bars of a characters hp/mp, or other stat, but most of the scripts are pretty in depth and involve way more than i'm looking for. All i am looking for is a nice simple horizontal gradient bar script/class where with the call script command in the event editor you can create a bar with a line of code something like this:

Create_Bar(200,100,5,5,#{Var:Slade's Cur HP},#{Var:Slade's Max HP}, bar.color = red)

the parameters would be (X coordinate, Y coordinate, Length of Bar, Height of Bar, Var for cur hp, var for max hp, gradient color)

This would be a very useful call command as you would be able to draw one of these bars anywhere on the screen, and it could pretty much be used for any stat you want to track. HP, MP, Exp Bar.... anything you can think of.
 
Ok so i found a really nice HUD script made by MOG and was hoping someone could help me modify it as i don't need a lot of the excess stuff he threw into it. Here is the script...

#_______________________________________________________________________________
# MOG_MPW HUD Elen V1.1           
#_______________________________________________________________________________
# By Moghunter     
#_______________________________________________________________________________
if true # True = Enable / False = Disable (Script)
module MOG
#HUD Position.
STMAPX = 0  # X Pos
STMAPY = 370 # Y Pos
#Disable HUD Switch ID. 
STMAPVIS = 5
#Windowskin name.
STMAPSKIN = "001-Blue01"
#Window Opacity.
STMAPOPA = 0
end
$mogscript = {} if $mogscript == nil
$mogscript["mpstelen"] = true
###############
# Window_Base #
###############
class Window_Base < Window 
def draw_maphp2(actor, x, y)
back = RPG::Cache.picture("BAR_Meter")   
cw = back.width 
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)   
self.contents.blt(x + 65, y - ch + 30, back, src_rect)
meter = RPG::Cache.picture("HP_Meter")   
cw = meter.width  * actor.hp / actor.maxhp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
text = RPG::Cache.picture("HP_Tx")   
cw = text.width 
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 35, y - ch + 30, text, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 161, y - 1, 48, 32, actor.hp.to_s, 2)
self.contents.font.color = Color.new(250,255,255,255)
self.contents.draw_text(x + 160, y - 2, 48, 32, actor.hp.to_s, 2)   
end 
def draw_mapsp2(actor, x, y)
back = RPG::Cache.picture("BAR_Meter")   
cw = back.width 
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)   
self.contents.blt(x + 65, y - ch + 30, back, src_rect)
meter = RPG::Cache.picture("SP_Meter")   
cw = meter.width  * actor.sp / actor.maxsp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
text = RPG::Cache.picture("SP_Tx")   
cw = text.width 
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 40, y - ch + 30, text, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 161, y - 1, 48, 32, actor.sp.to_s, 2)   
self.contents.font.color = Color.new(250,255,255,255)
self.contents.draw_text(x + 160, y - 2, 48, 32, actor.sp.to_s, 2)   
end
def draw_mexp(actor, x, y)
actor = $game_party.actors[0]
bitmap2 = RPG::Cache.picture("Exp_Back")
cw = bitmap2.width
ch = bitmap2.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 60 , y - ch + 30, bitmap2, src_rect)
if actor.next_exp != 0
rate = actor.now_exp.to_f / actor.next_exp
else
rate = 1
end
bitmap = RPG::Cache.picture("Exp_Meter")
if actor.level < 99
cw = bitmap.width * rate
else
cw = bitmap.width
end 
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 60 , y - ch + 30, bitmap, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 55, y + 1, 84, 32, "Exp",0)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 54, y, 84, 32, "Exp",0)
end
def nada
face = RPG::Cache.picture("")
end 
def draw_heroface(actor,x,y)
face = RPG::Cache.picture(actor.name + "_face") rescue nada
cw = face.width
ch = face.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, face, src_rect)   
end 
def draw_actor_statemap(actor, x, y, width = 120)
text = make_battler_state_text(actor, width, true)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 1, y + 1, width, 32, text)
self.contents.font.color = Color.new(250,255,255,255)
self.contents.draw_text(x, y, width, 32, text)
end
def draw_actor_levelmap(actor, x, y)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x, y, 32, 32, "Lv")
self.contents.font.color = Color.new(50,255,250,255)   
self.contents.draw_text(x + 1, y + 1, 32, 32, "Lv")
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 30, y, 24, 32, actor.level.to_s, 1)
self.contents.font.color = Color.new(255,255,255,255)   
self.contents.draw_text(x + 31, y + 1, 24, 32, actor.level.to_s, 1)   
end
end
##############
# Game_Actor #
##############
class Game_Actor < Game_Battler
def now_exp
return @exp - @exp_list[@level]
end
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end
#####################
# Window_Status_Map #
#####################
class Window_Sthero < Window_Base
def initialize
super(0, 0, 310, 120)
self.contents = Bitmap.new(width - 32, height - 32)
self.windowskin = RPG::Cache.windowskin(MOG::STMAPSKIN)   
self.contents.font.bold = true
self.contents.font.size = 20
self.contents.font.name = "Georgia"
self.opacity = MOG::STMAPOPA
refresh
end 
def refresh
self.contents.clear
actor = $game_party.actors[0]
draw_maphp2(actor, 35, 35)
draw_mapsp2(actor, - 40, 60)
draw_heroface(actor, 0, 70)
draw_actor_statemap(actor, 200, 60, 70)
draw_actor_levelmap(actor, 80, 10) 
draw_mexp(actor, 100, 10)
end
end
###############
# Game_Player #
###############
class Game_Player < Game_Character
attr_accessor :wref
end
#############
# Scene_Map #
#############
class Scene_Map
alias mog11_main main
def main
@sthero = Window_Sthero.new
@sthero.x = MOG::STMAPX
@sthero.y = MOG::STMAPY
if $game_switches[MOG::STMAPVIS] == false
@sthero.visible = true 
else
@sthero.visible = false 
end   
mog11_main
@sthero.dispose
end
alias mog11_update update
def update
if $game_switches[MOG::STMAPVIS] == false
@sthero.visible = true 
else
@sthero.visible = false 
end     
if $game_player.wref == true
@sthero.refresh
$game_player.wref = false
end
mog11_update
end 
end 
##############
# Game_Party #
###############
class Game_Party
alias mog11_check_map_slip_damage check_map_slip_damage 
def check_map_slip_damage
for actor in @actors
if actor.hp > 0 and actor.slip_damage?
$game_player.wref = true
end
end
mog11_check_map_slip_damage 
end
end
###############
# Interpreter #
###############
class Interpreter
alias mog11_command_311 command_311
def command_311
mog11_command_311
$game_player.wref = true   
end   
alias mog11_command_312 command_312
def command_312
mog11_command_312
$game_player.wref = true   
end   
alias mog11_command_313 command_313
def command_313
mog11_command_313
$game_player.wref = true   
end   
alias mog11_command_314 command_314
def command_314
mog11_command_314
$game_player.wref = true   
end   
alias mog11_command_315 command_315
def command_315
mog11_command_315
$game_player.wref = true   
end   
end   
################
# Game_Battler #
################
class Game_Battler
alias mog11_attack_effect attack_effect
def attack_effect(attacker)
mog11_attack_effect(attacker) 
$game_player.wref = true
end
alias mog11_skill_effect skill_effect
def skill_effect(user, skill)
mog11_skill_effect(user, skill)
$game_player.wref = true 
end 
alias mog11_item_effect item_effect
def item_effect(item)
mog11_item_effect(item)
$game_player.wref = true 
end
alias mog11_add_state add_state
def add_state(state_id, force = false)
mog11_add_state(state_id, force = false)
$game_player.wref = true 
end
end
end

and here is a screenshot of what it looks like....

http://img205.imageshack.us/img205/1204 ... ms3.th.png[/img]

The facepic, sp bar, lv info, exp, and equip menu can all be eliminated. All i need is the hp bar, and i dont even really want the numbers over it. Also can it be modified so that i can call the script and pass in x coords, y coords, var for cur hp, var for max hp, and the two bar pictures i want (empty hp bar and full hp bar)

I would like to be able to pass variables in through a function so that i don't have to use the database for players hp. I'll owe you guys forever if you can help me out with this. I've been trying to get this to work forever.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top