Jump to content
New account registrations are disabed. This website is now an archive. Read more here.
Guest Raziel

Hud Menu

Recommended Posts

Guest Raziel

  • Author: Raziel
  • Version: 2.0

Introduction

A short script I did when I was bored.

 

Features

  • Turn the Hud on and off by using a switch.
  • Includes HP, SP, Exp and gradient bars.
  • The feature to center the HUD.
  • Now Lag and Bug free

Screenshots

post-1-0-95599900-1330858638_thumb.jpg post-1-0-01995300-1330858642_thumb.jpg post-1-0-69618800-1330858646_thumb.jpg post-1-0-18649300-1330858653_thumb.jpg post-1-0-28833600-1330858657_thumb.jpg

 

The Script

hud_menu.txt

 

#==============================================================================
# ** Hud Menu
#==============================================================================
# Raziel
# Version 2.0
# 2007-08-18
#------------------------------------------------------------------------------
#===============================================================================

# * Module Raz_Hud
#===============================================================================


module Raz_Hud
#switch to show/hide the hud
SWITCH_ID = 1
#set it to true to center the hud if there are less than four party members
Center_hud = true
end
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  This class performs map screen processing.
#==============================================================================

class Scene_Map
#----------------------------------------------------------------------------
# * Alias Listings
#----------------------------------------------------------------------------
alias raz_hud_main main
alias raz_hud_update update
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
  @hud_dummy = []
  for i in 0...$game_party.actors.size
 @hud_dummy[i] = Window_Dummy.new(i)
  end
  @hud_window = Window_HUD.new
  raz_hud_main
  @hud_window.dispose
  @hud_dummy.each { |hud| hud.dispose }
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
  @hud_dummy.each {|hud| hud.visible = $game_switches[Raz_Hud::SWITCH_ID]}
  if @hud_dummy[$game_party.actors.size] != nil
 @hud_dummy.each{|hud| hud.dispose}
 @hud_dummy = []
 for i in 0...$game_party.actors.size
   @hud_dummy[i] = Window_Dummy.new(i)
 end
  end
  @hud_window.update
  raz_hud_update
end
end
#===============================================================================

# * Window_HUD
#===============================================================================


class Window_HUD < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
  super(0, 0, 800, 600)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.opacity = 0
  self.visible = $game_switches[Raz_Hud::SWITCH_ID]
  refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
  self.contents.clear
  @old_hp, @old_sp, @old_exp, @old_size = [],[],[],$game_party.actors.size
  for actor in $game_party.actors
 @old_hp << actor.hp; @old_sp << actor.sp; @old_exp << actor.exp
 a = $game_party.actors.size - 1
 center = Raz_Hud::Center_hud == true ? (240 - (a * 80)) : 0
 x = ($game_party.actors.index(actor) * 160 + 25) + center
    self.contents.font.size = 21
 draw_actor_graphic(actor, x - 15, 445)
 self.contents.font.color = normal_color
 self.contents.draw_text(x - 25, 360, 100, 32, actor.name)
 draw_slant_bar(x + 8, 396, actor.hp, actor.maxhp, 100, 6)
    draw_slant_bar(x + 8, 416, actor.sp, actor.maxsp, 100, 6, Color.new(0, 0, 150), Color.new(60, 155, 155))
 now_exp = actor.level == 99 ? 1 : actor.now_exp
 next_exp = actor.level == 99 ? 1 : actor.next_exp
 draw_slant_bar(x + 8, 436, now_exp, next_exp, 100, 6, Color.new(0, 150, 0), Color.new(60, 255, 60))
 self.contents.font.size = 16
 draw_actor_state(actor, x + 45, 360)
 self.contents.font.color = normal_color
 self.contents.font.bold = true
 self.contents.font.color = actor.hp == 0 ? knockout_color : actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
 self.contents.draw_text(x + 16, 382, 100, 32, "#{actor.hp}/#{actor.maxhp}", 1)
 self.contents.font.color = actor.sp == 0 ? crisis_color : actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
 self.contents.draw_text(x + 16, 402, 100, 32, "#{actor.sp}/#{actor.maxsp}", 1)
 self.contents.font.color = system_color
 self.contents.font.size = 20
 self.contents.font.bold = false
 self.contents.draw_text(x, 384, 50, 32, $data_system.words.hp)
 self.contents.draw_text(x, 404, 50, 32, $data_system.words.sp)
 self.contents.draw_text(x, 424, 50, 32, "Exp")
  end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
  refresh if @old_size != $game_party.actors.size
  @old_hp.each_with_index {|hp, index| refresh if hp != $game_party.actors[index].hp}   
  @old_sp.each_with_index {|sp, index| refresh if sp != $game_party.actors[index].sp}   
  @old_exp.each_with_index {|exp, index| refresh if exp != $game_party.actors[index].exp}
  self.visible = $game_switches[Raz_Hud::SWITCH_ID]
end
end
#===============================================================================

# * Window_Dummy
#===============================================================================


class Window_Dummy < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#   size: Party's size
#--------------------------------------------------------------------------
def initialize(size)
  @old_size = $game_party.actors.size
  x = Raz_Hud::Center_hud == true ? 240 - ($game_party.actors.size - 1) * 80 : 0
  super(160 * size + x, 372,160, 108)
  self.visible = $game_switches[Raz_Hud::SWITCH_ID]
  self.opacity = 200
end
end
#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
#  This class is for all in-game windows.
#==============================================================================

class Window_Base < Window
#--------------------------------------------------------------------------
# * Draw Slant Bar (by SephirothSpawn)
#--------------------------------------------------------------------------
def draw_slant_bar(x, y, min, max, width = 152, height = 6,
bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
  for i in 0..height
 self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
  end
  for i in 1..(height - 1)
 r = 100 * (height - i) / height + 0 * i / height
 g = 100 * (height - i) / height + 0 * i / height
 b = 100 * (height - i) / height + 0 * i / height
 a = 255 * (height - i) / height + 255 * i / height
 self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
  end
  for i in 1..( (min / max.to_f) * width - 1)
 for j in 1..(height - 1)
   r = bar_color.red * (width - i) / width + end_color.red * i / width
   g = bar_color.green * (width - i) / width + end_color.green * i / width
   b = bar_color.blue * (width - i) / width + end_color.blue * i / width
   a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
   self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
 end
  end
end
end
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles the actor. It's used within the Game_Actors class
#  ($game_actors) and refers to the Game_Party class ($game_party).
#==============================================================================

class Game_Actor
#--------------------------------------------------------------------------
# * Now Exp
#--------------------------------------------------------------------------
def now_exp
  return @exp - @exp_list[@level]
end
#--------------------------------------------------------------------------
# * Next Exp
#--------------------------------------------------------------------------
def next_exp
  return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end

 

Instructions

Turn the HUD on/off by using a switch. Turn the HUD off, turn the switch to off, to turn the HUD on, change the switch to on. The default switch is 1. To change it, just change the 1 in SWITCH_ID = 1 to the number of the switch you want to use.

To center the HUD just turn Center_hud to true. Turn it off when you don't want to center the HUD.

 

Credits & Thanks

Thanks and credits to SephirothSpawn for the gradient bars. Thanks to Trickster for pushing me to update it. (I did it, are you happy now?

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...